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 { // EXISTS_CHECK
89 using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
90 auto tmp =
91 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_sel)) *
92 ((CView(retrieved_bytecodes_tree_check_CLASS_ID_LOW_LEAF_CLASS_ID_DIFF) *
93 (CView(retrieved_bytecodes_tree_check_EXISTS) *
94 (FF(1) - static_cast<View>(
95 in.get(C::retrieved_bytecodes_tree_check_class_id_low_leaf_class_id_diff_inv))) +
96 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_class_id_low_leaf_class_id_diff_inv))) -
97 FF(1)) +
98 CView(retrieved_bytecodes_tree_check_EXISTS));
99 std::get<9>(evals) += (tmp * scaling_factor);
100 }
101 {
102 using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
103 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_is_nonzero)) *
104 (FF(1) - static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_is_nonzero)));
105 std::get<10>(evals) += (tmp * scaling_factor);
106 }
107 { // NEXT_CLASS_ID_IS_ZERO_CHECK
108 using View = typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
109 auto tmp = static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_leaf_not_exists)) *
110 ((static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_low_leaf_next_class_id)) *
111 (CView(retrieved_bytecodes_tree_check_NEXT_CLASS_ID_IS_ZERO) *
112 (FF(1) - static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_inv))) +
113 static_cast<View>(in.get(C::retrieved_bytecodes_tree_check_next_class_id_inv))) -
114 FF(1)) +
115 CView(retrieved_bytecodes_tree_check_NEXT_CLASS_ID_IS_ZERO));
116 std::get<11>(evals) += (tmp * scaling_factor);
117 }
118}
119
120} // namespace bb::avm2
static void accumulate(ContainerOverSubrelations &evals, const AllEntities &in, const RelationParameters< FF > &, const FF &scaling_factor)
ColumnAndShifts
Definition columns.hpp:34
AvmFlavorSettings::FF FF
Definition field.hpp:10
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.