pqc / src /test_run.ts
wuhp's picture
Create test_run.ts
fdea324 verified
raw
history blame contribute delete
735 Bytes
import { RingLwe } from './lib/lattice.js';
const lwe = new RingLwe(256, 3329, 2.0, true);
let p = new Int32Array(256);
p[1] = 1;
p[2] = 2;
const p_orig = new Int32Array(p);
// @ts-ignore
lwe.ntt(p);
// @ts-ignore
lwe.intt(p);
for (let i = 0; i < 256; i++) {
let expected = p_orig[i];
let actual = p[i];
if (expected !== actual) {
console.log(`FAIL at ${i}: expected ${expected}, got ${actual}`);
}
}
console.log("NTT roundtrip check finished");
let a = new Int32Array(256);
let b = new Int32Array(256);
a[1] = 1; // x
b[1] = 1; // x
// @ts-ignore
lwe.ntt(a);
// @ts-ignore
lwe.ntt(b);
// @ts-ignore
let c = lwe.polyMul(a, b);
// @ts-ignore
lwe.intt(c);
console.log("x * x = ", c[0], c[1], c[2], c[3]);