public void debugFind(Block b) { SpanningTree tree = new SpanningTree(b); List<Block> basis = CycleFinder.getCycleBasis(tree); List<BitSet> baseSets = new ArrayList<BitSet>(); int basisCounter = 0; for (Block cycle : basis) { baseSets.add(CycleFinder.cycleToBitSet(cycle, b)); System.out.println(basisCounter + "\t" + cycle); basisCounter++; } SubsetLister<BitSet> subsetLister = new SubsetLister<BitSet>(baseSets); int fullCounter = 0; for (List<BitSet> subSet : subsetLister) { if (!viable(subSet)) continue; BitSet bS = CycleFinder.combine(subSet); Block cycle = CycleFinder.toCycle(bS, b); System.out.println(fullCounter + "\t" + cycle.esize() + "\t" + cycle + "\t" + subSet); fullCounter++; } }