Optimize optimize constraints not BigArray for small circuits

This commit is contained in:
Jordi Baylina
2020-09-17 10:34:49 +02:00
parent 0a707648fc
commit bad8fad3d0

View File

@@ -341,7 +341,11 @@ async function reduceConstrains(ctx) {
} }
while (possibleConstraints.length >0) { while (possibleConstraints.length >0) {
nextPossibleConstraints = new BigArray(); if (possibleConstraints.length>1<<20) {
nextPossibleConstraints = new BigArray();
} else {
nextPossibleConstraints = {};
}
removedSignals = new BigArray(); removedSignals = new BigArray();
nRemoved = 0; nRemoved = 0;
lIdx = new BigArray(); lIdx = new BigArray();
@@ -404,7 +408,11 @@ async function reduceConstrains(ctx) {
} }
} }
nextPossibleConstraints = nextPossibleConstraints.getKeys(); if (nextPossibleConstraints.getKeys) {
nextPossibleConstraints = nextPossibleConstraints.getKeys();
} else {
nextPossibleConstraints = Object.keys(nextPossibleConstraints);
}
for (let i=0; i<nextPossibleConstraints.length;i++) { for (let i=0; i<nextPossibleConstraints.length;i++) {
if ((ctx.verbose)&&(i%10000 == 0)) { if ((ctx.verbose)&&(i%10000 == 0)) {
@@ -440,12 +448,14 @@ async function reduceConstrains(ctx) {
lSignal.c = ctx.stDISCARDED; lSignal.c = ctx.stDISCARDED;
} }
/*
possibleConstraints = new BigArray(); possibleConstraints = new BigArray();
// Reverse // Reverse
for (let i=0; i<nextPossibleConstraints.length; i++) { for (let i=0; i<nextPossibleConstraints.length; i++) {
possibleConstraints[i] = nextPossibleConstraints[nextPossibleConstraints.length -1 -i]; possibleConstraints[i] = nextPossibleConstraints[nextPossibleConstraints.length -1 -i];
} }
*/
possibleConstraints = nextPossibleConstraints;
} }