29 const auto emit_public_log_WRONG_NEXT_TAG = (
FF(1) - in.get(C::emit_public_log_correct_tag_shift));
30 const auto emit_public_log_START_PUBLIC_INDEX =
31 constants_AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX +
32 constants_FLAT_PUBLIC_LOGS_HEADER_LENGTH + in.get(C::emit_public_log_prev_num_public_log_fields);
35 using View =
typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
36 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_sel)) *
37 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_sel)));
41 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
42 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
43 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_start)));
47 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
48 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_end)) *
49 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_end)));
53 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
55 (
static_cast<View
>(in.get(C::emit_public_log_start)) +
static_cast<View
>(in.get(C::emit_public_log_end))) *
56 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_sel)));
60 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
61 auto tmp = (
FF(1) -
CView(emit_public_log_LATCH_CONDITION)) *
62 (
static_cast<View
>(in.get(C::emit_public_log_sel)) -
63 static_cast<View
>(in.get(C::emit_public_log_sel_shift)));
67 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
68 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_sel_shift)) *
69 (
static_cast<View
>(in.get(C::emit_public_log_start_shift)) -
CView(emit_public_log_LATCH_CONDITION));
73 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
75 static_cast<View
>(in.get(C::emit_public_log_start)) *
76 (((
CView(constants_PUBLIC_LOG_HEADER_LENGTH) +
static_cast<View
>(in.get(C::emit_public_log_log_size))) -
78 static_cast<View
>(in.get(C::emit_public_log_remaining_rows)));
82 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
84 CView(emit_public_log_NOT_END) * ((
static_cast<View
>(in.get(C::emit_public_log_remaining_rows)) -
FF(1)) -
85 static_cast<View
>(in.get(C::emit_public_log_remaining_rows_shift)));
89 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
90 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_sel)) *
91 ((
static_cast<View
>(in.get(C::emit_public_log_remaining_rows)) *
92 (
static_cast<View
>(in.get(C::emit_public_log_end)) *
93 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_remaining_rows_inv))) +
94 static_cast<View
>(in.get(C::emit_public_log_remaining_rows_inv))) -
96 static_cast<View
>(in.get(C::emit_public_log_end)));
100 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
101 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
102 (
static_cast<View
>(in.get(C::emit_public_log_max_mem_size)) -
CView(constants_AVM_MEMORY_SIZE));
106 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
107 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
108 ((
static_cast<View
>(in.get(C::emit_public_log_log_address)) +
109 static_cast<View
>(in.get(C::emit_public_log_log_size))) -
110 static_cast<View
>(in.get(C::emit_public_log_end_log_address_upper_bound)));
114 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
116 CView(emit_public_log_NOT_END) * (
static_cast<View
>(in.get(C::emit_public_log_error_out_of_bounds_shift)) -
117 static_cast<View
>(in.get(C::emit_public_log_error_out_of_bounds)));
121 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
122 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
123 ((
static_cast<View
>(in.get(C::emit_public_log_prev_num_public_log_fields)) +
124 CView(emit_public_log_TOTAL_LOG_FIELDS_SIZE)) -
125 static_cast<View
>(in.get(C::emit_public_log_expected_next_log_fields)));
129 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
130 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
131 (
static_cast<View
>(in.get(C::emit_public_log_max_public_logs_payload_length)) -
132 CView(constants_FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH));
136 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
138 CView(emit_public_log_NOT_END) * (
static_cast<View
>(in.get(C::emit_public_log_error_tag_mismatch_shift)) -
139 static_cast<View
>(in.get(C::emit_public_log_error_tag_mismatch)));
143 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
144 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
145 static_cast<View
>(in.get(C::emit_public_log_seen_wrong_tag));
149 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
151 CView(emit_public_log_NOT_END) * (((
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_seen_wrong_tag))) *
152 CView(emit_public_log_WRONG_NEXT_TAG) +
153 static_cast<View
>(in.get(C::emit_public_log_seen_wrong_tag))) -
154 static_cast<View
>(in.get(C::emit_public_log_seen_wrong_tag_shift)));
158 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
159 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_end)) *
160 (
static_cast<View
>(in.get(C::emit_public_log_error_tag_mismatch)) -
161 static_cast<View
>(in.get(C::emit_public_log_seen_wrong_tag)));
165 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
166 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
167 ((
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_error_out_of_bounds))) *
168 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_error_too_many_log_fields))) *
169 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_error_tag_mismatch))) *
170 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_is_static))) -
171 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_error))));
175 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
176 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
177 ((
static_cast<View
>(in.get(C::emit_public_log_prev_num_public_log_fields)) +
178 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_error))) *
179 CView(emit_public_log_TOTAL_LOG_FIELDS_SIZE)) -
180 static_cast<View
>(in.get(C::emit_public_log_next_num_public_log_fields)));
184 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
185 auto tmp = (
static_cast<View
>(in.get(C::emit_public_log_is_write_contract_address_shift)) -
186 static_cast<View
>(in.get(C::emit_public_log_start)));
190 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
191 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value)) *
192 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value)));
196 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
197 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
198 static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value));
202 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
203 auto tmp =
CView(emit_public_log_NOT_END) *
204 ((
static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value)) +
205 static_cast<View
>(in.get(C::emit_public_log_is_write_contract_address))) -
206 static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value_shift)));
210 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
211 auto tmp = (
static_cast<View
>(in.get(C::emit_public_log_sel_read_memory)) -
212 static_cast<View
>(in.get(C::emit_public_log_sel)) *
213 static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value)) *
214 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_error_out_of_bounds))));
218 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
220 CView(emit_public_log_NOT_END) * ((
static_cast<View
>(in.get(C::emit_public_log_log_address)) +
221 static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value))) -
222 static_cast<View
>(in.get(C::emit_public_log_log_address_shift)));
226 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
227 auto tmp =
CView(emit_public_log_NOT_END) * (
static_cast<View
>(in.get(C::emit_public_log_execution_clk)) -
228 static_cast<View
>(in.get(C::emit_public_log_execution_clk_shift)));
232 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
233 auto tmp =
CView(emit_public_log_NOT_END) * (
static_cast<View
>(in.get(C::emit_public_log_space_id)) -
234 static_cast<View
>(in.get(C::emit_public_log_space_id_shift)));
238 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
239 auto tmp = (
static_cast<View
>(in.get(C::emit_public_log_sel)) -
240 static_cast<View
>(in.get(C::emit_public_log_sel_read_memory))) *
241 static_cast<View
>(in.get(C::emit_public_log_value));
245 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
246 auto tmp = (
static_cast<View
>(in.get(C::emit_public_log_sel)) -
247 static_cast<View
>(in.get(C::emit_public_log_sel_read_memory))) *
248 (
CView(constants_MEM_TAG_FF) -
static_cast<View
>(in.get(C::emit_public_log_tag)));
252 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
253 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_correct_tag)) *
254 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_correct_tag)));
258 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
259 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_sel)) *
260 ((
static_cast<View
>(in.get(C::emit_public_log_tag)) *
261 (
static_cast<View
>(in.get(C::emit_public_log_correct_tag)) *
262 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_tag_inv))) +
263 static_cast<View
>(in.get(C::emit_public_log_tag_inv))) -
265 static_cast<View
>(in.get(C::emit_public_log_correct_tag)));
269 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
270 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
271 ((
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_error))) *
272 (
FF(1) -
static_cast<View
>(in.get(C::emit_public_log_discard))) -
273 static_cast<View
>(in.get(C::emit_public_log_sel_write_to_public_inputs)));
277 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
278 auto tmp =
CView(emit_public_log_NOT_END) *
279 (
static_cast<View
>(in.get(C::emit_public_log_sel_write_to_public_inputs_shift)) -
280 static_cast<View
>(in.get(C::emit_public_log_sel_write_to_public_inputs)));
284 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
285 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_start)) *
286 (
CView(emit_public_log_START_PUBLIC_INDEX) -
287 static_cast<View
>(in.get(C::emit_public_log_public_inputs_index)));
291 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
292 auto tmp =
CView(emit_public_log_NOT_END) *
293 ((
static_cast<View
>(in.get(C::emit_public_log_public_inputs_index)) +
FF(1)) -
294 static_cast<View
>(in.get(C::emit_public_log_public_inputs_index_shift)));
298 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
300 CView(emit_public_log_NOT_END) * (
static_cast<View
>(in.get(C::emit_public_log_contract_address)) -
301 static_cast<View
>(in.get(C::emit_public_log_contract_address_shift)));
305 using View =
typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
306 auto tmp =
CView(emit_public_log_IS_WRITE_LOG_LENGTH) *
307 (
static_cast<View
>(in.get(C::emit_public_log_log_size)) -
308 static_cast<View
>(in.get(C::emit_public_log_public_inputs_value)));
312 using View =
typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
313 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_is_write_contract_address)) *
314 (
static_cast<View
>(in.get(C::emit_public_log_contract_address)) -
315 static_cast<View
>(in.get(C::emit_public_log_public_inputs_value)));
319 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
320 auto tmp =
static_cast<View
>(in.get(C::emit_public_log_is_write_memory_value)) *
321 (
static_cast<View
>(in.get(C::emit_public_log_value)) -
322 static_cast<View
>(in.get(C::emit_public_log_public_inputs_value)));