Include performance patch for array-vs-array interactions in deep mode

This commit is contained in:
Matthias Koefferlein 2022-12-02 17:53:15 +01:00
parent 77e9b511cf
commit cca20773a7
1 changed files with 7 additions and 1 deletions

View File

@ -1097,10 +1097,16 @@ private:
const db::Cell &cell1 = mp_subject_layout->cell (inst1->object ().cell_index ());
const db::Cell &cell2 = mp_intruder_layout->cell (inst2->object ().cell_index ());
db::box_convert <db::CellInst, true> inst2_bc (*mp_intruder_layout, m_intruder_layer);
db::box_convert <db::CellInst, true> inst1_bc (*mp_subject_layout, m_subject_layer);
db::Box iibox2 = inst2->bbox (inst2_bc).enlarged (db::Vector (m_dist, m_dist));
if (iibox2.empty ()) {
return;
}
std::unordered_map<db::ICplxTrans, std::list<std::pair<db::cell_index_type, db::ICplxTrans> > > interactions_cache;
for (db::CellInstArray::iterator n = inst1->begin (); ! n.at_end (); ++n) {
for (db::CellInstArray::iterator n = inst1->begin_touching (safe_box_enlarged (iibox2, -1, -1), inst1_bc); ! n.at_end (); ++n) {
db::ICplxTrans tn1 = inst1->complex_trans (*n);
db::ICplxTrans tni1 = tn1.inverted ();