diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_round.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_round.hpp index e99f87cf7651..199e4af0fca9 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_round.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck_round.hpp @@ -119,7 +119,12 @@ template class SumcheckProverRound { if constexpr (Flavor::USE_SHORT_MONOMIALS) { extended_edge = edge; } else { - extended_edge = edge.template extend_to(); + if (multivariate.end_index() < edge_idx) { + static const auto zero_univariate = bb::Univariate::zero(); + extended_edge = zero_univariate; + } else { + extended_edge = edge.template extend_to(); + } } } } diff --git a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs index ae5915495869..1b649498a187 100644 --- a/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs +++ b/bb-pilcom/bb-pil-backend/templates/flavor.cpp.hbs @@ -89,7 +89,7 @@ AvmFlavor::PartiallyEvaluatedMultivariates::PartiallyEvaluatedMultivariates(cons { for (auto [poly, full_poly] : zip_view(get_all(), full_polynomials.get_all())) { // After the initial sumcheck round, the new size is CEIL(size/2). - size_t desired_size = std::min(full_poly.end_index() / 2 + full_poly.end_index() % 2, circuit_size / 2); + size_t desired_size = full_poly.end_index() / 2 + full_poly.end_index() % 2; poly = Polynomial(desired_size, circuit_size / 2); } }