Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
emit_unencrypted_log_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 emit_unencrypted_logImpl<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_FLAT_PUBLIC_LOGS_HEADER_LENGTH = FF(1);
19 const auto constants_FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH = FF(4096);
20 const auto constants_PUBLIC_LOG_HEADER_LENGTH = FF(2);
21 const auto constants_MEM_TAG_FF = FF(0);
22 const auto constants_AVM_HIGHEST_MEM_ADDRESS = FF(4294967295UL);
23 const auto constants_AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX = FF(522);
24 const auto emit_unencrypted_log_NOT_END =
25 in.get(C::emit_unencrypted_log_sel) * (FF(1) - in.get(C::emit_unencrypted_log_end));
26 const auto emit_unencrypted_log_LATCH_CONDITION =
27 in.get(C::emit_unencrypted_log_end) + in.get(C::precomputed_first_row);
28 const auto emit_unencrypted_log_TOTAL_LOG_FIELDS_SIZE =
29 constants_PUBLIC_LOG_HEADER_LENGTH + in.get(C::emit_unencrypted_log_log_size);
30 const auto emit_unencrypted_log_IS_WRITE_LOG_LENGTH = in.get(C::emit_unencrypted_log_start);
31 const auto emit_unencrypted_log_WRONG_NEXT_TAG = (FF(1) - in.get(C::emit_unencrypted_log_correct_tag_shift));
32
33 {
34 using View = typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
35 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_error)) *
36 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error)));
37 std::get<0>(evals) += (tmp * scaling_factor);
38 }
39 {
40 using View = typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
41 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
42 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_start)));
43 std::get<1>(evals) += (tmp * scaling_factor);
44 }
45 {
46 using View = typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
47 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_end)) *
48 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_end)));
49 std::get<2>(evals) += (tmp * scaling_factor);
50 }
51 {
52 using View = typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
53 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_end)) *
54 static_cast<View>(in.get(C::precomputed_first_row));
55 std::get<3>(evals) += (tmp * scaling_factor);
56 }
57 { // START_AFTER_LATCH
58 using View = typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
59 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_sel_shift)) *
60 (static_cast<View>(in.get(C::emit_unencrypted_log_start_shift)) -
61 CView(emit_unencrypted_log_LATCH_CONDITION));
62 std::get<4>(evals) += (tmp * scaling_factor);
63 }
64 { // SELECTOR_ON_START
65 using View = typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
66 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
67 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_sel)));
68 std::get<5>(evals) += (tmp * scaling_factor);
69 }
70 { // SELECTOR_CONSISTENCY
71 using View = typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
72 auto tmp = (static_cast<View>(in.get(C::emit_unencrypted_log_sel_shift)) -
73 static_cast<View>(in.get(C::emit_unencrypted_log_sel))) *
74 (FF(1) - CView(emit_unencrypted_log_LATCH_CONDITION));
75 std::get<6>(evals) += (tmp * scaling_factor);
76 }
77 { // SELECTOR_ON_END
78 using View = typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
79 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_end)) *
80 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_sel)));
81 std::get<7>(evals) += (tmp * scaling_factor);
82 }
83 {
84 using View = typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
85 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
86 (((CView(constants_PUBLIC_LOG_HEADER_LENGTH) +
87 static_cast<View>(in.get(C::emit_unencrypted_log_log_size))) -
88 FF(1)) -
89 static_cast<View>(in.get(C::emit_unencrypted_log_remaining_rows)));
90 std::get<8>(evals) += (tmp * scaling_factor);
91 }
92 { // REMAINING_ROWS_DECREMENT
93 using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
94 auto tmp = CView(emit_unencrypted_log_NOT_END) *
95 ((static_cast<View>(in.get(C::emit_unencrypted_log_remaining_rows)) - FF(1)) -
96 static_cast<View>(in.get(C::emit_unencrypted_log_remaining_rows_shift)));
97 std::get<9>(evals) += (tmp * scaling_factor);
98 }
99 {
100 using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
101 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_sel)) *
102 ((static_cast<View>(in.get(C::emit_unencrypted_log_remaining_rows)) *
103 (static_cast<View>(in.get(C::emit_unencrypted_log_end)) *
104 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_remaining_rows_inv))) +
105 static_cast<View>(in.get(C::emit_unencrypted_log_remaining_rows_inv))) -
106 FF(1)) +
107 static_cast<View>(in.get(C::emit_unencrypted_log_end)));
108 std::get<10>(evals) += (tmp * scaling_factor);
109 }
110 {
111 using View = typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
112 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
113 (static_cast<View>(in.get(C::emit_unencrypted_log_max_mem_addr)) -
114 CView(constants_AVM_HIGHEST_MEM_ADDRESS));
115 std::get<11>(evals) += (tmp * scaling_factor);
116 }
117 {
118 using View = typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
119 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
120 (((static_cast<View>(in.get(C::emit_unencrypted_log_log_address)) +
121 static_cast<View>(in.get(C::emit_unencrypted_log_log_size))) -
122 FF(1)) -
123 static_cast<View>(in.get(C::emit_unencrypted_log_end_log_address)));
124 std::get<12>(evals) += (tmp * scaling_factor);
125 }
126 { // ERROR_OUT_OF_BOUNDS_CONSISTENCY
127 using View = typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
128 auto tmp = CView(emit_unencrypted_log_NOT_END) *
129 (static_cast<View>(in.get(C::emit_unencrypted_log_error_out_of_bounds_shift)) -
130 static_cast<View>(in.get(C::emit_unencrypted_log_error_out_of_bounds)));
131 std::get<13>(evals) += (tmp * scaling_factor);
132 }
133 {
134 using View = typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
135 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_error_too_many_log_fields)) *
136 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_too_many_log_fields)));
137 std::get<14>(evals) += (tmp * scaling_factor);
138 }
139 {
140 using View = typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
141 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
142 ((static_cast<View>(in.get(C::emit_unencrypted_log_prev_num_unencrypted_log_fields)) +
143 CView(emit_unencrypted_log_TOTAL_LOG_FIELDS_SIZE)) -
144 static_cast<View>(in.get(C::emit_unencrypted_log_expected_next_log_fields)));
145 std::get<15>(evals) += (tmp * scaling_factor);
146 }
147 {
148 using View = typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
149 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
150 (static_cast<View>(in.get(C::emit_unencrypted_log_public_logs_payload_length)) -
151 CView(constants_FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH));
152 std::get<16>(evals) += (tmp * scaling_factor);
153 }
154 {
155 using View = typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
156 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_error_tag_mismatch)) *
157 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_tag_mismatch)));
158 std::get<17>(evals) += (tmp * scaling_factor);
159 }
160 { // ERROR_TAG_MISMATCH_CONSISTENCY
161 using View = typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
162 auto tmp = CView(emit_unencrypted_log_NOT_END) *
163 (static_cast<View>(in.get(C::emit_unencrypted_log_error_tag_mismatch_shift)) -
164 static_cast<View>(in.get(C::emit_unencrypted_log_error_tag_mismatch)));
165 std::get<18>(evals) += (tmp * scaling_factor);
166 }
167 {
168 using View = typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
169 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_seen_wrong_tag)) *
170 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_seen_wrong_tag)));
171 std::get<19>(evals) += (tmp * scaling_factor);
172 }
173 {
174 using View = typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
175 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
176 static_cast<View>(in.get(C::emit_unencrypted_log_seen_wrong_tag));
177 std::get<20>(evals) += (tmp * scaling_factor);
178 }
179 { // WRONG_TAG_CHECK
180 using View = typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
181 auto tmp = CView(emit_unencrypted_log_NOT_END) *
182 (((FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_seen_wrong_tag))) *
183 CView(emit_unencrypted_log_WRONG_NEXT_TAG) +
184 static_cast<View>(in.get(C::emit_unencrypted_log_seen_wrong_tag))) -
185 static_cast<View>(in.get(C::emit_unencrypted_log_seen_wrong_tag_shift)));
186 std::get<21>(evals) += (tmp * scaling_factor);
187 }
188 {
189 using View = typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
190 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_end)) *
191 (static_cast<View>(in.get(C::emit_unencrypted_log_error_tag_mismatch)) -
192 static_cast<View>(in.get(C::emit_unencrypted_log_seen_wrong_tag)));
193 std::get<22>(evals) += (tmp * scaling_factor);
194 }
195 {
196 using View = typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
197 auto tmp =
198 static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
199 ((FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_too_many_log_fields))) *
200 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_tag_mismatch))) *
201 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_is_static))) -
202 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_too_many_logs_wrong_tag_is_static))));
203 std::get<23>(evals) += (tmp * scaling_factor);
204 }
205 {
206 using View = typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
207 auto tmp =
208 static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
209 ((FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_out_of_bounds))) *
210 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_too_many_logs_wrong_tag_is_static))) -
211 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error))));
212 std::get<24>(evals) += (tmp * scaling_factor);
213 }
214 {
215 using View = typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
216 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
217 ((static_cast<View>(in.get(C::emit_unencrypted_log_prev_num_unencrypted_log_fields)) +
218 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error))) *
219 CView(emit_unencrypted_log_TOTAL_LOG_FIELDS_SIZE)) -
220 static_cast<View>(in.get(C::emit_unencrypted_log_next_num_unencrypted_log_fields)));
221 std::get<25>(evals) += (tmp * scaling_factor);
222 }
223 {
224 using View = typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
225 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_is_write_contract_address)) *
226 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_is_write_contract_address)));
227 std::get<26>(evals) += (tmp * scaling_factor);
228 }
229 {
230 using View = typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
231 auto tmp = (static_cast<View>(in.get(C::emit_unencrypted_log_is_write_contract_address_shift)) -
232 static_cast<View>(in.get(C::emit_unencrypted_log_start)));
233 std::get<27>(evals) += (tmp * scaling_factor);
234 }
235 {
236 using View = typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
237 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value)) *
238 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value)));
239 std::get<28>(evals) += (tmp * scaling_factor);
240 }
241 {
242 using View = typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
243 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
244 static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value));
245 std::get<29>(evals) += (tmp * scaling_factor);
246 }
247 {
248 using View = typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
249 auto tmp = CView(emit_unencrypted_log_NOT_END) *
250 ((static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value)) +
251 static_cast<View>(in.get(C::emit_unencrypted_log_is_write_contract_address))) -
252 static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value_shift)));
253 std::get<30>(evals) += (tmp * scaling_factor);
254 }
255 {
256 using View = typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
257 auto tmp = (static_cast<View>(in.get(C::emit_unencrypted_log_sel_should_read_memory)) -
258 static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value)) *
259 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error_out_of_bounds))));
260 std::get<31>(evals) += (tmp * scaling_factor);
261 }
262 { // LOG_ADDRESS_INCREMENT
263 using View = typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
264 auto tmp = CView(emit_unencrypted_log_NOT_END) *
265 ((static_cast<View>(in.get(C::emit_unencrypted_log_log_address)) +
266 static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value))) -
267 static_cast<View>(in.get(C::emit_unencrypted_log_log_address_shift)));
268 std::get<32>(evals) += (tmp * scaling_factor);
269 }
270 { // EXEC_CLK_CONSISTENCY
271 using View = typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
272 auto tmp = CView(emit_unencrypted_log_NOT_END) *
273 (static_cast<View>(in.get(C::emit_unencrypted_log_execution_clk)) -
274 static_cast<View>(in.get(C::emit_unencrypted_log_execution_clk_shift)));
275 std::get<33>(evals) += (tmp * scaling_factor);
276 }
277 { // SPACE_ID_CONSISTENCY
278 using View = typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
279 auto tmp =
280 CView(emit_unencrypted_log_NOT_END) * (static_cast<View>(in.get(C::emit_unencrypted_log_space_id)) -
281 static_cast<View>(in.get(C::emit_unencrypted_log_space_id_shift)));
282 std::get<34>(evals) += (tmp * scaling_factor);
283 }
284 {
285 using View = typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
286 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_sel)) *
287 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_sel_should_read_memory))) *
288 (FF(0) - static_cast<View>(in.get(C::emit_unencrypted_log_value)));
289 std::get<35>(evals) += (tmp * scaling_factor);
290 }
291 {
292 using View = typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
293 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_sel)) *
294 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_sel_should_read_memory))) *
295 (CView(constants_MEM_TAG_FF) - static_cast<View>(in.get(C::emit_unencrypted_log_tag)));
296 std::get<36>(evals) += (tmp * scaling_factor);
297 }
298 {
299 using View = typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
300 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_correct_tag)) *
301 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_correct_tag)));
302 std::get<37>(evals) += (tmp * scaling_factor);
303 }
304 {
305 using View = typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
306 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_sel)) *
307 ((static_cast<View>(in.get(C::emit_unencrypted_log_tag)) *
308 (static_cast<View>(in.get(C::emit_unencrypted_log_correct_tag)) *
309 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_tag_inv))) +
310 static_cast<View>(in.get(C::emit_unencrypted_log_tag_inv))) -
311 FF(1)) +
312 static_cast<View>(in.get(C::emit_unencrypted_log_correct_tag)));
313 std::get<38>(evals) += (tmp * scaling_factor);
314 }
315 {
316 using View = typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
317 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
318 ((FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_error))) *
319 (FF(1) - static_cast<View>(in.get(C::emit_unencrypted_log_discard))) -
320 static_cast<View>(in.get(C::emit_unencrypted_log_sel_should_write_to_public_inputs)));
321 std::get<39>(evals) += (tmp * scaling_factor);
322 }
323 { // SEL_SHOULD_WRITE_TO_PUBLIC_INPUTS_CONSISTENCY
324 using View = typename std::tuple_element_t<40, ContainerOverSubrelations>::View;
325 auto tmp = CView(emit_unencrypted_log_NOT_END) *
326 (static_cast<View>(in.get(C::emit_unencrypted_log_sel_should_write_to_public_inputs_shift)) -
327 static_cast<View>(in.get(C::emit_unencrypted_log_sel_should_write_to_public_inputs)));
328 std::get<40>(evals) += (tmp * scaling_factor);
329 }
330 {
331 using View = typename std::tuple_element_t<41, ContainerOverSubrelations>::View;
332 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_start)) *
333 ((CView(constants_AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX) +
334 CView(constants_FLAT_PUBLIC_LOGS_HEADER_LENGTH) +
335 static_cast<View>(in.get(C::emit_unencrypted_log_prev_num_unencrypted_log_fields))) -
336 static_cast<View>(in.get(C::emit_unencrypted_log_public_inputs_index)));
337 std::get<41>(evals) += (tmp * scaling_factor);
338 }
339 {
340 using View = typename std::tuple_element_t<42, ContainerOverSubrelations>::View;
341 auto tmp = CView(emit_unencrypted_log_NOT_END) *
342 ((static_cast<View>(in.get(C::emit_unencrypted_log_public_inputs_index)) + FF(1)) -
343 static_cast<View>(in.get(C::emit_unencrypted_log_public_inputs_index_shift)));
344 std::get<42>(evals) += (tmp * scaling_factor);
345 }
346 { // CONTRACT_ADDRESS_CONSISTENCY
347 using View = typename std::tuple_element_t<43, ContainerOverSubrelations>::View;
348 auto tmp = CView(emit_unencrypted_log_NOT_END) *
349 (static_cast<View>(in.get(C::emit_unencrypted_log_contract_address)) -
350 static_cast<View>(in.get(C::emit_unencrypted_log_contract_address_shift)));
351 std::get<43>(evals) += (tmp * scaling_factor);
352 }
353 {
354 using View = typename std::tuple_element_t<44, ContainerOverSubrelations>::View;
355 auto tmp = CView(emit_unencrypted_log_IS_WRITE_LOG_LENGTH) *
356 (static_cast<View>(in.get(C::emit_unencrypted_log_log_size)) -
357 static_cast<View>(in.get(C::emit_unencrypted_log_public_inputs_value)));
358 std::get<44>(evals) += (tmp * scaling_factor);
359 }
360 {
361 using View = typename std::tuple_element_t<45, ContainerOverSubrelations>::View;
362 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_is_write_contract_address)) *
363 (static_cast<View>(in.get(C::emit_unencrypted_log_contract_address)) -
364 static_cast<View>(in.get(C::emit_unencrypted_log_public_inputs_value)));
365 std::get<45>(evals) += (tmp * scaling_factor);
366 }
367 {
368 using View = typename std::tuple_element_t<46, ContainerOverSubrelations>::View;
369 auto tmp = static_cast<View>(in.get(C::emit_unencrypted_log_is_write_memory_value)) *
370 (static_cast<View>(in.get(C::emit_unencrypted_log_value)) -
371 static_cast<View>(in.get(C::emit_unencrypted_log_public_inputs_value)));
372 std::get<46>(evals) += (tmp * scaling_factor);
373 }
374}
375
376} // 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.