49 static constexpr bool HasZK =
false;
66 static constexpr size_t NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>();
74 std::array<DataType, NUM_ALL_ENTITIES>
values;
97 static const std::vector<std::string> labels = [] {
98 std::vector<std::string>
result;
100 for (
size_t idx = 0; idx <
NUM_CLAIMS; ++idx) {
103 for (
size_t idx = 0; idx <
NUM_CLAIMS; ++idx) {
106 for (
size_t idx = 0; idx <
NUM_CLAIMS; ++idx) {
130 for (
const auto& polynomial : this->
get_all()) {
138 for (
auto& polynomial : this->
get_all()) {
139 if (!polynomial.is_empty()) {
140 polynomial.increase_virtual_size(size_in);
187 :
Base(full_polynomials, circuit_size)
206 template <
typename PartiallyEvaluatedPolynomials>
208 const std::vector<FF>& multivariate_challenge,
209 const size_t round_idx)
212 for (
size_t i = 0; i < round_idx; i++) {
213 round_challenge[i] = multivariate_challenge[i];
215 round_challenge[round_idx] =
FF(1);
217 for (
size_t idx = 0; idx <
NUM_CLAIMS; ++idx) {
218 auto& eq_polynomial = partially_evaluated_polynomials.eq(idx);
219 auto new_eq_polynomial =
Polynomial(2, eq_polynomial.virtual_size());
220 new_eq_polynomial.at(0) = eq_polynomial.at(0);
221 new_eq_polynomial.at(1) =
223 eq_polynomial = new_eq_polynomial;
247 using Relations =
typename NativeFlavor::template Relations_<FF>;
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
CommitmentKey object over a pairing group 𝔾₁.
Define a bespoke AllEntities holding all the values: [unshifted values, shifted values,...
static constexpr std::size_t size()
const DataType & non_shifted(size_t idx) const
DataType & shifted(size_t idx)
const DataType & shifted(size_t idx) const
const DataType & eq(size_t idx) const
std::array< DataType, NUM_ALL_ENTITIES > values
static const std::vector< std::string > & get_labels()
DataType & non_shifted(size_t idx)
DataType & eq(size_t idx)
PartiallyEvaluatedMultivariates(const ProverPolynomials &full_polynomials, size_t circuit_size)
std::array< std::vector< FF >, NUM_CLAIMS > claim_challenges
void increase_polynomials_virtual_size(const size_t size_in)
size_t get_polynomial_size() const
std::array< std::vector< FF >, NUM_CLAIMS > claim_challenges
The proving key for multilinear batching sumcheck.
std::array< Commitment, NUM_CLAIMS > shifted_commitments
std::array< FF, NUM_CLAIMS > shifted_evaluations
std::array< FF, NUM_CLAIMS > non_shifted_evaluations
ProverPolynomials polynomials
std::array< Polynomial, NUM_CLAIMS > preshifted_polynomials
std::array< Commitment, NUM_CLAIMS > non_shifted_commitments
Native flavor for multilinear batching sumcheck with NumClaims polynomials.
std::tuple< bb::MultilinearBatchingRelation< FF_, NUM_CLAIMS > > Relations_
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH
Relations_< FF > Relations
static constexpr size_t NUM_ALL_ENTITIES
static constexpr size_t TRACE_OFFSET
static void extend_eq_polynomials_for_virtual_round(PartiallyEvaluatedPolynomials &partially_evaluated_polynomials, const std::vector< FF > &multivariate_challenge, const size_t round_idx)
Given the eq polynomial at (u_1, .., u_N, 0, .., 0) compute its value at (u_1, ..,...
static constexpr bool USE_PADDING
bb::Polynomial< FF > Polynomial
Curve::Element GroupElement
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr size_t NUM_SUBRELATIONS
static constexpr bool HasZK
static constexpr size_t NUM_RELATIONS
static constexpr bool USE_SHORT_MONOMIALS
static constexpr size_t VIRTUAL_LOG_N
static constexpr size_t NUM_CLAIMS
Curve::AffineElement Commitment
typename NativeFlavor::template AllEntities< FF > Base
static constexpr size_t NUM_ALL_ENTITIES
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr size_t NUM_SUBRELATIONS
static constexpr bool HasZK
static constexpr size_t VIRTUAL_LOG_N
typename NativeFlavor::template Relations_< FF > Relations
typename Curve::Element Commitment
static constexpr bool USE_PADDING
static constexpr size_t NUM_CLAIMS
static constexpr size_t NUM_RELATIONS
typename Curve::ScalarField FF
A container for storing the partially evaluated multivariates produced by sumcheck.
A template class for a reference array. Behaves as if std::array<T&, N> was possible.
Representation of the Grumpkin Verifier Commitment Key inside a bn254 circuit.
typename Group::element Element
typename Group::affine_element AffineElement
Base class templates shared across Honk flavors.
Entry point for Barretenberg command-line interface.
BaseTranscript< FrCodec, bb::crypto::Poseidon2< bb::crypto::Poseidon2Bn254ScalarFieldParams > > NativeTranscript
MegaCircuitBuilder_< field< Bn254FrParams > > MegaCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::string to_string(bb::avm2::ValueTag tag)
Prover's claim for multilinear batching - contains polynomials and their evaluation claims.
static FF eval(std::span< const FF > r_in, std::span< const FF > u)
field_t< CircuitBuilder > ScalarField