Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
logic_constraint.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
#include "
barretenberg/dsl/acir_format/witness_constant.hpp
"
9
#include "
barretenberg/serialize/msgpack.hpp
"
10
#include "
barretenberg/stdlib/primitives/circuit_builders/circuit_builders_fwd.hpp
"
11
#include <cstdint>
12
13
namespace
acir_format
{
14
15
using
Builder
=
bb::UltraCircuitBuilder
;
16
17
struct
LogicConstraint
{
18
WitnessOrConstant<bb::fr>
a
;
19
WitnessOrConstant<bb::fr>
b
;
20
uint32_t
result
;
21
uint32_t
num_bits
;
22
uint32_t
is_xor_gate
;
23
24
friend
bool
operator==
(
LogicConstraint
const
& lhs,
LogicConstraint
const
& rhs) =
default
;
25
26
// for serialization, update with any new fields
27
MSGPACK_FIELDS
(
a
,
b
,
result
,
num_bits
,
is_xor_gate
);
28
};
29
30
template
<
typename
Builder>
31
void
create_logic_gate
(
Builder
&
builder
,
32
WitnessOrConstant<bb::fr>
a
,
33
WitnessOrConstant<bb::fr>
b
,
34
uint32_t result,
35
std::size_t
num_bits,
36
bool
is_xor_gate);
37
38
void
xor_gate
(
Builder
&
builder
,
WitnessOrConstant<bb::fr>
a
,
WitnessOrConstant<bb::fr>
b
, uint32_t result);
39
40
void
and_gate
(
Builder
&
builder
,
WitnessOrConstant<bb::fr>
a
,
WitnessOrConstant<bb::fr>
b
, uint32_t result);
41
}
// namespace acir_format
circuit_builders_fwd.hpp
bb::ECCVMCircuitBuilder
Definition
eccvm_circuit_builder.hpp:24
bb::UltraCircuitBuilder_
Definition
ultra_circuit_builder.hpp:42
builder
AluTraceBuilder builder
Definition
alu.test.cpp:123
a
FF a
Definition
field_gt.test.cpp:51
b
FF b
Definition
field_gt.test.cpp:52
msgpack.hpp
acir_format
Definition
acir_format.cpp:34
acir_format::and_gate
void and_gate(Builder &builder, WitnessOrConstant< bb::fr > a, WitnessOrConstant< bb::fr > b, uint32_t result)
acir_format::xor_gate
void xor_gate(Builder &builder, WitnessOrConstant< bb::fr > a, WitnessOrConstant< bb::fr > b, uint32_t result)
acir_format::create_logic_gate
void create_logic_gate(Builder &builder, const WitnessOrConstant< bb::fr > a, const WitnessOrConstant< bb::fr > b, const uint32_t result, const size_t num_bits, const bool is_xor_gate)
Definition
logic_constraint.cpp:13
bb::UltraCircuitBuilder
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
Definition
circuit_builders_fwd.hpp:24
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
acir_format::LogicConstraint
Definition
logic_constraint.hpp:17
acir_format::LogicConstraint::operator==
friend bool operator==(LogicConstraint const &lhs, LogicConstraint const &rhs)=default
acir_format::LogicConstraint::b
WitnessOrConstant< bb::fr > b
Definition
logic_constraint.hpp:19
acir_format::LogicConstraint::is_xor_gate
uint32_t is_xor_gate
Definition
logic_constraint.hpp:22
acir_format::LogicConstraint::result
uint32_t result
Definition
logic_constraint.hpp:20
acir_format::LogicConstraint::a
WitnessOrConstant< bb::fr > a
Definition
logic_constraint.hpp:18
acir_format::LogicConstraint::MSGPACK_FIELDS
MSGPACK_FIELDS(a, b, result, num_bits, is_xor_gate)
acir_format::LogicConstraint::num_bits
uint32_t num_bits
Definition
logic_constraint.hpp:21
acir_format::WitnessOrConstant
Definition
witness_constant.hpp:13
witness_constant.hpp
src
barretenberg
dsl
acir_format
logic_constraint.hpp
Generated by
1.9.8