@@ -354,7 +354,7 @@ template <typename Flavor> class SumcheckProver {
354
354
transcript->template get_challenge <FF>(" Sumcheck:u_" + std::to_string (round_idx));
355
355
multivariate_challenge.emplace_back (round_challenge);
356
356
// Prepare sumcheck book-keeping table for the next round
357
- partially_evaluate (partially_evaluated_polynomials, round . round_size , round_challenge);
357
+ partially_evaluate (partially_evaluated_polynomials, round_idx , round_challenge);
358
358
// Prepare evaluation masking and libra structures for the next round (for ZK Flavors)
359
359
zk_sumcheck_data.update_zk_sumcheck_data (round_challenge, round_idx);
360
360
row_disabling_polynomial.update_evaluations (round_challenge, round_idx);
@@ -444,18 +444,18 @@ template <typename Flavor> class SumcheckProver {
444
444
* After the final update, i.e. when \f$ i = d-1 \f$, the upper row of the table contains the evaluations of Honk
445
445
* polynomials at the challenge point \f$ (u_0,\ldots, u_{d-1}) \f$.
446
446
* @param polynomials Honk polynomials at initialization; partially evaluated polynomials in subsequent rounds
447
- * @param round_size \f$2^{ d-i} \f$
447
+ * @param round_index \f$d-i\f$
448
448
* @param round_challenge \f$u_i\f$
449
449
*/
450
- void partially_evaluate (auto & polynomials, size_t round_size , FF round_challenge)
450
+ void partially_evaluate (auto & polynomials, size_t round_index , FF round_challenge)
451
451
{
452
452
auto pep_view = partially_evaluated_polynomials.get_all ();
453
453
auto poly_view = polynomials.get_all ();
454
454
// after the first round, operate in place on partially_evaluated_polynomials
455
455
parallel_for (poly_view.size (), [&](size_t j) {
456
- for ( size_t i = 0 ; i < round_size; i += 2 ) {
457
- pep_view[j]. set_if_valid_index (
458
- i >> 1 , poly_view[j][ i] + round_challenge * (poly_view[j][ i + 1 ] - poly_view[j] [i]));
456
+ const auto & poly = poly_view[j];
457
+ for ( size_t i = 0 ; i < poly. end_index () / round_index; i += 2 ) {
458
+ pep_view[j]. set_if_valid_index ( i >> 1 , poly[ i] + round_challenge * (poly[ i + 1 ] - poly [i]));
459
459
}
460
460
});
461
461
};
@@ -464,14 +464,14 @@ template <typename Flavor> class SumcheckProver {
464
464
* Specialization for array, see \ref bb::SumcheckProver<Flavor>::partially_evaluate "generic version".
465
465
*/
466
466
template <typename PolynomialT, std::size_t N>
467
- void partially_evaluate (std::array<PolynomialT, N>& polynomials, size_t round_size , FF round_challenge)
467
+ void partially_evaluate (std::array<PolynomialT, N>& polynomials, size_t round_index , FF round_challenge)
468
468
{
469
469
auto pep_view = partially_evaluated_polynomials.get_all ();
470
470
// after the first round, operate in place on partially_evaluated_polynomials
471
471
parallel_for (polynomials.size (), [&](size_t j) {
472
- for ( size_t i = 0 ; i < round_size; i += 2 ) {
473
- pep_view[j]. set_if_valid_index (
474
- i >> 1 , polynomials[j][ i] + round_challenge * (polynomials[j][ i + 1 ] - polynomials[j] [i]));
472
+ const auto & poly = polynomials[j];
473
+ for ( size_t i = 0 ; i < poly. end_index () / round_index; i += 2 ) {
474
+ pep_view[j]. set_if_valid_index ( i >> 1 , poly[ i] + round_challenge * (poly[ i + 1 ] - poly [i]));
475
475
}
476
476
});
477
477
};
0 commit comments