Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ecc_bools_short_relation_impl.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: Planned, auditors: [], commit: }
3
// external_1: { status: not started, auditors: [], commit: }
4
// external_2: { status: not started, auditors: [], commit: }
5
// =====================
6
7
#pragma once
8
9
#include "
barretenberg/relations/ecc_vm/ecc_bools_short_relation.hpp
"
10
11
namespace
bb
{
12
13
template
<
typename
FF>
14
template
<
typename
ContainerOverSubrelations,
typename
AllEntities,
typename
Parameters>
15
void
ECCVMBoolsTranscriptShortRelationImpl<FF>::accumulate
(ContainerOverSubrelations& accumulator,
16
const
AllEntities
& in,
17
const
Parameters&
/*unused*/
,
18
const
FF
& scaling_factor)
19
{
20
using
Accumulator
=
typename
std::tuple_element_t<0, ContainerOverSubrelations>
;
21
using
View =
ECCVMShortMonomialView<Accumulator>
;
22
23
auto
accumulate_bool = [&accumulator, &scaling_factor](
auto
index
,
const
auto
&
value
) {
24
std::get<index>
(accumulator) +=
Accumulator
((
value
* (
value
- 1)) * scaling_factor);
25
};
26
27
accumulate_bool(
std::integral_constant<size_t, 0>
{}, View(in.transcript_eq));
28
accumulate_bool(
std::integral_constant<size_t, 1>
{}, View(in.transcript_add));
29
accumulate_bool(
std::integral_constant<size_t, 2>
{}, View(in.transcript_mul));
30
accumulate_bool(
std::integral_constant<size_t, 3>
{}, View(in.transcript_reset_accumulator));
31
accumulate_bool(
std::integral_constant<size_t, 4>
{}, View(in.transcript_msm_transition));
32
accumulate_bool(
std::integral_constant<size_t, 5>
{}, View(in.transcript_accumulator_not_empty));
33
accumulate_bool(
std::integral_constant<size_t, 6>
{}, View(in.transcript_z1zero));
34
accumulate_bool(
std::integral_constant<size_t, 7>
{}, View(in.transcript_z2zero));
35
accumulate_bool(
std::integral_constant<size_t, 8>
{}, View(in.transcript_add_x_equal));
36
accumulate_bool(
std::integral_constant<size_t, 9>
{}, View(in.transcript_add_y_equal));
37
accumulate_bool(
std::integral_constant<size_t, 10>
{}, View(in.transcript_base_infinity));
38
accumulate_bool(
std::integral_constant<size_t, 11>
{}, View(in.transcript_msm_infinity));
39
accumulate_bool(
std::integral_constant<size_t, 12>
{}, View(in.transcript_msm_count_zero_at_transition));
40
}
41
42
template
<
typename
FF>
43
template
<
typename
ContainerOverSubrelations,
typename
AllEntities,
typename
Parameters>
44
void
ECCVMBoolsMsmShortRelationImpl<FF>::accumulate
(ContainerOverSubrelations& accumulator,
45
const
AllEntities
& in,
46
const
Parameters&
/*unused*/
,
47
const
FF
& scaling_factor)
48
{
49
using
Accumulator
=
typename
std::tuple_element_t<0, ContainerOverSubrelations>
;
50
using
View =
ECCVMShortMonomialView<Accumulator>
;
51
52
auto
accumulate_bool = [&accumulator, &scaling_factor](
auto
index
,
const
auto
&
value
) {
53
std::get<index>
(accumulator) +=
Accumulator
((
value
* (
value
- 1)) * scaling_factor);
54
};
55
56
accumulate_bool(
std::integral_constant<size_t, 0>
{}, View(in.msm_transition));
57
accumulate_bool(
std::integral_constant<size_t, 1>
{}, View(in.precompute_point_transition));
58
accumulate_bool(
std::integral_constant<size_t, 2>
{}, View(in.msm_add));
59
accumulate_bool(
std::integral_constant<size_t, 3>
{}, View(in.msm_double));
60
accumulate_bool(
std::integral_constant<size_t, 4>
{}, View(in.msm_skew));
61
accumulate_bool(
std::integral_constant<size_t, 5>
{}, View(in.precompute_select));
62
accumulate_bool(
std::integral_constant<size_t, 6>
{}, View(in.msm_add1));
63
accumulate_bool(
std::integral_constant<size_t, 7>
{}, View(in.msm_add2));
64
accumulate_bool(
std::integral_constant<size_t, 8>
{}, View(in.msm_add3));
65
accumulate_bool(
std::integral_constant<size_t, 9>
{}, View(in.msm_add4));
66
}
67
68
}
// namespace bb
bb::ECCVMBoolsMsmShortRelationImpl::FF
FF_ FF
Definition
ecc_bools_short_relation.hpp:64
bb::ECCVMBoolsMsmShortRelationImpl::accumulate
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters ¶ms, const FF &scaling_factor)
Definition
ecc_bools_short_relation_impl.hpp:44
bb::ECCVMBoolsTranscriptShortRelationImpl::accumulate
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters ¶ms, const FF &scaling_factor)
Definition
ecc_bools_short_relation_impl.hpp:15
bb::ECCVMBoolsTranscriptShortRelationImpl::FF
FF_ FF
Definition
ecc_bools_short_relation.hpp:26
bb::MegaFlavor_Generated::AllEntities
Definition
mega_flavor_generated.hpp:277
VariableRefMutationOptions::index
@ index
value
FF value
Definition
indexed_tree_check.test.cpp:69
ecc_bools_short_relation.hpp
bb
Entry point for Barretenberg command-line interface.
Definition
api.hpp:5
bb::ECCVMShortMonomialView
typename Accumulator::CoefficientAccumulator ECCVMShortMonomialView
Definition
ecc_short_monomial_relation_utils.hpp:11
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
bb::Accumulator
Definition
accumulator.hpp:39
src
barretenberg
relations
ecc_vm
ecc_bools_short_relation_impl.hpp
Generated by
1.9.8