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
10
11namespace bb {
12
13template <typename FF>
14template <typename ContainerOverSubrelations, typename AllEntities, typename Parameters>
15void 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>;
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
42template <typename FF>
43template <typename ContainerOverSubrelations, typename AllEntities, typename Parameters>
44void 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>;
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
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
typename Accumulator::CoefficientAccumulator ECCVMShortMonomialView
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13