3#include "barretenberg/commitment_schemes/commitment_key.hpp"
4#include "barretenberg/flavor/goblin_ultra.hpp"
5#include "barretenberg/proof_system/circuit_builder/goblin_ultra_circuit_builder.hpp"
6#include "barretenberg/srs/global_crs.hpp"
14 using Point = Curve::AffineElement;
19 static constexpr size_t NUM_OP_QUEUE_COLUMNS = Flavor::NUM_WIRES;
24 for (
size_t i = 0; i < 10; ++i) {
25 FF a = FF::random_element();
26 FF b = FF::random_element();
27 FF c = FF::random_element();
41 auto point = Point::one() * FF::random_element();
42 auto scalar = FF::random_element();
60 std::shared_ptr<proof_system::ECCOpQueue>& op_queue)
65 construct_goblin_ecc_op_circuit(builder);
67 op_queue->set_size_data();
70 auto crs_factory_ = barretenberg::srs::get_crs_factory();
71 auto commitment_key =
CommitmentKey(op_queue->get_current_size(), crs_factory_);
72 std::array<Point, Flavor::NUM_WIRES> op_queue_commitments;
74 for (
auto& entry : op_queue->get_aggregate_transcript()) {
75 op_queue_commitments[idx++] = commitment_key.commit(entry);
78 op_queue->set_commitment_data(op_queue_commitments);
92 for (
size_t i = 0; i < 3; ++i) {
93 auto point = Point::random_element();
94 auto scalar = FF::random_element();
101 construct_arithmetic_circuit(builder);
Definition: mock_circuits.hpp:9
static void perform_op_queue_interactions_for_mock_first_circuit(std::shared_ptr< proof_system::ECCOpQueue > &op_queue)
Mock the interactions of a simple curcuit with the op_queue.
Definition: mock_circuits.hpp:59
static void construct_simple_initial_circuit(GoblinUltraBuilder &builder)
Generate a simple test circuit with some ECC op gates and conventional arithmetic gates.
Definition: mock_circuits.hpp:86
virtual uint32_t add_variable(const FF &in)
Definition: circuit_builder_base.hpp:163
virtual uint32_t add_public_variable(const FF &in)
Definition: circuit_builder_base.hpp:278
Used to construct execution trace representations of elliptic curve operations.
Definition: ecc_op_queue.hpp:18
Definition: goblin_ultra_circuit_builder.hpp:16
ecc_op_tuple queue_ecc_eq()
Add point equality gates based on the current value of the accumulator internal to the op queue and a...
Definition: goblin_ultra_circuit_builder.cpp:162
ecc_op_tuple queue_ecc_mul_accum(const g1::affine_element &point, const FF &scalar)
Add gates for point mul-then-accumulate and add the raw operation data to the op queue.
Definition: goblin_ultra_circuit_builder.cpp:143
ecc_op_tuple queue_ecc_add_accum(const g1::affine_element &point)
Add gates for simple point addition (no mul) and add the raw operation data to the op queue.
Definition: goblin_ultra_circuit_builder.cpp:122
void create_big_add_gate(const add_quad_< FF > &in, const bool use_next_gate_w_4=false)
Create a big addition gate, where in.a * in.a_scaling + in.b * in.b_scaling + in.c * in....
Definition: ultra_circuit_builder.cpp:157
Definition: goblin_ultra.hpp:24
CommitmentKey object over a pairing group 𝔾₁.
Definition: commitment_key.hpp:35
constexpr_utils defines some helper methods that perform some stl-equivalent operations but in a cons...
Definition: constexpr_utils.hpp:16