Browse Source

chore: use sparse ml poly for input poly

main
Daniel Tehrani 2 years ago
parent
commit
a58a290b4d
1 changed files with 8 additions and 2 deletions
  1. +8
    -2
      shockwave_plus/src/lib.rs

+ 8
- 2
shockwave_plus/src/lib.rs

@ -251,8 +251,14 @@ impl ShockwavePlus {
self.pcs_witness
.verify(&partial_proof.z_eval_proof, transcript);
let input = R1CS::construct_z(&vec![F::ZERO; self.r1cs.num_vars], &self.r1cs.public_input);
let input_poly = SparseMLPoly::from_dense(input);
let witness_len = self.r1cs.num_vars.next_power_of_two();
let input = (0..self.r1cs.num_input)
.map(|i| (witness_len + i + 1, self.r1cs.public_input[i]))
.collect::<Vec<(usize, F)>>();
let input_poly =
SparseMLPoly::new(vec![vec![(witness_len, F::ONE)], input].concat(), ry.len());
let input_poly_eval = input_poly.eval(&ry);
let z_eval = (F::ONE - ry[0]) * witness_eval + input_poly_eval;

Loading…
Cancel
Save