Clean up find_machxo2_global_position a bit more.
diff --git a/libtrellis/src/RoutingGraph.cpp b/libtrellis/src/RoutingGraph.cpp index 0fe1753..f7ca683 100644 --- a/libtrellis/src/RoutingGraph.cpp +++ b/libtrellis/src/RoutingGraph.cpp
@@ -339,15 +339,14 @@ } else if(strategy == GlobalType::UP_DOWN) { std::string db_copy = db_name; std::vector<int> & ud_conns_in_col = global_data_machxo2.ud_conns[col]; + auto conn_begin = ud_conns_in_col.begin(); + auto conn_end = ud_conns_in_col.end(); + int conn_no = std::stoi(m.str(1)); // First check whether the requested global is in the current column. // If not, no point in continuing. - if(std::find(ud_conns_in_col.begin(), - ud_conns_in_col.end(), - std::stoi(m.str(1))) == ud_conns_in_col.end()) { - + if(std::find(conn_begin, conn_end, conn_no) == conn_end) return RoutingId(); - } // Special case the center row, which will have both U/D wires. if(row == center.first) { @@ -377,33 +376,23 @@ } else if(strategy == GlobalType::BRANCH) { std::vector<int> candidate_cols; - if(col == 0) { - candidate_cols.push_back(0); - candidate_cols.push_back(1); - } else if(col == 1) { - candidate_cols.push_back(0); - candidate_cols.push_back(1); - candidate_cols.push_back(2); - } else if(col == max_col) { - candidate_cols.push_back(max_col - 2); - candidate_cols.push_back(max_col - 1); - candidate_cols.push_back(max_col); - } else { + if(col > 1) candidate_cols.push_back(col - 2); + if(col > 0) candidate_cols.push_back(col - 1); - candidate_cols.push_back(col); + candidate_cols.push_back(col); + if(col < max_col) candidate_cols.push_back(col + 1); - } for(auto curr_col : candidate_cols) { std::vector<int> & ud_conns_in_col = global_data_machxo2.ud_conns[curr_col]; + auto conn_begin = ud_conns_in_col.begin(); + auto conn_end = ud_conns_in_col.end(); + int conn_no = std::stoi(m.str(1)); // First check whether the requested global is in the current column. // If not, no point in continuing. - if(std::find(ud_conns_in_col.begin(), - ud_conns_in_col.end(), - std::stoi(m.str(1))) != ud_conns_in_col.end()) { - + if(std::find(conn_begin, conn_end, conn_no) != conn_end) { curr_global.id = ident(db_name); curr_global.loc.x = curr_col; curr_global.loc.y = row;