Skip to content

Commit

Permalink
fix: streamline usage of PowPolynomial
Browse files Browse the repository at this point in the history
  • Loading branch information
huitseeker committed Feb 8, 2024
1 parent 1c30fec commit 5b82c3c
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 14 deletions.
8 changes: 2 additions & 6 deletions src/spartan/batched_ppsnark.rs
Original file line number Diff line number Diff line change
Expand Up @@ -903,14 +903,10 @@ impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E>
let num_rounds_i = rand_sc.len();
let num_vars_log = num_vars.log_2();

let eq_rho = {
let rho_coords = PowPolynomial::new(&rho, num_rounds_i).coordinates();
EqPolynomial::new(rho_coords).evaluate(rand_sc)
};
let eq_rho = PowPolynomial::new(&rho, num_rounds_i).evaluate(rand_sc);

let (eq_tau, eq_masked_tau) = {
let tau_coords = PowPolynomial::new(&tau, num_rounds_i).coordinates();
let eq_tau = EqPolynomial::new(tau_coords);
let eq_tau: EqPolynomial<_> = PowPolynomial::new(&tau, num_rounds_i).into();

let eq_tau_at_rand = eq_tau.evaluate(rand_sc);
let eq_masked_tau = MaskedEqPolynomial::new(&eq_tau, num_vars_log).evaluate(rand_sc);
Expand Down
2 changes: 1 addition & 1 deletion src/spartan/polys/eq.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ impl<Scalar: PrimeField> EqPolynomial<Scalar> {
assert_eq!(self.r.len(), rx.len());
(0..rx.len())
.map(|i| self.r[i] * rx[i] + (Scalar::ONE - self.r[i]) * (Scalar::ONE - rx[i]))
.fold(Scalar::ONE, |acc, item| acc * item)
.product()
}

/// Evaluates the `EqPolynomial` at all the `2^|r|` points in its domain.
Expand Down
2 changes: 1 addition & 1 deletion src/spartan/polys/identity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ impl<Scalar: PrimeField> IdentityPolynomial<Scalar> {
power_of_two *= 2;
result
})
.fold(Scalar::ZERO, |acc, item| acc + item)
.sum()
}
}
6 changes: 6 additions & 0 deletions src/spartan/polys/power.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,9 @@ impl<Scalar: PrimeField> PowPolynomial<Scalar> {
self.eq.evals()
}
}

impl<Scalar: PrimeField> From<PowPolynomial<Scalar>> for EqPolynomial<Scalar> {
fn from(polynomial: PowPolynomial<Scalar>) -> Self {
polynomial.eq
}
}
8 changes: 2 additions & 6 deletions src/spartan/ppsnark.rs
Original file line number Diff line number Diff line change
Expand Up @@ -885,12 +885,8 @@ impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for Relax

// verify claim_sc_final
let claim_sc_final_expected = {
let rand_eq_bound_rand_sc = {
let poly_eq_coords = PowPolynomial::new(&rho, num_rounds_sc).coordinates();
EqPolynomial::new(poly_eq_coords).evaluate(&rand_sc)
};
let taus_coords = PowPolynomial::new(&tau, num_rounds_sc).coordinates();
let eq_tau = EqPolynomial::new(taus_coords);
let rand_eq_bound_rand_sc = PowPolynomial::new(&rho, num_rounds_sc).evaluate(&rand_sc);
let eq_tau: EqPolynomial<_> = PowPolynomial::new(&tau, num_rounds_sc).into();

let taus_bound_rand_sc = eq_tau.evaluate(&rand_sc);
let taus_masked_bound_rand_sc =
Expand Down

0 comments on commit 5b82c3c

Please sign in to comment.