@@ -273,65 +273,112 @@ void memoryImpl<FF_>::accumulate(ContainerOverSubrelations& evals,
273273 (FF (1 ) - static_cast <View>(in.get (C::memory_sel_to_radix_write)));
274274 std::get<41 >(evals) += (tmp * scaling_factor);
275275 }
276- {
276+ { // ACTIVE_ROW_NEEDS_PERM_SELECTOR
277277 using View = typename std::tuple_element_t <42 , ContainerOverSubrelations>::View;
278- auto tmp = static_cast <View>(in.get (C::memory_sel)) * (FF (1 ) - static_cast <View>(in.get (C::memory_sel)));
278+ auto tmp =
279+ (static_cast <View>(in.get (C::memory_sel)) -
280+ (static_cast <View>(in.get (C::memory_sel_addressing_base)) +
281+ static_cast <View>(in.get (C::memory_sel_addressing_indirect_0_)) +
282+ static_cast <View>(in.get (C::memory_sel_addressing_indirect_1_)) +
283+ static_cast <View>(in.get (C::memory_sel_addressing_indirect_2_)) +
284+ static_cast <View>(in.get (C::memory_sel_addressing_indirect_3_)) +
285+ static_cast <View>(in.get (C::memory_sel_addressing_indirect_4_)) +
286+ static_cast <View>(in.get (C::memory_sel_addressing_indirect_5_)) +
287+ static_cast <View>(in.get (C::memory_sel_addressing_indirect_6_)) +
288+ static_cast <View>(in.get (C::memory_sel_register_op_0_)) +
289+ static_cast <View>(in.get (C::memory_sel_register_op_1_)) +
290+ static_cast <View>(in.get (C::memory_sel_register_op_2_)) +
291+ static_cast <View>(in.get (C::memory_sel_register_op_3_)) +
292+ static_cast <View>(in.get (C::memory_sel_register_op_4_)) +
293+ static_cast <View>(in.get (C::memory_sel_register_op_5_)) +
294+ static_cast <View>(in.get (C::memory_sel_register_op_6_)) +
295+ static_cast <View>(in.get (C::memory_sel_data_copy_read)) +
296+ static_cast <View>(in.get (C::memory_sel_data_copy_write)) +
297+ static_cast <View>(in.get (C::memory_sel_get_contract_instance_exists_write)) +
298+ static_cast <View>(in.get (C::memory_sel_get_contract_instance_member_write)) +
299+ static_cast <View>(in.get (C::memory_sel_unencrypted_log_read)) +
300+ static_cast <View>(in.get (C::memory_sel_poseidon2_read_0_)) +
301+ static_cast <View>(in.get (C::memory_sel_poseidon2_read_1_)) +
302+ static_cast <View>(in.get (C::memory_sel_poseidon2_read_2_)) +
303+ static_cast <View>(in.get (C::memory_sel_poseidon2_read_3_)) +
304+ static_cast <View>(in.get (C::memory_sel_poseidon2_write_0_)) +
305+ static_cast <View>(in.get (C::memory_sel_poseidon2_write_1_)) +
306+ static_cast <View>(in.get (C::memory_sel_poseidon2_write_2_)) +
307+ static_cast <View>(in.get (C::memory_sel_poseidon2_write_3_)) +
308+ static_cast <View>(in.get (C::memory_sel_keccak)) + static_cast <View>(in.get (C::memory_sel_sha256_read)) +
309+ static_cast <View>(in.get (C::memory_sel_sha256_op_0_)) +
310+ static_cast <View>(in.get (C::memory_sel_sha256_op_1_)) +
311+ static_cast <View>(in.get (C::memory_sel_sha256_op_2_)) +
312+ static_cast <View>(in.get (C::memory_sel_sha256_op_3_)) +
313+ static_cast <View>(in.get (C::memory_sel_sha256_op_4_)) +
314+ static_cast <View>(in.get (C::memory_sel_sha256_op_5_)) +
315+ static_cast <View>(in.get (C::memory_sel_sha256_op_6_)) +
316+ static_cast <View>(in.get (C::memory_sel_sha256_op_7_)) +
317+ static_cast <View>(in.get (C::memory_sel_ecc_write_0_)) +
318+ static_cast <View>(in.get (C::memory_sel_ecc_write_1_)) +
319+ static_cast <View>(in.get (C::memory_sel_ecc_write_2_)) +
320+ static_cast <View>(in.get (C::memory_sel_to_radix_write))));
279321 std::get<42 >(evals) += (tmp * scaling_factor);
280322 }
281323 {
282324 using View = typename std::tuple_element_t <43 , ContainerOverSubrelations>::View;
283- auto tmp = static_cast <View>(in.get (C::memory_last_access)) *
284- (FF (1 ) - static_cast <View>(in.get (C::memory_last_access)));
325+ auto tmp = static_cast <View>(in.get (C::memory_sel)) * (FF (1 ) - static_cast <View>(in.get (C::memory_sel)));
285326 std::get<43 >(evals) += (tmp * scaling_factor);
286327 }
287328 {
288329 using View = typename std::tuple_element_t <44 , ContainerOverSubrelations>::View;
289- auto tmp = static_cast <View>(in.get (C::memory_rw)) * (FF (1 ) - static_cast <View>(in.get (C::memory_rw)));
330+ auto tmp = static_cast <View>(in.get (C::memory_last_access)) *
331+ (FF (1 ) - static_cast <View>(in.get (C::memory_last_access)));
290332 std::get<44 >(evals) += (tmp * scaling_factor);
291333 }
292334 {
293335 using View = typename std::tuple_element_t <45 , ContainerOverSubrelations>::View;
336+ auto tmp = static_cast <View>(in.get (C::memory_rw)) * (FF (1 ) - static_cast <View>(in.get (C::memory_rw)));
337+ std::get<45 >(evals) += (tmp * scaling_factor);
338+ }
339+ {
340+ using View = typename std::tuple_element_t <46 , ContainerOverSubrelations>::View;
294341 auto tmp = static_cast <View>(in.get (C::memory_sel_tag_is_ff)) *
295342 (FF (1 ) - static_cast <View>(in.get (C::memory_sel_tag_is_ff)));
296- std::get<45 >(evals) += (tmp * scaling_factor);
343+ std::get<46 >(evals) += (tmp * scaling_factor);
297344 }
298345 { // MEM_CONTIGUOUS
299- using View = typename std::tuple_element_t <46 , ContainerOverSubrelations>::View;
346+ using View = typename std::tuple_element_t <47 , ContainerOverSubrelations>::View;
300347 auto tmp = (FF (1 ) - static_cast <View>(in.get (C::precomputed_first_row))) *
301348 (FF (1 ) - static_cast <View>(in.get (C::memory_sel))) * static_cast <View>(in.get (C::memory_sel_shift));
302- std::get<46 >(evals) += (tmp * scaling_factor);
349+ std::get<47 >(evals) += (tmp * scaling_factor);
303350 }
304351 { // SEL_RNG_CHK
305- using View = typename std::tuple_element_t <47 , ContainerOverSubrelations>::View;
352+ using View = typename std::tuple_element_t <48 , ContainerOverSubrelations>::View;
306353 auto tmp = (static_cast <View>(in.get (C::memory_sel_rng_chk)) -
307354 static_cast <View>(in.get (C::memory_sel)) * static_cast <View>(in.get (C::memory_sel_shift)));
308- std::get<47 >(evals) += (tmp * scaling_factor);
355+ std::get<48 >(evals) += (tmp * scaling_factor);
309356 }
310357 { // GLOBAL_ADDR
311- using View = typename std::tuple_element_t <48 , ContainerOverSubrelations>::View;
358+ using View = typename std::tuple_element_t <49 , ContainerOverSubrelations>::View;
312359 auto tmp = (static_cast <View>(in.get (C::memory_global_addr)) -
313360 (static_cast <View>(in.get (C::memory_space_id)) * FF (4294967296UL ) +
314361 static_cast <View>(in.get (C::memory_address))));
315- std::get<48 >(evals) += (tmp * scaling_factor);
362+ std::get<49 >(evals) += (tmp * scaling_factor);
316363 }
317364 { // TIMESTAMP
318- using View = typename std::tuple_element_t <49 , ContainerOverSubrelations>::View;
365+ using View = typename std::tuple_element_t <50 , ContainerOverSubrelations>::View;
319366 auto tmp = (static_cast <View>(in.get (C::memory_timestamp)) -
320367 (FF (2 ) * static_cast <View>(in.get (C::memory_clk)) + static_cast <View>(in.get (C::memory_rw))));
321- std::get<49 >(evals) += (tmp * scaling_factor);
368+ std::get<50 >(evals) += (tmp * scaling_factor);
322369 }
323370 { // LAST_ACCESS
324- using View = typename std::tuple_element_t <50 , ContainerOverSubrelations>::View;
371+ using View = typename std::tuple_element_t <51 , ContainerOverSubrelations>::View;
325372 auto tmp =
326373 static_cast <View>(in.get (C::memory_sel_rng_chk)) *
327374 (CView (memory_GLOB_ADDR_DIFF) * ((FF (1 ) - static_cast <View>(in.get (C::memory_last_access))) *
328375 (FF (1 ) - static_cast <View>(in.get (C::memory_glob_addr_diff_inv))) +
329376 static_cast <View>(in.get (C::memory_glob_addr_diff_inv))) -
330377 static_cast <View>(in.get (C::memory_last_access)));
331- std::get<50 >(evals) += (tmp * scaling_factor);
378+ std::get<51 >(evals) += (tmp * scaling_factor);
332379 }
333380 { // DIFF
334- using View = typename std::tuple_element_t <51 , ContainerOverSubrelations>::View;
381+ using View = typename std::tuple_element_t <52 , ContainerOverSubrelations>::View;
335382 auto tmp =
336383 (static_cast <View>(in.get (C::memory_diff)) -
337384 static_cast <View>(in.get (C::memory_sel_rng_chk)) *
@@ -340,61 +387,61 @@ void memoryImpl<FF_>::accumulate(ContainerOverSubrelations& evals,
340387 ((static_cast <View>(in.get (C::memory_timestamp_shift)) -
341388 static_cast <View>(in.get (C::memory_timestamp))) -
342389 static_cast <View>(in.get (C::memory_rw_shift)) * static_cast <View>(in.get (C::memory_rw)))));
343- std::get<51 >(evals) += (tmp * scaling_factor);
390+ std::get<52 >(evals) += (tmp * scaling_factor);
344391 }
345392 { // DIFF_DECOMP
346- using View = typename std::tuple_element_t <52 , ContainerOverSubrelations>::View;
393+ using View = typename std::tuple_element_t <53 , ContainerOverSubrelations>::View;
347394 auto tmp =
348395 (static_cast <View>(in.get (C::memory_diff)) -
349396 (static_cast <View>(in.get (C::memory_limb_0_)) + static_cast <View>(in.get (C::memory_limb_1_)) * FF (65536 ) +
350397 static_cast <View>(in.get (C::memory_limb_2_)) * FF (4294967296UL )));
351- std::get<52 >(evals) += (tmp * scaling_factor);
398+ std::get<53 >(evals) += (tmp * scaling_factor);
352399 }
353400 { // MEMORY_INIT_VALUE
354- using View = typename std::tuple_element_t <53 , ContainerOverSubrelations>::View;
401+ using View = typename std::tuple_element_t <54 , ContainerOverSubrelations>::View;
355402 auto tmp =
356403 (static_cast <View>(in.get (C::memory_last_access)) + static_cast <View>(in.get (C::precomputed_first_row))) *
357404 (FF (1 ) - static_cast <View>(in.get (C::memory_rw_shift))) * static_cast <View>(in.get (C::memory_value_shift));
358- std::get<53 >(evals) += (tmp * scaling_factor);
405+ std::get<54 >(evals) += (tmp * scaling_factor);
359406 }
360407 { // MEMORY_INIT_TAG
361- using View = typename std::tuple_element_t <54 , ContainerOverSubrelations>::View;
408+ using View = typename std::tuple_element_t <55 , ContainerOverSubrelations>::View;
362409 auto tmp =
363410 (static_cast <View>(in.get (C::memory_last_access)) + static_cast <View>(in.get (C::precomputed_first_row))) *
364411 (FF (1 ) - static_cast <View>(in.get (C::memory_rw_shift))) *
365412 (static_cast <View>(in.get (C::memory_tag_shift)) - CView (constants_MEM_TAG_FF));
366- std::get<54 >(evals) += (tmp * scaling_factor);
413+ std::get<55 >(evals) += (tmp * scaling_factor);
367414 }
368415 { // READ_WRITE_CONSISTENCY_VALUE
369- using View = typename std::tuple_element_t <55 , ContainerOverSubrelations>::View;
416+ using View = typename std::tuple_element_t <56 , ContainerOverSubrelations>::View;
370417 auto tmp = (FF (1 ) - static_cast <View>(in.get (C::memory_last_access))) *
371418 (FF (1 ) - static_cast <View>(in.get (C::memory_rw_shift))) *
372419 (static_cast <View>(in.get (C::memory_value_shift)) - static_cast <View>(in.get (C::memory_value)));
373- std::get<55 >(evals) += (tmp * scaling_factor);
420+ std::get<56 >(evals) += (tmp * scaling_factor);
374421 }
375422 { // READ_WRITE_CONSISTENCY_TAG
376- using View = typename std::tuple_element_t <56 , ContainerOverSubrelations>::View;
423+ using View = typename std::tuple_element_t <57 , ContainerOverSubrelations>::View;
377424 auto tmp = (FF (1 ) - static_cast <View>(in.get (C::memory_last_access))) *
378425 (FF (1 ) - static_cast <View>(in.get (C::memory_rw_shift))) *
379426 (static_cast <View>(in.get (C::memory_tag_shift)) - static_cast <View>(in.get (C::memory_tag)));
380- std::get<56 >(evals) += (tmp * scaling_factor);
427+ std::get<57 >(evals) += (tmp * scaling_factor);
381428 }
382429 { // TAG_IS_FF
383- using View = typename std::tuple_element_t <57 , ContainerOverSubrelations>::View;
430+ using View = typename std::tuple_element_t <58 , ContainerOverSubrelations>::View;
384431 auto tmp = static_cast <View>(in.get (C::memory_sel)) *
385432 ((CView (memory_TAG_FF_DIFF) * (static_cast <View>(in.get (C::memory_sel_tag_is_ff)) *
386433 (FF (1 ) - static_cast <View>(in.get (C::memory_tag_ff_diff_inv))) +
387434 static_cast <View>(in.get (C::memory_tag_ff_diff_inv))) +
388435 static_cast <View>(in.get (C::memory_sel_tag_is_ff))) -
389436 FF (1 ));
390- std::get<57 >(evals) += (tmp * scaling_factor);
437+ std::get<58 >(evals) += (tmp * scaling_factor);
391438 }
392439 { // SEL_RNG_WRITE
393- using View = typename std::tuple_element_t <58 , ContainerOverSubrelations>::View;
440+ using View = typename std::tuple_element_t <59 , ContainerOverSubrelations>::View;
394441 auto tmp =
395442 (static_cast <View>(in.get (C::memory_sel_rng_write)) -
396443 static_cast <View>(in.get (C::memory_rw)) * (FF (1 ) - static_cast <View>(in.get (C::memory_sel_tag_is_ff))));
397- std::get<58 >(evals) += (tmp * scaling_factor);
444+ std::get<59 >(evals) += (tmp * scaling_factor);
398445 }
399446}
400447
0 commit comments