2#include "../commitment_scheme/commitment_scheme.hpp"
3#include "../types/program_settings.hpp"
4#include "../types/proof.hpp"
5#include "../widgets/random_widgets/random_widget.hpp"
6#include "../widgets/transition_widgets/transition_widget.hpp"
7#include "barretenberg/plonk/proof_system/proving_key/proving_key.hpp"
8#include "barretenberg/plonk/work_queue/work_queue.hpp"
15 ProverBase(std::shared_ptr<proving_key> input_key =
nullptr,
27 BBERG_PROFILE
void execute_fifth_round();
28 BBERG_PROFILE
void execute_sixth_round();
30 void add_polynomial_evaluations_to_transcript();
31 void compute_batch_opening_polynomials();
33 void compute_quotient_commitments();
34 void init_quotient_polynomials();
35 void compute_opening_elements();
36 void add_plookup_memory_records_to_w_4();
38 void compute_quotient_evaluation();
39 void add_blinding_to_quotient_polynomial_parts();
40 void compute_lagrange_1_fft();
44 size_t get_circuit_size()
const {
return circuit_size; }
46 void flush_queued_work_items() { queue.flush_queue(); }
50 std::shared_ptr<barretenberg::fr[]> get_scalar_multiplication_data(
const size_t work_item_number)
const
52 return queue.get_scalar_multiplication_data(work_item_number);
55 size_t get_scalar_multiplication_size(
const size_t work_item_number)
const
57 return queue.get_scalar_multiplication_size(work_item_number);
60 std::shared_ptr<fr[]> get_ifft_data(
const size_t work_item_number)
const
62 return queue.get_ifft_data(work_item_number);
67 return queue.get_fft_data(work_item_number);
72 queue.put_scalar_multiplication_data(result, work_item_number);
75 void put_fft_data(std::shared_ptr<
fr[]> result,
const size_t work_item_number)
77 queue.put_fft_data(result, work_item_number);
80 void put_ifft_data(std::shared_ptr<
fr[]> result,
const size_t work_item_number)
82 queue.put_ifft_data(result, work_item_number);
89 std::vector<std::unique_ptr<ProverRandomWidget>> random_widgets;
90 std::vector<std::unique_ptr<widget::TransitionWidgetBase<barretenberg::fr>>> transition_widgets;
93 std::shared_ptr<proving_key> key;
94 std::unique_ptr<CommitmentScheme> commitment_scheme;
Definition: affine_element.hpp:11
Definition: prover.hpp:12
BBERG_PROFILE void execute_preamble_round()
Definition: prover.cpp:157
void compute_wire_commitments()
Definition: prover.cpp:73
BBERG_PROFILE void execute_second_round()
Definition: prover.cpp:280
BBERG_PROFILE void execute_third_round()
Definition: prover.cpp:333
BBERG_PROFILE void execute_fourth_round()
Computes the quotient polynomial, then commits to its degree-n split parts.
Definition: prover.cpp:358
BBERG_PROFILE void execute_first_round()
Definition: prover.cpp:237
Definition: work_queue.hpp:11
Definition: manifest.hpp:11
Definition: transcript_wrappers.hpp:13
Definition: widget.bench.cpp:13
Definition: work_queue.hpp:16