16 static_assert(NUM_ > 1,
"Must have at least two decider proving keys.");
19 static constexpr size_t NUM = NUM_;
30 std::shared_ptr<DeciderPK>
const&
operator[](
size_t idx)
const {
return _data[idx]; }
31 typename ArrayType::const_iterator
begin()
const {
return _data.begin(); };
32 typename ArrayType::iterator
begin() {
return _data.begin(); };
33 typename ArrayType::const_iterator
end()
const {
return _data.end(); };
34 typename ArrayType::iterator
end() {
return _data.end(); };
39 for (
size_t idx = 0; idx <
data.size(); idx++) {
69 for (
size_t dpk_idx = 0;
auto& get_all : prover_polynomials_views) {
71 for (
auto [result, poly_ptr] :
zip_view(results, get_all)) {
72 result.evaluations[dpk_idx] = poly_ptr[row_idx];
82 typename Flavor::template ProverUnivariates<2> results;
85 for (
size_t dpk_idx = 0;
const auto& view : prover_polynomials_views) {
87 for (
auto [result, poly_ptr] :
zip_view(results.get_all(), view)) {
88 result.evaluations[dpk_idx] = poly_ptr[row_idx];
100 std::array<
decltype(
_data[0]->polynomials.get_all()),
NUM> views;
101 for (
size_t i = 0; i <
NUM; i++) {
102 views[i] =
_data[i]->polynomials.get_all();
109 static_assert(NUM_ > 1,
"Must have at least two decider verification keys.");
111 using FF =
typename Flavor_::FF;
118 static constexpr size_t NUM = NUM_;
122 typename ArrayType::iterator
begin() {
return _data.begin(); };
123 typename ArrayType::iterator
end() {
return _data.end(); };
129 for (
size_t idx = 0; idx <
data.size(); idx++) {
148 const size_t num_commitments_to_fold =
_data[0]->vk->get_all().size();
150 for (
size_t idx = 0;
auto& commitment_at_idx : result) {
152 elt =
key->vk->get_all()[idx];
165 const size_t num_commitments_to_fold =
_data[0]->witness_commitments.get_all().size();
167 for (
size_t idx = 0;
auto& commitment_at_idx : result) {
169 elt =
key->witness_commitments.get_all()[idx];
182 const size_t num_alphas_to_fold =
_data[0]->alphas.size();
184 for (
size_t idx = 0;
auto& alpha_at_idx : result) {
186 elt =
key->alphas[idx];
199 const size_t num_params_to_fold =
_data[0]->relation_parameters.get_to_fold().size();
201 for (
size_t idx = 0;
auto& params_at_idx : result) {
203 elt =
key->relation_parameters.get_to_fold()[idx];
#define BB_ASSERT_EQ(actual, expected,...)
A DeciderProvingKey is normally constructed from a finalized circuit and it contains all the informat...
The DeciderVerificationKey encapsulates all the necessary information for a Mega Honk Verifier to ver...
The verification key is responsible for storing the commitments to the precomputed (non-witness) poly...
static constexpr size_t MAX_TOTAL_RELATION_LENGTH
static constexpr size_t NUM_SUBRELATIONS
const std::vector< FF > data
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr size_t BATCHED_EXTENDED_LENGTH
ArrayType::iterator begin()
Flavor::template ProverUnivariates< 2 > row_to_short_univariates(size_t row_idx) const
static constexpr size_t EXTENDED_LENGTH
auto get_polynomials_views() const
std::shared_ptr< DeciderPK > const & operator[](size_t idx) const
auto row_to_univariates(size_t row_idx) const
static constexpr size_t NUM_SUBRELATIONS
DeciderProvingKeys_()=default
ArrayType::const_iterator end() const
static constexpr size_t NUM
ArrayType::const_iterator begin() const
ArrayType::iterator end()
std::array< std::shared_ptr< DeciderPK >, NUM_ > ArrayType
DeciderProvingKeys_(std::vector< std::shared_ptr< DeciderPK > > data)
DeciderVerificationKeys_(const std::vector< std::shared_ptr< DeciderVK > > &data)
std::vector< std::vector< Commitment > > get_witness_commitments() const
Get the witness commitments grouped by commitment index.
DeciderVerificationKeys_()=default
std::vector< std::vector< Commitment > > get_precomputed_commitments() const
static constexpr size_t BATCHED_EXTENDED_LENGTH
std::array< std::shared_ptr< DeciderVK >, NUM_ > ArrayType
ArrayType::iterator end()
std::vector< std::vector< FF > > get_alphas() const
Get the alphas grouped by commitment index.
std::vector< std::vector< FF > > get_relation_parameters() const
Get the relation parameters grouped by commitment index.
typename Flavor::VerificationKey VerificationKey
typename Flavor_::Commitment Commitment
static constexpr size_t NUM
std::shared_ptr< DeciderVK > const & operator[](size_t idx) const
ArrayType::iterator begin()