24 static constexpr size_t NUM = NUM_;
27 std::shared_ptr<DeciderVK>
const&
operator[](
size_t idx)
const {
return _data[idx]; }
28 typename ArrayType::iterator
begin() {
return _data.begin(); };
29 typename ArrayType::iterator
end() {
return _data.end(); };
33 const std::shared_ptr<DeciderVK>& accumulator,
34 const std::vector<std::shared_ptr<VKAndHash>>& vk_and_hashs)
39 _data[0] = accumulator;
42 for (
auto& vk_and_hash : vk_and_hashs) {
49 const std::shared_ptr<DeciderVK>& accumulator,
50 const std::shared_ptr<DeciderVK>& incoming_instance)
53 _data[0] = accumulator;
54 _data[1] = incoming_instance;
71 const size_t num_commitments_to_fold =
_data[0]->vk_and_hash->vk->get_all().size();
73 std::vector<typename Flavor::Commitment>(
NUM));
74 for (
size_t idx = 0;
auto& commitment_at_idx : result) {
76 elt =
key->vk_and_hash->vk->get_all()[idx];
89 const size_t num_commitments_to_fold =
_data[0]->witness_commitments.get_all().size();
91 std::vector<typename Flavor::Commitment>(
NUM));
92 for (
size_t idx = 0;
auto& commitment_at_idx : result) {
94 elt =
key->witness_commitments.get_all()[idx];
107 const size_t num_alphas_to_fold =
_data[0]->alphas.size();
109 for (
size_t idx = 0;
auto& alpha_at_idx : result) {
111 elt =
key->alphas[idx];
124 const size_t num_params_to_fold =
_data[0]->relation_parameters.get_to_fold().size();
126 for (
size_t idx = 0;
auto& params_at_idx : result) {
128 elt =
key->relation_parameters.get_to_fold()[idx];
#define BB_ASSERT_EQ(actual, expected,...)
The verification key is responsible for storing the commitments to the precomputed (non-witness) poly...
static constexpr size_t MAX_TOTAL_RELATION_LENGTH
MegaCircuitBuilder CircuitBuilder
The stdlib counterpart of DeciderVerificationKey, used in recursive folding verification.
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
ArrayType::iterator end()
std::vector< std::vector< typename Flavor::FF > > get_alphas() const
Get the alphas grouped by commitment index.
RecursiveDeciderVerificationKeys_(Builder *builder, const std::shared_ptr< DeciderVK > &accumulator, const std::shared_ptr< DeciderVK > &incoming_instance)
typename Flavor::VerificationKey VerificationKey
typename Flavor::VKAndHash VKAndHash
std::vector< std::vector< typename Flavor::Commitment > > get_witness_commitments() const
Get the witness commitments grouped by commitment index.
std::array< std::shared_ptr< DeciderVK >, NUM_ > ArrayType
static constexpr size_t BATCHED_EXTENDED_LENGTH
std::vector< std::vector< typename Flavor::Commitment > > get_precomputed_commitments() const
std::vector< std::vector< typename Flavor::FF > > get_relation_parameters() const
Get the relation parameters grouped by commitment index.
typename Flavor::CircuitBuilder Builder
static constexpr size_t NUM
std::shared_ptr< DeciderVK > const & operator[](size_t idx) const
ArrayType::iterator begin()
RecursiveDeciderVerificationKeys_(Builder *builder, const std::shared_ptr< DeciderVK > &accumulator, const std::vector< std::shared_ptr< VKAndHash > > &vk_and_hashs)