private boolean fusionPointInversion(AtomPair pair) { // not candidates for inversion // > 3 bonds if (pair.bndAt.length != 3) return false; if (bfix.contains(pair.bndAt[0]) || bfix.contains(pair.bndAt[2])) return false; // we want *!@*@*!@* if (!pair.bndAt[0].isInRing() || pair.bndAt[1].isInRing() || pair.bndAt[2].isInRing()) return false; // non-terminals if (adjList[pair.fst].length > 1 || adjList[pair.snd].length > 1) return false; IAtom fst = atoms[pair.fst]; // choose which one to invert, preffering hydrogens stackBackup.clear(); if (fst.getAtomicNumber() == 1) stackBackup.push(pair.fst); else stackBackup.push(pair.snd); reflect(stackBackup, pair.bndAt[0].getBegin(), pair.bndAt[0].getEnd()); congestion.update(stackBackup.xs, stackBackup.len); return true; }
private boolean fusionPointInversion(AtomPair pair) { // not candidates for inversion // > 3 bonds if (pair.bndAt.length != 3) return false; if (bfix.contains(pair.bndAt[0]) || bfix.contains(pair.bndAt[2])) return false; // we want *!@*@*!@* if (!pair.bndAt[0].isInRing() || pair.bndAt[1].isInRing() || pair.bndAt[2].isInRing()) return false; // non-terminals if (adjList[pair.fst].length > 1 || adjList[pair.snd].length > 1) return false; IAtom fst = atoms[pair.fst]; // choose which one to invert, preffering hydrogens stackBackup.clear(); if (fst.getAtomicNumber() == 1) stackBackup.push(pair.fst); else stackBackup.push(pair.snd); reflect(stackBackup, pair.bndAt[0].getBegin(), pair.bndAt[0].getEnd()); congestion.update(stackBackup.xs, stackBackup.len); return true; }
congestion.update(visited, stackBackup.xs, stackBackup.len);
congestion.update(visited, stackBackup.xs, stackBackup.len);