mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-27 23:18:02 -04:00
minor refactoring of qmc
This commit is contained in:
parent
7fe144b47b
commit
d864cc1158
@ -134,7 +134,7 @@ public class QuineMcCluskey {
|
||||
TableRow r1 = list.get(i);
|
||||
TableRow r2 = list.get(j);
|
||||
|
||||
int index = checkCompatible(r1, r2);
|
||||
int index = r1.checkCompatible(r2);
|
||||
if (index >= 0) {
|
||||
// can optimize;
|
||||
TableRow newRow = new TableRow(r1);
|
||||
@ -170,22 +170,6 @@ public class QuineMcCluskey {
|
||||
return rows.isEmpty();
|
||||
}
|
||||
|
||||
private int checkCompatible(TableRow r1, TableRow r2) {
|
||||
if (r1.getOptimizedFlags() != r2.getOptimizedFlags())
|
||||
return -1;
|
||||
|
||||
int difIndex = -1;
|
||||
for (int i = 0; i < r1.size(); i++) {
|
||||
if (!r1.get(i).equals(r2.get(i))) {
|
||||
if (difIndex >= 0)
|
||||
return -1;
|
||||
difIndex = i;
|
||||
}
|
||||
}
|
||||
return difIndex;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
@ -221,4 +221,24 @@ public class TableRow implements Comparable<TableRow> {
|
||||
return e;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if rows differ in only one therm
|
||||
*
|
||||
* @param r2 the other row
|
||||
* @return the matching literal or -1
|
||||
*/
|
||||
public int checkCompatible(TableRow r2) {
|
||||
if (getOptimizedFlags() != r2.getOptimizedFlags())
|
||||
return -1;
|
||||
|
||||
int difIndex = -1;
|
||||
for (int i = 0; i < size(); i++) {
|
||||
if (!get(i).equals(r2.get(i))) {
|
||||
if (difIndex >= 0)
|
||||
return -1;
|
||||
difIndex = i;
|
||||
}
|
||||
}
|
||||
return difIndex;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user