Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
arithmetic_constraints.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Complete, auditors: [Federico], commit: 2094fd1467dd9a94803b2c5007cf60ac357aa7d2 }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6
7#pragma once
14#include <vector>
15
16namespace acir_format {
17
18using namespace bb;
19using namespace bb::stdlib;
20
25
37class BigQuadConstraint : public std::vector<QuadConstraint> {
38 public:
39 using Base = std::vector<QuadConstraint>;
40 using Base::Base; // Inherit all constructors from std::vector
41
42 // Explicitly define vector copy constructor (not inherited by default)
43 BigQuadConstraint(const std::vector<QuadConstraint>& fields)
44 : Base(fields)
45 {}
46};
47
55template <typename Builder> void set_zero_idx(const Builder& builder, QuadConstraint& mul_quad);
56
61template <typename Builder>
63 const QuadConstraint& mul_quad,
64 const typename Builder::FF next_wire_w4 = Builder::FF::zero());
65
74template <typename Builder> void create_quad_constraint(Builder& builder, QuadConstraint& mul_quad);
75
76// clang-format off
107// clang-format on
108template <typename Builder> void create_big_quad_constraint(Builder& builder, BigQuadConstraint& big_constraint);
109
110} // namespace acir_format
Constraint representing a polynomial of degree 1 or 2 that does not fit into a standard UltraHonk ari...
std::vector< QuadConstraint > Base
BigQuadConstraint(const std::vector< QuadConstraint > &fields)
AluTraceBuilder builder
Definition alu.test.cpp:124
void create_big_quad_constraint(Builder &builder, BigQuadConstraint &big_constraint)
void set_zero_idx(const Builder &builder, QuadConstraint &mul_quad)
Replace indices which are set to IS_CONSTANT with the zero index of the builder.
void check_mul_add_gate(Builder &builder, const QuadConstraint &mul_quad, const typename Builder::FF next_wire_w4)
Check if a mul add gate is valid.
void create_quad_constraint(Builder &builder, QuadConstraint &mul_quad)
Create a simple width-4 Ultra arithmetic gate constraint representing the equation.
mul_quad_< bb::fr > QuadConstraint
Standard UltraHonk arithmetic constraint of width 4.
Entry point for Barretenberg command-line interface.
Definition api.hpp:5