Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
retrieved_bytecodes_tree_check_impl.hpp
Go to the documentation of this file.
1// AUTOGENERATED FILE
2#pragma once
3
6
7namespace bb::avm2 {
8
9template <typename FF_>
10template <typename ContainerOverSubrelations, typename AllEntities>
11void retrieved_bytecodes_tree_checkImpl<FF_>::accumulate(ContainerOverSubrelations& evals,
12 const AllEntities& in,
13 [[maybe_unused]] const RelationParameters<FF_>&,
14 [[maybe_unused]] const FF_& scaling_factor)
15{
16 using C = ColumnAndShifts;
17
18 const auto constants_AVM_RETRIEVED_BYTECODES_TREE_HEIGHT = FF(5);
19 const auto retrieved_bytecodes_tree_check_EXISTS =
20 (FF(1) - in.get(C::retrieved_bytecodes_tree_check_leaf_not_exists));
21 const auto retrieved_bytecodes_tree_check_CLASS_ID_LOW_LEAF_CLASS_ID_DIFF =
22 (in.get(C::retrieved_bytecodes_tree_check_class_id) -
23 in.get(C::retrieved_bytecodes_tree_check_low_leaf_class_id));
24 const auto retrieved_bytecodes_tree_check_NEXT_CLASS_ID_IS_ZERO =
25 (FF(1) - in.get(C::retrieved_bytecodes_tree_check_next_class_id_is_nonzero));
26
27 {
28 using View = typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
29 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_sel)) *
30 (FF(1) - static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_sel)));
31 std::get<0>(evals) += (tmp * scaling_factor);
32 }
33 {
34 using View = typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
35 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_write)) *
36 (FF(1) - static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_write)));
37 std::get<1>(evals) += (tmp * scaling_factor);
38 }
39 {
40 using View = typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
41 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_leaf_not_exists)) *
42 (FF(1) - static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_leaf_not_exists)));
43 std::get<2>(evals) += (tmp * scaling_factor);
44 }
45 {
46 using View = typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
47 auto tmp = (static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_should_insert)) -
48 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_write)) *
49 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_leaf_not_exists)));
50 std::get<3>(evals) += (tmp * scaling_factor);
51 }
52 {
53 using View = typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
54 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_write)) *
55 CView(retrieved_bytecodes_tree_check_EXISTS) *
56 (static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_root)) -
57 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_write_root)));
58 std::get<4>(evals) += (tmp * scaling_factor);
59 }
60 {
61 using View = typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
62 auto tmp = (static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_tree_size_after_write)) -
63 (static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_tree_size_before_write)) +
64 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_should_insert))));
65 std::get<5>(evals) += (tmp * scaling_factor);
66 }
67 {
68 using View = typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
69 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_should_insert)) *
70 (static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_tree_size_before_write)) -
71 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_updated_low_leaf_next_index)));
72 std::get<6>(evals) += (tmp * scaling_factor);
73 }
74 {
75 using View = typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
76 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_should_insert)) *
77 (static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_class_id)) -
78 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_updated_low_leaf_next_class_id)));
79 std::get<7>(evals) += (tmp * scaling_factor);
80 }
81 {
82 using View = typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
83 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_sel)) *
84 (CView(constants_AVM_RETRIEVED_BYTECODES_TREE_HEIGHT) -
85 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_tree_height)));
86 std::get<8>(evals) += (tmp * scaling_factor);
87 }
88 {
89 using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
90 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_sel)) *
91 (static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_const_three)) - FF(3));
92 std::get<9>(evals) += (tmp * scaling_factor);
93 }
94 { // EXISTS_CHECK
95 using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
96 auto tmp =
97 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_sel)) *
98 ((CView(retrieved_bytecodes_tree_check_CLASS_ID_LOW_LEAF_CLASS_ID_DIFF) *
99 (CView(retrieved_bytecodes_tree_check_EXISTS) *
100 (FF(1) - static_cast<View>(
101 in.get(C::retrieved_bytecodes_tree_check_class_id_low_leaf_class_id_diff_inv))) +
102 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_class_id_low_leaf_class_id_diff_inv))) -
103 FF(1)) +
104 CView(retrieved_bytecodes_tree_check_EXISTS));
105 std::get<10>(evals) += (tmp * scaling_factor);
106 }
107 {
108 using View = typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
109 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_is_nonzero)) *
110 (FF(1) - static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_is_nonzero)));
111 std::get<11>(evals) += (tmp * scaling_factor);
112 }
113 { // NEXT_CLASS_ID_IS_ZERO_CHECK
114 using View = typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
115 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_leaf_not_exists)) *
116 ((static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_low_leaf_next_class_id)) *
117 (CView(retrieved_bytecodes_tree_check_NEXT_CLASS_ID_IS_ZERO) *
118 (FF(1) - static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_inv))) +
119 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_inv))) -
120 FF(1)) +
121 CView(retrieved_bytecodes_tree_check_NEXT_CLASS_ID_IS_ZERO));
122 std::get<12>(evals) += (tmp * scaling_factor);
123 }
124}
125
126} // namespace bb::avm2
static void accumulate(ContainerOverSubrelations &evals, const AllEntities &in, const RelationParameters< FF > &, const FF &scaling_factor)
AvmFlavorSettings::FF FF
Definition field.hpp:10
ColumnAndShifts
Definition columns.hpp:34
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
#define CView(v)
Container for parameters used by the grand product (permutation, lookup) Honk relations.