34template <
typename Builder>
39 if (collect_gates_per_opcode) {
46 for (
auto [constraint, opcode_idx] :
55 for (
auto [big_constraint, opcode_idx] :
62 for (
const auto& [constraint, opcode_idx] :
65 builder, constraint.a, constraint.b, constraint.result, constraint.num_bits, constraint.is_xor_gate);
70 for (
const auto& [constraint, opcode_idx] :
72 builder.create_dyadic_range_constraint(
75 std::format(
"acir_format::build_constraints: range constraint at opcode index {} failed", opcode_idx));
80 for (
const auto& [constraint, opcode_idx] :
87 for (
const auto& [constraint, opcode_idx] :
94 for (
const auto& [constraint, opcode_idx] :
96 create_ecdsa_verify_constraints<stdlib::secp256k1<Builder>>(
builder, constraint);
101 for (
const auto& [constraint, opcode_idx] :
103 create_ecdsa_verify_constraints<stdlib::secp256r1<Builder>>(
builder, constraint);
108 for (
const auto& [constraint, opcode_idx] :
115 for (
const auto& [constraint, opcode_idx] :
122 for (
const auto& [constraint, opcode_idx] :
129 for (
const auto& [constraint, opcode_idx] :
136 for (
const auto& [constraint, opcode_idx] :
144 for (
const auto& [constraint, opcode_idx] :
151 for (
const auto& [constraint, opcode_indices] :
154 if (collect_gates_per_opcode) {
157 size_t avg_gates_per_opcode = gate_counter.compute_diff() / opcode_indices.size();
158 for (
size_t opcode_index : opcode_indices) {
172 { constraints.honk_recursion_constraints, constraints.original_opcode_indices.honk_recursion_constraints },
174 { constraints.avm_recursion_constraints, constraints.original_opcode_indices.avm_recursion_constraints },
176 { constraints.hn_recursion_constraints, constraints.original_opcode_indices.hn_recursion_constraints },
178 { constraints.chonk_recursion_constraints, constraints.original_opcode_indices.chonk_recursion_constraints });
195 const bool is_write_vk_mode = witness.empty();
197 if (!is_write_vk_mode) {
200 "ACIR witness size (" << witness.size() <<
") does not match max witness index + 1 ("
211 vinfo(
"Created circuit");
227 const bool is_write_vk_mode = witness.empty();
229 if (!is_write_vk_mode) {
232 "ACIR witness size (" << witness.size() <<
") does not match max witness index + 1 ("
246 vinfo(
"Created circuit");
#define BB_ASSERT_EQ(actual, expected,...)
Shared type definitions for the Barretenberg RPC API.
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept