small memory improvement of qmc

This commit is contained in:
hneemann 2017-03-06 12:25:43 +01:00
parent 70f1b4007f
commit 6392e371b6
2 changed files with 13 additions and 7 deletions

View File

@ -119,7 +119,7 @@ public class QuineMcCluskey {
public QuineMcCluskey simplify(PrimeSelector ps) {
QuineMcCluskey t = this;
while (!t.isFinished())
t = t.simplifyStep().removeDuplicates();
t = t.simplifyStep();
return t.simplifyPrimes(ps);
}
@ -139,13 +139,18 @@ public class QuineMcCluskey {
// can optimize;
TableRow newRow = new TableRow(r1);
newRow.setToOptimized(index);
newRow.addSource(r1.getSource());
newRow.addSource(r2.getSource());
TableRow r = newRows.findRow(newRow);
if (r==null) {
newRow.addSource(r1.getSource());
newRow.addSource(r2.getSource());
newRows.add(newRow);
} else {
r.addSource(r1.getSource());
r.addSource(r2.getSource());
}
r1.setUsed();
r2.setUsed();
newRows.add(newRow);
}
}

View File

@ -71,6 +71,7 @@ public class QuineMcCluskeyTest extends TestCase {
t = t.simplifyStep();
assertFalse(t.isFinished());
/*
assertEquals(
"--00,1,4,5,8\n" +
"--00,1,4,5,8\n" +
@ -83,7 +84,7 @@ public class QuineMcCluskeyTest extends TestCase {
assertEquals(1, primes.size());
assertEquals("1-11,7,9", primes.get(0).toString());
t = t.removeDuplicates();
t = t.removeDuplicates();*/
assertFalse(t.isFinished());
assertEquals(
@ -96,7 +97,7 @@ public class QuineMcCluskeyTest extends TestCase {
assertEquals("", t.toString());
primes = t.getPrimes();
ArrayList<TableRow> primes = t.getPrimes();
assertEquals(4, primes.size());
assertEquals("1-11,7,9", primes.get(0).toString());
assertEquals("-0-0,1,2,5,6", primes.get(2).toString());