Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
witness_computation.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5// =====================
6
7#pragma once
8
12namespace bb {
19template <IsUltraOrMegaHonk Flavor> class WitnessComputation {
20 using FF = typename Flavor::FF;
21
22 public:
24 const std::vector<uint32_t>& memory_read_records,
25 const std::vector<uint32_t>& memory_write_records,
26 const FF& eta,
27 const FF& eta_two,
28 const FF& eta_three);
29
31 const size_t circuit_size,
32 RelationParameters<FF>& relation_parameters);
33
35 std::vector<FF>& public_inputs,
36 const size_t pub_inputs_offset,
37 ActiveRegionData& active_region_data,
38 RelationParameters<FF>& relation_parameters,
39 size_t size_override = 0);
40
41 static void complete_proving_key_for_test(const std::shared_ptr<DeciderProvingKey_<Flavor>>& decider_pk);
42};
43
44} // namespace bb
A DeciderProvingKey is normally constructed from a finalized circuit and it contains all the informat...
A container for the prover polynomials handles.
Curve::ScalarField FF
Methods for managing the compututation of derived witness polynomials such as the permutation grand p...
static void complete_proving_key_for_test(const std::shared_ptr< DeciderProvingKey_< Flavor > > &decider_pk)
TEST only method for completing computation of the prover polynomials using random challenges.
static void compute_logderivative_inverses(Flavor::ProverPolynomials &polynomials, const size_t circuit_size, RelationParameters< FF > &relation_parameters)
Compute the inverse polynomials used in the log derivative lookup relations.
static void add_ram_rom_memory_records_to_wire_4(typename Flavor::ProverPolynomials &polynomials, const std::vector< uint32_t > &memory_read_records, const std::vector< uint32_t > &memory_write_records, const FF &eta, const FF &eta_two, const FF &eta_three)
Add RAM/ROM memory records to the fourth wire polynomial.
static void compute_grand_product_polynomial(Flavor::ProverPolynomials &polynomials, std::vector< FF > &public_inputs, const size_t pub_inputs_offset, ActiveRegionData &active_region_data, RelationParameters< FF > &relation_parameters, size_t size_override=0)
Computes public_input_delta and the permutation grand product polynomial.
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Entry point for Barretenberg command-line interface.
Container for parameters used by the grand product (permutation, lookup) Honk relations.