Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
multi_scalar_mul.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/serialize/msgpack.hpp
"
9
#include "
barretenberg/stdlib/primitives/field/field.hpp
"
10
#include "
serde/index.hpp
"
11
#include "
witness_constant.hpp
"
12
#include <cstdint>
13
#include <vector>
14
15
namespace
acir_format
{
16
17
struct
MultiScalarMul
{
18
std::vector<WitnessOrConstant<bb::fr>
>
points
;
19
std::vector<WitnessOrConstant<bb::fr>
>
scalars
;
20
// Predicate indicating whether the constraint should be disabled:
21
// - true: the constraint is valid
22
// - false: the constraint is disabled, i.e it must not fail and can return whatever.
23
WitnessOrConstant<bb::fr>
predicate
;
24
25
uint32_t
out_point_x
;
26
uint32_t
out_point_y
;
27
uint32_t
out_point_is_infinite
;
28
29
// for serialization, update with any new fields
30
MSGPACK_FIELDS
(
points
,
scalars
,
predicate
,
out_point_x
,
out_point_y
,
out_point_is_infinite
);
31
friend
bool
operator==
(
MultiScalarMul
const
& lhs,
MultiScalarMul
const
& rhs) =
default
;
32
};
33
34
template
<
typename
Builder>
35
void
create_multi_scalar_mul_constraint
(
Builder
&
builder
,
36
const
MultiScalarMul
& input,
37
bool
has_valid_witness_assignments);
38
39
}
// namespace acir_format
bb::UltraCircuitBuilder_
Definition
ultra_circuit_builder.hpp:40
builder
AluTraceBuilder builder
Definition
alu.test.cpp:123
index.hpp
msgpack.hpp
acir_format
Definition
acir_format.cpp:35
acir_format::create_multi_scalar_mul_constraint
void create_multi_scalar_mul_constraint(Builder &builder, const MultiScalarMul &input, bool has_valid_witness_assignments)
Definition
multi_scalar_mul.cpp:20
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
field.hpp
acir_format::MultiScalarMul
Definition
multi_scalar_mul.hpp:17
acir_format::MultiScalarMul::out_point_x
uint32_t out_point_x
Definition
multi_scalar_mul.hpp:25
acir_format::MultiScalarMul::operator==
friend bool operator==(MultiScalarMul const &lhs, MultiScalarMul const &rhs)=default
acir_format::MultiScalarMul::scalars
std::vector< WitnessOrConstant< bb::fr > > scalars
Definition
multi_scalar_mul.hpp:19
acir_format::MultiScalarMul::predicate
WitnessOrConstant< bb::fr > predicate
Definition
multi_scalar_mul.hpp:23
acir_format::MultiScalarMul::out_point_y
uint32_t out_point_y
Definition
multi_scalar_mul.hpp:26
acir_format::MultiScalarMul::out_point_is_infinite
uint32_t out_point_is_infinite
Definition
multi_scalar_mul.hpp:27
acir_format::MultiScalarMul::MSGPACK_FIELDS
MSGPACK_FIELDS(points, scalars, predicate, out_point_x, out_point_y, out_point_is_infinite)
acir_format::MultiScalarMul::points
std::vector< WitnessOrConstant< bb::fr > > points
Definition
multi_scalar_mul.hpp:18
acir_format::WitnessOrConstant
Definition
witness_constant.hpp:13
witness_constant.hpp
src
barretenberg
dsl
acir_format
multi_scalar_mul.hpp
Generated by
1.9.8