Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ec_operations.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: Completed, auditors: [Federico], date: 2025-11-03 }
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 <cstdint>
11
12
namespace
acir_format
{
13
32
struct
EcAdd
{
33
WitnessOrConstant<bb::fr>
input1_x
;
34
WitnessOrConstant<bb::fr>
input1_y
;
35
WitnessOrConstant<bb::fr>
input1_infinite
;
36
WitnessOrConstant<bb::fr>
input2_x
;
37
WitnessOrConstant<bb::fr>
input2_y
;
38
WitnessOrConstant<bb::fr>
input2_infinite
;
39
// Predicate indicating whether the constraint should be disabled:
40
// - true: the constraint is valid
41
// - false: the constraint is disabled, i.e it must not fail and can return whatever.
42
WitnessOrConstant<bb::fr>
predicate
;
43
uint32_t
result_x
;
44
uint32_t
result_y
;
45
uint32_t
result_infinite
;
46
47
// for serialization, update with any new fields
48
MSGPACK_FIELDS
(
input1_x
,
49
input1_y
,
50
input1_infinite
,
51
input2_x
,
52
input2_y
,
53
input2_infinite
,
54
predicate
,
55
result_x
,
56
result_y
,
57
result_infinite
);
58
friend
bool
operator==
(
EcAdd
const
& lhs,
EcAdd
const
& rhs) =
default
;
59
};
60
61
template
<
typename
Builder>
void
create_ec_add_constraint
(
Builder
&
builder
,
const
EcAdd
& input);
62
}
// namespace acir_format
bb::ECCVMCircuitBuilder
Definition
eccvm_circuit_builder.hpp:24
builder
AluTraceBuilder builder
Definition
alu.test.cpp:124
msgpack.hpp
acir_format
Definition
acir_format.cpp:31
acir_format::create_ec_add_constraint
void create_ec_add_constraint(Builder &builder, const EcAdd &input)
Create constraints for addition of two points on the Grumpkin curve.
Definition
ec_operations.cpp:38
acir_format::EcAdd
Constraints for addition of two points on the Grumpkin curve.
Definition
ec_operations.hpp:32
acir_format::EcAdd::result_infinite
uint32_t result_infinite
Definition
ec_operations.hpp:45
acir_format::EcAdd::operator==
friend bool operator==(EcAdd const &lhs, EcAdd const &rhs)=default
acir_format::EcAdd::input1_y
WitnessOrConstant< bb::fr > input1_y
Definition
ec_operations.hpp:34
acir_format::EcAdd::input1_infinite
WitnessOrConstant< bb::fr > input1_infinite
Definition
ec_operations.hpp:35
acir_format::EcAdd::input2_y
WitnessOrConstant< bb::fr > input2_y
Definition
ec_operations.hpp:37
acir_format::EcAdd::input2_infinite
WitnessOrConstant< bb::fr > input2_infinite
Definition
ec_operations.hpp:38
acir_format::EcAdd::input1_x
WitnessOrConstant< bb::fr > input1_x
Definition
ec_operations.hpp:33
acir_format::EcAdd::result_y
uint32_t result_y
Definition
ec_operations.hpp:44
acir_format::EcAdd::input2_x
WitnessOrConstant< bb::fr > input2_x
Definition
ec_operations.hpp:36
acir_format::EcAdd::predicate
WitnessOrConstant< bb::fr > predicate
Definition
ec_operations.hpp:42
acir_format::EcAdd::result_x
uint32_t result_x
Definition
ec_operations.hpp:43
acir_format::EcAdd::MSGPACK_FIELDS
MSGPACK_FIELDS(input1_x, input1_y, input1_infinite, input2_x, input2_y, input2_infinite, predicate, result_x, result_y, result_infinite)
acir_format::WitnessOrConstant
Definition
witness_constant.hpp:13
witness_constant.hpp
src
barretenberg
dsl
acir_format
ec_operations.hpp
Generated by
1.9.8