mirror of
https://github.com/saymrwulf/pasta_curves-source.git
synced 2026-09-06 20:20:34 +00:00
Minor changes to multiopen
Co-authored-by: ebfull <ewillbefull@gmail.com>
This commit is contained in:
parent
1e9f7f37c6
commit
a30719c245
2 changed files with 8 additions and 8 deletions
|
|
@ -43,9 +43,9 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
|
|
||||||
// A vec of vecs of evals. The outer vec corresponds to the point set,
|
// A vec of vecs of evals. The outer vec corresponds to the point set,
|
||||||
// while the inner vec corresponds to the points in a particular set.
|
// while the inner vec corresponds to the points in a particular set.
|
||||||
let mut q_eval_sets: Vec<Vec<_>> = vec![Vec::new(); point_sets.len()];
|
let mut q_eval_sets = Vec::with_capacity(point_sets.len());
|
||||||
for (set_idx, point_set) in point_sets.iter().enumerate() {
|
for point_set in point_sets.iter() {
|
||||||
q_eval_sets[set_idx] = vec![C::Scalar::zero(); point_set.len()];
|
q_eval_sets.push(vec![C::Scalar::zero(); point_set.len()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
@ -83,7 +83,7 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
.zip(q_eval_sets.iter())
|
.zip(q_eval_sets.iter())
|
||||||
.zip(q_polys.iter())
|
.zip(q_polys.iter())
|
||||||
.fold(None, |f_poly, ((points, evals), poly)| {
|
.fold(None, |f_poly, ((points, evals), poly)| {
|
||||||
let mut poly = poly.clone()?.values;
|
let mut poly = poly.clone().unwrap().values;
|
||||||
// TODO: makes implicit asssumption that poly degree is smaller than interpolation poly degree
|
// TODO: makes implicit asssumption that poly degree is smaller than interpolation poly degree
|
||||||
for (p, r) in poly.iter_mut().zip(lagrange_interpolate(points, evals)) {
|
for (p, r) in poly.iter_mut().zip(lagrange_interpolate(points, evals)) {
|
||||||
*p -= &r;
|
*p -= &r;
|
||||||
|
|
|
||||||
|
|
@ -49,9 +49,9 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
|
|
||||||
// A vec of vecs of evals. The outer vec corresponds to the point set,
|
// A vec of vecs of evals. The outer vec corresponds to the point set,
|
||||||
// while the inner vec corresponds to the points in a particular set.
|
// while the inner vec corresponds to the points in a particular set.
|
||||||
let mut q_eval_sets: Vec<Vec<C::Scalar>> = vec![Vec::new(); point_sets.len()];
|
let mut q_eval_sets = Vec::with_capacity(point_sets.len());
|
||||||
for (set_idx, point_set) in point_sets.iter().enumerate() {
|
for point_set in point_sets.iter() {
|
||||||
q_eval_sets[set_idx] = vec![C::Scalar::zero(); point_set.len()];
|
q_eval_sets.push(vec![C::Scalar::zero(); point_set.len()]);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
let mut accumulate = |set_idx: usize, new_commitment, evals: Vec<C::Scalar>| {
|
let mut accumulate = |set_idx: usize, new_commitment, evals: Vec<C::Scalar>| {
|
||||||
|
|
@ -114,7 +114,7 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
// Compute the final commitment that has to be opened
|
// Compute the final commitment that has to be opened
|
||||||
let mut commitment_msm = params.empty_msm();
|
let mut commitment_msm = params.empty_msm();
|
||||||
commitment_msm.add_term(C::Scalar::one(), self.f_commitment);
|
commitment_msm.add_term(C::Scalar::one(), self.f_commitment);
|
||||||
let (commitment_msm, msm_eval) = q_commitments.iter().zip(self.q_evals.iter()).fold(
|
let (commitment_msm, msm_eval) = q_commitments.into_iter().zip(self.q_evals.iter()).fold(
|
||||||
(commitment_msm, msm_eval),
|
(commitment_msm, msm_eval),
|
||||||
|(mut commitment_msm, msm_eval), (q_commitment, q_eval)| {
|
|(mut commitment_msm, msm_eval), (q_commitment, q_eval)| {
|
||||||
commitment_msm.scale(x_7);
|
commitment_msm.scale(x_7);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue