chore: use sparse ml poly for input poly
Daniel Tehrani contact@dantehrani.com
Sat, 29 Jul 2023 17:17:28 -0700
1 files changed,
8 insertions(+),
2 deletions(-)
jump to
M
shockwave_plus/src/lib.rs
→
shockwave_plus/src/lib.rs
@@ -251,8 +251,14 @@
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;