Revision: 21010 http://sourceforge.net/p/jmol/code/21010 Author: hansonr Date: 2016-03-21 17:30:06 +0000 (Mon, 21 Mar 2016) Log Message: ----------- SmilesAromatic.java SmilesSearch.java
Modified Paths: -------------- branches/v14_4/Jmol/src/org/jmol/smiles/SmilesAromatic.java trunk/Jmol/src/org/jmol/smiles/SmilesAromatic.java Modified: branches/v14_4/Jmol/src/org/jmol/smiles/SmilesAromatic.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/smiles/SmilesAromatic.java 2016-03-21 17:15:38 UTC (rev 21009) +++ branches/v14_4/Jmol/src/org/jmol/smiles/SmilesAromatic.java 2016-03-21 17:30:06 UTC (rev 21010) @@ -552,11 +552,10 @@ private static void removeBridgingRings(Lst<BS> lstAromatic, Lst<SmilesRing> lstSP2) { BS bs = new BS(); BS bsBad = new BS(); - checkBridges(lstAromatic, bsBad, null, null, bs); BS bsBad2 = new BS(); - checkBridges(lstSP2, bsBad2, null, null, bs); + checkBridges(lstAromatic, bsBad, lstAromatic, bsBad, bs); + checkBridges(lstSP2, bsBad2, lstSP2, bsBad2, bs); checkBridges(lstAromatic, bsBad, lstSP2, bsBad2, bs); - for (int i = lstAromatic.size(); --i >= 0;) if (bsBad.get(i)) lstAromatic.remove(i); @@ -567,22 +566,10 @@ private static void checkBridges(Lst<?> lst, BS bsBad, Lst<?> lst2, BS bsBad2, BS bs) { + boolean isSameList = (lst == lst2); for (int i = lst.size(); --i >= 0;) { BS bs1 = (BS) lst.get(i); - if (lst2 == null) - for (int j = lst.size(); --j > i;) { - BS bs2 = (BS) lst.get(j); - bs.clearAll(); - bs.or(bs1); - bs.and(bs2); - int n = bs.cardinality(); - if (n > 2) { - bsBad.set(i); - bsBad.set(j); - } - } - else - for (int j = lst2.size(); --j >= 0;) { + for (int j0 = (isSameList ? i + 1 : 0), j = lst2.size(); --j >= j0;) { BS bs2 = (BS) lst2.get(j); if (bs2.equals(bs1)) continue; @@ -592,9 +579,8 @@ int n = bs.cardinality(); if (n > 2) { bsBad.set(i); - bsBad2.set(i); + bsBad2.set(j); } - } } } Modified: trunk/Jmol/src/org/jmol/smiles/SmilesAromatic.java =================================================================== --- trunk/Jmol/src/org/jmol/smiles/SmilesAromatic.java 2016-03-21 17:15:38 UTC (rev 21009) +++ trunk/Jmol/src/org/jmol/smiles/SmilesAromatic.java 2016-03-21 17:30:06 UTC (rev 21010) @@ -552,11 +552,10 @@ private static void removeBridgingRings(Lst<BS> lstAromatic, Lst<SmilesRing> lstSP2) { BS bs = new BS(); BS bsBad = new BS(); - checkBridges(lstAromatic, bsBad, null, null, bs); BS bsBad2 = new BS(); - checkBridges(lstSP2, bsBad2, null, null, bs); + checkBridges(lstAromatic, bsBad, lstAromatic, bsBad, bs); + checkBridges(lstSP2, bsBad2, lstSP2, bsBad2, bs); checkBridges(lstAromatic, bsBad, lstSP2, bsBad2, bs); - for (int i = lstAromatic.size(); --i >= 0;) if (bsBad.get(i)) lstAromatic.remove(i); @@ -567,22 +566,10 @@ private static void checkBridges(Lst<?> lst, BS bsBad, Lst<?> lst2, BS bsBad2, BS bs) { + boolean isSameList = (lst == lst2); for (int i = lst.size(); --i >= 0;) { BS bs1 = (BS) lst.get(i); - if (lst2 == null) - for (int j = lst.size(); --j > i;) { - BS bs2 = (BS) lst.get(j); - bs.clearAll(); - bs.or(bs1); - bs.and(bs2); - int n = bs.cardinality(); - if (n > 2) { - bsBad.set(i); - bsBad.set(j); - } - } - else - for (int j = lst2.size(); --j >= 0;) { + for (int j0 = (isSameList ? i + 1 : 0), j = lst2.size(); --j >= j0;) { BS bs2 = (BS) lst2.get(j); if (bs2.equals(bs1)) continue; @@ -592,9 +579,8 @@ int n = bs.cardinality(); if (n > 2) { bsBad.set(i); - bsBad2.set(i); + bsBad2.set(j); } - } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140 _______________________________________________ Jmol-commits mailing list Jmol-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-commits