Compare commits

...

2 Commits

Author SHA1 Message Date
Jordi Baylina
0a2aee9932 0.5.25 2020-09-17 10:34:57 +02:00
Jordi Baylina
bad8fad3d0 Optimize optimize constraints not BigArray for small circuits 2020-09-17 10:34:49 +02:00
3 changed files with 15 additions and 5 deletions

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "circom", "name": "circom",
"version": "0.5.24", "version": "0.5.25",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "circom", "name": "circom",
"version": "0.5.24", "version": "0.5.25",
"description": "Language to generate logic circuits", "description": "Language to generate logic circuits",
"main": "index.js", "main": "index.js",
"directories": { "directories": {

View File

@@ -341,7 +341,11 @@ async function reduceConstrains(ctx) {
} }
while (possibleConstraints.length >0) { while (possibleConstraints.length >0) {
if (possibleConstraints.length>1<<20) {
nextPossibleConstraints = new BigArray(); 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) {
} }
} }
if (nextPossibleConstraints.getKeys) {
nextPossibleConstraints = 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;
} }