mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-28 07:28:20 -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 r1 = list.get(i);
|
||||||
TableRow r2 = list.get(j);
|
TableRow r2 = list.get(j);
|
||||||
|
|
||||||
int index = checkCompatible(r1, r2);
|
int index = r1.checkCompatible(r2);
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
// can optimize;
|
// can optimize;
|
||||||
TableRow newRow = new TableRow(r1);
|
TableRow newRow = new TableRow(r1);
|
||||||
@ -170,22 +170,6 @@ public class QuineMcCluskey {
|
|||||||
return rows.isEmpty();
|
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
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
@ -221,4 +221,24 @@ public class TableRow implements Comparable<TableRow> {
|
|||||||
return e;
|
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