305 static constexpr std::string_view
NAME_STRING =
"TranslatorCircuitBuilder";
401 auto& current_wire =
wires[wire_index];
415 const Fq& previous_accumulator,
virtual uint32_t add_variable(const FF &in)
CircuitBuilderBase & operator=(const CircuitBuilderBase &other)=default
TranslatorCircuitBuilder creates a circuit that evaluates the correctness of the evaluation of EccOpQ...
size_t get_num_constant_gates() const override
static constexpr std::array< Fr, 5 > NEGATIVE_MODULUS_LIMBS
static constexpr size_t NUM_Z_LIMBS
static AccumulationInput generate_witness_values(const UltraOp &ultra_op, const Fq &previous_accumulator, const Fq &batching_challenge_v, const Fq &evaluation_input_x)
Given the transcript values from the EccOpQueue, the values of the previous accumulator,...
TranslatorCircuitBuilder(TranslatorCircuitBuilder &&other) noexcept
static constexpr size_t NUM_QUOTIENT_BITS
static constexpr auto SHIFT_1
static void assert_well_formed_ultra_op(const UltraOp &ultra_op)
static constexpr size_t NUM_SELECTORS
void create_accumulation_gate(const AccumulationInput &acc_step)
Create a single accumulation gate.
static std::array< Fr, NUM_BINARY_LIMBS > split_fq_into_limbs(const Fq &base)
A small function to transform a native element Fq into its bigfield representation in Fr scalars.
static constexpr size_t MICRO_LIMB_BITS
static constexpr size_t NUM_MICRO_LIMBS
void feed_ecc_op_queue_into_circuit(const std::shared_ptr< ECCOpQueue > ecc_op_queue)
Generate all the gates required to prove the correctness of batched evalution of polynomials represen...
static constexpr size_t RELATION_WIDE_LIMB_BITS
static constexpr size_t NUM_WIRES
static constexpr uint512_t BINARY_BASIS_MODULUS
static constexpr size_t NUM_LAST_QUOTIENT_LIMB_BITS
static constexpr size_t DEFAULT_TRANSLATOR_VM_LENGTH
static constexpr uint512_t MODULUS_U512
~TranslatorCircuitBuilder() override=default
static constexpr std::string_view NAME_STRING
static constexpr size_t NUM_Z_BITS
static constexpr uint256_t MAX_RELATION_WIDE_LIMB_SIZE
static constexpr uint512_t NEGATIVE_PRIME_MODULUS
TranslatorCircuitBuilder & operator=(TranslatorCircuitBuilder &&other) noexcept
TranslatorCircuitBuilder(Fq batching_challenge_v_, Fq evaluation_input_x_)
Construct a new Translator Circuit Builder object.
static constexpr auto MAX_HIGH_WIDE_LIMB_SIZE
std::array< SlabVector< uint32_t >, NUM_WIRES > wires
void populate_wires_from_ultra_op(const UltraOp &ultra_op)
void create_add_gate(const add_triple_< Fr > &) override
void create_mul_gate(const mul_triple_< Fr > &) override
TranslatorCircuitBuilder(Fq batching_challenge_v_, Fq evaluation_input_x_, std::shared_ptr< ECCOpQueue > op_queue)
Construct a new Translator Circuit Builder object and feed op_queue inside.
static void assert_well_formed_accumulation_input(const AccumulationInput &acc_step)
Ensures the accumulation input is well-formed and can be used to create a gate.
static constexpr size_t NUM_LIMB_BITS
static constexpr auto MICRO_SHIFT
static constexpr auto SHIFT_3
static constexpr size_t NUM_BINARY_LIMBS
TranslatorCircuitBuilder & operator=(const TranslatorCircuitBuilder &other)=delete
static constexpr auto SHIFT_2_INVERSE
static constexpr size_t NUM_RELATION_WIDE_LIMBS
TranslatorCircuitBuilder(const TranslatorCircuitBuilder &other)=delete
void create_poly_gate(const poly_triple_< Fr > &) override
static constexpr auto MAX_LOW_WIDE_LIMB_SIZE
static constexpr size_t RESULT_ROW
WireIds
There are so many wires that naming them has no sense, it is easier to access them with enums.
@ ACCUMULATORS_BINARY_LIMBS_3
@ P_Y_LOW_LIMBS_RANGE_CONSTRAINT_0
@ Z_LOW_LIMBS_RANGE_CONSTRAINT_1
@ P_X_HIGH_LIMBS_RANGE_CONSTRAINT_3
@ Z_HIGH_LIMBS_RANGE_CONSTRAINT_2
@ Z_LOW_LIMBS_RANGE_CONSTRAINT_TAIL
@ P_X_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL
@ Z_LOW_LIMBS_RANGE_CONSTRAINT_2
@ ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_1
@ Z_HIGH_LIMBS_RANGE_CONSTRAINT_3
@ P_X_HIGH_LIMBS_RANGE_CONSTRAINT_2
@ P_X_HIGH_LIMBS_RANGE_CONSTRAINT_0
@ P_Y_LOW_LIMBS_RANGE_CONSTRAINT_TAIL
@ Z_HIGH_LIMBS_RANGE_CONSTRAINT_0
@ ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_1
@ Z_LOW_LIMBS_RANGE_CONSTRAINT_3
@ P_X_LOW_LIMBS_RANGE_CONSTRAINT_0
@ QUOTIENT_LOW_LIMBS_RANGE_CONSTRAIN_0
@ ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_0
@ P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_4
@ ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_TAIL
@ P_X_LOW_LIMBS_RANGE_CONSTRAINT_3
@ RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_1
@ Z_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL
@ QUOTIENT_LOW_LIMBS_RANGE_CONSTRAIN_3
@ ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_4
@ ACCUMULATORS_BINARY_LIMBS_0
@ QUOTIENT_HIGH_BINARY_LIMBS
@ ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_2
@ Z_HIGH_LIMBS_RANGE_CONSTRAINT_1
@ P_Y_LOW_LIMBS_RANGE_CONSTRAINT_4
@ P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL
@ QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAIN_4
@ ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_4
@ Z_LOW_LIMBS_RANGE_CONSTRAINT_4
@ P_X_LOW_LIMBS_RANGE_CONSTRAINT_2
@ Z_HIGH_LIMBS_RANGE_CONSTRAINT_4
@ QUOTIENT_LOW_LIMBS_RANGE_CONSTRAIN_2
@ ACCUMULATORS_BINARY_LIMBS_1
@ ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_TAIL
@ P_X_LOW_LIMBS_RANGE_CONSTRAINT_4
@ QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAIN_TAIL
@ P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_3
@ Z_LOW_LIMBS_RANGE_CONSTRAINT_0
@ P_X_HIGH_LIMBS_RANGE_CONSTRAINT_1
@ P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_0
@ ACCUMULATORS_BINARY_LIMBS_2
@ P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_1
@ P_X_LOW_LIMBS_RANGE_CONSTRAINT_1
@ P_Y_LOW_LIMBS_RANGE_CONSTRAINT_2
@ P_Y_HIGH_LIMBS_RANGE_CONSTRAINT_2
@ QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAIN_2
@ RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_3
@ QUOTIENT_LOW_LIMBS_RANGE_CONSTRAIN_1
@ QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAIN_3
@ QUOTIENT_LOW_BINARY_LIMBS
@ QUOTIENT_LOW_LIMBS_RANGE_CONSTRAIN_TAIL
@ P_X_LOW_LIMBS_RANGE_CONSTRAINT_TAIL
@ QUOTIENT_LOW_LIMBS_RANGE_CONSTRAIN_4
@ P_Y_LOW_LIMBS_RANGE_CONSTRAINT_3
@ RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_2
@ QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAIN_1
@ ACCUMULATOR_HIGH_LIMBS_RANGE_CONSTRAINT_3
@ ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_2
@ ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_0
@ RELATION_WIDE_LIMBS_RANGE_CONSTRAINT_0
@ P_Y_LOW_LIMBS_RANGE_CONSTRAINT_1
@ QUOTIENT_HIGH_LIMBS_RANGE_CONSTRAIN_0
@ ACCUMULATOR_LOW_LIMBS_RANGE_CONSTRAINT_3
@ P_X_HIGH_LIMBS_RANGE_CONSTRAINT_4
static constexpr auto MAX_MICRO_LIMB_SIZE
void create_bool_gate(const uint32_t) override
TranslatorCircuitBuilder()=default
void insert_pair_into_wire(WireIds wire_index, Fr first, Fr second)
static constexpr auto SHIFT_2
static constexpr size_t NUM_LAST_LIMB_BITS
constexpr uint256_t slice(uint64_t start, uint64_t end) const
constexpr uint64_t get_msb() const
constexpr uintx slice(const uint64_t start, const uint64_t end) const
uintx< uint256_t > uint512_t
Entry point for Barretenberg command-line interface.
field< Bn254FqParams > fq
field< Bn254FrParams > fr
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
#define PROFILE_THIS_NAME(name)
static constexpr uint256_t modulus
constexpr field invert() const noexcept