This commit is contained in:
poma 2019-12-29 21:29:59 +07:00
parent c9df6beaed
commit fba855ab74
No known key found for this signature in database
GPG Key ID: BA20CB01FE165657
8 changed files with 1572 additions and 1492 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1485,7 +1485,7 @@ async function build() {
buildF1(moduleBuilder, bn128.r, "fr", "frm");
buildCurve(moduleBuilder, "g1", "f1m");
buildMultiexp(moduleBuilder, "g1", "g1", "f1m", "fr");
buildFFT(moduleBuilder, "fft", "frm");
buildFFT(moduleBuilder, "fft", "frm", bigInt(7));
buildPol(moduleBuilder, "pol", "frm");
const pNonResidueF2 = moduleBuilder.alloc(
@ -5480,7 +5480,7 @@ async function build() {
buildF1(moduleBuilder, groth16.r, "fr", "frm");
buildCurve(moduleBuilder, "g1", "f1m");
buildMultiexp(moduleBuilder, "g1", "g1", "f1m", "fr");
buildFFT(moduleBuilder, "fft", "frm");
buildFFT(moduleBuilder, "fft", "frm", bigInt(7));
buildPol(moduleBuilder, "pol", "frm");
const pNonResidueF2 = moduleBuilder.alloc(

File diff suppressed because one or more lines are too long

17
package-lock.json generated
View File

@ -2861,10 +2861,21 @@
"dev": true
},
"wasmbuilder": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.2.tgz",
"integrity": "sha512-MxtqpzQ9IkiNkCWAyK8tglXazJ+4w9J4aKzY30PHi6i4kCbA4EGhzRCOX6Iq7sCNPH4z3ljPgZ3ckwEsLO7GGg==",
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.3.tgz",
"integrity": "sha512-6+lhe2ong4zTG+XkqMduzXzNT1Lxiz9UpwgU4FJ+Ttx8zGeH3nOXROiyVqTRQr/l+NYw7KN5T009uAKaSOmMAQ==",
"dev": true,
"requires": {
"big-integer": "^1.6.43"
},
"dependencies": {
"big-integer": {
"version": "1.6.48",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
"integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==",
"dev": true
}
}
},
"which": {
"version": "1.3.1",

View File

@ -47,7 +47,7 @@ async function build() {
buildF1(moduleBuilder, bn128.r, "fr", "frm");
buildCurve(moduleBuilder, "g1", "f1m");
buildMultiexp(moduleBuilder, "g1", "g1", "f1m", "fr");
buildFFT(moduleBuilder, "fft", "frm");
buildFFT(moduleBuilder, "fft", "frm", bigInt(7));
buildPol(moduleBuilder, "pol", "frm");
const pNonResidueF2 = moduleBuilder.alloc(

View File

@ -20,7 +20,7 @@
const bigInt = require("big-integer");
const utils = require("./utils.js");
module.exports = function buildFFT(module, prefix, f1mPrefix) {
module.exports = function buildFFT(module, prefix, f1mPrefix, overrideNr) {
const n64 = module.modules[f1mPrefix].n64;
const n8 = n64*8;
@ -33,9 +33,14 @@ module.exports = function buildFFT(module, prefix, f1mPrefix) {
rem = rem.shiftRight(1);
}
let nr = bigInt(2);
let nr;
if (overrideNr) {
nr = bigInt(overrideNr);
} else {
nr = bigInt(2);
while ( nr.modPow(q.shiftRight(1), q).equals(1) ) nr = nr.add(1);
}
const w = new Array(maxBits+1);
w[maxBits] = nr.modPow(rem, q);

View File

@ -23,7 +23,7 @@ function buildWasm() {
buildF1(moduleBuilder, r, "fr", "frm");
buildCurve(moduleBuilder, "g1", "f1m");
buildMultiexp(moduleBuilder, "g1", "g1", "f1m", "fr");
buildFFT(moduleBuilder, "fft", "frm");
buildFFT(moduleBuilder, "fft", "frm", bigInt(7));
buildPol(moduleBuilder, "pol", "frm");
const pNonResidueF2 = moduleBuilder.alloc(