arnaucube
arnaucube/circomPublic Self-hosted repository
Optimize optimize constraints not BigArray for small circuits
Jordi Baylina jordi@baylina.cat
Thu, 17 Sep 2020 10:34:49 +0200
commit

bad8fad3d069d702cf7c10fd95e70afa2e300d2d

parent

0a707648fcfc3130b5070701cba0bc517084a5ad

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; }