From a58a290b4db0db3216a46ab1c2cdf5d9fc7633b4 Mon Sep 17 00:00:00 2001 From: Daniel Tehrani Date: Sat, 29 Jul 2023 17:17:28 -0700 Subject: [PATCH] chore: use sparse ml poly for input poly --- shockwave_plus/src/lib.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/shockwave_plus/src/lib.rs b/shockwave_plus/src/lib.rs index b0e2b93..a0c64c7 100644 --- a/shockwave_plus/src/lib.rs +++ b/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::>(); + + 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;