18 PrivateFunctionExecutionMockCircuitProducer& circuit_producer,
const PrecomputedVks& precomputed_vks)
20 const size_t NUM_CIRCUITS = circuit_producer.total_num_circuits;
24 precomputed_vks.
per_circuit_vks.size(), NUM_CIRCUITS,
"There should be a precomputed VK for each circuit");
26 for (
size_t circuit_idx = 0; circuit_idx < NUM_CIRCUITS; ++circuit_idx) {
30 circuit = circuit_producer.create_next_circuit(ivc);
34 return { ivc.prove(), ivc.get_hiding_kernel_vk_and_hash() };
43 size_t num_app_circuits,
const PrecomputedVks& precomputed_vks,
const bool large_first_app =
true)
45 PrivateFunctionExecutionMockCircuitProducer circuit_producer(num_app_circuits, large_first_app);
50 std::vector<bool> leading_is_kernel_flags,
52 const bool large_first_app =
false)
54 PrivateFunctionExecutionMockCircuitProducer circuit_producer(
std::move(leading_is_kernel_flags), large_first_app);
60 const size_t NUM_CIRCUITS = circuit_producer.total_num_circuits;
65 for (
size_t j = 0; j < NUM_CIRCUITS; ++j) {
66 auto circuit = circuit_producer.create_next_circuit(ivc);
69 using FlavorT = flavor_for<K>;
70 using VK = typename FlavorT::VerificationKey;
71 MegaCircuitBuilder_<bb::fr> builder{ circuit };
77 out.per_circuit_vks.push_back(
vk);
78 ivc.accumulate(circuit,
vk);
86 PrivateFunctionExecutionMockCircuitProducer circuit_producer(num_app_circuits, large_first_app);
92 PrivateFunctionExecutionMockCircuitProducer circuit_producer(
std::move(leading_is_kernel_flags), large_first_app);
#define BB_ASSERT_EQ(actual, expected,...)
#define BB_BENCH_NAME(name)
The IVC scheme used by the aztec client for private function execution.
std::vector< CircuitKind > circuit_kinds
bb::CircuitVerificationKey CircuitVerificationKey
Contains all the information required by a Honk prover to create a proof, constructed from a finalize...
Entry point for Barretenberg command-line interface.
std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > accumulate_and_prove_with_precomputed_vks(PrivateFunctionExecutionMockCircuitProducer &circuit_producer, const PrecomputedVks &precomputed_vks)
PrecomputedVks precompute_vks(PrivateFunctionExecutionMockCircuitProducer &circuit_producer)
constexpr decltype(auto) dispatch_kind(CircuitKind kind, F &&f)
VerifierCommitmentKey< Curve > vk
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
bb::VectorAffineElementPushSpan< BaseParams > out
Bundle of precomputed VKs returned by precompute_vks.
std::vector< Chonk::CircuitVerificationKey > per_circuit_vks