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: Complete, auditors: [Luke], commit: a48c205d6dcd4338f5b83b4fda18bff6015be07b}
3
// external_1: { status: not started, auditors: [], commit: }
4
// external_2: { status: not started, auditors: [], commit: }
5
// =====================
6
7
#pragma once
8
#include "
barretenberg/stdlib/primitives/field/field.hpp
"
9
#include "
serde/index.hpp
"
10
#include "
witness_constant.hpp
"
11
#include <cstdint>
12
#include <vector>
13
14
namespace
acir_format
{
15
16
struct
MultiScalarMul
{
17
std::vector<WitnessOrConstant<bb::fr>
>
points
;
18
std::vector<WitnessOrConstant<bb::fr>
>
scalars
;
19
// Predicate indicating whether the constraint should be disabled:
20
// - true: the constraint is valid
21
// - false: the constraint is disabled, i.e it must not fail and can return whatever.
22
WitnessOrConstant<bb::fr>
predicate
;
23
24
uint32_t
out_point_x
;
25
uint32_t
out_point_y
;
26
uint32_t
out_point_is_infinite
;
27
28
friend
bool
operator==
(
MultiScalarMul
const
& lhs,
MultiScalarMul
const
& rhs) =
default
;
29
};
30
31
template
<
typename
Builder>
void
create_multi_scalar_mul_constraint
(
Builder
&
builder
,
const
MultiScalarMul
& input);
32
33
}
// namespace acir_format
bb::ECCVMCircuitBuilder
Definition
eccvm_circuit_builder.hpp:24
builder
AluTraceBuilder builder
Definition
alu.test.cpp:124
index.hpp
acir_format
Definition
acir_format.cpp:30
acir_format::create_multi_scalar_mul_constraint
void create_multi_scalar_mul_constraint(Builder &builder, const MultiScalarMul &constraint_input)
Create constraints for multi-scalar multiplication on the Grumpkin curve.
Definition
multi_scalar_mul.cpp:49
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:16
acir_format::MultiScalarMul::out_point_x
uint32_t out_point_x
Definition
multi_scalar_mul.hpp:24
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:18
acir_format::MultiScalarMul::predicate
WitnessOrConstant< bb::fr > predicate
Definition
multi_scalar_mul.hpp:22
acir_format::MultiScalarMul::out_point_y
uint32_t out_point_y
Definition
multi_scalar_mul.hpp:25
acir_format::MultiScalarMul::out_point_is_infinite
uint32_t out_point_is_infinite
Definition
multi_scalar_mul.hpp:26
acir_format::MultiScalarMul::points
std::vector< WitnessOrConstant< bb::fr > > points
Definition
multi_scalar_mul.hpp:17
acir_format::WitnessOrConstant
Definition
witness_constant.hpp:12
witness_constant.hpp
src
barretenberg
dsl
acir_format
multi_scalar_mul.hpp
Generated by
1.9.8