Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ecc_bools_relation_impl.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 <array>
9#include <tuple>
10
12
13namespace bb {
14
25template <typename FF>
26template <typename ContainerOverSubrelations, typename AllEntities, typename Parameters>
27void ECCVMBoolsRelationImpl<FF>::accumulate(ContainerOverSubrelations& accumulator,
28 const AllEntities& in,
29 const Parameters& /*unused*/,
30 const FF& scaling_factor)
31{
32 using Accumulator = typename std::tuple_element_t<0, ContainerOverSubrelations>;
33 using View = typename Accumulator::View;
34
35 auto z1_zero = View(in.transcript_z1zero);
36 auto z2_zero = View(in.transcript_z2zero);
37 auto msm_count_zero_at_transition = View(in.transcript_msm_count_zero_at_transition);
38 auto q_add = View(in.transcript_add);
39 auto q_mul = View(in.transcript_mul);
40 auto q_eq = View(in.transcript_eq);
41 auto transcript_msm_transition = View(in.transcript_msm_transition);
42 auto is_accumulator_not_empty = View(in.transcript_accumulator_not_empty);
43 auto q_reset_accumulator = View(in.transcript_reset_accumulator);
44 auto transcript_Pinfinity = View(in.transcript_base_infinity);
45 auto transcript_msm_infinity = View(in.transcript_msm_infinity);
46 auto transcript_add_x_equal = View(in.transcript_add_x_equal);
47 auto transcript_add_y_equal = View(in.transcript_add_y_equal);
48 auto precompute_point_transition = View(in.precompute_point_transition);
49 auto msm_transition = View(in.msm_transition);
50 auto msm_add = View(in.msm_add);
51 auto msm_double = View(in.msm_double);
52 auto msm_skew = View(in.msm_skew);
53 auto precompute_select = View(in.precompute_select);
54
55 std::get<0>(accumulator) += q_eq * (q_eq - 1) * scaling_factor;
56 std::get<1>(accumulator) += q_add * (q_add - 1) * scaling_factor;
57 std::get<2>(accumulator) += q_mul * (q_mul - 1) * scaling_factor;
58 std::get<3>(accumulator) += q_reset_accumulator * (q_reset_accumulator - 1) * scaling_factor;
59 std::get<4>(accumulator) += transcript_msm_transition * (transcript_msm_transition - 1) * scaling_factor;
60 std::get<5>(accumulator) += is_accumulator_not_empty * (is_accumulator_not_empty - 1) * scaling_factor;
61 std::get<6>(accumulator) += z1_zero * (z1_zero - 1) * scaling_factor;
62 std::get<7>(accumulator) += z2_zero * (z2_zero - 1) * scaling_factor;
63 std::get<8>(accumulator) += transcript_add_x_equal * (transcript_add_x_equal - 1) * scaling_factor;
64 std::get<9>(accumulator) += transcript_add_y_equal * (transcript_add_y_equal - 1) * scaling_factor;
65 std::get<10>(accumulator) += transcript_Pinfinity * (transcript_Pinfinity - 1) * scaling_factor;
66 std::get<11>(accumulator) += transcript_msm_infinity * (transcript_msm_infinity - 1) * scaling_factor;
67 std::get<12>(accumulator) += msm_count_zero_at_transition * (msm_count_zero_at_transition - 1) * scaling_factor;
68 std::get<13>(accumulator) += msm_transition * (msm_transition - 1) * scaling_factor;
69 std::get<14>(accumulator) += precompute_point_transition * (precompute_point_transition - 1) * scaling_factor;
70 std::get<15>(accumulator) += msm_add * (msm_add - 1) * scaling_factor;
71 std::get<16>(accumulator) += msm_double * (msm_double - 1) * scaling_factor;
72 std::get<17>(accumulator) += msm_skew * (msm_skew - 1) * scaling_factor;
73 std::get<18>(accumulator) += precompute_select * (precompute_select - 1) * scaling_factor;
74}
75} // namespace bb
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &, const FF &scaling_factor)
ECCVMBoolsRelationImpl evaluates the correctness of ECCVM boolean checks.
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13