Skip to content

Commit

Permalink
Add general function
Browse files Browse the repository at this point in the history
  • Loading branch information
RogerTaule committed Sep 22, 2023
1 parent c5876cb commit b160175
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 23 deletions.
7 changes: 2 additions & 5 deletions src/compressor/compressor12_setup.js
Expand Up @@ -8,6 +8,7 @@ const ejs = require("ejs");
const r1cs2plonk = require("../r1cs2plonk");
const {M, P, S, C} = require("../helpers/hash/poseidon/poseidon_constants_opt.js");
const { getCustomGatesInfo, calculatePlonkConstraintsRowsC12 } = require("./compressor_helpers.js");
const { connect } = require("../helpers/polutils");

/*
Compress plonk constraints and verifies custom gates using 12 committed polynomials
Expand Down Expand Up @@ -531,7 +532,7 @@ module.exports = async function plonkSetup(F, r1cs, options) {
if (typeof lastSignal[sMap[j][i]] !== "undefined") {
const ls = lastSignal[sMap[j][i]];
connections++;
connect(constPols.Compressor.S[ls.col][ls.row], constPols.Compressor.S[j][i]);
connect(constPols.Compressor.S[ls.col],ls.row, constPols.Compressor.S[j], i);
} else {
lastSignal[sMap[j][i]] = {
col: j,
Expand Down Expand Up @@ -580,8 +581,4 @@ module.exports = async function plonkSetup(F, r1cs, options) {
sMap: sMap,
plonkAdditions: plonkAdditions
};

function connect(p1, p2) {
[p1, p2] = [p2, p1];
}
}
7 changes: 2 additions & 5 deletions src/compressor/compressor18_setup.js
Expand Up @@ -8,6 +8,7 @@ const ejs = require("ejs");
const r1cs2plonk = require("../r1cs2plonk");
const {M, P, S, C} = require("../helpers/hash/poseidon/poseidon_constants_opt.js");
const { getCustomGatesInfo, calculatePlonkConstraintsHalfs } = require("./compressor_helpers.js");
const { connect } = require("../helpers/polutils");

/*
Compress plonk constraints and verifies custom gates using 18 committed polynomials
Expand Down Expand Up @@ -594,7 +595,7 @@ module.exports = async function plonkSetup(F, r1cs, options) {
if (typeof lastSignal[sMap[j][i]] !== "undefined") {
const ls = lastSignal[sMap[j][i]];
connections++;
connect(constPols.Compressor.S[ls.col][ls.row], constPols.Compressor.S[j][i]);
connect(constPols.Compressor.S[ls.col],ls.row, constPols.Compressor.S[j],i);
} else {
lastSignal[sMap[j][i]] = {
col: j,
Expand Down Expand Up @@ -644,8 +645,4 @@ module.exports = async function plonkSetup(F, r1cs, options) {
sMap: sMap,
plonkAdditions: plonkAdditions
};

function connect(p1, p2) {
[p1, p2] = [p2, p1];
}
}
4 changes: 4 additions & 0 deletions src/helpers/polutils.js
Expand Up @@ -94,3 +94,7 @@ module.exports.calculateZ = function(F, num, den) {

return z;
}

module.exports.connect = function connect(p1, i1, p2, i2) {
[p1[i1], p2[i2]] = [p2[i2], p1[i1]];
}
8 changes: 4 additions & 4 deletions src/pil_info/cp_prover.js
Expand Up @@ -195,20 +195,20 @@ function getExpDim(pil, exp, maxDeg) {
case "neg":
let md = 1;
for (let i=0; i<exp.values.length; i++) {
const d = getExpDim(pil, exp.values[i]);
const d = getExpDim(pil, exp.values[i], maxDeg);
if (d>md) md=d;
}
return md;
case "mul":
return getExpDim(pil, exp.values[0]) + getExpDim(pil, exp.values[1])
return getExpDim(pil, exp.values[0], maxDeg) + getExpDim(pil, exp.values[1], maxDeg)
case "muladd":
return Math.max(getExpDim(pil, exp.values[0]) + getExpDim(pil, exp.values[1]), getExpDim(pil, exp.values[2]));
return Math.max(getExpDim(pil, exp.values[0], maxDeg) + getExpDim(pil, exp.values[1], maxDeg), getExpDim(pil, exp.values[2], maxDeg));
case "cm": return 1;
case "const": return 1;
case "exp":
if(exp.dim && exp.dim[maxDeg] >= 0) return exp.dim[maxDeg];
if(!exp.dim) exp.dim = {};
exp.dim[maxDeg] = getExpDim(pil, pil.expressions[exp.id]);
exp.dim[maxDeg] = getExpDim(pil, pil.expressions[exp.id], maxDeg);
return exp.dim[maxDeg];
case "number": return 0;
case "public": return 0;
Expand Down
6 changes: 1 addition & 5 deletions test/plonk2pil/plonksetup.js
Expand Up @@ -6,6 +6,7 @@ const {tmpName} = require("tmp-promise");
const { newConstantPolsArray, compile, getKs } = require("pilcom");
const ejs = require("ejs");
const r1cs2plonk = require("../../src/r1cs2plonk");
const { connect } = require("../../src/helpers/polutils.js");



Expand Down Expand Up @@ -132,9 +133,4 @@ module.exports = async function plonkSetup(r1cs) {
sMap: sMap,
plonkAdditions: plonkAdditions
};

function connect(p1, i1, p2, i2) {
[p1[i1], p2[i2]] = [p2[i2], p1[i1]];
}

}
5 changes: 1 addition & 4 deletions test/state_machines/sm_connection/sm_connection.js
@@ -1,5 +1,6 @@
const F3g = require("../../../src/helpers/f3g.js");
const { log2, getKs } = require("pilcom/src/utils.js");
const { connect } = require("../../../src/helpers/polutils.js");

module.exports.buildConstants = async function (pols) {
const F = new F3g("0xFFFFFFFF00000001");
Expand All @@ -17,10 +18,6 @@ module.exports.buildConstants = async function (pols) {
w = F.mul(w, F.w[pow]);
}

function connect(p1, i1, p2, i2) {
[p1[i1], p2[i2]] = [p2[i2], p1[i1]];
}

for (let i=0; i<N; i++) {
if (i%2 == 0) {
connect(pols.S1, i, pols.S2, i/2);
Expand Down

0 comments on commit b160175

Please sign in to comment.