diff --git a/ceno_zkvm/src/uint/arithmetic.rs b/ceno_zkvm/src/uint/arithmetic.rs index 5e48b0319..3f742ed71 100644 --- a/ceno_zkvm/src/uint/arithmetic.rs +++ b/ceno_zkvm/src/uint/arithmetic.rs @@ -274,9 +274,7 @@ impl UIntLimbs { .into_iter() .unzip(); - let sum_expr = is_equal_per_limb - .iter() - .fold(Expression::ZERO, |acc, flag| acc.clone() + flag.expr()); + let sum_expr = is_equal_per_limb.iter().map(ToExpr::expr).sum(); let sum_flag = WitIn::from_expr(|| "sum_flag", circuit_builder, sum_expr, false)?; let (is_equal, diff_inv) = diff --git a/mpcs/src/sum_check/classic/coeff.rs b/mpcs/src/sum_check/classic/coeff.rs index 12f46880f..10d5c1c20 100644 --- a/mpcs/src/sum_check/classic/coeff.rs +++ b/mpcs/src/sum_check/classic/coeff.rs @@ -49,9 +49,7 @@ impl ClassicSumCheckRoundMessage for Coefficients { } fn sum(&self) -> E { - self[1..] - .iter() - .fold(self[0].double(), |acc, coeff| acc + coeff) + self[0] + self[..].iter().sum::() } fn evaluate(&self, _: &Self::Auxiliary, challenge: &E) -> E {