Optimize optimize constraints not BigArray for small circuits
Jordi Baylina jordi@baylina.cat
Thu, 17 Sep 2020 10:34:49 +0200
1 files changed,
13 insertions(+),
3 deletions(-)
jump to
M
src/compiler.js
→
src/compiler.js
@@ -341,7 +341,11 @@ possibleConstraints[i] = ctx.constraints.length - i -1;
} while (possibleConstraints.length >0) { - nextPossibleConstraints = new BigArray(); + if (possibleConstraints.length>1<<20) { + nextPossibleConstraints = new BigArray(); + } else { + nextPossibleConstraints = {}; + } removedSignals = new BigArray(); nRemoved = 0; lIdx = new BigArray();@@ -404,7 +408,11 @@ }
} } - nextPossibleConstraints = nextPossibleConstraints.getKeys(); + if (nextPossibleConstraints.getKeys) { + nextPossibleConstraints = nextPossibleConstraints.getKeys(); + } else { + nextPossibleConstraints = Object.keys(nextPossibleConstraints); + } for (let i=0; i<nextPossibleConstraints.length;i++) { if ((ctx.verbose)&&(i%10000 == 0)) {@@ -440,12 +448,14 @@
lSignal.c = ctx.stDISCARDED; } +/* possibleConstraints = new BigArray(); - // Reverse for (let i=0; i<nextPossibleConstraints.length; i++) { possibleConstraints[i] = nextPossibleConstraints[nextPossibleConstraints.length -1 -i]; } +*/ + possibleConstraints = nextPossibleConstraints; }