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 namespace
bb
;
16
27
struct
LogicConstraint
{
28
WitnessOrConstant<fr>
a
;
29
WitnessOrConstant<fr>
b
;
30
uint32_t
result
;
31
uint32_t
num_bits
;
32
bool
is_xor_gate
;
33
34
friend
bool
operator==
(
LogicConstraint
const
& lhs,
LogicConstraint
const
& rhs) =
default
;
35
36
// for serialization, update with any new fields
37
MSGPACK_FIELDS
(
a
,
b
,
result
,
num_bits
,
is_xor_gate
);
38
};
39
40
template
<
typename
Builder>
41
void
create_logic_gate
(
Builder
&
builder
,
42
WitnessOrConstant<fr>
a
,
43
WitnessOrConstant<fr>
b
,
44
uint32_t result,
45
std::size_t
num_bits,
46
bool
is_xor_gate);
47
48
void
xor_gate
(
UltraCircuitBuilder
&
builder
,
WitnessOrConstant<fr>
a
,
WitnessOrConstant<fr>
b
, uint32_t result);
49
50
void
and_gate
(
UltraCircuitBuilder
&
builder
,
WitnessOrConstant<fr>
a
,
WitnessOrConstant<fr>
b
, uint32_t result);
51
}
// namespace acir_format
circuit_builders_fwd.hpp
bb::ECCVMCircuitBuilder
Definition
eccvm_circuit_builder.hpp:24
bb::UltraCircuitBuilder_
Definition
ultra_circuit_builder.hpp:41
builder
AluTraceBuilder builder
Definition
alu.test.cpp:124
a
FF a
Definition
field_gt.test.cpp:52
b
FF b
Definition
field_gt.test.cpp:53
msgpack.hpp
acir_format
Definition
acir_format.cpp:31
acir_format::xor_gate
void xor_gate(UltraCircuitBuilder &builder, WitnessOrConstant< fr > a, WitnessOrConstant< fr > b, uint32_t result)
acir_format::and_gate
void and_gate(UltraCircuitBuilder &builder, WitnessOrConstant< fr > a, WitnessOrConstant< 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
Entry point for Barretenberg command-line interface.
Definition
api.hpp:5
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
acir_format::LogicConstraint
Logic constraint representation in ACIR format.
Definition
logic_constraint.hpp:27
acir_format::LogicConstraint::operator==
friend bool operator==(LogicConstraint const &lhs, LogicConstraint const &rhs)=default
acir_format::LogicConstraint::a
WitnessOrConstant< fr > a
Definition
logic_constraint.hpp:28
acir_format::LogicConstraint::is_xor_gate
bool is_xor_gate
Definition
logic_constraint.hpp:32
acir_format::LogicConstraint::result
uint32_t result
Definition
logic_constraint.hpp:30
acir_format::LogicConstraint::MSGPACK_FIELDS
MSGPACK_FIELDS(a, b, result, num_bits, is_xor_gate)
acir_format::LogicConstraint::b
WitnessOrConstant< fr > b
Definition
logic_constraint.hpp:29
acir_format::LogicConstraint::num_bits
uint32_t num_bits
Definition
logic_constraint.hpp:31
acir_format::WitnessOrConstant
Definition
witness_constant.hpp:13
witness_constant.hpp
src
barretenberg
dsl
acir_format
logic_constraint.hpp
Generated by
1.9.8