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