Skip to content

Commit 0d57d52

Browse files
committed
Simplify verifier code
1 parent 15e8970 commit 0d57d52

1 file changed

Lines changed: 16 additions & 43 deletions

File tree

src/lib.rs

Lines changed: 16 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -463,50 +463,23 @@ pub fn deepfold_commit<const LOG_2_PATH_LENGTH: usize, F: FftField>(
463463
/// 2 and 3.
464464
fn evaluate_poly_from_evals<F: Field>(evals: [F; 4], eval_at: F) -> F {
465465
// First compute the coefficients
466-
let mut coefficients = [F::ZERO; 4];
467-
coefficients[0] = evals[0];
468-
coefficients[1] = evals
469-
.iter()
470-
.zip(
471-
[
472-
-F::from(11) / F::from(6),
473-
F::from(3),
474-
-F::from(3) / F::from(2),
475-
F::ONE / F::from(3),
476-
]
477-
.iter(),
478-
)
479-
.map(|(a, b)| *a * b)
480-
.sum();
481-
coefficients[2] = evals
482-
.iter()
483-
.zip(
484-
[
485-
F::ONE,
486-
-F::from(5) / F::from(2),
487-
F::from(2),
488-
-F::ONE / F::from(2),
489-
]
490-
.iter(),
466+
evals[0]
467+
+ eval_at * (
468+
evals[0] * (-F::from(11) / F::from(6))
469+
+ evals[1] * F::from(3)
470+
+ evals[2] * (-F::from(3) / F::from(2))
471+
+ evals[3] * (F::ONE / F::from(3))
472+
+ eval_at * (
473+
evals[0]
474+
+ evals[1] * (-F::from(5) / F::from(2))
475+
+ evals[2] + evals[2]
476+
+ evals[3] * (-F::ONE / F::from(2))
477+
+ eval_at * (
478+
(evals[1] - evals[2]) * (F::ONE / F::from(2))
479+
+ (evals[3] - evals[0]) * (F::ONE / F::from(6))
480+
)
491481
)
492-
.map(|(a, b)| *a * b)
493-
.sum();
494-
coefficients[3] = evals
495-
.iter()
496-
.zip(
497-
[
498-
-F::ONE / F::from(6),
499-
F::ONE / F::from(2),
500-
-F::ONE / F::from(2),
501-
F::ONE / F::from(6),
502-
]
503-
.iter(),
504-
)
505-
.map(|(a, b)| *a * b)
506-
.sum();
507-
508-
coefficients[0]
509-
+ eval_at * (coefficients[1] + eval_at * (coefficients[2] + eval_at * coefficients[3]))
482+
)
510483
}
511484

512485
pub fn compute_mask_value<F: Field>(coefficients: &[F], point: &[F], r_y: F) -> F {

0 commit comments

Comments
 (0)