barretenberg
Loading...
Searching...
No Matches
logic_constraint.hpp
1#pragma once
2#include "barretenberg/dsl/types.hpp"
3#include "barretenberg/serialize/msgpack.hpp"
4#include <cstdint>
5
6namespace acir_format {
7
9 uint32_t a;
10 uint32_t b;
11 uint32_t result;
12 uint32_t num_bits;
13 uint32_t is_xor_gate;
14
15 friend bool operator==(LogicConstraint const& lhs, LogicConstraint const& rhs) = default;
16
17 // for serialization, update with any new fields
18 MSGPACK_FIELDS(a, b, result, num_bits, is_xor_gate);
19};
20
21template <typename Builder>
22void create_logic_gate(Builder& builder, uint32_t a, uint32_t b, uint32_t result, size_t num_bits, bool is_xor_gate);
23
24void xor_gate(Builder& builder, uint32_t a, uint32_t b, uint32_t result);
25
26void and_gate(Builder& builder, uint32_t a, uint32_t b, uint32_t result);
27} // namespace acir_format
Definition: ultra_circuit_builder.hpp:31
Definition: logic_constraint.hpp:8