From 3e2a64a0a1e95ae53eedde7d73f90b13ce4a2a5c Mon Sep 17 00:00:00 2001 From: Ohad Nir <141617878+ohad-nir-starkware@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:24:51 +0200 Subject: [PATCH 1/8] allow biguint to output 12 bit children (#195) --- .../crates/prover_types/src/cpu.rs | 100 +++++++++--------- 1 file changed, 51 insertions(+), 49 deletions(-) diff --git a/stwo_cairo_prover/crates/prover_types/src/cpu.rs b/stwo_cairo_prover/crates/prover_types/src/cpu.rs index 2ac45017..40e879fb 100644 --- a/stwo_cairo_prover/crates/prover_types/src/cpu.rs +++ b/stwo_cairo_prover/crates/prover_types/src/cpu.rs @@ -12,7 +12,7 @@ pub const PRIME: u32 = 2_u32.pow(31) - 1; pub trait AlgebraicType: ProverType + Add + Sub + Mul + Div {} impl AlgebraicType for M31 {} impl AlgebraicType for Felt252 {} -impl AlgebraicType for BigUInt {} +impl AlgebraicType for BigUInt {} pub trait NumericType: ProverType + Rem + Shl + Shr + BitAnd + BitOr + BitXor {} impl NumericType for UInt16 {} @@ -560,18 +560,26 @@ impl ProverType for Felt252 { } } +// Length of each modulo builtin word in bits. +pub const MOD_BUILTIN_WORD_BIT_LEN: usize = 96; +// Length of each biguint word in bits. +pub const BIGUINT_BITS_PER_WORD: usize = 12; + +// B is the number of bits in the BigUInt. +// L is the number of 64-bit limbs in the BigUInt. +// F is the number of BIGUINT_BITS_PER_M31-bit limbs in the BigUInt. #[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)] -pub struct BigUInt { +pub struct BigUInt { pub limbs: [u64; L], } -impl Default for BigUInt { +impl Default for BigUInt { fn default() -> Self { Self { limbs: [0; L] } } } -impl ProverType for BigUInt { +impl ProverType for BigUInt { fn calc(&self) -> String { format!("{:?}", self.limbs) } @@ -584,29 +592,26 @@ impl ProverType for BigUInt { } // Convert between BigUInt and Uint for performing field operations. -impl From> for Uint { - fn from(n: BigUInt) -> Uint { +impl From> for Uint { + fn from(n: BigUInt) -> Uint { Uint::from_limbs(n.limbs) } } -impl From> for BigUInt { - fn from(n: Uint) -> BigUInt { +impl From> for BigUInt { + fn from(n: Uint) -> BigUInt { let limbs = n.into_limbs(); BigUInt { limbs } } } -impl From<[u64; L]> for BigUInt { - fn from(limbs: [u64; L]) -> BigUInt { +impl From<[u64; L]> for BigUInt { + fn from(limbs: [u64; L]) -> BigUInt { BigUInt { limbs } } } -// Length of each modulo builtin word in bits. -pub const MOD_BUILTIN_WORD_BIT_LEN: usize = 96; - -impl BigUInt { +impl BigUInt { pub fn from_felt252_array(mod_words: Vec) -> Self { // only takes MODULO_WORD_BIT_LEN from each Felt252 let needed_bits = mod_words.len() * MOD_BUILTIN_WORD_BIT_LEN; @@ -640,28 +645,25 @@ impl BigUInt { Self { limbs } } - pub fn get_u64(&self, index: usize) -> UInt64 { - UInt64 { - value: self.limbs[index], - } - } - - pub fn from_limbs(limbs: Vec) -> Self { - assert!(limbs.len() <= L, "Invalid number of limbs"); - let mut res = [0; L]; - for (index, limb) in limbs.iter().enumerate() { - res[index] = limb.value; - } - Self { limbs: res } - } - - pub fn from_u64(limb: UInt64) -> Self { - let mut limbs = [0; L]; - limbs[0] = limb.value; - Self { limbs } + // Returns the BIGUINT_BITS_PER_WORD-bit word at the given index. + pub fn get_m31(&self, index: usize) -> M31 { + let mask = (1u64 << BIGUINT_BITS_PER_WORD) - 1; + let shift = BIGUINT_BITS_PER_WORD * index; + let low_limb = shift / 64; + let shift_low = shift & 0x3F; + let high_limb = (shift + BIGUINT_BITS_PER_WORD - 1) / 64; + let value = if low_limb == high_limb { + ((self.limbs[low_limb] >> (shift_low)) & mask) as u32 + } else { + (((self.limbs[low_limb] >> (shift_low)) | (self.limbs[high_limb] << (64 - shift_low))) + & mask) as u32 + }; + M31::from_u32_unchecked(value) } - pub fn from_biguint(other: BigUInt) -> Self { + pub fn from_biguint( + other: BigUInt, + ) -> Self { if OL > L && !other.limbs.iter().skip(L).all(|&x| x == 0) { panic!("BigUInt is too big"); } @@ -673,10 +675,10 @@ impl BigUInt { Self { limbs } } - pub fn widening_mul( + pub fn widening_mul( self, - rhs: BigUInt, - ) -> BigUInt { + rhs: BigUInt, + ) -> BigUInt { let self_uint: Uint = self.into(); let rhs_uint: Uint = rhs.into(); @@ -693,9 +695,9 @@ impl BigUInt { } } -impl Add for BigUInt { - type Output = BigUInt; - fn add(self, other: BigUInt) -> BigUInt { +impl Add for BigUInt { + type Output = BigUInt; + fn add(self, other: BigUInt) -> BigUInt { let self_uint: Uint = self.into(); let other_uint: Uint = other.into(); @@ -703,9 +705,9 @@ impl Add for BigUInt { } } -impl Sub for BigUInt { - type Output = BigUInt; - fn sub(self, other: BigUInt) -> BigUInt { +impl Sub for BigUInt { + type Output = BigUInt; + fn sub(self, other: BigUInt) -> BigUInt { let self_uint: Uint = self.into(); let other_uint: Uint = other.into(); @@ -713,9 +715,9 @@ impl Sub for BigUInt { } } -impl Mul for BigUInt { - type Output = BigUInt; - fn mul(self, other: BigUInt) -> BigUInt { +impl Mul for BigUInt { + type Output = BigUInt; + fn mul(self, other: BigUInt) -> BigUInt { let self_uint: Uint = self.into(); let other_uint: Uint = other.into(); @@ -723,9 +725,9 @@ impl Mul for BigUInt { } } -impl Div for BigUInt { - type Output = BigUInt; - fn div(self, other: BigUInt) -> BigUInt { +impl Div for BigUInt { + type Output = BigUInt; + fn div(self, other: BigUInt) -> BigUInt { let self_uint: Uint = self.into(); let other_uint: Uint = other.into(); From bd162f365604cb9c5c369ac0d55354bc0e29b6ee Mon Sep 17 00:00:00 2001 From: Ohad <137686240+ohad-starkware@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:04:45 +0200 Subject: [PATCH 2/8] parralelize ret (#234) --- stwo_cairo_prover/Cargo.lock | 1 + stwo_cairo_prover/crates/prover/Cargo.toml | 4 + .../crates/prover/src/components/mod.rs | 25 ++ .../src/components/ret_opcode/prover.rs | 274 ++++++++++++------ 4 files changed, 211 insertions(+), 93 deletions(-) diff --git a/stwo_cairo_prover/Cargo.lock b/stwo_cairo_prover/Cargo.lock index fe965a12..cad37264 100644 --- a/stwo_cairo_prover/Cargo.lock +++ b/stwo_cairo_prover/Cargo.lock @@ -1666,6 +1666,7 @@ dependencies = [ "paste", "prover_types", "rand", + "rayon", "serde", "sonic-rs", "stwo-prover", diff --git a/stwo_cairo_prover/crates/prover/Cargo.toml b/stwo_cairo_prover/crates/prover/Cargo.toml index 336ee34a..ea5300a9 100644 --- a/stwo_cairo_prover/crates/prover/Cargo.toml +++ b/stwo_cairo_prover/crates/prover/Cargo.toml @@ -3,6 +3,9 @@ name = "stwo_cairo_prover" version = "0.1.0" edition = "2021" +[features] +parallel = ["rayon"] + [dependencies] bytemuck.workspace = true cairo-lang-casm.workspace = true @@ -17,6 +20,7 @@ thiserror.workspace = true tracing.workspace = true paste.workspace = true prover_types = { path = "../prover_types" } +rayon = { version = "1.10.0", optional = true } [dev-dependencies] cairo-lang-casm.workspace = true diff --git a/stwo_cairo_prover/crates/prover/src/components/mod.rs b/stwo_cairo_prover/crates/prover/src/components/mod.rs index ade1dba8..997c00f5 100644 --- a/stwo_cairo_prover/crates/prover/src/components/mod.rs +++ b/stwo_cairo_prover/crates/prover/src/components/mod.rs @@ -1,5 +1,10 @@ +use std::array; +use std::cell::UnsafeCell; + use prover_types::simd::N_LANES; +use stwo_prover::core::backend::simd::column::BaseColumn; use stwo_prover::core::backend::simd::conversion::Pack; +use stwo_prover::core::backend::Column; pub mod add_ap_opcode_is_imm_f_op1_base_fp_f; pub mod add_ap_opcode_is_imm_f_op1_base_fp_t; @@ -47,3 +52,23 @@ pub fn pack_values(values: &[T]) -> Vec { .map(|c| T::pack(*c)) .collect() } + +// TODO(Ohad): move to another file. +struct ThreadSafeTrace { + data: [UnsafeCell; N], +} + +unsafe impl Send for ThreadSafeTrace {} +unsafe impl Sync for ThreadSafeTrace {} + +impl ThreadSafeTrace { + fn new(rows: usize) -> Self { + Self { + data: array::from_fn(|_| UnsafeCell::new(unsafe { BaseColumn::uninitialized(rows) })), + } + } + + pub fn inner(self) -> [BaseColumn; N] { + self.data.map(|c| c.into_inner()) + } +} diff --git a/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs b/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs index 10971535..7f723748 100644 --- a/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs @@ -1,9 +1,14 @@ #![allow(unused_parens)] #![allow(unused_imports)] +use std::cell::UnsafeCell; +use std::sync::Arc; + use itertools::{chain, zip_eq, Itertools}; use num_traits::{One, Zero}; use prover_types::cpu::*; use prover_types::simd::*; +#[cfg(feature = "parallel")] +use rayon::prelude::*; use stwo_prover::constraint_framework::logup::LogupTraceGenerator; use stwo_prover::constraint_framework::Relation; use stwo_prover::core::air::Component; @@ -21,7 +26,9 @@ use stwo_prover::core::utils::bit_reverse_coset_to_circle_domain_order; use stwo_prover::core::vcs::blake2_merkle::{Blake2sMerkleChannel, Blake2sMerkleHasher}; use super::component::{Claim, InteractionClaim}; -use crate::components::{memory_address_to_id, memory_id_to_big, pack_values, verify_instruction}; +use crate::components::{ + memory_address_to_id, memory_id_to_big, pack_values, verify_instruction, ThreadSafeTrace, +}; use crate::relations; pub type InputType = CasmState; @@ -66,21 +73,21 @@ impl ClaimGenerator { } sub_components_inputs .memory_address_to_id_inputs - .iter() + .iter_mut() .for_each(|inputs| { - memory_address_to_id_state.add_inputs(&inputs[..n_calls]); + memory_address_to_id_state.add_inputs(&inputs.get_mut()[..n_calls]); }); sub_components_inputs .memory_id_to_big_inputs - .iter() + .iter_mut() .for_each(|inputs| { - memory_id_to_big_state.add_inputs(&inputs[..n_calls]); + memory_id_to_big_state.add_inputs(&inputs.get_mut()[..n_calls]); }); sub_components_inputs .verify_instruction_inputs - .iter() + .iter_mut() .for_each(|inputs| { - verify_instruction_state.add_inputs(&inputs[..n_calls]); + verify_instruction_state.add_inputs(&inputs.get_mut()[..n_calls]); }); tree_builder.extend_evals( @@ -113,36 +120,64 @@ impl ClaimGenerator { } pub struct SubComponentInputs { - pub memory_address_to_id_inputs: [Vec; 2], - pub memory_id_to_big_inputs: [Vec; 2], - pub verify_instruction_inputs: [Vec; 1], + pub memory_address_to_id_inputs: [UnsafeCell>; 2], + pub memory_id_to_big_inputs: [UnsafeCell>; 2], + pub verify_instruction_inputs: [UnsafeCell>; 1], } + impl SubComponentInputs { #[allow(unused_variables)] - fn with_capacity(capacity: usize) -> Self { - Self { + unsafe fn uninitialized(len: usize) -> Self { + let sub_component_inputs = Self { memory_address_to_id_inputs: [ - Vec::with_capacity(capacity), - Vec::with_capacity(capacity), + Vec::with_capacity(len).into(), + Vec::with_capacity(len).into(), + ], + memory_id_to_big_inputs: [ + Vec::with_capacity(len).into(), + Vec::with_capacity(len).into(), ], - memory_id_to_big_inputs: [Vec::with_capacity(capacity), Vec::with_capacity(capacity)], - verify_instruction_inputs: [Vec::with_capacity(capacity)], + verify_instruction_inputs: [Vec::with_capacity(len).into()], + }; + unsafe { + sub_component_inputs + .memory_address_to_id_inputs + .iter() + .for_each(|vec| { + (*vec.get()).set_len(len); + }); + sub_component_inputs + .memory_id_to_big_inputs + .iter() + .for_each(|vec| { + (*vec.get()).set_len(len); + }); + sub_component_inputs + .verify_instruction_inputs + .iter() + .for_each(|vec| { + (*vec.get()).set_len(len); + }); } + sub_component_inputs } fn bit_reverse_coset_to_circle_domain_order(&mut self) { self.memory_address_to_id_inputs .iter_mut() - .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); + .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec.get_mut())); self.memory_id_to_big_inputs .iter_mut() - .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); + .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec.get_mut())); self.verify_instruction_inputs .iter_mut() - .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); + .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec.get_mut())); } } +unsafe impl Send for SubComponentInputs {} +unsafe impl Sync for SubComponentInputs {} + #[allow(clippy::useless_conversion)] #[allow(unused_variables)] #[allow(clippy::double_parens)] @@ -157,12 +192,11 @@ pub fn write_trace_simd( LookupData, ) { const N_TRACE_COLUMNS: usize = 11; - let mut trace: [_; N_TRACE_COLUMNS] = - std::array::from_fn(|_| Col::::zeros(inputs.len() * N_LANES)); - - let mut lookup_data = LookupData::with_capacity(inputs.len()); - #[allow(unused_mut)] - let mut sub_components_inputs = SubComponentInputs::with_capacity(inputs.len()); + let len = inputs.len(); + let cpu_len = len * N_LANES; + let trace = Arc::new(ThreadSafeTrace::::new(cpu_len)); + let lookup_data = Arc::new(unsafe { LookupData::uninitialized(len) }); + let sub_components_inputs = Arc::new(unsafe { SubComponentInputs::uninitialized(cpu_len) }); let M31_0 = PackedM31::broadcast(M31::from(0)); let M31_1 = PackedM31::broadcast(M31::from(1)); @@ -172,17 +206,21 @@ pub fn write_trace_simd( let M31_32767 = PackedM31::broadcast(M31::from(32767)); let M31_512 = PackedM31::broadcast(M31::from(512)); - inputs - .into_iter() - .enumerate() - .for_each(|(row_index, ret_opcode_input)| { + #[cfg(not(feature = "parallel"))] + let iter = inputs.into_iter().enumerate(); + + #[cfg(feature = "parallel")] + let iter = inputs.into_par_iter().enumerate(); + + iter.for_each(|(row_index, ret_opcode_input)| { + unsafe { let input_tmp_1655 = ret_opcode_input; let input_pc_col0 = input_tmp_1655.pc; - trace[0].data[row_index] = input_pc_col0; + (*trace.data[0].get()).data[row_index] = input_pc_col0; let input_ap_col1 = input_tmp_1655.ap; - trace[1].data[row_index] = input_ap_col1; + (*trace.data[1].get()).data[row_index] = input_ap_col1; let input_fp_col2 = input_tmp_1655.fp; - trace[2].data[row_index] = input_fp_col2; + (*trace.data[2].get()).data[row_index] = input_fp_col2; // decode_instruction_c94bba24192ecf68. @@ -191,19 +229,21 @@ pub fn write_trace_simd( let memory_id_to_big_value_tmp_1660 = memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1659); - sub_components_inputs.verify_instruction_inputs[0].extend( - ( - input_pc_col0, - [M31_32766, M31_32767, M31_32767], - [ - M31_1, M31_1, M31_0, M31_1, M31_0, M31_0, M31_0, M31_1, M31_0, M31_0, - M31_0, M31_0, M31_0, M31_1, M31_0, - ], - ) - .unpack(), - ); - - lookup_data.verifyinstruction[0].push([ + (*sub_components_inputs.verify_instruction_inputs[0].get()) + [row_index * N_LANES..(row_index + 1) * N_LANES] + .copy_from_slice( + &( + input_pc_col0, + [M31_32766, M31_32767, M31_32767], + [ + M31_1, M31_1, M31_0, M31_1, M31_0, M31_0, M31_0, M31_1, M31_0, M31_0, + M31_0, M31_0, M31_0, M31_1, M31_0, + ], + ) + .unpack(), + ); + + (*lookup_data.verifyinstruction[0].get())[row_index] = ([ input_pc_col0, M31_32766, M31_32767, @@ -232,20 +272,24 @@ pub fn write_trace_simd( let memory_id_to_big_value_tmp_1663 = memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1662); let next_pc_id_col3 = memory_address_to_id_value_tmp_1662; - trace[3].data[row_index] = next_pc_id_col3; - sub_components_inputs.memory_address_to_id_inputs[0] - .extend(((input_fp_col2) - (M31_1)).unpack()); + (*trace.data[3].get()).data[row_index] = next_pc_id_col3; + (*sub_components_inputs.memory_address_to_id_inputs[0].get()) + [row_index * N_LANES..(row_index + 1) * N_LANES] + .copy_from_slice(&((input_fp_col2) - (M31_1)).unpack()); - lookup_data.memoryaddresstoid[0].push([((input_fp_col2) - (M31_1)), next_pc_id_col3]); + (*lookup_data.memoryaddresstoid[0].get())[row_index] = + ([((input_fp_col2) - (M31_1)), next_pc_id_col3]); let next_pc_limb_0_col4 = memory_id_to_big_value_tmp_1663.get_m31(0); - trace[4].data[row_index] = next_pc_limb_0_col4; + (*trace.data[4].get()).data[row_index] = next_pc_limb_0_col4; let next_pc_limb_1_col5 = memory_id_to_big_value_tmp_1663.get_m31(1); - trace[5].data[row_index] = next_pc_limb_1_col5; + (*trace.data[5].get()).data[row_index] = next_pc_limb_1_col5; let next_pc_limb_2_col6 = memory_id_to_big_value_tmp_1663.get_m31(2); - trace[6].data[row_index] = next_pc_limb_2_col6; - sub_components_inputs.memory_id_to_big_inputs[0].extend(next_pc_id_col3.unpack()); + (*trace.data[6].get()).data[row_index] = next_pc_limb_2_col6; + (*sub_components_inputs.memory_id_to_big_inputs[0].get()) + [row_index * N_LANES..(row_index + 1) * N_LANES] + .copy_from_slice(&next_pc_id_col3.unpack()); - lookup_data.memoryidtobig[0].push([ + (*lookup_data.memoryidtobig[0].get())[row_index] = ([ next_pc_id_col3, next_pc_limb_0_col4, next_pc_limb_1_col5, @@ -284,20 +328,23 @@ pub fn write_trace_simd( let memory_id_to_big_value_tmp_1665 = memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1664); let next_fp_id_col7 = memory_address_to_id_value_tmp_1664; - trace[7].data[row_index] = next_fp_id_col7; - sub_components_inputs.memory_address_to_id_inputs[1] - .extend(((input_fp_col2) - (M31_2)).unpack()); + (*trace.data[7].get()).data[row_index] = next_fp_id_col7; + (*sub_components_inputs.memory_address_to_id_inputs[1].get())[row_index * N_LANES..] + .copy_from_slice(&((input_fp_col2) - (M31_2)).unpack()); - lookup_data.memoryaddresstoid[1].push([((input_fp_col2) - (M31_2)), next_fp_id_col7]); + (*lookup_data.memoryaddresstoid[1].get())[row_index] = + ([((input_fp_col2) - (M31_2)), next_fp_id_col7]); let next_fp_limb_0_col8 = memory_id_to_big_value_tmp_1665.get_m31(0); - trace[8].data[row_index] = next_fp_limb_0_col8; + (*trace.data[8].get()).data[row_index] = next_fp_limb_0_col8; let next_fp_limb_1_col9 = memory_id_to_big_value_tmp_1665.get_m31(1); - trace[9].data[row_index] = next_fp_limb_1_col9; + (*trace.data[9].get()).data[row_index] = next_fp_limb_1_col9; let next_fp_limb_2_col10 = memory_id_to_big_value_tmp_1665.get_m31(2); - trace[10].data[row_index] = next_fp_limb_2_col10; - sub_components_inputs.memory_id_to_big_inputs[1].extend(next_fp_id_col7.unpack()); + (*trace.data[10].get()).data[row_index] = next_fp_limb_2_col10; + (*sub_components_inputs.memory_id_to_big_inputs[1].get()) + [row_index * N_LANES..(row_index + 1) * N_LANES] + .copy_from_slice(&next_fp_id_col7.unpack()); - lookup_data.memoryidtobig[1].push([ + (*lookup_data.memoryidtobig[1].get())[row_index] = [ next_fp_id_col7, next_fp_limb_0_col8, next_fp_limb_1_col9, @@ -327,38 +374,79 @@ pub fn write_trace_simd( M31_0, M31_0, M31_0, - ]); + ]; - lookup_data.opcodes[0].push([input_pc_col0, input_ap_col1, input_fp_col2]); - lookup_data.opcodes[1].push([ + (*lookup_data.opcodes[0].get())[row_index] = + ([input_pc_col0, input_ap_col1, input_fp_col2]); + (*lookup_data.opcodes[1].get())[row_index] = ([ (((next_pc_limb_0_col4) + ((next_pc_limb_1_col5) * (M31_512))) + ((next_pc_limb_2_col6) * (M31_262144))), input_ap_col1, (((next_fp_limb_0_col8) + ((next_fp_limb_1_col9) * (M31_512))) + ((next_fp_limb_2_col10) * (M31_262144))), ]); - }); - + } + }); + + let trace = match Arc::try_unwrap(trace) { + Ok(trace) => trace.inner(), + Err(_) => panic!("could not unwrap trace"), + }; + let sub_components_inputs = match Arc::try_unwrap(sub_components_inputs) { + Ok(sub_components_inputs) => sub_components_inputs, + Err(_) => panic!("could not unwrap sub_components_inputs"), + }; + let lookup_data = match Arc::try_unwrap(lookup_data) { + Ok(lookup_data) => lookup_data, + Err(_) => panic!("could not unwrap lookup_data"), + }; (trace, sub_components_inputs, lookup_data) } pub struct LookupData { - pub memoryaddresstoid: [Vec<[PackedM31; 2]>; 2], - pub memoryidtobig: [Vec<[PackedM31; 29]>; 2], - pub opcodes: [Vec<[PackedM31; 3]>; 2], - pub verifyinstruction: [Vec<[PackedM31; 19]>; 1], + pub memoryaddresstoid: [UnsafeCell>; 2], + pub memoryidtobig: [UnsafeCell>; 2], + pub opcodes: [UnsafeCell>; 2], + pub verifyinstruction: [UnsafeCell>; 1], } impl LookupData { #[allow(unused_variables)] - fn with_capacity(capacity: usize) -> Self { - Self { - memoryaddresstoid: [Vec::with_capacity(capacity), Vec::with_capacity(capacity)], - memoryidtobig: [Vec::with_capacity(capacity), Vec::with_capacity(capacity)], - opcodes: [Vec::with_capacity(capacity), Vec::with_capacity(capacity)], - verifyinstruction: [Vec::with_capacity(capacity)], + unsafe fn uninitialized(len: usize) -> Self { + let lookup_data = Self { + memoryaddresstoid: [ + Vec::with_capacity(len).into(), + Vec::with_capacity(len).into(), + ], + memoryidtobig: [ + Vec::with_capacity(len).into(), + Vec::with_capacity(len).into(), + ], + opcodes: [ + Vec::with_capacity(len).into(), + Vec::with_capacity(len).into(), + ], + verifyinstruction: [Vec::with_capacity(len).into()], + }; + unsafe { + lookup_data.memoryaddresstoid.iter().for_each(|vec| { + (*vec.get()).set_len(len); + }); + lookup_data.memoryidtobig.iter().for_each(|vec| { + (*vec.get()).set_len(len); + }); + lookup_data.opcodes.iter().for_each(|vec| { + (*vec.get()).set_len(len); + }); + lookup_data.verifyinstruction.iter().for_each(|vec| { + (*vec.get()).set_len(len); + }); } + + lookup_data } } +unsafe impl Send for LookupData {} +unsafe impl Sync for LookupData {} pub struct InteractionClaimGenerator { pub n_calls: usize, @@ -366,7 +454,7 @@ pub struct InteractionClaimGenerator { } impl InteractionClaimGenerator { pub fn write_interaction_trace( - self, + mut self, tree_builder: &mut TreeBuilder<'_, '_, SimdBackend, Blake2sMerkleChannel>, memoryaddresstoid_lookup_elements: &relations::MemoryAddressToId, memoryidtobig_lookup_elements: &relations::MemoryIdToBig, @@ -377,56 +465,56 @@ impl InteractionClaimGenerator { let mut logup_gen = LogupTraceGenerator::new(log_size); let mut col_gen = logup_gen.new_col(); - let lookup_row = &self.lookup_data.verifyinstruction[0]; - for (i, lookup_values) in lookup_row.iter().enumerate() { + let lookup_row = &mut self.lookup_data.verifyinstruction[0]; + for (i, lookup_values) in lookup_row.get_mut().iter().enumerate() { let denom = verifyinstruction_lookup_elements.combine(lookup_values); col_gen.write_frac(i, PackedQM31::one(), denom); } col_gen.finalize_col(); let mut col_gen = logup_gen.new_col(); - let lookup_row = &self.lookup_data.memoryaddresstoid[0]; - for (i, lookup_values) in lookup_row.iter().enumerate() { + let lookup_row = &mut self.lookup_data.memoryaddresstoid[0]; + for (i, lookup_values) in lookup_row.get_mut().iter().enumerate() { let denom = memoryaddresstoid_lookup_elements.combine(lookup_values); col_gen.write_frac(i, PackedQM31::one(), denom); } col_gen.finalize_col(); let mut col_gen = logup_gen.new_col(); - let lookup_row = &self.lookup_data.memoryidtobig[0]; - for (i, lookup_values) in lookup_row.iter().enumerate() { + let lookup_row = &mut self.lookup_data.memoryidtobig[0]; + for (i, lookup_values) in lookup_row.get_mut().iter().enumerate() { let denom = memoryidtobig_lookup_elements.combine(lookup_values); col_gen.write_frac(i, PackedQM31::one(), denom); } col_gen.finalize_col(); let mut col_gen = logup_gen.new_col(); - let lookup_row = &self.lookup_data.memoryaddresstoid[1]; - for (i, lookup_values) in lookup_row.iter().enumerate() { + let lookup_row = &mut self.lookup_data.memoryaddresstoid[1]; + for (i, lookup_values) in lookup_row.get_mut().iter().enumerate() { let denom = memoryaddresstoid_lookup_elements.combine(lookup_values); col_gen.write_frac(i, PackedQM31::one(), denom); } col_gen.finalize_col(); let mut col_gen = logup_gen.new_col(); - let lookup_row = &self.lookup_data.memoryidtobig[1]; - for (i, lookup_values) in lookup_row.iter().enumerate() { + let lookup_row = &mut self.lookup_data.memoryidtobig[1]; + for (i, lookup_values) in lookup_row.get_mut().iter().enumerate() { let denom = memoryidtobig_lookup_elements.combine(lookup_values); col_gen.write_frac(i, PackedQM31::one(), denom); } col_gen.finalize_col(); let mut col_gen = logup_gen.new_col(); - let lookup_row = &self.lookup_data.opcodes[0]; - for (i, lookup_values) in lookup_row.iter().enumerate() { + let lookup_row = &mut self.lookup_data.opcodes[0]; + for (i, lookup_values) in lookup_row.get_mut().iter().enumerate() { let denom = opcodes_lookup_elements.combine(lookup_values); col_gen.write_frac(i, PackedQM31::one(), denom); } col_gen.finalize_col(); let mut col_gen = logup_gen.new_col(); - let lookup_row = &self.lookup_data.opcodes[1]; - for (i, lookup_values) in lookup_row.iter().enumerate() { + let lookup_row = &mut self.lookup_data.opcodes[1]; + for (i, lookup_values) in lookup_row.get_mut().iter().enumerate() { let denom = opcodes_lookup_elements.combine(lookup_values); col_gen.write_frac(i, -PackedQM31::one(), denom); } From b4de5cb2cd1f906acf6b4fcddbc4229d1a4de12f Mon Sep 17 00:00:00 2001 From: Ohad Agadi Date: Tue, 10 Dec 2024 12:57:16 +0200 Subject: [PATCH 3/8] fixed bug with ret --- .../crates/prover/src/components/ret_opcode/prover.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs b/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs index 7f723748..a956ee65 100644 --- a/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/ret_opcode/prover.rs @@ -329,7 +329,8 @@ pub fn write_trace_simd( memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1664); let next_fp_id_col7 = memory_address_to_id_value_tmp_1664; (*trace.data[7].get()).data[row_index] = next_fp_id_col7; - (*sub_components_inputs.memory_address_to_id_inputs[1].get())[row_index * N_LANES..] + (*sub_components_inputs.memory_address_to_id_inputs[1].get()) + [row_index * N_LANES..(row_index + 1) * N_LANES] .copy_from_slice(&((input_fp_col2) - (M31_2)).unpack()); (*lookup_data.memoryaddresstoid[1].get())[row_index] = From 29c94344ad784cb19d67e67edcd5b8f1a3fef417 Mon Sep 17 00:00:00 2001 From: Ohad Agadi Date: Tue, 10 Dec 2024 12:13:37 +0200 Subject: [PATCH 4/8] ret bug fix --- stwo_cairo_prover/Cargo.lock | 2 +- stwo_cairo_prover/Cargo.toml | 2 +- .../component.rs | 26 +- .../prover.rs | 52 +- .../component.rs | 26 +- .../prover.rs | 52 +- .../component.rs | 26 +- .../prover.rs | 42 +- .../component.rs | 263 ++-- .../add_opcode_is_small_f_is_imm_f/prover.rs | 288 ++-- .../component.rs | 263 ++-- .../add_opcode_is_small_f_is_imm_t/prover.rs | 262 ++-- .../component.rs | 50 +- .../add_opcode_is_small_t_is_imm_f/prover.rs | 162 +-- .../component.rs | 50 +- .../add_opcode_is_small_t_is_imm_t/prover.rs | 136 +- .../component.rs | 24 +- .../prover.rs | 72 +- .../component.rs | 24 +- .../prover.rs | 46 +- .../component.rs | 34 +- .../prover.rs | 90 +- .../component.rs | 44 +- .../prover.rs | 74 +- .../component.rs | 44 +- .../prover.rs | 74 +- .../component.rs | 46 +- .../prover.rs | 74 +- .../components/generic_opcode/component.rs | 1154 +++++++++-------- .../src/components/generic_opcode/prover.rs | 840 ++++++------ .../component.rs | 24 +- .../prover.rs | 98 +- .../component.rs | 24 +- .../prover.rs | 98 +- .../component.rs | 50 +- .../prover.rs | 137 +- .../component.rs | 50 +- .../prover.rs | 137 +- .../component.rs | 24 +- .../prover.rs | 66 +- .../component.rs | 34 +- .../prover.rs | 84 +- .../component.rs | 26 +- .../prover.rs | 76 +- .../component.rs | 26 +- .../prover.rs | 50 +- .../memory/memory_address_to_id/component.rs | 4 +- .../memory/memory_id_to_big/component.rs | 16 +- .../component.rs | 572 ++++---- .../mul_opcode_is_small_f_is_imm_f/prover.rs | 710 +++++----- .../component.rs | 572 ++++---- .../mul_opcode_is_small_f_is_imm_t/prover.rs | 684 +++++----- .../range_check_vector/component.rs | 4 +- .../src/components/ret_opcode/component.rs | 34 +- .../verify_instruction/component.rs | 20 +- 55 files changed, 4011 insertions(+), 3951 deletions(-) diff --git a/stwo_cairo_prover/Cargo.lock b/stwo_cairo_prover/Cargo.lock index cad37264..1ce3e053 100644 --- a/stwo_cairo_prover/Cargo.lock +++ b/stwo_cairo_prover/Cargo.lock @@ -1633,7 +1633,7 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "stwo-prover" version = "0.1.1" -source = "git+https://github.com/starkware-libs/stwo?rev=76af3c6#76af3c6c7afc5b6e582ec5d16a03e74efe5a11ee" +source = "git+https://github.com/starkware-libs/stwo?rev=060f0e4#060f0e4e2b2d32bfad8eabc17ef66292d883e220" dependencies = [ "blake2", "blake3", diff --git a/stwo_cairo_prover/Cargo.toml b/stwo_cairo_prover/Cargo.toml index f5f03aff..8ac04604 100644 --- a/stwo_cairo_prover/Cargo.toml +++ b/stwo_cairo_prover/Cargo.toml @@ -30,7 +30,7 @@ serde = "1.0.207" serde_json = "1.0.1" sonic-rs = "0.3.10" # TODO(ShaharS): take stwo version from the source repository. -stwo-prover = { git = "https://github.com/starkware-libs/stwo", rev = "76af3c6", features = [ +stwo-prover = { git = "https://github.com/starkware-libs/stwo", rev = "060f0e4", features = [ "parallel", ] } thiserror = "1.0.63" diff --git a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/component.rs index e2c6b5d9..b6c6aff7 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/component.rs @@ -96,9 +96,9 @@ impl FrameworkEval for Eval { let op1_limb_1_col8 = eval.next_trace_mask(); let op1_limb_2_col9 = eval.next_trace_mask(); - // decode_instruction_95ed11aea2bb2eff. + // DecodeInstruction_95ed11aea2bb2eff. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -118,20 +118,20 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_ap_col1.clone() + (offset2_col3.clone() - M31_32768.clone())), op1_id_col4.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col5.clone() * (msb_col5.clone() - M31_1.clone()))); @@ -144,7 +144,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col6.clone()) * (msb_col5.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -178,9 +178,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col5.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -188,9 +188,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -203,7 +203,7 @@ impl FrameworkEval for Eval { - (M31_134217728.clone() * mid_limbs_set_col6.clone()))), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/prover.rs index 8b9ba632..8be1fa3a 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_f/prover.rs @@ -178,29 +178,29 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, add_ap_opcode_is_imm_f_op1_base_fp_f_input)| { - let input_tmp_916 = add_ap_opcode_is_imm_f_op1_base_fp_f_input; - let input_pc_col0 = input_tmp_916.pc; + let input_tmp_8b74_0 = add_ap_opcode_is_imm_f_op1_base_fp_f_input; + let input_pc_col0 = input_tmp_8b74_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_916.ap; + let input_ap_col1 = input_tmp_8b74_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_916.fp; + let input_fp_col2 = input_tmp_8b74_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_95ed11aea2bb2eff. + // DecodeInstruction_95ed11aea2bb2eff. - let memory_address_to_id_value_tmp_921 = + let memoryaddresstoid_value_tmp_8b74_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_922 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_921); - let offset2_tmp_923 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_922.get_m31(3))) + let memoryidtobig_value_tmp_8b74_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_8b74_1); + let offset2_tmp_8b74_3 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_8b74_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_922.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_8b74_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_922.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_8b74_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col3 = offset2_tmp_923.as_m31(); + let offset2_col3 = offset2_tmp_8b74_3.as_m31(); trace[3].data[row_index] = offset2_col3; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -237,13 +237,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_929 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_8b74_4 = memory_address_to_id_state .deduce_output(((input_ap_col1) + ((offset2_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_930 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_929); - let op1_id_col4 = memory_address_to_id_value_tmp_929; + let memoryidtobig_value_tmp_8b74_5 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_8b74_4); + let op1_id_col4 = memoryaddresstoid_value_tmp_8b74_4; trace[4].data[row_index] = op1_id_col4; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_ap_col1) + ((offset2_col3) - (M31_32768))).unpack()); @@ -253,20 +253,20 @@ pub fn write_trace_simd( op1_id_col4, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_931 = memory_id_to_big_value_tmp_930.get_m31(27).eq(M31_256); - let msb_col5 = msb_tmp_931.as_m31(); + let msb_tmp_8b74_6 = memoryidtobig_value_tmp_8b74_5.get_m31(27).eq(M31_256); + let msb_col5 = msb_tmp_8b74_6.as_m31(); trace[5].data[row_index] = msb_col5; - let mid_limbs_set_tmp_932 = memory_id_to_big_value_tmp_930.get_m31(20).eq(M31_511); - let mid_limbs_set_col6 = mid_limbs_set_tmp_932.as_m31(); + let mid_limbs_set_tmp_8b74_7 = memoryidtobig_value_tmp_8b74_5.get_m31(20).eq(M31_511); + let mid_limbs_set_col6 = mid_limbs_set_tmp_8b74_7.as_m31(); trace[6].data[row_index] = mid_limbs_set_col6; - let op1_limb_0_col7 = memory_id_to_big_value_tmp_930.get_m31(0); + let op1_limb_0_col7 = memoryidtobig_value_tmp_8b74_5.get_m31(0); trace[7].data[row_index] = op1_limb_0_col7; - let op1_limb_1_col8 = memory_id_to_big_value_tmp_930.get_m31(1); + let op1_limb_1_col8 = memoryidtobig_value_tmp_8b74_5.get_m31(1); trace[8].data[row_index] = op1_limb_1_col8; - let op1_limb_2_col9 = memory_id_to_big_value_tmp_930.get_m31(2); + let op1_limb_2_col9 = memoryidtobig_value_tmp_8b74_5.get_m31(2); trace[9].data[row_index] = op1_limb_2_col9; sub_components_inputs.memory_id_to_big_inputs[0].extend(op1_id_col4.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/component.rs index 1d5ea340..dfcb18d5 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/component.rs @@ -96,9 +96,9 @@ impl FrameworkEval for Eval { let op1_limb_1_col8 = eval.next_trace_mask(); let op1_limb_2_col9 = eval.next_trace_mask(); - // decode_instruction_3a1aeaa2aac0bdcf. + // DecodeInstruction_3a1aeaa2aac0bdcf. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -118,20 +118,20 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_fp_col2.clone() + (offset2_col3.clone() - M31_32768.clone())), op1_id_col4.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col5.clone() * (msb_col5.clone() - M31_1.clone()))); @@ -144,7 +144,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col6.clone()) * (msb_col5.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -178,9 +178,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col5.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -188,9 +188,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -203,7 +203,7 @@ impl FrameworkEval for Eval { - (M31_134217728.clone() * mid_limbs_set_col6.clone()))), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/prover.rs index ff59b6b8..5145ebc6 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_f_op1_base_fp_t/prover.rs @@ -178,29 +178,29 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, add_ap_opcode_is_imm_f_op1_base_fp_t_input)| { - let input_tmp_944 = add_ap_opcode_is_imm_f_op1_base_fp_t_input; - let input_pc_col0 = input_tmp_944.pc; + let input_tmp_c5eb_0 = add_ap_opcode_is_imm_f_op1_base_fp_t_input; + let input_pc_col0 = input_tmp_c5eb_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_944.ap; + let input_ap_col1 = input_tmp_c5eb_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_944.fp; + let input_fp_col2 = input_tmp_c5eb_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_3a1aeaa2aac0bdcf. + // DecodeInstruction_3a1aeaa2aac0bdcf. - let memory_address_to_id_value_tmp_949 = + let memoryaddresstoid_value_tmp_c5eb_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_950 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_949); - let offset2_tmp_951 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_950.get_m31(3))) + let memoryidtobig_value_tmp_c5eb_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c5eb_1); + let offset2_tmp_c5eb_3 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5eb_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_950.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5eb_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_950.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5eb_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col3 = offset2_tmp_951.as_m31(); + let offset2_col3 = offset2_tmp_c5eb_3.as_m31(); trace[3].data[row_index] = offset2_col3; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -237,13 +237,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_953 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_c5eb_4 = memory_address_to_id_state .deduce_output(((input_fp_col2) + ((offset2_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_954 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_953); - let op1_id_col4 = memory_address_to_id_value_tmp_953; + let memoryidtobig_value_tmp_c5eb_5 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c5eb_4); + let op1_id_col4 = memoryaddresstoid_value_tmp_c5eb_4; trace[4].data[row_index] = op1_id_col4; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_fp_col2) + ((offset2_col3) - (M31_32768))).unpack()); @@ -253,20 +253,20 @@ pub fn write_trace_simd( op1_id_col4, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_955 = memory_id_to_big_value_tmp_954.get_m31(27).eq(M31_256); - let msb_col5 = msb_tmp_955.as_m31(); + let msb_tmp_c5eb_6 = memoryidtobig_value_tmp_c5eb_5.get_m31(27).eq(M31_256); + let msb_col5 = msb_tmp_c5eb_6.as_m31(); trace[5].data[row_index] = msb_col5; - let mid_limbs_set_tmp_956 = memory_id_to_big_value_tmp_954.get_m31(20).eq(M31_511); - let mid_limbs_set_col6 = mid_limbs_set_tmp_956.as_m31(); + let mid_limbs_set_tmp_c5eb_7 = memoryidtobig_value_tmp_c5eb_5.get_m31(20).eq(M31_511); + let mid_limbs_set_col6 = mid_limbs_set_tmp_c5eb_7.as_m31(); trace[6].data[row_index] = mid_limbs_set_col6; - let op1_limb_0_col7 = memory_id_to_big_value_tmp_954.get_m31(0); + let op1_limb_0_col7 = memoryidtobig_value_tmp_c5eb_5.get_m31(0); trace[7].data[row_index] = op1_limb_0_col7; - let op1_limb_1_col8 = memory_id_to_big_value_tmp_954.get_m31(1); + let op1_limb_1_col8 = memoryidtobig_value_tmp_c5eb_5.get_m31(1); trace[8].data[row_index] = op1_limb_1_col8; - let op1_limb_2_col9 = memory_id_to_big_value_tmp_954.get_m31(2); + let op1_limb_2_col9 = memoryidtobig_value_tmp_c5eb_5.get_m31(2); trace[9].data[row_index] = op1_limb_2_col9; sub_components_inputs.memory_id_to_big_inputs[0].extend(op1_id_col4.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/component.rs index 2be7334f..2db9c28c 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/component.rs @@ -96,9 +96,9 @@ impl FrameworkEval for Eval { let op1_limb_1_col7 = eval.next_trace_mask(); let op1_limb_2_col8 = eval.next_trace_mask(); - // decode_instruction_a14b71db698d77c8. + // DecodeInstruction_a14b71db698d77c8. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -118,17 +118,17 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[(input_pc_col0.clone() + M31_1.clone()), op1_id_col3.clone()], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col4.clone() * (msb_col4.clone() - M31_1.clone()))); @@ -141,7 +141,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col5.clone()) * (msb_col4.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -175,9 +175,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col4.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -185,9 +185,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -200,7 +200,7 @@ impl FrameworkEval for Eval { - (M31_134217728.clone() * mid_limbs_set_col5.clone()))), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/prover.rs index b20dc6c8..90c1344c 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_ap_opcode_is_imm_t_op1_base_fp_f/prover.rs @@ -175,20 +175,20 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, add_ap_opcode_is_imm_t_op1_base_fp_f_input)| { - let input_tmp_933 = add_ap_opcode_is_imm_t_op1_base_fp_f_input; - let input_pc_col0 = input_tmp_933.pc; + let input_tmp_38a0_0 = add_ap_opcode_is_imm_t_op1_base_fp_f_input; + let input_pc_col0 = input_tmp_38a0_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_933.ap; + let input_ap_col1 = input_tmp_38a0_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_933.fp; + let input_fp_col2 = input_tmp_38a0_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_a14b71db698d77c8. + // DecodeInstruction_a14b71db698d77c8. - let memory_address_to_id_value_tmp_937 = + let memoryaddresstoid_value_tmp_38a0_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_938 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_937); + let memoryidtobig_value_tmp_38a0_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_38a0_1); sub_components_inputs.verify_instruction_inputs[0].extend( ( @@ -224,33 +224,33 @@ pub fn write_trace_simd( M31_0, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_940 = + let memoryaddresstoid_value_tmp_38a0_3 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_941 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_940); - let op1_id_col3 = memory_address_to_id_value_tmp_940; + let memoryidtobig_value_tmp_38a0_4 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_38a0_3); + let op1_id_col3 = memoryaddresstoid_value_tmp_38a0_3; trace[3].data[row_index] = op1_id_col3; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_pc_col0) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[0].push([((input_pc_col0) + (M31_1)), op1_id_col3]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_942 = memory_id_to_big_value_tmp_941.get_m31(27).eq(M31_256); - let msb_col4 = msb_tmp_942.as_m31(); + let msb_tmp_38a0_5 = memoryidtobig_value_tmp_38a0_4.get_m31(27).eq(M31_256); + let msb_col4 = msb_tmp_38a0_5.as_m31(); trace[4].data[row_index] = msb_col4; - let mid_limbs_set_tmp_943 = memory_id_to_big_value_tmp_941.get_m31(20).eq(M31_511); - let mid_limbs_set_col5 = mid_limbs_set_tmp_943.as_m31(); + let mid_limbs_set_tmp_38a0_6 = memoryidtobig_value_tmp_38a0_4.get_m31(20).eq(M31_511); + let mid_limbs_set_col5 = mid_limbs_set_tmp_38a0_6.as_m31(); trace[5].data[row_index] = mid_limbs_set_col5; - let op1_limb_0_col6 = memory_id_to_big_value_tmp_941.get_m31(0); + let op1_limb_0_col6 = memoryidtobig_value_tmp_38a0_4.get_m31(0); trace[6].data[row_index] = op1_limb_0_col6; - let op1_limb_1_col7 = memory_id_to_big_value_tmp_941.get_m31(1); + let op1_limb_1_col7 = memoryidtobig_value_tmp_38a0_4.get_m31(1); trace[7].data[row_index] = op1_limb_1_col7; - let op1_limb_2_col8 = memory_id_to_big_value_tmp_941.get_m31(2); + let op1_limb_2_col8 = memoryidtobig_value_tmp_38a0_4.get_m31(2); trace[8].data[row_index] = op1_limb_2_col8; sub_components_inputs.memory_id_to_big_inputs[0].extend(op1_id_col3.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/component.rs index 669bbc88..0862d836 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/component.rs @@ -181,9 +181,9 @@ impl FrameworkEval for Eval { let op1_limb_27_col97 = eval.next_trace_mask(); let sub_p_bit_col98 = eval.next_trace_mask(); - // decode_instruction_52ce7a4a3d9be19a. + // DecodeInstruction_52ce7a4a3d9be19a. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -207,16 +207,16 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); // Either flag op1_base_fp is on or flag op1_base_ap is on. eval.add_constraint( ((op1_base_fp_col8.clone() + op1_base_ap_col9.clone()) - M31_1.clone()), ); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -225,9 +225,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col11.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -261,11 +261,11 @@ impl FrameworkEval for Eval { dst_limb_26_col38.clone(), dst_limb_27_col39.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -274,9 +274,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), op0_id_col40.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -310,11 +310,11 @@ impl FrameworkEval for Eval { op0_limb_26_col67.clone(), op0_limb_27_col68.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -323,9 +323,9 @@ impl FrameworkEval for Eval { + (offset2_col5.clone() - M31_32768.clone())), op1_id_col69.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -359,262 +359,263 @@ impl FrameworkEval for Eval { op1_limb_26_col96.clone(), op1_limb_27_col97.clone(), ], - )]); + )); - // verify_add252. + // VerifyAdd252. // sub_p_bit is a bit. eval.add_constraint((sub_p_bit_col98.clone() * (sub_p_bit_col98.clone() - M31_1.clone()))); - let carry_tmp_1016 = (((((op0_limb_0_col41.clone() + op1_limb_0_col70.clone()) + let carry_tmp_f459_18 = (((((op0_limb_0_col41.clone() + op1_limb_0_col70.clone()) + M31_0.clone()) - dst_limb_0_col12.clone()) - (M31_1.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1016.clone() - * ((carry_tmp_1016.clone() * carry_tmp_1016.clone()) - M31_1.clone())), + (carry_tmp_f459_18.clone() + * ((carry_tmp_f459_18.clone() * carry_tmp_f459_18.clone()) - M31_1.clone())), ); - let carry_tmp_1017 = (((((op0_limb_1_col42.clone() + op1_limb_1_col71.clone()) - + carry_tmp_1016.clone()) + let carry_tmp_f459_19 = (((((op0_limb_1_col42.clone() + op1_limb_1_col71.clone()) + + carry_tmp_f459_18.clone()) - dst_limb_1_col13.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1017.clone() - * ((carry_tmp_1017.clone() * carry_tmp_1017.clone()) - M31_1.clone())), + (carry_tmp_f459_19.clone() + * ((carry_tmp_f459_19.clone() * carry_tmp_f459_19.clone()) - M31_1.clone())), ); - let carry_tmp_1018 = (((((op0_limb_2_col43.clone() + op1_limb_2_col72.clone()) - + carry_tmp_1017.clone()) + let carry_tmp_f459_20 = (((((op0_limb_2_col43.clone() + op1_limb_2_col72.clone()) + + carry_tmp_f459_19.clone()) - dst_limb_2_col14.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1018.clone() - * ((carry_tmp_1018.clone() * carry_tmp_1018.clone()) - M31_1.clone())), + (carry_tmp_f459_20.clone() + * ((carry_tmp_f459_20.clone() * carry_tmp_f459_20.clone()) - M31_1.clone())), ); - let carry_tmp_1019 = (((((op0_limb_3_col44.clone() + op1_limb_3_col73.clone()) - + carry_tmp_1018.clone()) + let carry_tmp_f459_21 = (((((op0_limb_3_col44.clone() + op1_limb_3_col73.clone()) + + carry_tmp_f459_20.clone()) - dst_limb_3_col15.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1019.clone() - * ((carry_tmp_1019.clone() * carry_tmp_1019.clone()) - M31_1.clone())), + (carry_tmp_f459_21.clone() + * ((carry_tmp_f459_21.clone() * carry_tmp_f459_21.clone()) - M31_1.clone())), ); - let carry_tmp_1020 = (((((op0_limb_4_col45.clone() + op1_limb_4_col74.clone()) - + carry_tmp_1019.clone()) + let carry_tmp_f459_22 = (((((op0_limb_4_col45.clone() + op1_limb_4_col74.clone()) + + carry_tmp_f459_21.clone()) - dst_limb_4_col16.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1020.clone() - * ((carry_tmp_1020.clone() * carry_tmp_1020.clone()) - M31_1.clone())), + (carry_tmp_f459_22.clone() + * ((carry_tmp_f459_22.clone() * carry_tmp_f459_22.clone()) - M31_1.clone())), ); - let carry_tmp_1021 = (((((op0_limb_5_col46.clone() + op1_limb_5_col75.clone()) - + carry_tmp_1020.clone()) + let carry_tmp_f459_23 = (((((op0_limb_5_col46.clone() + op1_limb_5_col75.clone()) + + carry_tmp_f459_22.clone()) - dst_limb_5_col17.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1021.clone() - * ((carry_tmp_1021.clone() * carry_tmp_1021.clone()) - M31_1.clone())), + (carry_tmp_f459_23.clone() + * ((carry_tmp_f459_23.clone() * carry_tmp_f459_23.clone()) - M31_1.clone())), ); - let carry_tmp_1022 = (((((op0_limb_6_col47.clone() + op1_limb_6_col76.clone()) - + carry_tmp_1021.clone()) + let carry_tmp_f459_24 = (((((op0_limb_6_col47.clone() + op1_limb_6_col76.clone()) + + carry_tmp_f459_23.clone()) - dst_limb_6_col18.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1022.clone() - * ((carry_tmp_1022.clone() * carry_tmp_1022.clone()) - M31_1.clone())), + (carry_tmp_f459_24.clone() + * ((carry_tmp_f459_24.clone() * carry_tmp_f459_24.clone()) - M31_1.clone())), ); - let carry_tmp_1023 = (((((op0_limb_7_col48.clone() + op1_limb_7_col77.clone()) - + carry_tmp_1022.clone()) + let carry_tmp_f459_25 = (((((op0_limb_7_col48.clone() + op1_limb_7_col77.clone()) + + carry_tmp_f459_24.clone()) - dst_limb_7_col19.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1023.clone() - * ((carry_tmp_1023.clone() * carry_tmp_1023.clone()) - M31_1.clone())), + (carry_tmp_f459_25.clone() + * ((carry_tmp_f459_25.clone() * carry_tmp_f459_25.clone()) - M31_1.clone())), ); - let carry_tmp_1024 = (((((op0_limb_8_col49.clone() + op1_limb_8_col78.clone()) - + carry_tmp_1023.clone()) + let carry_tmp_f459_26 = (((((op0_limb_8_col49.clone() + op1_limb_8_col78.clone()) + + carry_tmp_f459_25.clone()) - dst_limb_8_col20.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1024.clone() - * ((carry_tmp_1024.clone() * carry_tmp_1024.clone()) - M31_1.clone())), + (carry_tmp_f459_26.clone() + * ((carry_tmp_f459_26.clone() * carry_tmp_f459_26.clone()) - M31_1.clone())), ); - let carry_tmp_1025 = (((((op0_limb_9_col50.clone() + op1_limb_9_col79.clone()) - + carry_tmp_1024.clone()) + let carry_tmp_f459_27 = (((((op0_limb_9_col50.clone() + op1_limb_9_col79.clone()) + + carry_tmp_f459_26.clone()) - dst_limb_9_col21.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1025.clone() - * ((carry_tmp_1025.clone() * carry_tmp_1025.clone()) - M31_1.clone())), + (carry_tmp_f459_27.clone() + * ((carry_tmp_f459_27.clone() * carry_tmp_f459_27.clone()) - M31_1.clone())), ); - let carry_tmp_1026 = (((((op0_limb_10_col51.clone() + op1_limb_10_col80.clone()) - + carry_tmp_1025.clone()) + let carry_tmp_f459_28 = (((((op0_limb_10_col51.clone() + op1_limb_10_col80.clone()) + + carry_tmp_f459_27.clone()) - dst_limb_10_col22.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1026.clone() - * ((carry_tmp_1026.clone() * carry_tmp_1026.clone()) - M31_1.clone())), + (carry_tmp_f459_28.clone() + * ((carry_tmp_f459_28.clone() * carry_tmp_f459_28.clone()) - M31_1.clone())), ); - let carry_tmp_1027 = (((((op0_limb_11_col52.clone() + op1_limb_11_col81.clone()) - + carry_tmp_1026.clone()) + let carry_tmp_f459_29 = (((((op0_limb_11_col52.clone() + op1_limb_11_col81.clone()) + + carry_tmp_f459_28.clone()) - dst_limb_11_col23.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1027.clone() - * ((carry_tmp_1027.clone() * carry_tmp_1027.clone()) - M31_1.clone())), + (carry_tmp_f459_29.clone() + * ((carry_tmp_f459_29.clone() * carry_tmp_f459_29.clone()) - M31_1.clone())), ); - let carry_tmp_1028 = (((((op0_limb_12_col53.clone() + op1_limb_12_col82.clone()) - + carry_tmp_1027.clone()) + let carry_tmp_f459_30 = (((((op0_limb_12_col53.clone() + op1_limb_12_col82.clone()) + + carry_tmp_f459_29.clone()) - dst_limb_12_col24.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1028.clone() - * ((carry_tmp_1028.clone() * carry_tmp_1028.clone()) - M31_1.clone())), + (carry_tmp_f459_30.clone() + * ((carry_tmp_f459_30.clone() * carry_tmp_f459_30.clone()) - M31_1.clone())), ); - let carry_tmp_1029 = (((((op0_limb_13_col54.clone() + op1_limb_13_col83.clone()) - + carry_tmp_1028.clone()) + let carry_tmp_f459_31 = (((((op0_limb_13_col54.clone() + op1_limb_13_col83.clone()) + + carry_tmp_f459_30.clone()) - dst_limb_13_col25.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1029.clone() - * ((carry_tmp_1029.clone() * carry_tmp_1029.clone()) - M31_1.clone())), + (carry_tmp_f459_31.clone() + * ((carry_tmp_f459_31.clone() * carry_tmp_f459_31.clone()) - M31_1.clone())), ); - let carry_tmp_1030 = (((((op0_limb_14_col55.clone() + op1_limb_14_col84.clone()) - + carry_tmp_1029.clone()) + let carry_tmp_f459_32 = (((((op0_limb_14_col55.clone() + op1_limb_14_col84.clone()) + + carry_tmp_f459_31.clone()) - dst_limb_14_col26.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1030.clone() - * ((carry_tmp_1030.clone() * carry_tmp_1030.clone()) - M31_1.clone())), + (carry_tmp_f459_32.clone() + * ((carry_tmp_f459_32.clone() * carry_tmp_f459_32.clone()) - M31_1.clone())), ); - let carry_tmp_1031 = (((((op0_limb_15_col56.clone() + op1_limb_15_col85.clone()) - + carry_tmp_1030.clone()) + let carry_tmp_f459_33 = (((((op0_limb_15_col56.clone() + op1_limb_15_col85.clone()) + + carry_tmp_f459_32.clone()) - dst_limb_15_col27.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1031.clone() - * ((carry_tmp_1031.clone() * carry_tmp_1031.clone()) - M31_1.clone())), + (carry_tmp_f459_33.clone() + * ((carry_tmp_f459_33.clone() * carry_tmp_f459_33.clone()) - M31_1.clone())), ); - let carry_tmp_1032 = (((((op0_limb_16_col57.clone() + op1_limb_16_col86.clone()) - + carry_tmp_1031.clone()) + let carry_tmp_f459_34 = (((((op0_limb_16_col57.clone() + op1_limb_16_col86.clone()) + + carry_tmp_f459_33.clone()) - dst_limb_16_col28.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1032.clone() - * ((carry_tmp_1032.clone() * carry_tmp_1032.clone()) - M31_1.clone())), + (carry_tmp_f459_34.clone() + * ((carry_tmp_f459_34.clone() * carry_tmp_f459_34.clone()) - M31_1.clone())), ); - let carry_tmp_1033 = (((((op0_limb_17_col58.clone() + op1_limb_17_col87.clone()) - + carry_tmp_1032.clone()) + let carry_tmp_f459_35 = (((((op0_limb_17_col58.clone() + op1_limb_17_col87.clone()) + + carry_tmp_f459_34.clone()) - dst_limb_17_col29.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1033.clone() - * ((carry_tmp_1033.clone() * carry_tmp_1033.clone()) - M31_1.clone())), + (carry_tmp_f459_35.clone() + * ((carry_tmp_f459_35.clone() * carry_tmp_f459_35.clone()) - M31_1.clone())), ); - let carry_tmp_1034 = (((((op0_limb_18_col59.clone() + op1_limb_18_col88.clone()) - + carry_tmp_1033.clone()) + let carry_tmp_f459_36 = (((((op0_limb_18_col59.clone() + op1_limb_18_col88.clone()) + + carry_tmp_f459_35.clone()) - dst_limb_18_col30.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1034.clone() - * ((carry_tmp_1034.clone() * carry_tmp_1034.clone()) - M31_1.clone())), + (carry_tmp_f459_36.clone() + * ((carry_tmp_f459_36.clone() * carry_tmp_f459_36.clone()) - M31_1.clone())), ); - let carry_tmp_1035 = (((((op0_limb_19_col60.clone() + op1_limb_19_col89.clone()) - + carry_tmp_1034.clone()) + let carry_tmp_f459_37 = (((((op0_limb_19_col60.clone() + op1_limb_19_col89.clone()) + + carry_tmp_f459_36.clone()) - dst_limb_19_col31.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1035.clone() - * ((carry_tmp_1035.clone() * carry_tmp_1035.clone()) - M31_1.clone())), + (carry_tmp_f459_37.clone() + * ((carry_tmp_f459_37.clone() * carry_tmp_f459_37.clone()) - M31_1.clone())), ); - let carry_tmp_1036 = (((((op0_limb_20_col61.clone() + op1_limb_20_col90.clone()) - + carry_tmp_1035.clone()) + let carry_tmp_f459_38 = (((((op0_limb_20_col61.clone() + op1_limb_20_col90.clone()) + + carry_tmp_f459_37.clone()) - dst_limb_20_col32.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1036.clone() - * ((carry_tmp_1036.clone() * carry_tmp_1036.clone()) - M31_1.clone())), + (carry_tmp_f459_38.clone() + * ((carry_tmp_f459_38.clone() * carry_tmp_f459_38.clone()) - M31_1.clone())), ); - let carry_tmp_1037 = (((((op0_limb_21_col62.clone() + op1_limb_21_col91.clone()) - + carry_tmp_1036.clone()) + let carry_tmp_f459_39 = (((((op0_limb_21_col62.clone() + op1_limb_21_col91.clone()) + + carry_tmp_f459_38.clone()) - dst_limb_21_col33.clone()) - (M31_136.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1037.clone() - * ((carry_tmp_1037.clone() * carry_tmp_1037.clone()) - M31_1.clone())), + (carry_tmp_f459_39.clone() + * ((carry_tmp_f459_39.clone() * carry_tmp_f459_39.clone()) - M31_1.clone())), ); - let carry_tmp_1038 = (((((op0_limb_22_col63.clone() + op1_limb_22_col92.clone()) - + carry_tmp_1037.clone()) + let carry_tmp_f459_40 = (((((op0_limb_22_col63.clone() + op1_limb_22_col92.clone()) + + carry_tmp_f459_39.clone()) - dst_limb_22_col34.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1038.clone() - * ((carry_tmp_1038.clone() * carry_tmp_1038.clone()) - M31_1.clone())), + (carry_tmp_f459_40.clone() + * ((carry_tmp_f459_40.clone() * carry_tmp_f459_40.clone()) - M31_1.clone())), ); - let carry_tmp_1039 = (((((op0_limb_23_col64.clone() + op1_limb_23_col93.clone()) - + carry_tmp_1038.clone()) + let carry_tmp_f459_41 = (((((op0_limb_23_col64.clone() + op1_limb_23_col93.clone()) + + carry_tmp_f459_40.clone()) - dst_limb_23_col35.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1039.clone() - * ((carry_tmp_1039.clone() * carry_tmp_1039.clone()) - M31_1.clone())), + (carry_tmp_f459_41.clone() + * ((carry_tmp_f459_41.clone() * carry_tmp_f459_41.clone()) - M31_1.clone())), ); - let carry_tmp_1040 = (((((op0_limb_24_col65.clone() + op1_limb_24_col94.clone()) - + carry_tmp_1039.clone()) + let carry_tmp_f459_42 = (((((op0_limb_24_col65.clone() + op1_limb_24_col94.clone()) + + carry_tmp_f459_41.clone()) - dst_limb_24_col36.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1040.clone() - * ((carry_tmp_1040.clone() * carry_tmp_1040.clone()) - M31_1.clone())), + (carry_tmp_f459_42.clone() + * ((carry_tmp_f459_42.clone() * carry_tmp_f459_42.clone()) - M31_1.clone())), ); - let carry_tmp_1041 = (((((op0_limb_25_col66.clone() + op1_limb_25_col95.clone()) - + carry_tmp_1040.clone()) + let carry_tmp_f459_43 = (((((op0_limb_25_col66.clone() + op1_limb_25_col95.clone()) + + carry_tmp_f459_42.clone()) - dst_limb_25_col37.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1041.clone() - * ((carry_tmp_1041.clone() * carry_tmp_1041.clone()) - M31_1.clone())), + (carry_tmp_f459_43.clone() + * ((carry_tmp_f459_43.clone() * carry_tmp_f459_43.clone()) - M31_1.clone())), ); - let carry_tmp_1042 = (((((op0_limb_26_col67.clone() + op1_limb_26_col96.clone()) - + carry_tmp_1041.clone()) + let carry_tmp_f459_44 = (((((op0_limb_26_col67.clone() + op1_limb_26_col96.clone()) + + carry_tmp_f459_43.clone()) - dst_limb_26_col38.clone()) - (M31_0.clone() * sub_p_bit_col98.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1042.clone() - * ((carry_tmp_1042.clone() * carry_tmp_1042.clone()) - M31_1.clone())), + (carry_tmp_f459_44.clone() + * ((carry_tmp_f459_44.clone() * carry_tmp_f459_44.clone()) - M31_1.clone())), ); eval.add_constraint( - ((((op0_limb_27_col68.clone() + op1_limb_27_col97.clone()) + carry_tmp_1042.clone()) + ((((op0_limb_27_col68.clone() + op1_limb_27_col97.clone()) + + carry_tmp_f459_44.clone()) - dst_limb_27_col39.clone()) - (M31_256.clone() * sub_p_bit_col98.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -622,9 +623,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -632,7 +633,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col10.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/prover.rs index e0562af2..8c0088ef 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_f/prover.rs @@ -190,91 +190,91 @@ pub fn write_trace_simd( .into_iter() .enumerate() .for_each(|(row_index, add_opcode_is_small_f_is_imm_f_input)| { - let input_tmp_986 = add_opcode_is_small_f_is_imm_f_input; - let input_pc_col0 = input_tmp_986.pc; + let input_tmp_f459_0 = add_opcode_is_small_f_is_imm_f_input; + let input_pc_col0 = input_tmp_f459_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_986.ap; + let input_ap_col1 = input_tmp_f459_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_986.fp; + let input_fp_col2 = input_tmp_f459_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_52ce7a4a3d9be19a. + // DecodeInstruction_52ce7a4a3d9be19a. - let memory_address_to_id_value_tmp_998 = + let memoryaddresstoid_value_tmp_f459_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_999 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_998); - let offset0_tmp_1000 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(1))) + let memoryidtobig_value_tmp_f459_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f459_1); + let offset0_tmp_f459_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1000.as_m31(); + let offset0_col3 = offset0_tmp_f459_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset1_tmp_1001 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(1))) + let offset1_tmp_f459_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col4 = offset1_tmp_1001.as_m31(); + let offset1_col4 = offset1_tmp_f459_4.as_m31(); trace[4].data[row_index] = offset1_col4; - let offset2_tmp_1002 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(3))) + let offset2_tmp_f459_5 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col5 = offset2_tmp_1002.as_m31(); + let offset2_col5 = offset2_tmp_f459_5.as_m31(); trace[5].data[row_index] = offset2_col5; - let dst_base_fp_tmp_1003 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(5))) + let dst_base_fp_tmp_f459_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col6 = dst_base_fp_tmp_1003.as_m31(); + let dst_base_fp_col6 = dst_base_fp_tmp_f459_6.as_m31(); trace[6].data[row_index] = dst_base_fp_col6; - let op0_base_fp_tmp_1004 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(5))) + let op0_base_fp_tmp_f459_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col7 = op0_base_fp_tmp_1004.as_m31(); + let op0_base_fp_col7 = op0_base_fp_tmp_f459_7.as_m31(); trace[7].data[row_index] = op0_base_fp_col7; - let op1_base_fp_tmp_1005 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(5))) + let op1_base_fp_tmp_f459_8 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(6))) << (UInt16_6))) >> (UInt16_3)) & (UInt16_1)); - let op1_base_fp_col8 = op1_base_fp_tmp_1005.as_m31(); + let op1_base_fp_col8 = op1_base_fp_tmp_f459_8.as_m31(); trace[8].data[row_index] = op1_base_fp_col8; - let op1_base_ap_tmp_1006 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(5))) + let op1_base_ap_tmp_f459_9 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(6))) << (UInt16_6))) >> (UInt16_4)) & (UInt16_1)); - let op1_base_ap_col9 = op1_base_ap_tmp_1006.as_m31(); + let op1_base_ap_col9 = op1_base_ap_tmp_f459_9.as_m31(); trace[9].data[row_index] = op1_base_ap_col9; - let ap_update_add_1_tmp_1007 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(5))) + let ap_update_add_1_tmp_f459_10 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_999.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f459_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col10 = ap_update_add_1_tmp_1007.as_m31(); + let ap_update_add_1_col10 = ap_update_add_1_tmp_f459_10.as_m31(); trace[10].data[row_index] = ap_update_add_1_col10; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -324,16 +324,16 @@ pub fn write_trace_simd( M31_1, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1009 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_f459_11 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col6) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col6)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1010 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1009); - let dst_id_col11 = memory_address_to_id_value_tmp_1009; + let memoryidtobig_value_tmp_f459_12 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f459_11); + let dst_id_col11 = memoryaddresstoid_value_tmp_f459_11; trace[11].data[row_index] = dst_id_col11; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col6) * (input_fp_col2)) @@ -348,61 +348,61 @@ pub fn write_trace_simd( + ((offset0_col3) - (M31_32768))), dst_id_col11, ]); - let dst_limb_0_col12 = memory_id_to_big_value_tmp_1010.get_m31(0); + let dst_limb_0_col12 = memoryidtobig_value_tmp_f459_12.get_m31(0); trace[12].data[row_index] = dst_limb_0_col12; - let dst_limb_1_col13 = memory_id_to_big_value_tmp_1010.get_m31(1); + let dst_limb_1_col13 = memoryidtobig_value_tmp_f459_12.get_m31(1); trace[13].data[row_index] = dst_limb_1_col13; - let dst_limb_2_col14 = memory_id_to_big_value_tmp_1010.get_m31(2); + let dst_limb_2_col14 = memoryidtobig_value_tmp_f459_12.get_m31(2); trace[14].data[row_index] = dst_limb_2_col14; - let dst_limb_3_col15 = memory_id_to_big_value_tmp_1010.get_m31(3); + let dst_limb_3_col15 = memoryidtobig_value_tmp_f459_12.get_m31(3); trace[15].data[row_index] = dst_limb_3_col15; - let dst_limb_4_col16 = memory_id_to_big_value_tmp_1010.get_m31(4); + let dst_limb_4_col16 = memoryidtobig_value_tmp_f459_12.get_m31(4); trace[16].data[row_index] = dst_limb_4_col16; - let dst_limb_5_col17 = memory_id_to_big_value_tmp_1010.get_m31(5); + let dst_limb_5_col17 = memoryidtobig_value_tmp_f459_12.get_m31(5); trace[17].data[row_index] = dst_limb_5_col17; - let dst_limb_6_col18 = memory_id_to_big_value_tmp_1010.get_m31(6); + let dst_limb_6_col18 = memoryidtobig_value_tmp_f459_12.get_m31(6); trace[18].data[row_index] = dst_limb_6_col18; - let dst_limb_7_col19 = memory_id_to_big_value_tmp_1010.get_m31(7); + let dst_limb_7_col19 = memoryidtobig_value_tmp_f459_12.get_m31(7); trace[19].data[row_index] = dst_limb_7_col19; - let dst_limb_8_col20 = memory_id_to_big_value_tmp_1010.get_m31(8); + let dst_limb_8_col20 = memoryidtobig_value_tmp_f459_12.get_m31(8); trace[20].data[row_index] = dst_limb_8_col20; - let dst_limb_9_col21 = memory_id_to_big_value_tmp_1010.get_m31(9); + let dst_limb_9_col21 = memoryidtobig_value_tmp_f459_12.get_m31(9); trace[21].data[row_index] = dst_limb_9_col21; - let dst_limb_10_col22 = memory_id_to_big_value_tmp_1010.get_m31(10); + let dst_limb_10_col22 = memoryidtobig_value_tmp_f459_12.get_m31(10); trace[22].data[row_index] = dst_limb_10_col22; - let dst_limb_11_col23 = memory_id_to_big_value_tmp_1010.get_m31(11); + let dst_limb_11_col23 = memoryidtobig_value_tmp_f459_12.get_m31(11); trace[23].data[row_index] = dst_limb_11_col23; - let dst_limb_12_col24 = memory_id_to_big_value_tmp_1010.get_m31(12); + let dst_limb_12_col24 = memoryidtobig_value_tmp_f459_12.get_m31(12); trace[24].data[row_index] = dst_limb_12_col24; - let dst_limb_13_col25 = memory_id_to_big_value_tmp_1010.get_m31(13); + let dst_limb_13_col25 = memoryidtobig_value_tmp_f459_12.get_m31(13); trace[25].data[row_index] = dst_limb_13_col25; - let dst_limb_14_col26 = memory_id_to_big_value_tmp_1010.get_m31(14); + let dst_limb_14_col26 = memoryidtobig_value_tmp_f459_12.get_m31(14); trace[26].data[row_index] = dst_limb_14_col26; - let dst_limb_15_col27 = memory_id_to_big_value_tmp_1010.get_m31(15); + let dst_limb_15_col27 = memoryidtobig_value_tmp_f459_12.get_m31(15); trace[27].data[row_index] = dst_limb_15_col27; - let dst_limb_16_col28 = memory_id_to_big_value_tmp_1010.get_m31(16); + let dst_limb_16_col28 = memoryidtobig_value_tmp_f459_12.get_m31(16); trace[28].data[row_index] = dst_limb_16_col28; - let dst_limb_17_col29 = memory_id_to_big_value_tmp_1010.get_m31(17); + let dst_limb_17_col29 = memoryidtobig_value_tmp_f459_12.get_m31(17); trace[29].data[row_index] = dst_limb_17_col29; - let dst_limb_18_col30 = memory_id_to_big_value_tmp_1010.get_m31(18); + let dst_limb_18_col30 = memoryidtobig_value_tmp_f459_12.get_m31(18); trace[30].data[row_index] = dst_limb_18_col30; - let dst_limb_19_col31 = memory_id_to_big_value_tmp_1010.get_m31(19); + let dst_limb_19_col31 = memoryidtobig_value_tmp_f459_12.get_m31(19); trace[31].data[row_index] = dst_limb_19_col31; - let dst_limb_20_col32 = memory_id_to_big_value_tmp_1010.get_m31(20); + let dst_limb_20_col32 = memoryidtobig_value_tmp_f459_12.get_m31(20); trace[32].data[row_index] = dst_limb_20_col32; - let dst_limb_21_col33 = memory_id_to_big_value_tmp_1010.get_m31(21); + let dst_limb_21_col33 = memoryidtobig_value_tmp_f459_12.get_m31(21); trace[33].data[row_index] = dst_limb_21_col33; - let dst_limb_22_col34 = memory_id_to_big_value_tmp_1010.get_m31(22); + let dst_limb_22_col34 = memoryidtobig_value_tmp_f459_12.get_m31(22); trace[34].data[row_index] = dst_limb_22_col34; - let dst_limb_23_col35 = memory_id_to_big_value_tmp_1010.get_m31(23); + let dst_limb_23_col35 = memoryidtobig_value_tmp_f459_12.get_m31(23); trace[35].data[row_index] = dst_limb_23_col35; - let dst_limb_24_col36 = memory_id_to_big_value_tmp_1010.get_m31(24); + let dst_limb_24_col36 = memoryidtobig_value_tmp_f459_12.get_m31(24); trace[36].data[row_index] = dst_limb_24_col36; - let dst_limb_25_col37 = memory_id_to_big_value_tmp_1010.get_m31(25); + let dst_limb_25_col37 = memoryidtobig_value_tmp_f459_12.get_m31(25); trace[37].data[row_index] = dst_limb_25_col37; - let dst_limb_26_col38 = memory_id_to_big_value_tmp_1010.get_m31(26); + let dst_limb_26_col38 = memoryidtobig_value_tmp_f459_12.get_m31(26); trace[38].data[row_index] = dst_limb_26_col38; - let dst_limb_27_col39 = memory_id_to_big_value_tmp_1010.get_m31(27); + let dst_limb_27_col39 = memoryidtobig_value_tmp_f459_12.get_m31(27); trace[39].data[row_index] = dst_limb_27_col39; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col11.unpack()); @@ -438,16 +438,16 @@ pub fn write_trace_simd( dst_limb_27_col39, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1011 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_f459_13 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col7) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col7)) * (input_ap_col1))) + ((offset1_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1012 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1011); - let op0_id_col40 = memory_address_to_id_value_tmp_1011; + let memoryidtobig_value_tmp_f459_14 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f459_13); + let op0_id_col40 = memoryaddresstoid_value_tmp_f459_13; trace[40].data[row_index] = op0_id_col40; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((op0_base_fp_col7) * (input_fp_col2)) @@ -462,61 +462,61 @@ pub fn write_trace_simd( + ((offset1_col4) - (M31_32768))), op0_id_col40, ]); - let op0_limb_0_col41 = memory_id_to_big_value_tmp_1012.get_m31(0); + let op0_limb_0_col41 = memoryidtobig_value_tmp_f459_14.get_m31(0); trace[41].data[row_index] = op0_limb_0_col41; - let op0_limb_1_col42 = memory_id_to_big_value_tmp_1012.get_m31(1); + let op0_limb_1_col42 = memoryidtobig_value_tmp_f459_14.get_m31(1); trace[42].data[row_index] = op0_limb_1_col42; - let op0_limb_2_col43 = memory_id_to_big_value_tmp_1012.get_m31(2); + let op0_limb_2_col43 = memoryidtobig_value_tmp_f459_14.get_m31(2); trace[43].data[row_index] = op0_limb_2_col43; - let op0_limb_3_col44 = memory_id_to_big_value_tmp_1012.get_m31(3); + let op0_limb_3_col44 = memoryidtobig_value_tmp_f459_14.get_m31(3); trace[44].data[row_index] = op0_limb_3_col44; - let op0_limb_4_col45 = memory_id_to_big_value_tmp_1012.get_m31(4); + let op0_limb_4_col45 = memoryidtobig_value_tmp_f459_14.get_m31(4); trace[45].data[row_index] = op0_limb_4_col45; - let op0_limb_5_col46 = memory_id_to_big_value_tmp_1012.get_m31(5); + let op0_limb_5_col46 = memoryidtobig_value_tmp_f459_14.get_m31(5); trace[46].data[row_index] = op0_limb_5_col46; - let op0_limb_6_col47 = memory_id_to_big_value_tmp_1012.get_m31(6); + let op0_limb_6_col47 = memoryidtobig_value_tmp_f459_14.get_m31(6); trace[47].data[row_index] = op0_limb_6_col47; - let op0_limb_7_col48 = memory_id_to_big_value_tmp_1012.get_m31(7); + let op0_limb_7_col48 = memoryidtobig_value_tmp_f459_14.get_m31(7); trace[48].data[row_index] = op0_limb_7_col48; - let op0_limb_8_col49 = memory_id_to_big_value_tmp_1012.get_m31(8); + let op0_limb_8_col49 = memoryidtobig_value_tmp_f459_14.get_m31(8); trace[49].data[row_index] = op0_limb_8_col49; - let op0_limb_9_col50 = memory_id_to_big_value_tmp_1012.get_m31(9); + let op0_limb_9_col50 = memoryidtobig_value_tmp_f459_14.get_m31(9); trace[50].data[row_index] = op0_limb_9_col50; - let op0_limb_10_col51 = memory_id_to_big_value_tmp_1012.get_m31(10); + let op0_limb_10_col51 = memoryidtobig_value_tmp_f459_14.get_m31(10); trace[51].data[row_index] = op0_limb_10_col51; - let op0_limb_11_col52 = memory_id_to_big_value_tmp_1012.get_m31(11); + let op0_limb_11_col52 = memoryidtobig_value_tmp_f459_14.get_m31(11); trace[52].data[row_index] = op0_limb_11_col52; - let op0_limb_12_col53 = memory_id_to_big_value_tmp_1012.get_m31(12); + let op0_limb_12_col53 = memoryidtobig_value_tmp_f459_14.get_m31(12); trace[53].data[row_index] = op0_limb_12_col53; - let op0_limb_13_col54 = memory_id_to_big_value_tmp_1012.get_m31(13); + let op0_limb_13_col54 = memoryidtobig_value_tmp_f459_14.get_m31(13); trace[54].data[row_index] = op0_limb_13_col54; - let op0_limb_14_col55 = memory_id_to_big_value_tmp_1012.get_m31(14); + let op0_limb_14_col55 = memoryidtobig_value_tmp_f459_14.get_m31(14); trace[55].data[row_index] = op0_limb_14_col55; - let op0_limb_15_col56 = memory_id_to_big_value_tmp_1012.get_m31(15); + let op0_limb_15_col56 = memoryidtobig_value_tmp_f459_14.get_m31(15); trace[56].data[row_index] = op0_limb_15_col56; - let op0_limb_16_col57 = memory_id_to_big_value_tmp_1012.get_m31(16); + let op0_limb_16_col57 = memoryidtobig_value_tmp_f459_14.get_m31(16); trace[57].data[row_index] = op0_limb_16_col57; - let op0_limb_17_col58 = memory_id_to_big_value_tmp_1012.get_m31(17); + let op0_limb_17_col58 = memoryidtobig_value_tmp_f459_14.get_m31(17); trace[58].data[row_index] = op0_limb_17_col58; - let op0_limb_18_col59 = memory_id_to_big_value_tmp_1012.get_m31(18); + let op0_limb_18_col59 = memoryidtobig_value_tmp_f459_14.get_m31(18); trace[59].data[row_index] = op0_limb_18_col59; - let op0_limb_19_col60 = memory_id_to_big_value_tmp_1012.get_m31(19); + let op0_limb_19_col60 = memoryidtobig_value_tmp_f459_14.get_m31(19); trace[60].data[row_index] = op0_limb_19_col60; - let op0_limb_20_col61 = memory_id_to_big_value_tmp_1012.get_m31(20); + let op0_limb_20_col61 = memoryidtobig_value_tmp_f459_14.get_m31(20); trace[61].data[row_index] = op0_limb_20_col61; - let op0_limb_21_col62 = memory_id_to_big_value_tmp_1012.get_m31(21); + let op0_limb_21_col62 = memoryidtobig_value_tmp_f459_14.get_m31(21); trace[62].data[row_index] = op0_limb_21_col62; - let op0_limb_22_col63 = memory_id_to_big_value_tmp_1012.get_m31(22); + let op0_limb_22_col63 = memoryidtobig_value_tmp_f459_14.get_m31(22); trace[63].data[row_index] = op0_limb_22_col63; - let op0_limb_23_col64 = memory_id_to_big_value_tmp_1012.get_m31(23); + let op0_limb_23_col64 = memoryidtobig_value_tmp_f459_14.get_m31(23); trace[64].data[row_index] = op0_limb_23_col64; - let op0_limb_24_col65 = memory_id_to_big_value_tmp_1012.get_m31(24); + let op0_limb_24_col65 = memoryidtobig_value_tmp_f459_14.get_m31(24); trace[65].data[row_index] = op0_limb_24_col65; - let op0_limb_25_col66 = memory_id_to_big_value_tmp_1012.get_m31(25); + let op0_limb_25_col66 = memoryidtobig_value_tmp_f459_14.get_m31(25); trace[66].data[row_index] = op0_limb_25_col66; - let op0_limb_26_col67 = memory_id_to_big_value_tmp_1012.get_m31(26); + let op0_limb_26_col67 = memoryidtobig_value_tmp_f459_14.get_m31(26); trace[67].data[row_index] = op0_limb_26_col67; - let op0_limb_27_col68 = memory_id_to_big_value_tmp_1012.get_m31(27); + let op0_limb_27_col68 = memoryidtobig_value_tmp_f459_14.get_m31(27); trace[68].data[row_index] = op0_limb_27_col68; sub_components_inputs.memory_id_to_big_inputs[1].extend(op0_id_col40.unpack()); @@ -552,15 +552,15 @@ pub fn write_trace_simd( op0_limb_27_col68, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1013 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_f459_15 = memory_address_to_id_state.deduce_output( ((((op1_base_fp_col8) * (input_fp_col2)) + ((op1_base_ap_col9) * (input_ap_col1))) + ((offset2_col5) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1014 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1013); - let op1_id_col69 = memory_address_to_id_value_tmp_1013; + let memoryidtobig_value_tmp_f459_16 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f459_15); + let op1_id_col69 = memoryaddresstoid_value_tmp_f459_15; trace[69].data[row_index] = op1_id_col69; sub_components_inputs.memory_address_to_id_inputs[2].extend( ((((op1_base_fp_col8) * (input_fp_col2)) + ((op1_base_ap_col9) * (input_ap_col1))) @@ -573,61 +573,61 @@ pub fn write_trace_simd( + ((offset2_col5) - (M31_32768))), op1_id_col69, ]); - let op1_limb_0_col70 = memory_id_to_big_value_tmp_1014.get_m31(0); + let op1_limb_0_col70 = memoryidtobig_value_tmp_f459_16.get_m31(0); trace[70].data[row_index] = op1_limb_0_col70; - let op1_limb_1_col71 = memory_id_to_big_value_tmp_1014.get_m31(1); + let op1_limb_1_col71 = memoryidtobig_value_tmp_f459_16.get_m31(1); trace[71].data[row_index] = op1_limb_1_col71; - let op1_limb_2_col72 = memory_id_to_big_value_tmp_1014.get_m31(2); + let op1_limb_2_col72 = memoryidtobig_value_tmp_f459_16.get_m31(2); trace[72].data[row_index] = op1_limb_2_col72; - let op1_limb_3_col73 = memory_id_to_big_value_tmp_1014.get_m31(3); + let op1_limb_3_col73 = memoryidtobig_value_tmp_f459_16.get_m31(3); trace[73].data[row_index] = op1_limb_3_col73; - let op1_limb_4_col74 = memory_id_to_big_value_tmp_1014.get_m31(4); + let op1_limb_4_col74 = memoryidtobig_value_tmp_f459_16.get_m31(4); trace[74].data[row_index] = op1_limb_4_col74; - let op1_limb_5_col75 = memory_id_to_big_value_tmp_1014.get_m31(5); + let op1_limb_5_col75 = memoryidtobig_value_tmp_f459_16.get_m31(5); trace[75].data[row_index] = op1_limb_5_col75; - let op1_limb_6_col76 = memory_id_to_big_value_tmp_1014.get_m31(6); + let op1_limb_6_col76 = memoryidtobig_value_tmp_f459_16.get_m31(6); trace[76].data[row_index] = op1_limb_6_col76; - let op1_limb_7_col77 = memory_id_to_big_value_tmp_1014.get_m31(7); + let op1_limb_7_col77 = memoryidtobig_value_tmp_f459_16.get_m31(7); trace[77].data[row_index] = op1_limb_7_col77; - let op1_limb_8_col78 = memory_id_to_big_value_tmp_1014.get_m31(8); + let op1_limb_8_col78 = memoryidtobig_value_tmp_f459_16.get_m31(8); trace[78].data[row_index] = op1_limb_8_col78; - let op1_limb_9_col79 = memory_id_to_big_value_tmp_1014.get_m31(9); + let op1_limb_9_col79 = memoryidtobig_value_tmp_f459_16.get_m31(9); trace[79].data[row_index] = op1_limb_9_col79; - let op1_limb_10_col80 = memory_id_to_big_value_tmp_1014.get_m31(10); + let op1_limb_10_col80 = memoryidtobig_value_tmp_f459_16.get_m31(10); trace[80].data[row_index] = op1_limb_10_col80; - let op1_limb_11_col81 = memory_id_to_big_value_tmp_1014.get_m31(11); + let op1_limb_11_col81 = memoryidtobig_value_tmp_f459_16.get_m31(11); trace[81].data[row_index] = op1_limb_11_col81; - let op1_limb_12_col82 = memory_id_to_big_value_tmp_1014.get_m31(12); + let op1_limb_12_col82 = memoryidtobig_value_tmp_f459_16.get_m31(12); trace[82].data[row_index] = op1_limb_12_col82; - let op1_limb_13_col83 = memory_id_to_big_value_tmp_1014.get_m31(13); + let op1_limb_13_col83 = memoryidtobig_value_tmp_f459_16.get_m31(13); trace[83].data[row_index] = op1_limb_13_col83; - let op1_limb_14_col84 = memory_id_to_big_value_tmp_1014.get_m31(14); + let op1_limb_14_col84 = memoryidtobig_value_tmp_f459_16.get_m31(14); trace[84].data[row_index] = op1_limb_14_col84; - let op1_limb_15_col85 = memory_id_to_big_value_tmp_1014.get_m31(15); + let op1_limb_15_col85 = memoryidtobig_value_tmp_f459_16.get_m31(15); trace[85].data[row_index] = op1_limb_15_col85; - let op1_limb_16_col86 = memory_id_to_big_value_tmp_1014.get_m31(16); + let op1_limb_16_col86 = memoryidtobig_value_tmp_f459_16.get_m31(16); trace[86].data[row_index] = op1_limb_16_col86; - let op1_limb_17_col87 = memory_id_to_big_value_tmp_1014.get_m31(17); + let op1_limb_17_col87 = memoryidtobig_value_tmp_f459_16.get_m31(17); trace[87].data[row_index] = op1_limb_17_col87; - let op1_limb_18_col88 = memory_id_to_big_value_tmp_1014.get_m31(18); + let op1_limb_18_col88 = memoryidtobig_value_tmp_f459_16.get_m31(18); trace[88].data[row_index] = op1_limb_18_col88; - let op1_limb_19_col89 = memory_id_to_big_value_tmp_1014.get_m31(19); + let op1_limb_19_col89 = memoryidtobig_value_tmp_f459_16.get_m31(19); trace[89].data[row_index] = op1_limb_19_col89; - let op1_limb_20_col90 = memory_id_to_big_value_tmp_1014.get_m31(20); + let op1_limb_20_col90 = memoryidtobig_value_tmp_f459_16.get_m31(20); trace[90].data[row_index] = op1_limb_20_col90; - let op1_limb_21_col91 = memory_id_to_big_value_tmp_1014.get_m31(21); + let op1_limb_21_col91 = memoryidtobig_value_tmp_f459_16.get_m31(21); trace[91].data[row_index] = op1_limb_21_col91; - let op1_limb_22_col92 = memory_id_to_big_value_tmp_1014.get_m31(22); + let op1_limb_22_col92 = memoryidtobig_value_tmp_f459_16.get_m31(22); trace[92].data[row_index] = op1_limb_22_col92; - let op1_limb_23_col93 = memory_id_to_big_value_tmp_1014.get_m31(23); + let op1_limb_23_col93 = memoryidtobig_value_tmp_f459_16.get_m31(23); trace[93].data[row_index] = op1_limb_23_col93; - let op1_limb_24_col94 = memory_id_to_big_value_tmp_1014.get_m31(24); + let op1_limb_24_col94 = memoryidtobig_value_tmp_f459_16.get_m31(24); trace[94].data[row_index] = op1_limb_24_col94; - let op1_limb_25_col95 = memory_id_to_big_value_tmp_1014.get_m31(25); + let op1_limb_25_col95 = memoryidtobig_value_tmp_f459_16.get_m31(25); trace[95].data[row_index] = op1_limb_25_col95; - let op1_limb_26_col96 = memory_id_to_big_value_tmp_1014.get_m31(26); + let op1_limb_26_col96 = memoryidtobig_value_tmp_f459_16.get_m31(26); trace[96].data[row_index] = op1_limb_26_col96; - let op1_limb_27_col97 = memory_id_to_big_value_tmp_1014.get_m31(27); + let op1_limb_27_col97 = memoryidtobig_value_tmp_f459_16.get_m31(27); trace[97].data[row_index] = op1_limb_27_col97; sub_components_inputs.memory_id_to_big_inputs[2].extend(op1_id_col69.unpack()); @@ -663,13 +663,13 @@ pub fn write_trace_simd( op1_limb_27_col97, ]); - // verify_add252. + // VerifyAdd252. - let sub_p_bit_tmp_1015 = ((UInt16_1) + let sub_p_bit_tmp_f459_17 = ((UInt16_1) & (((PackedUInt16::from_m31(op0_limb_0_col41)) ^ (PackedUInt16::from_m31(op1_limb_0_col70))) ^ (PackedUInt16::from_m31(dst_limb_0_col12)))); - let sub_p_bit_col98 = sub_p_bit_tmp_1015.as_m31(); + let sub_p_bit_col98 = sub_p_bit_tmp_f459_17.as_m31(); trace[98].data[row_index] = sub_p_bit_col98; lookup_data.opcodes[0].push([input_pc_col0, input_ap_col1, input_fp_col2]); diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/component.rs index af331975..e4b744b8 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/component.rs @@ -180,9 +180,9 @@ impl FrameworkEval for Eval { let op1_limb_27_col94 = eval.next_trace_mask(); let sub_p_bit_col95 = eval.next_trace_mask(); - // decode_instruction_9aed6a790187299c. + // DecodeInstruction_9aed6a790187299c. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -206,11 +206,11 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -219,9 +219,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col8.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -255,11 +255,11 @@ impl FrameworkEval for Eval { dst_limb_26_col35.clone(), dst_limb_27_col36.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -268,9 +268,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), op0_id_col37.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -304,20 +304,20 @@ impl FrameworkEval for Eval { op0_limb_26_col64.clone(), op0_limb_27_col65.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_pc_col0.clone() + M31_1.clone()), op1_id_col66.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -351,262 +351,263 @@ impl FrameworkEval for Eval { op1_limb_26_col93.clone(), op1_limb_27_col94.clone(), ], - )]); + )); - // verify_add252. + // VerifyAdd252. // sub_p_bit is a bit. eval.add_constraint((sub_p_bit_col95.clone() * (sub_p_bit_col95.clone() - M31_1.clone()))); - let carry_tmp_1083 = (((((op0_limb_0_col38.clone() + op1_limb_0_col67.clone()) + let carry_tmp_f0ae_15 = (((((op0_limb_0_col38.clone() + op1_limb_0_col67.clone()) + M31_0.clone()) - dst_limb_0_col9.clone()) - (M31_1.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1083.clone() - * ((carry_tmp_1083.clone() * carry_tmp_1083.clone()) - M31_1.clone())), + (carry_tmp_f0ae_15.clone() + * ((carry_tmp_f0ae_15.clone() * carry_tmp_f0ae_15.clone()) - M31_1.clone())), ); - let carry_tmp_1084 = (((((op0_limb_1_col39.clone() + op1_limb_1_col68.clone()) - + carry_tmp_1083.clone()) + let carry_tmp_f0ae_16 = (((((op0_limb_1_col39.clone() + op1_limb_1_col68.clone()) + + carry_tmp_f0ae_15.clone()) - dst_limb_1_col10.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1084.clone() - * ((carry_tmp_1084.clone() * carry_tmp_1084.clone()) - M31_1.clone())), + (carry_tmp_f0ae_16.clone() + * ((carry_tmp_f0ae_16.clone() * carry_tmp_f0ae_16.clone()) - M31_1.clone())), ); - let carry_tmp_1085 = (((((op0_limb_2_col40.clone() + op1_limb_2_col69.clone()) - + carry_tmp_1084.clone()) + let carry_tmp_f0ae_17 = (((((op0_limb_2_col40.clone() + op1_limb_2_col69.clone()) + + carry_tmp_f0ae_16.clone()) - dst_limb_2_col11.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1085.clone() - * ((carry_tmp_1085.clone() * carry_tmp_1085.clone()) - M31_1.clone())), + (carry_tmp_f0ae_17.clone() + * ((carry_tmp_f0ae_17.clone() * carry_tmp_f0ae_17.clone()) - M31_1.clone())), ); - let carry_tmp_1086 = (((((op0_limb_3_col41.clone() + op1_limb_3_col70.clone()) - + carry_tmp_1085.clone()) + let carry_tmp_f0ae_18 = (((((op0_limb_3_col41.clone() + op1_limb_3_col70.clone()) + + carry_tmp_f0ae_17.clone()) - dst_limb_3_col12.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1086.clone() - * ((carry_tmp_1086.clone() * carry_tmp_1086.clone()) - M31_1.clone())), + (carry_tmp_f0ae_18.clone() + * ((carry_tmp_f0ae_18.clone() * carry_tmp_f0ae_18.clone()) - M31_1.clone())), ); - let carry_tmp_1087 = (((((op0_limb_4_col42.clone() + op1_limb_4_col71.clone()) - + carry_tmp_1086.clone()) + let carry_tmp_f0ae_19 = (((((op0_limb_4_col42.clone() + op1_limb_4_col71.clone()) + + carry_tmp_f0ae_18.clone()) - dst_limb_4_col13.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1087.clone() - * ((carry_tmp_1087.clone() * carry_tmp_1087.clone()) - M31_1.clone())), + (carry_tmp_f0ae_19.clone() + * ((carry_tmp_f0ae_19.clone() * carry_tmp_f0ae_19.clone()) - M31_1.clone())), ); - let carry_tmp_1088 = (((((op0_limb_5_col43.clone() + op1_limb_5_col72.clone()) - + carry_tmp_1087.clone()) + let carry_tmp_f0ae_20 = (((((op0_limb_5_col43.clone() + op1_limb_5_col72.clone()) + + carry_tmp_f0ae_19.clone()) - dst_limb_5_col14.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1088.clone() - * ((carry_tmp_1088.clone() * carry_tmp_1088.clone()) - M31_1.clone())), + (carry_tmp_f0ae_20.clone() + * ((carry_tmp_f0ae_20.clone() * carry_tmp_f0ae_20.clone()) - M31_1.clone())), ); - let carry_tmp_1089 = (((((op0_limb_6_col44.clone() + op1_limb_6_col73.clone()) - + carry_tmp_1088.clone()) + let carry_tmp_f0ae_21 = (((((op0_limb_6_col44.clone() + op1_limb_6_col73.clone()) + + carry_tmp_f0ae_20.clone()) - dst_limb_6_col15.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1089.clone() - * ((carry_tmp_1089.clone() * carry_tmp_1089.clone()) - M31_1.clone())), + (carry_tmp_f0ae_21.clone() + * ((carry_tmp_f0ae_21.clone() * carry_tmp_f0ae_21.clone()) - M31_1.clone())), ); - let carry_tmp_1090 = (((((op0_limb_7_col45.clone() + op1_limb_7_col74.clone()) - + carry_tmp_1089.clone()) + let carry_tmp_f0ae_22 = (((((op0_limb_7_col45.clone() + op1_limb_7_col74.clone()) + + carry_tmp_f0ae_21.clone()) - dst_limb_7_col16.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1090.clone() - * ((carry_tmp_1090.clone() * carry_tmp_1090.clone()) - M31_1.clone())), + (carry_tmp_f0ae_22.clone() + * ((carry_tmp_f0ae_22.clone() * carry_tmp_f0ae_22.clone()) - M31_1.clone())), ); - let carry_tmp_1091 = (((((op0_limb_8_col46.clone() + op1_limb_8_col75.clone()) - + carry_tmp_1090.clone()) + let carry_tmp_f0ae_23 = (((((op0_limb_8_col46.clone() + op1_limb_8_col75.clone()) + + carry_tmp_f0ae_22.clone()) - dst_limb_8_col17.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1091.clone() - * ((carry_tmp_1091.clone() * carry_tmp_1091.clone()) - M31_1.clone())), + (carry_tmp_f0ae_23.clone() + * ((carry_tmp_f0ae_23.clone() * carry_tmp_f0ae_23.clone()) - M31_1.clone())), ); - let carry_tmp_1092 = (((((op0_limb_9_col47.clone() + op1_limb_9_col76.clone()) - + carry_tmp_1091.clone()) + let carry_tmp_f0ae_24 = (((((op0_limb_9_col47.clone() + op1_limb_9_col76.clone()) + + carry_tmp_f0ae_23.clone()) - dst_limb_9_col18.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1092.clone() - * ((carry_tmp_1092.clone() * carry_tmp_1092.clone()) - M31_1.clone())), + (carry_tmp_f0ae_24.clone() + * ((carry_tmp_f0ae_24.clone() * carry_tmp_f0ae_24.clone()) - M31_1.clone())), ); - let carry_tmp_1093 = (((((op0_limb_10_col48.clone() + op1_limb_10_col77.clone()) - + carry_tmp_1092.clone()) + let carry_tmp_f0ae_25 = (((((op0_limb_10_col48.clone() + op1_limb_10_col77.clone()) + + carry_tmp_f0ae_24.clone()) - dst_limb_10_col19.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1093.clone() - * ((carry_tmp_1093.clone() * carry_tmp_1093.clone()) - M31_1.clone())), + (carry_tmp_f0ae_25.clone() + * ((carry_tmp_f0ae_25.clone() * carry_tmp_f0ae_25.clone()) - M31_1.clone())), ); - let carry_tmp_1094 = (((((op0_limb_11_col49.clone() + op1_limb_11_col78.clone()) - + carry_tmp_1093.clone()) + let carry_tmp_f0ae_26 = (((((op0_limb_11_col49.clone() + op1_limb_11_col78.clone()) + + carry_tmp_f0ae_25.clone()) - dst_limb_11_col20.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1094.clone() - * ((carry_tmp_1094.clone() * carry_tmp_1094.clone()) - M31_1.clone())), + (carry_tmp_f0ae_26.clone() + * ((carry_tmp_f0ae_26.clone() * carry_tmp_f0ae_26.clone()) - M31_1.clone())), ); - let carry_tmp_1095 = (((((op0_limb_12_col50.clone() + op1_limb_12_col79.clone()) - + carry_tmp_1094.clone()) + let carry_tmp_f0ae_27 = (((((op0_limb_12_col50.clone() + op1_limb_12_col79.clone()) + + carry_tmp_f0ae_26.clone()) - dst_limb_12_col21.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1095.clone() - * ((carry_tmp_1095.clone() * carry_tmp_1095.clone()) - M31_1.clone())), + (carry_tmp_f0ae_27.clone() + * ((carry_tmp_f0ae_27.clone() * carry_tmp_f0ae_27.clone()) - M31_1.clone())), ); - let carry_tmp_1096 = (((((op0_limb_13_col51.clone() + op1_limb_13_col80.clone()) - + carry_tmp_1095.clone()) + let carry_tmp_f0ae_28 = (((((op0_limb_13_col51.clone() + op1_limb_13_col80.clone()) + + carry_tmp_f0ae_27.clone()) - dst_limb_13_col22.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1096.clone() - * ((carry_tmp_1096.clone() * carry_tmp_1096.clone()) - M31_1.clone())), + (carry_tmp_f0ae_28.clone() + * ((carry_tmp_f0ae_28.clone() * carry_tmp_f0ae_28.clone()) - M31_1.clone())), ); - let carry_tmp_1097 = (((((op0_limb_14_col52.clone() + op1_limb_14_col81.clone()) - + carry_tmp_1096.clone()) + let carry_tmp_f0ae_29 = (((((op0_limb_14_col52.clone() + op1_limb_14_col81.clone()) + + carry_tmp_f0ae_28.clone()) - dst_limb_14_col23.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1097.clone() - * ((carry_tmp_1097.clone() * carry_tmp_1097.clone()) - M31_1.clone())), + (carry_tmp_f0ae_29.clone() + * ((carry_tmp_f0ae_29.clone() * carry_tmp_f0ae_29.clone()) - M31_1.clone())), ); - let carry_tmp_1098 = (((((op0_limb_15_col53.clone() + op1_limb_15_col82.clone()) - + carry_tmp_1097.clone()) + let carry_tmp_f0ae_30 = (((((op0_limb_15_col53.clone() + op1_limb_15_col82.clone()) + + carry_tmp_f0ae_29.clone()) - dst_limb_15_col24.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1098.clone() - * ((carry_tmp_1098.clone() * carry_tmp_1098.clone()) - M31_1.clone())), + (carry_tmp_f0ae_30.clone() + * ((carry_tmp_f0ae_30.clone() * carry_tmp_f0ae_30.clone()) - M31_1.clone())), ); - let carry_tmp_1099 = (((((op0_limb_16_col54.clone() + op1_limb_16_col83.clone()) - + carry_tmp_1098.clone()) + let carry_tmp_f0ae_31 = (((((op0_limb_16_col54.clone() + op1_limb_16_col83.clone()) + + carry_tmp_f0ae_30.clone()) - dst_limb_16_col25.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1099.clone() - * ((carry_tmp_1099.clone() * carry_tmp_1099.clone()) - M31_1.clone())), + (carry_tmp_f0ae_31.clone() + * ((carry_tmp_f0ae_31.clone() * carry_tmp_f0ae_31.clone()) - M31_1.clone())), ); - let carry_tmp_1100 = (((((op0_limb_17_col55.clone() + op1_limb_17_col84.clone()) - + carry_tmp_1099.clone()) + let carry_tmp_f0ae_32 = (((((op0_limb_17_col55.clone() + op1_limb_17_col84.clone()) + + carry_tmp_f0ae_31.clone()) - dst_limb_17_col26.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1100.clone() - * ((carry_tmp_1100.clone() * carry_tmp_1100.clone()) - M31_1.clone())), + (carry_tmp_f0ae_32.clone() + * ((carry_tmp_f0ae_32.clone() * carry_tmp_f0ae_32.clone()) - M31_1.clone())), ); - let carry_tmp_1101 = (((((op0_limb_18_col56.clone() + op1_limb_18_col85.clone()) - + carry_tmp_1100.clone()) + let carry_tmp_f0ae_33 = (((((op0_limb_18_col56.clone() + op1_limb_18_col85.clone()) + + carry_tmp_f0ae_32.clone()) - dst_limb_18_col27.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1101.clone() - * ((carry_tmp_1101.clone() * carry_tmp_1101.clone()) - M31_1.clone())), + (carry_tmp_f0ae_33.clone() + * ((carry_tmp_f0ae_33.clone() * carry_tmp_f0ae_33.clone()) - M31_1.clone())), ); - let carry_tmp_1102 = (((((op0_limb_19_col57.clone() + op1_limb_19_col86.clone()) - + carry_tmp_1101.clone()) + let carry_tmp_f0ae_34 = (((((op0_limb_19_col57.clone() + op1_limb_19_col86.clone()) + + carry_tmp_f0ae_33.clone()) - dst_limb_19_col28.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1102.clone() - * ((carry_tmp_1102.clone() * carry_tmp_1102.clone()) - M31_1.clone())), + (carry_tmp_f0ae_34.clone() + * ((carry_tmp_f0ae_34.clone() * carry_tmp_f0ae_34.clone()) - M31_1.clone())), ); - let carry_tmp_1103 = (((((op0_limb_20_col58.clone() + op1_limb_20_col87.clone()) - + carry_tmp_1102.clone()) + let carry_tmp_f0ae_35 = (((((op0_limb_20_col58.clone() + op1_limb_20_col87.clone()) + + carry_tmp_f0ae_34.clone()) - dst_limb_20_col29.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1103.clone() - * ((carry_tmp_1103.clone() * carry_tmp_1103.clone()) - M31_1.clone())), + (carry_tmp_f0ae_35.clone() + * ((carry_tmp_f0ae_35.clone() * carry_tmp_f0ae_35.clone()) - M31_1.clone())), ); - let carry_tmp_1104 = (((((op0_limb_21_col59.clone() + op1_limb_21_col88.clone()) - + carry_tmp_1103.clone()) + let carry_tmp_f0ae_36 = (((((op0_limb_21_col59.clone() + op1_limb_21_col88.clone()) + + carry_tmp_f0ae_35.clone()) - dst_limb_21_col30.clone()) - (M31_136.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1104.clone() - * ((carry_tmp_1104.clone() * carry_tmp_1104.clone()) - M31_1.clone())), + (carry_tmp_f0ae_36.clone() + * ((carry_tmp_f0ae_36.clone() * carry_tmp_f0ae_36.clone()) - M31_1.clone())), ); - let carry_tmp_1105 = (((((op0_limb_22_col60.clone() + op1_limb_22_col89.clone()) - + carry_tmp_1104.clone()) + let carry_tmp_f0ae_37 = (((((op0_limb_22_col60.clone() + op1_limb_22_col89.clone()) + + carry_tmp_f0ae_36.clone()) - dst_limb_22_col31.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1105.clone() - * ((carry_tmp_1105.clone() * carry_tmp_1105.clone()) - M31_1.clone())), + (carry_tmp_f0ae_37.clone() + * ((carry_tmp_f0ae_37.clone() * carry_tmp_f0ae_37.clone()) - M31_1.clone())), ); - let carry_tmp_1106 = (((((op0_limb_23_col61.clone() + op1_limb_23_col90.clone()) - + carry_tmp_1105.clone()) + let carry_tmp_f0ae_38 = (((((op0_limb_23_col61.clone() + op1_limb_23_col90.clone()) + + carry_tmp_f0ae_37.clone()) - dst_limb_23_col32.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1106.clone() - * ((carry_tmp_1106.clone() * carry_tmp_1106.clone()) - M31_1.clone())), + (carry_tmp_f0ae_38.clone() + * ((carry_tmp_f0ae_38.clone() * carry_tmp_f0ae_38.clone()) - M31_1.clone())), ); - let carry_tmp_1107 = (((((op0_limb_24_col62.clone() + op1_limb_24_col91.clone()) - + carry_tmp_1106.clone()) + let carry_tmp_f0ae_39 = (((((op0_limb_24_col62.clone() + op1_limb_24_col91.clone()) + + carry_tmp_f0ae_38.clone()) - dst_limb_24_col33.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1107.clone() - * ((carry_tmp_1107.clone() * carry_tmp_1107.clone()) - M31_1.clone())), + (carry_tmp_f0ae_39.clone() + * ((carry_tmp_f0ae_39.clone() * carry_tmp_f0ae_39.clone()) - M31_1.clone())), ); - let carry_tmp_1108 = (((((op0_limb_25_col63.clone() + op1_limb_25_col92.clone()) - + carry_tmp_1107.clone()) + let carry_tmp_f0ae_40 = (((((op0_limb_25_col63.clone() + op1_limb_25_col92.clone()) + + carry_tmp_f0ae_39.clone()) - dst_limb_25_col34.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1108.clone() - * ((carry_tmp_1108.clone() * carry_tmp_1108.clone()) - M31_1.clone())), + (carry_tmp_f0ae_40.clone() + * ((carry_tmp_f0ae_40.clone() * carry_tmp_f0ae_40.clone()) - M31_1.clone())), ); - let carry_tmp_1109 = (((((op0_limb_26_col64.clone() + op1_limb_26_col93.clone()) - + carry_tmp_1108.clone()) + let carry_tmp_f0ae_41 = (((((op0_limb_26_col64.clone() + op1_limb_26_col93.clone()) + + carry_tmp_f0ae_40.clone()) - dst_limb_26_col35.clone()) - (M31_0.clone() * sub_p_bit_col95.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_1109.clone() - * ((carry_tmp_1109.clone() * carry_tmp_1109.clone()) - M31_1.clone())), + (carry_tmp_f0ae_41.clone() + * ((carry_tmp_f0ae_41.clone() * carry_tmp_f0ae_41.clone()) - M31_1.clone())), ); eval.add_constraint( - ((((op0_limb_27_col65.clone() + op1_limb_27_col94.clone()) + carry_tmp_1109.clone()) + ((((op0_limb_27_col65.clone() + op1_limb_27_col94.clone()) + + carry_tmp_f0ae_41.clone()) - dst_limb_27_col36.clone()) - (M31_256.clone() * sub_p_bit_col95.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -614,9 +615,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -624,7 +625,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col7.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/prover.rs index 82f254eb..2736df75 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_f_is_imm_t/prover.rs @@ -189,63 +189,63 @@ pub fn write_trace_simd( .into_iter() .enumerate() .for_each(|(row_index, add_opcode_is_small_f_is_imm_t_input)| { - let input_tmp_1067 = add_opcode_is_small_f_is_imm_t_input; - let input_pc_col0 = input_tmp_1067.pc; + let input_tmp_f0ae_0 = add_opcode_is_small_f_is_imm_t_input; + let input_pc_col0 = input_tmp_f0ae_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1067.ap; + let input_ap_col1 = input_tmp_f0ae_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1067.fp; + let input_fp_col2 = input_tmp_f0ae_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_9aed6a790187299c. + // DecodeInstruction_9aed6a790187299c. - let memory_address_to_id_value_tmp_1068 = + let memoryaddresstoid_value_tmp_f0ae_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1069 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1068); - let offset0_tmp_1070 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(1))) + let memoryidtobig_value_tmp_f0ae_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f0ae_1); + let offset0_tmp_f0ae_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1070.as_m31(); + let offset0_col3 = offset0_tmp_f0ae_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset1_tmp_1071 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(1))) + let offset1_tmp_f0ae_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col4 = offset1_tmp_1071.as_m31(); + let offset1_col4 = offset1_tmp_f0ae_4.as_m31(); trace[4].data[row_index] = offset1_col4; - let dst_base_fp_tmp_1072 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(5))) + let dst_base_fp_tmp_f0ae_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col5 = dst_base_fp_tmp_1072.as_m31(); + let dst_base_fp_col5 = dst_base_fp_tmp_f0ae_5.as_m31(); trace[5].data[row_index] = dst_base_fp_col5; - let op0_base_fp_tmp_1073 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(5))) + let op0_base_fp_tmp_f0ae_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col6 = op0_base_fp_tmp_1073.as_m31(); + let op0_base_fp_col6 = op0_base_fp_tmp_f0ae_6.as_m31(); trace[6].data[row_index] = op0_base_fp_col6; - let ap_update_add_1_tmp_1074 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(5))) + let ap_update_add_1_tmp_f0ae_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1069.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_f0ae_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col7 = ap_update_add_1_tmp_1074.as_m31(); + let ap_update_add_1_col7 = ap_update_add_1_tmp_f0ae_7.as_m31(); trace[7].data[row_index] = ap_update_add_1_col7; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -295,16 +295,16 @@ pub fn write_trace_simd( M31_1, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1076 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_f0ae_8 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col5) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col5)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1077 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1076); - let dst_id_col8 = memory_address_to_id_value_tmp_1076; + let memoryidtobig_value_tmp_f0ae_9 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f0ae_8); + let dst_id_col8 = memoryaddresstoid_value_tmp_f0ae_8; trace[8].data[row_index] = dst_id_col8; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col5) * (input_fp_col2)) @@ -319,61 +319,61 @@ pub fn write_trace_simd( + ((offset0_col3) - (M31_32768))), dst_id_col8, ]); - let dst_limb_0_col9 = memory_id_to_big_value_tmp_1077.get_m31(0); + let dst_limb_0_col9 = memoryidtobig_value_tmp_f0ae_9.get_m31(0); trace[9].data[row_index] = dst_limb_0_col9; - let dst_limb_1_col10 = memory_id_to_big_value_tmp_1077.get_m31(1); + let dst_limb_1_col10 = memoryidtobig_value_tmp_f0ae_9.get_m31(1); trace[10].data[row_index] = dst_limb_1_col10; - let dst_limb_2_col11 = memory_id_to_big_value_tmp_1077.get_m31(2); + let dst_limb_2_col11 = memoryidtobig_value_tmp_f0ae_9.get_m31(2); trace[11].data[row_index] = dst_limb_2_col11; - let dst_limb_3_col12 = memory_id_to_big_value_tmp_1077.get_m31(3); + let dst_limb_3_col12 = memoryidtobig_value_tmp_f0ae_9.get_m31(3); trace[12].data[row_index] = dst_limb_3_col12; - let dst_limb_4_col13 = memory_id_to_big_value_tmp_1077.get_m31(4); + let dst_limb_4_col13 = memoryidtobig_value_tmp_f0ae_9.get_m31(4); trace[13].data[row_index] = dst_limb_4_col13; - let dst_limb_5_col14 = memory_id_to_big_value_tmp_1077.get_m31(5); + let dst_limb_5_col14 = memoryidtobig_value_tmp_f0ae_9.get_m31(5); trace[14].data[row_index] = dst_limb_5_col14; - let dst_limb_6_col15 = memory_id_to_big_value_tmp_1077.get_m31(6); + let dst_limb_6_col15 = memoryidtobig_value_tmp_f0ae_9.get_m31(6); trace[15].data[row_index] = dst_limb_6_col15; - let dst_limb_7_col16 = memory_id_to_big_value_tmp_1077.get_m31(7); + let dst_limb_7_col16 = memoryidtobig_value_tmp_f0ae_9.get_m31(7); trace[16].data[row_index] = dst_limb_7_col16; - let dst_limb_8_col17 = memory_id_to_big_value_tmp_1077.get_m31(8); + let dst_limb_8_col17 = memoryidtobig_value_tmp_f0ae_9.get_m31(8); trace[17].data[row_index] = dst_limb_8_col17; - let dst_limb_9_col18 = memory_id_to_big_value_tmp_1077.get_m31(9); + let dst_limb_9_col18 = memoryidtobig_value_tmp_f0ae_9.get_m31(9); trace[18].data[row_index] = dst_limb_9_col18; - let dst_limb_10_col19 = memory_id_to_big_value_tmp_1077.get_m31(10); + let dst_limb_10_col19 = memoryidtobig_value_tmp_f0ae_9.get_m31(10); trace[19].data[row_index] = dst_limb_10_col19; - let dst_limb_11_col20 = memory_id_to_big_value_tmp_1077.get_m31(11); + let dst_limb_11_col20 = memoryidtobig_value_tmp_f0ae_9.get_m31(11); trace[20].data[row_index] = dst_limb_11_col20; - let dst_limb_12_col21 = memory_id_to_big_value_tmp_1077.get_m31(12); + let dst_limb_12_col21 = memoryidtobig_value_tmp_f0ae_9.get_m31(12); trace[21].data[row_index] = dst_limb_12_col21; - let dst_limb_13_col22 = memory_id_to_big_value_tmp_1077.get_m31(13); + let dst_limb_13_col22 = memoryidtobig_value_tmp_f0ae_9.get_m31(13); trace[22].data[row_index] = dst_limb_13_col22; - let dst_limb_14_col23 = memory_id_to_big_value_tmp_1077.get_m31(14); + let dst_limb_14_col23 = memoryidtobig_value_tmp_f0ae_9.get_m31(14); trace[23].data[row_index] = dst_limb_14_col23; - let dst_limb_15_col24 = memory_id_to_big_value_tmp_1077.get_m31(15); + let dst_limb_15_col24 = memoryidtobig_value_tmp_f0ae_9.get_m31(15); trace[24].data[row_index] = dst_limb_15_col24; - let dst_limb_16_col25 = memory_id_to_big_value_tmp_1077.get_m31(16); + let dst_limb_16_col25 = memoryidtobig_value_tmp_f0ae_9.get_m31(16); trace[25].data[row_index] = dst_limb_16_col25; - let dst_limb_17_col26 = memory_id_to_big_value_tmp_1077.get_m31(17); + let dst_limb_17_col26 = memoryidtobig_value_tmp_f0ae_9.get_m31(17); trace[26].data[row_index] = dst_limb_17_col26; - let dst_limb_18_col27 = memory_id_to_big_value_tmp_1077.get_m31(18); + let dst_limb_18_col27 = memoryidtobig_value_tmp_f0ae_9.get_m31(18); trace[27].data[row_index] = dst_limb_18_col27; - let dst_limb_19_col28 = memory_id_to_big_value_tmp_1077.get_m31(19); + let dst_limb_19_col28 = memoryidtobig_value_tmp_f0ae_9.get_m31(19); trace[28].data[row_index] = dst_limb_19_col28; - let dst_limb_20_col29 = memory_id_to_big_value_tmp_1077.get_m31(20); + let dst_limb_20_col29 = memoryidtobig_value_tmp_f0ae_9.get_m31(20); trace[29].data[row_index] = dst_limb_20_col29; - let dst_limb_21_col30 = memory_id_to_big_value_tmp_1077.get_m31(21); + let dst_limb_21_col30 = memoryidtobig_value_tmp_f0ae_9.get_m31(21); trace[30].data[row_index] = dst_limb_21_col30; - let dst_limb_22_col31 = memory_id_to_big_value_tmp_1077.get_m31(22); + let dst_limb_22_col31 = memoryidtobig_value_tmp_f0ae_9.get_m31(22); trace[31].data[row_index] = dst_limb_22_col31; - let dst_limb_23_col32 = memory_id_to_big_value_tmp_1077.get_m31(23); + let dst_limb_23_col32 = memoryidtobig_value_tmp_f0ae_9.get_m31(23); trace[32].data[row_index] = dst_limb_23_col32; - let dst_limb_24_col33 = memory_id_to_big_value_tmp_1077.get_m31(24); + let dst_limb_24_col33 = memoryidtobig_value_tmp_f0ae_9.get_m31(24); trace[33].data[row_index] = dst_limb_24_col33; - let dst_limb_25_col34 = memory_id_to_big_value_tmp_1077.get_m31(25); + let dst_limb_25_col34 = memoryidtobig_value_tmp_f0ae_9.get_m31(25); trace[34].data[row_index] = dst_limb_25_col34; - let dst_limb_26_col35 = memory_id_to_big_value_tmp_1077.get_m31(26); + let dst_limb_26_col35 = memoryidtobig_value_tmp_f0ae_9.get_m31(26); trace[35].data[row_index] = dst_limb_26_col35; - let dst_limb_27_col36 = memory_id_to_big_value_tmp_1077.get_m31(27); + let dst_limb_27_col36 = memoryidtobig_value_tmp_f0ae_9.get_m31(27); trace[36].data[row_index] = dst_limb_27_col36; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col8.unpack()); @@ -409,16 +409,16 @@ pub fn write_trace_simd( dst_limb_27_col36, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1078 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_f0ae_10 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col6) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col6)) * (input_ap_col1))) + ((offset1_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1079 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1078); - let op0_id_col37 = memory_address_to_id_value_tmp_1078; + let memoryidtobig_value_tmp_f0ae_11 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f0ae_10); + let op0_id_col37 = memoryaddresstoid_value_tmp_f0ae_10; trace[37].data[row_index] = op0_id_col37; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((op0_base_fp_col6) * (input_fp_col2)) @@ -433,61 +433,61 @@ pub fn write_trace_simd( + ((offset1_col4) - (M31_32768))), op0_id_col37, ]); - let op0_limb_0_col38 = memory_id_to_big_value_tmp_1079.get_m31(0); + let op0_limb_0_col38 = memoryidtobig_value_tmp_f0ae_11.get_m31(0); trace[38].data[row_index] = op0_limb_0_col38; - let op0_limb_1_col39 = memory_id_to_big_value_tmp_1079.get_m31(1); + let op0_limb_1_col39 = memoryidtobig_value_tmp_f0ae_11.get_m31(1); trace[39].data[row_index] = op0_limb_1_col39; - let op0_limb_2_col40 = memory_id_to_big_value_tmp_1079.get_m31(2); + let op0_limb_2_col40 = memoryidtobig_value_tmp_f0ae_11.get_m31(2); trace[40].data[row_index] = op0_limb_2_col40; - let op0_limb_3_col41 = memory_id_to_big_value_tmp_1079.get_m31(3); + let op0_limb_3_col41 = memoryidtobig_value_tmp_f0ae_11.get_m31(3); trace[41].data[row_index] = op0_limb_3_col41; - let op0_limb_4_col42 = memory_id_to_big_value_tmp_1079.get_m31(4); + let op0_limb_4_col42 = memoryidtobig_value_tmp_f0ae_11.get_m31(4); trace[42].data[row_index] = op0_limb_4_col42; - let op0_limb_5_col43 = memory_id_to_big_value_tmp_1079.get_m31(5); + let op0_limb_5_col43 = memoryidtobig_value_tmp_f0ae_11.get_m31(5); trace[43].data[row_index] = op0_limb_5_col43; - let op0_limb_6_col44 = memory_id_to_big_value_tmp_1079.get_m31(6); + let op0_limb_6_col44 = memoryidtobig_value_tmp_f0ae_11.get_m31(6); trace[44].data[row_index] = op0_limb_6_col44; - let op0_limb_7_col45 = memory_id_to_big_value_tmp_1079.get_m31(7); + let op0_limb_7_col45 = memoryidtobig_value_tmp_f0ae_11.get_m31(7); trace[45].data[row_index] = op0_limb_7_col45; - let op0_limb_8_col46 = memory_id_to_big_value_tmp_1079.get_m31(8); + let op0_limb_8_col46 = memoryidtobig_value_tmp_f0ae_11.get_m31(8); trace[46].data[row_index] = op0_limb_8_col46; - let op0_limb_9_col47 = memory_id_to_big_value_tmp_1079.get_m31(9); + let op0_limb_9_col47 = memoryidtobig_value_tmp_f0ae_11.get_m31(9); trace[47].data[row_index] = op0_limb_9_col47; - let op0_limb_10_col48 = memory_id_to_big_value_tmp_1079.get_m31(10); + let op0_limb_10_col48 = memoryidtobig_value_tmp_f0ae_11.get_m31(10); trace[48].data[row_index] = op0_limb_10_col48; - let op0_limb_11_col49 = memory_id_to_big_value_tmp_1079.get_m31(11); + let op0_limb_11_col49 = memoryidtobig_value_tmp_f0ae_11.get_m31(11); trace[49].data[row_index] = op0_limb_11_col49; - let op0_limb_12_col50 = memory_id_to_big_value_tmp_1079.get_m31(12); + let op0_limb_12_col50 = memoryidtobig_value_tmp_f0ae_11.get_m31(12); trace[50].data[row_index] = op0_limb_12_col50; - let op0_limb_13_col51 = memory_id_to_big_value_tmp_1079.get_m31(13); + let op0_limb_13_col51 = memoryidtobig_value_tmp_f0ae_11.get_m31(13); trace[51].data[row_index] = op0_limb_13_col51; - let op0_limb_14_col52 = memory_id_to_big_value_tmp_1079.get_m31(14); + let op0_limb_14_col52 = memoryidtobig_value_tmp_f0ae_11.get_m31(14); trace[52].data[row_index] = op0_limb_14_col52; - let op0_limb_15_col53 = memory_id_to_big_value_tmp_1079.get_m31(15); + let op0_limb_15_col53 = memoryidtobig_value_tmp_f0ae_11.get_m31(15); trace[53].data[row_index] = op0_limb_15_col53; - let op0_limb_16_col54 = memory_id_to_big_value_tmp_1079.get_m31(16); + let op0_limb_16_col54 = memoryidtobig_value_tmp_f0ae_11.get_m31(16); trace[54].data[row_index] = op0_limb_16_col54; - let op0_limb_17_col55 = memory_id_to_big_value_tmp_1079.get_m31(17); + let op0_limb_17_col55 = memoryidtobig_value_tmp_f0ae_11.get_m31(17); trace[55].data[row_index] = op0_limb_17_col55; - let op0_limb_18_col56 = memory_id_to_big_value_tmp_1079.get_m31(18); + let op0_limb_18_col56 = memoryidtobig_value_tmp_f0ae_11.get_m31(18); trace[56].data[row_index] = op0_limb_18_col56; - let op0_limb_19_col57 = memory_id_to_big_value_tmp_1079.get_m31(19); + let op0_limb_19_col57 = memoryidtobig_value_tmp_f0ae_11.get_m31(19); trace[57].data[row_index] = op0_limb_19_col57; - let op0_limb_20_col58 = memory_id_to_big_value_tmp_1079.get_m31(20); + let op0_limb_20_col58 = memoryidtobig_value_tmp_f0ae_11.get_m31(20); trace[58].data[row_index] = op0_limb_20_col58; - let op0_limb_21_col59 = memory_id_to_big_value_tmp_1079.get_m31(21); + let op0_limb_21_col59 = memoryidtobig_value_tmp_f0ae_11.get_m31(21); trace[59].data[row_index] = op0_limb_21_col59; - let op0_limb_22_col60 = memory_id_to_big_value_tmp_1079.get_m31(22); + let op0_limb_22_col60 = memoryidtobig_value_tmp_f0ae_11.get_m31(22); trace[60].data[row_index] = op0_limb_22_col60; - let op0_limb_23_col61 = memory_id_to_big_value_tmp_1079.get_m31(23); + let op0_limb_23_col61 = memoryidtobig_value_tmp_f0ae_11.get_m31(23); trace[61].data[row_index] = op0_limb_23_col61; - let op0_limb_24_col62 = memory_id_to_big_value_tmp_1079.get_m31(24); + let op0_limb_24_col62 = memoryidtobig_value_tmp_f0ae_11.get_m31(24); trace[62].data[row_index] = op0_limb_24_col62; - let op0_limb_25_col63 = memory_id_to_big_value_tmp_1079.get_m31(25); + let op0_limb_25_col63 = memoryidtobig_value_tmp_f0ae_11.get_m31(25); trace[63].data[row_index] = op0_limb_25_col63; - let op0_limb_26_col64 = memory_id_to_big_value_tmp_1079.get_m31(26); + let op0_limb_26_col64 = memoryidtobig_value_tmp_f0ae_11.get_m31(26); trace[64].data[row_index] = op0_limb_26_col64; - let op0_limb_27_col65 = memory_id_to_big_value_tmp_1079.get_m31(27); + let op0_limb_27_col65 = memoryidtobig_value_tmp_f0ae_11.get_m31(27); trace[65].data[row_index] = op0_limb_27_col65; sub_components_inputs.memory_id_to_big_inputs[1].extend(op0_id_col37.unpack()); @@ -523,73 +523,73 @@ pub fn write_trace_simd( op0_limb_27_col65, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1080 = + let memoryaddresstoid_value_tmp_f0ae_12 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_1081 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1080); - let op1_id_col66 = memory_address_to_id_value_tmp_1080; + let memoryidtobig_value_tmp_f0ae_13 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_f0ae_12); + let op1_id_col66 = memoryaddresstoid_value_tmp_f0ae_12; trace[66].data[row_index] = op1_id_col66; sub_components_inputs.memory_address_to_id_inputs[2] .extend(((input_pc_col0) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[2].push([((input_pc_col0) + (M31_1)), op1_id_col66]); - let op1_limb_0_col67 = memory_id_to_big_value_tmp_1081.get_m31(0); + let op1_limb_0_col67 = memoryidtobig_value_tmp_f0ae_13.get_m31(0); trace[67].data[row_index] = op1_limb_0_col67; - let op1_limb_1_col68 = memory_id_to_big_value_tmp_1081.get_m31(1); + let op1_limb_1_col68 = memoryidtobig_value_tmp_f0ae_13.get_m31(1); trace[68].data[row_index] = op1_limb_1_col68; - let op1_limb_2_col69 = memory_id_to_big_value_tmp_1081.get_m31(2); + let op1_limb_2_col69 = memoryidtobig_value_tmp_f0ae_13.get_m31(2); trace[69].data[row_index] = op1_limb_2_col69; - let op1_limb_3_col70 = memory_id_to_big_value_tmp_1081.get_m31(3); + let op1_limb_3_col70 = memoryidtobig_value_tmp_f0ae_13.get_m31(3); trace[70].data[row_index] = op1_limb_3_col70; - let op1_limb_4_col71 = memory_id_to_big_value_tmp_1081.get_m31(4); + let op1_limb_4_col71 = memoryidtobig_value_tmp_f0ae_13.get_m31(4); trace[71].data[row_index] = op1_limb_4_col71; - let op1_limb_5_col72 = memory_id_to_big_value_tmp_1081.get_m31(5); + let op1_limb_5_col72 = memoryidtobig_value_tmp_f0ae_13.get_m31(5); trace[72].data[row_index] = op1_limb_5_col72; - let op1_limb_6_col73 = memory_id_to_big_value_tmp_1081.get_m31(6); + let op1_limb_6_col73 = memoryidtobig_value_tmp_f0ae_13.get_m31(6); trace[73].data[row_index] = op1_limb_6_col73; - let op1_limb_7_col74 = memory_id_to_big_value_tmp_1081.get_m31(7); + let op1_limb_7_col74 = memoryidtobig_value_tmp_f0ae_13.get_m31(7); trace[74].data[row_index] = op1_limb_7_col74; - let op1_limb_8_col75 = memory_id_to_big_value_tmp_1081.get_m31(8); + let op1_limb_8_col75 = memoryidtobig_value_tmp_f0ae_13.get_m31(8); trace[75].data[row_index] = op1_limb_8_col75; - let op1_limb_9_col76 = memory_id_to_big_value_tmp_1081.get_m31(9); + let op1_limb_9_col76 = memoryidtobig_value_tmp_f0ae_13.get_m31(9); trace[76].data[row_index] = op1_limb_9_col76; - let op1_limb_10_col77 = memory_id_to_big_value_tmp_1081.get_m31(10); + let op1_limb_10_col77 = memoryidtobig_value_tmp_f0ae_13.get_m31(10); trace[77].data[row_index] = op1_limb_10_col77; - let op1_limb_11_col78 = memory_id_to_big_value_tmp_1081.get_m31(11); + let op1_limb_11_col78 = memoryidtobig_value_tmp_f0ae_13.get_m31(11); trace[78].data[row_index] = op1_limb_11_col78; - let op1_limb_12_col79 = memory_id_to_big_value_tmp_1081.get_m31(12); + let op1_limb_12_col79 = memoryidtobig_value_tmp_f0ae_13.get_m31(12); trace[79].data[row_index] = op1_limb_12_col79; - let op1_limb_13_col80 = memory_id_to_big_value_tmp_1081.get_m31(13); + let op1_limb_13_col80 = memoryidtobig_value_tmp_f0ae_13.get_m31(13); trace[80].data[row_index] = op1_limb_13_col80; - let op1_limb_14_col81 = memory_id_to_big_value_tmp_1081.get_m31(14); + let op1_limb_14_col81 = memoryidtobig_value_tmp_f0ae_13.get_m31(14); trace[81].data[row_index] = op1_limb_14_col81; - let op1_limb_15_col82 = memory_id_to_big_value_tmp_1081.get_m31(15); + let op1_limb_15_col82 = memoryidtobig_value_tmp_f0ae_13.get_m31(15); trace[82].data[row_index] = op1_limb_15_col82; - let op1_limb_16_col83 = memory_id_to_big_value_tmp_1081.get_m31(16); + let op1_limb_16_col83 = memoryidtobig_value_tmp_f0ae_13.get_m31(16); trace[83].data[row_index] = op1_limb_16_col83; - let op1_limb_17_col84 = memory_id_to_big_value_tmp_1081.get_m31(17); + let op1_limb_17_col84 = memoryidtobig_value_tmp_f0ae_13.get_m31(17); trace[84].data[row_index] = op1_limb_17_col84; - let op1_limb_18_col85 = memory_id_to_big_value_tmp_1081.get_m31(18); + let op1_limb_18_col85 = memoryidtobig_value_tmp_f0ae_13.get_m31(18); trace[85].data[row_index] = op1_limb_18_col85; - let op1_limb_19_col86 = memory_id_to_big_value_tmp_1081.get_m31(19); + let op1_limb_19_col86 = memoryidtobig_value_tmp_f0ae_13.get_m31(19); trace[86].data[row_index] = op1_limb_19_col86; - let op1_limb_20_col87 = memory_id_to_big_value_tmp_1081.get_m31(20); + let op1_limb_20_col87 = memoryidtobig_value_tmp_f0ae_13.get_m31(20); trace[87].data[row_index] = op1_limb_20_col87; - let op1_limb_21_col88 = memory_id_to_big_value_tmp_1081.get_m31(21); + let op1_limb_21_col88 = memoryidtobig_value_tmp_f0ae_13.get_m31(21); trace[88].data[row_index] = op1_limb_21_col88; - let op1_limb_22_col89 = memory_id_to_big_value_tmp_1081.get_m31(22); + let op1_limb_22_col89 = memoryidtobig_value_tmp_f0ae_13.get_m31(22); trace[89].data[row_index] = op1_limb_22_col89; - let op1_limb_23_col90 = memory_id_to_big_value_tmp_1081.get_m31(23); + let op1_limb_23_col90 = memoryidtobig_value_tmp_f0ae_13.get_m31(23); trace[90].data[row_index] = op1_limb_23_col90; - let op1_limb_24_col91 = memory_id_to_big_value_tmp_1081.get_m31(24); + let op1_limb_24_col91 = memoryidtobig_value_tmp_f0ae_13.get_m31(24); trace[91].data[row_index] = op1_limb_24_col91; - let op1_limb_25_col92 = memory_id_to_big_value_tmp_1081.get_m31(25); + let op1_limb_25_col92 = memoryidtobig_value_tmp_f0ae_13.get_m31(25); trace[92].data[row_index] = op1_limb_25_col92; - let op1_limb_26_col93 = memory_id_to_big_value_tmp_1081.get_m31(26); + let op1_limb_26_col93 = memoryidtobig_value_tmp_f0ae_13.get_m31(26); trace[93].data[row_index] = op1_limb_26_col93; - let op1_limb_27_col94 = memory_id_to_big_value_tmp_1081.get_m31(27); + let op1_limb_27_col94 = memoryidtobig_value_tmp_f0ae_13.get_m31(27); trace[94].data[row_index] = op1_limb_27_col94; sub_components_inputs.memory_id_to_big_inputs[2].extend(op1_id_col66.unpack()); @@ -625,13 +625,13 @@ pub fn write_trace_simd( op1_limb_27_col94, ]); - // verify_add252. + // VerifyAdd252. - let sub_p_bit_tmp_1082 = ((UInt16_1) + let sub_p_bit_tmp_f0ae_14 = ((UInt16_1) & (((PackedUInt16::from_m31(op0_limb_0_col38)) ^ (PackedUInt16::from_m31(op1_limb_0_col67))) ^ (PackedUInt16::from_m31(dst_limb_0_col9)))); - let sub_p_bit_col95 = sub_p_bit_tmp_1082.as_m31(); + let sub_p_bit_col95 = sub_p_bit_tmp_f0ae_14.as_m31(); trace[95].data[row_index] = sub_p_bit_col95; lookup_data.opcodes[0].push([input_pc_col0, input_ap_col1, input_fp_col2]); diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/component.rs index f9314c05..d16cf209 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/component.rs @@ -114,9 +114,9 @@ impl FrameworkEval for Eval { let op1_limb_1_col27 = eval.next_trace_mask(); let op1_limb_2_col28 = eval.next_trace_mask(); - // decode_instruction_52ce7a4a3d9be19a. + // DecodeInstruction_52ce7a4a3d9be19a. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -140,16 +140,16 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); // Either flag op1_base_fp is on or flag op1_base_ap is on. eval.add_constraint( ((op1_base_fp_col8.clone() + op1_base_ap_col9.clone()) - M31_1.clone()), ); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -158,9 +158,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col11.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col12.clone() * (msb_col12.clone() - M31_1.clone()))); @@ -173,7 +173,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col13.clone()) * (msb_col12.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -207,11 +207,11 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col12.clone() * M31_256.clone()), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -220,9 +220,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), op0_id_col17.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col18.clone() * (msb_col18.clone() - M31_1.clone()))); @@ -235,7 +235,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col19.clone()) * (msb_col18.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -269,11 +269,11 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col18.clone() * M31_256.clone()), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -282,9 +282,9 @@ impl FrameworkEval for Eval { + (offset2_col5.clone() - M31_32768.clone())), op1_id_col23.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col24.clone() * (msb_col24.clone() - M31_1.clone()))); @@ -297,7 +297,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col25.clone()) * (msb_col24.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -331,7 +331,7 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col24.clone() * M31_256.clone()), ], - )]); + )); // dst equals op0 + op1. eval.add_constraint( @@ -350,7 +350,7 @@ impl FrameworkEval for Eval { - msb_col24.clone()) - (M31_134217728.clone() * mid_limbs_set_col25.clone())))), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -358,9 +358,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -368,7 +368,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col10.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/prover.rs index 6ddad0d6..7e4ac5d5 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_f/prover.rs @@ -193,91 +193,91 @@ pub fn write_trace_simd( .into_iter() .enumerate() .for_each(|(row_index, add_opcode_is_small_t_is_imm_f_input)| { - let input_tmp_1043 = add_opcode_is_small_t_is_imm_f_input; - let input_pc_col0 = input_tmp_1043.pc; + let input_tmp_6202_0 = add_opcode_is_small_t_is_imm_f_input; + let input_pc_col0 = input_tmp_6202_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1043.ap; + let input_ap_col1 = input_tmp_6202_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1043.fp; + let input_fp_col2 = input_tmp_6202_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_52ce7a4a3d9be19a. + // DecodeInstruction_52ce7a4a3d9be19a. - let memory_address_to_id_value_tmp_1044 = + let memoryaddresstoid_value_tmp_6202_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1045 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1044); - let offset0_tmp_1046 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(1))) + let memoryidtobig_value_tmp_6202_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_6202_1); + let offset0_tmp_6202_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1046.as_m31(); + let offset0_col3 = offset0_tmp_6202_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset1_tmp_1047 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(1))) + let offset1_tmp_6202_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col4 = offset1_tmp_1047.as_m31(); + let offset1_col4 = offset1_tmp_6202_4.as_m31(); trace[4].data[row_index] = offset1_col4; - let offset2_tmp_1048 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(3))) + let offset2_tmp_6202_5 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col5 = offset2_tmp_1048.as_m31(); + let offset2_col5 = offset2_tmp_6202_5.as_m31(); trace[5].data[row_index] = offset2_col5; - let dst_base_fp_tmp_1049 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(5))) + let dst_base_fp_tmp_6202_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col6 = dst_base_fp_tmp_1049.as_m31(); + let dst_base_fp_col6 = dst_base_fp_tmp_6202_6.as_m31(); trace[6].data[row_index] = dst_base_fp_col6; - let op0_base_fp_tmp_1050 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(5))) + let op0_base_fp_tmp_6202_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col7 = op0_base_fp_tmp_1050.as_m31(); + let op0_base_fp_col7 = op0_base_fp_tmp_6202_7.as_m31(); trace[7].data[row_index] = op0_base_fp_col7; - let op1_base_fp_tmp_1051 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(5))) + let op1_base_fp_tmp_6202_8 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(6))) << (UInt16_6))) >> (UInt16_3)) & (UInt16_1)); - let op1_base_fp_col8 = op1_base_fp_tmp_1051.as_m31(); + let op1_base_fp_col8 = op1_base_fp_tmp_6202_8.as_m31(); trace[8].data[row_index] = op1_base_fp_col8; - let op1_base_ap_tmp_1052 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(5))) + let op1_base_ap_tmp_6202_9 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(6))) << (UInt16_6))) >> (UInt16_4)) & (UInt16_1)); - let op1_base_ap_col9 = op1_base_ap_tmp_1052.as_m31(); + let op1_base_ap_col9 = op1_base_ap_tmp_6202_9.as_m31(); trace[9].data[row_index] = op1_base_ap_col9; - let ap_update_add_1_tmp_1053 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(5))) + let ap_update_add_1_tmp_6202_10 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1045.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_6202_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col10 = ap_update_add_1_tmp_1053.as_m31(); + let ap_update_add_1_col10 = ap_update_add_1_tmp_6202_10.as_m31(); trace[10].data[row_index] = ap_update_add_1_col10; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -327,16 +327,16 @@ pub fn write_trace_simd( M31_1, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1055 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_6202_11 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col6) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col6)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1056 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1055); - let dst_id_col11 = memory_address_to_id_value_tmp_1055; + let memoryidtobig_value_tmp_6202_12 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_6202_11); + let dst_id_col11 = memoryaddresstoid_value_tmp_6202_11; trace[11].data[row_index] = dst_id_col11; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col6) * (input_fp_col2)) @@ -352,20 +352,20 @@ pub fn write_trace_simd( dst_id_col11, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1057 = memory_id_to_big_value_tmp_1056.get_m31(27).eq(M31_256); - let msb_col12 = msb_tmp_1057.as_m31(); + let msb_tmp_6202_13 = memoryidtobig_value_tmp_6202_12.get_m31(27).eq(M31_256); + let msb_col12 = msb_tmp_6202_13.as_m31(); trace[12].data[row_index] = msb_col12; - let mid_limbs_set_tmp_1058 = memory_id_to_big_value_tmp_1056.get_m31(20).eq(M31_511); - let mid_limbs_set_col13 = mid_limbs_set_tmp_1058.as_m31(); + let mid_limbs_set_tmp_6202_14 = memoryidtobig_value_tmp_6202_12.get_m31(20).eq(M31_511); + let mid_limbs_set_col13 = mid_limbs_set_tmp_6202_14.as_m31(); trace[13].data[row_index] = mid_limbs_set_col13; - let dst_limb_0_col14 = memory_id_to_big_value_tmp_1056.get_m31(0); + let dst_limb_0_col14 = memoryidtobig_value_tmp_6202_12.get_m31(0); trace[14].data[row_index] = dst_limb_0_col14; - let dst_limb_1_col15 = memory_id_to_big_value_tmp_1056.get_m31(1); + let dst_limb_1_col15 = memoryidtobig_value_tmp_6202_12.get_m31(1); trace[15].data[row_index] = dst_limb_1_col15; - let dst_limb_2_col16 = memory_id_to_big_value_tmp_1056.get_m31(2); + let dst_limb_2_col16 = memoryidtobig_value_tmp_6202_12.get_m31(2); trace[16].data[row_index] = dst_limb_2_col16; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col11.unpack()); @@ -401,16 +401,16 @@ pub fn write_trace_simd( ((msb_col12) * (M31_256)), ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1059 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_6202_15 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col7) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col7)) * (input_ap_col1))) + ((offset1_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1060 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1059); - let op0_id_col17 = memory_address_to_id_value_tmp_1059; + let memoryidtobig_value_tmp_6202_16 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_6202_15); + let op0_id_col17 = memoryaddresstoid_value_tmp_6202_15; trace[17].data[row_index] = op0_id_col17; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((op0_base_fp_col7) * (input_fp_col2)) @@ -426,20 +426,20 @@ pub fn write_trace_simd( op0_id_col17, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1061 = memory_id_to_big_value_tmp_1060.get_m31(27).eq(M31_256); - let msb_col18 = msb_tmp_1061.as_m31(); + let msb_tmp_6202_17 = memoryidtobig_value_tmp_6202_16.get_m31(27).eq(M31_256); + let msb_col18 = msb_tmp_6202_17.as_m31(); trace[18].data[row_index] = msb_col18; - let mid_limbs_set_tmp_1062 = memory_id_to_big_value_tmp_1060.get_m31(20).eq(M31_511); - let mid_limbs_set_col19 = mid_limbs_set_tmp_1062.as_m31(); + let mid_limbs_set_tmp_6202_18 = memoryidtobig_value_tmp_6202_16.get_m31(20).eq(M31_511); + let mid_limbs_set_col19 = mid_limbs_set_tmp_6202_18.as_m31(); trace[19].data[row_index] = mid_limbs_set_col19; - let op0_limb_0_col20 = memory_id_to_big_value_tmp_1060.get_m31(0); + let op0_limb_0_col20 = memoryidtobig_value_tmp_6202_16.get_m31(0); trace[20].data[row_index] = op0_limb_0_col20; - let op0_limb_1_col21 = memory_id_to_big_value_tmp_1060.get_m31(1); + let op0_limb_1_col21 = memoryidtobig_value_tmp_6202_16.get_m31(1); trace[21].data[row_index] = op0_limb_1_col21; - let op0_limb_2_col22 = memory_id_to_big_value_tmp_1060.get_m31(2); + let op0_limb_2_col22 = memoryidtobig_value_tmp_6202_16.get_m31(2); trace[22].data[row_index] = op0_limb_2_col22; sub_components_inputs.memory_id_to_big_inputs[1].extend(op0_id_col17.unpack()); @@ -475,15 +475,15 @@ pub fn write_trace_simd( ((msb_col18) * (M31_256)), ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1063 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_6202_19 = memory_address_to_id_state.deduce_output( ((((op1_base_fp_col8) * (input_fp_col2)) + ((op1_base_ap_col9) * (input_ap_col1))) + ((offset2_col5) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1064 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1063); - let op1_id_col23 = memory_address_to_id_value_tmp_1063; + let memoryidtobig_value_tmp_6202_20 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_6202_19); + let op1_id_col23 = memoryaddresstoid_value_tmp_6202_19; trace[23].data[row_index] = op1_id_col23; sub_components_inputs.memory_address_to_id_inputs[2].extend( ((((op1_base_fp_col8) * (input_fp_col2)) + ((op1_base_ap_col9) * (input_ap_col1))) @@ -497,20 +497,20 @@ pub fn write_trace_simd( op1_id_col23, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1065 = memory_id_to_big_value_tmp_1064.get_m31(27).eq(M31_256); - let msb_col24 = msb_tmp_1065.as_m31(); + let msb_tmp_6202_21 = memoryidtobig_value_tmp_6202_20.get_m31(27).eq(M31_256); + let msb_col24 = msb_tmp_6202_21.as_m31(); trace[24].data[row_index] = msb_col24; - let mid_limbs_set_tmp_1066 = memory_id_to_big_value_tmp_1064.get_m31(20).eq(M31_511); - let mid_limbs_set_col25 = mid_limbs_set_tmp_1066.as_m31(); + let mid_limbs_set_tmp_6202_22 = memoryidtobig_value_tmp_6202_20.get_m31(20).eq(M31_511); + let mid_limbs_set_col25 = mid_limbs_set_tmp_6202_22.as_m31(); trace[25].data[row_index] = mid_limbs_set_col25; - let op1_limb_0_col26 = memory_id_to_big_value_tmp_1064.get_m31(0); + let op1_limb_0_col26 = memoryidtobig_value_tmp_6202_20.get_m31(0); trace[26].data[row_index] = op1_limb_0_col26; - let op1_limb_1_col27 = memory_id_to_big_value_tmp_1064.get_m31(1); + let op1_limb_1_col27 = memoryidtobig_value_tmp_6202_20.get_m31(1); trace[27].data[row_index] = op1_limb_1_col27; - let op1_limb_2_col28 = memory_id_to_big_value_tmp_1064.get_m31(2); + let op1_limb_2_col28 = memoryidtobig_value_tmp_6202_20.get_m31(2); trace[28].data[row_index] = op1_limb_2_col28; sub_components_inputs.memory_id_to_big_inputs[2].extend(op1_id_col23.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/component.rs index 8bd25371..3ba84710 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/component.rs @@ -113,9 +113,9 @@ impl FrameworkEval for Eval { let op1_limb_1_col24 = eval.next_trace_mask(); let op1_limb_2_col25 = eval.next_trace_mask(); - // decode_instruction_9aed6a790187299c. + // DecodeInstruction_9aed6a790187299c. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -139,11 +139,11 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -152,9 +152,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col8.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col9.clone() * (msb_col9.clone() - M31_1.clone()))); @@ -167,7 +167,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col10.clone()) * (msb_col9.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -201,11 +201,11 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col9.clone() * M31_256.clone()), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -214,9 +214,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), op0_id_col14.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col15.clone() * (msb_col15.clone() - M31_1.clone()))); @@ -229,7 +229,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col16.clone()) * (msb_col15.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -263,20 +263,20 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col15.clone() * M31_256.clone()), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_pc_col0.clone() + M31_1.clone()), op1_id_col20.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col21.clone() * (msb_col21.clone() - M31_1.clone()))); @@ -289,7 +289,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col22.clone()) * (msb_col21.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -323,7 +323,7 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col21.clone() * M31_256.clone()), ], - )]); + )); // dst equals op0 + op1. eval.add_constraint( @@ -342,7 +342,7 @@ impl FrameworkEval for Eval { - msb_col21.clone()) - (M31_134217728.clone() * mid_limbs_set_col22.clone())))), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -350,9 +350,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -360,7 +360,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col7.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/prover.rs index f7139de7..e7969bb8 100644 --- a/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/add_opcode_is_small_t_is_imm_t/prover.rs @@ -192,63 +192,63 @@ pub fn write_trace_simd( .into_iter() .enumerate() .for_each(|(row_index, add_opcode_is_small_t_is_imm_t_input)| { - let input_tmp_957 = add_opcode_is_small_t_is_imm_t_input; - let input_pc_col0 = input_tmp_957.pc; + let input_tmp_c5e3_0 = add_opcode_is_small_t_is_imm_t_input; + let input_pc_col0 = input_tmp_c5e3_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_957.ap; + let input_ap_col1 = input_tmp_c5e3_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_957.fp; + let input_fp_col2 = input_tmp_c5e3_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_9aed6a790187299c. + // DecodeInstruction_9aed6a790187299c. - let memory_address_to_id_value_tmp_966 = + let memoryaddresstoid_value_tmp_c5e3_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_967 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_966); - let offset0_tmp_968 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(1))) + let memoryidtobig_value_tmp_c5e3_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c5e3_1); + let offset0_tmp_c5e3_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_968.as_m31(); + let offset0_col3 = offset0_tmp_c5e3_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset1_tmp_969 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(1))) + let offset1_tmp_c5e3_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col4 = offset1_tmp_969.as_m31(); + let offset1_col4 = offset1_tmp_c5e3_4.as_m31(); trace[4].data[row_index] = offset1_col4; - let dst_base_fp_tmp_970 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(5))) + let dst_base_fp_tmp_c5e3_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col5 = dst_base_fp_tmp_970.as_m31(); + let dst_base_fp_col5 = dst_base_fp_tmp_c5e3_5.as_m31(); trace[5].data[row_index] = dst_base_fp_col5; - let op0_base_fp_tmp_971 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(5))) + let op0_base_fp_tmp_c5e3_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col6 = op0_base_fp_tmp_971.as_m31(); + let op0_base_fp_col6 = op0_base_fp_tmp_c5e3_6.as_m31(); trace[6].data[row_index] = op0_base_fp_col6; - let ap_update_add_1_tmp_972 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(5))) + let ap_update_add_1_tmp_c5e3_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_967.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c5e3_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col7 = ap_update_add_1_tmp_972.as_m31(); + let ap_update_add_1_col7 = ap_update_add_1_tmp_c5e3_7.as_m31(); trace[7].data[row_index] = ap_update_add_1_col7; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -298,16 +298,16 @@ pub fn write_trace_simd( M31_1, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_974 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_c5e3_8 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col5) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col5)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_975 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_974); - let dst_id_col8 = memory_address_to_id_value_tmp_974; + let memoryidtobig_value_tmp_c5e3_9 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c5e3_8); + let dst_id_col8 = memoryaddresstoid_value_tmp_c5e3_8; trace[8].data[row_index] = dst_id_col8; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col5) * (input_fp_col2)) @@ -323,20 +323,20 @@ pub fn write_trace_simd( dst_id_col8, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_976 = memory_id_to_big_value_tmp_975.get_m31(27).eq(M31_256); - let msb_col9 = msb_tmp_976.as_m31(); + let msb_tmp_c5e3_10 = memoryidtobig_value_tmp_c5e3_9.get_m31(27).eq(M31_256); + let msb_col9 = msb_tmp_c5e3_10.as_m31(); trace[9].data[row_index] = msb_col9; - let mid_limbs_set_tmp_977 = memory_id_to_big_value_tmp_975.get_m31(20).eq(M31_511); - let mid_limbs_set_col10 = mid_limbs_set_tmp_977.as_m31(); + let mid_limbs_set_tmp_c5e3_11 = memoryidtobig_value_tmp_c5e3_9.get_m31(20).eq(M31_511); + let mid_limbs_set_col10 = mid_limbs_set_tmp_c5e3_11.as_m31(); trace[10].data[row_index] = mid_limbs_set_col10; - let dst_limb_0_col11 = memory_id_to_big_value_tmp_975.get_m31(0); + let dst_limb_0_col11 = memoryidtobig_value_tmp_c5e3_9.get_m31(0); trace[11].data[row_index] = dst_limb_0_col11; - let dst_limb_1_col12 = memory_id_to_big_value_tmp_975.get_m31(1); + let dst_limb_1_col12 = memoryidtobig_value_tmp_c5e3_9.get_m31(1); trace[12].data[row_index] = dst_limb_1_col12; - let dst_limb_2_col13 = memory_id_to_big_value_tmp_975.get_m31(2); + let dst_limb_2_col13 = memoryidtobig_value_tmp_c5e3_9.get_m31(2); trace[13].data[row_index] = dst_limb_2_col13; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col8.unpack()); @@ -372,16 +372,16 @@ pub fn write_trace_simd( ((msb_col9) * (M31_256)), ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_978 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_c5e3_12 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col6) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col6)) * (input_ap_col1))) + ((offset1_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_979 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_978); - let op0_id_col14 = memory_address_to_id_value_tmp_978; + let memoryidtobig_value_tmp_c5e3_13 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c5e3_12); + let op0_id_col14 = memoryaddresstoid_value_tmp_c5e3_12; trace[14].data[row_index] = op0_id_col14; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((op0_base_fp_col6) * (input_fp_col2)) @@ -397,20 +397,20 @@ pub fn write_trace_simd( op0_id_col14, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_980 = memory_id_to_big_value_tmp_979.get_m31(27).eq(M31_256); - let msb_col15 = msb_tmp_980.as_m31(); + let msb_tmp_c5e3_14 = memoryidtobig_value_tmp_c5e3_13.get_m31(27).eq(M31_256); + let msb_col15 = msb_tmp_c5e3_14.as_m31(); trace[15].data[row_index] = msb_col15; - let mid_limbs_set_tmp_981 = memory_id_to_big_value_tmp_979.get_m31(20).eq(M31_511); - let mid_limbs_set_col16 = mid_limbs_set_tmp_981.as_m31(); + let mid_limbs_set_tmp_c5e3_15 = memoryidtobig_value_tmp_c5e3_13.get_m31(20).eq(M31_511); + let mid_limbs_set_col16 = mid_limbs_set_tmp_c5e3_15.as_m31(); trace[16].data[row_index] = mid_limbs_set_col16; - let op0_limb_0_col17 = memory_id_to_big_value_tmp_979.get_m31(0); + let op0_limb_0_col17 = memoryidtobig_value_tmp_c5e3_13.get_m31(0); trace[17].data[row_index] = op0_limb_0_col17; - let op0_limb_1_col18 = memory_id_to_big_value_tmp_979.get_m31(1); + let op0_limb_1_col18 = memoryidtobig_value_tmp_c5e3_13.get_m31(1); trace[18].data[row_index] = op0_limb_1_col18; - let op0_limb_2_col19 = memory_id_to_big_value_tmp_979.get_m31(2); + let op0_limb_2_col19 = memoryidtobig_value_tmp_c5e3_13.get_m31(2); trace[19].data[row_index] = op0_limb_2_col19; sub_components_inputs.memory_id_to_big_inputs[1].extend(op0_id_col14.unpack()); @@ -446,33 +446,33 @@ pub fn write_trace_simd( ((msb_col15) * (M31_256)), ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_982 = + let memoryaddresstoid_value_tmp_c5e3_16 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_983 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_982); - let op1_id_col20 = memory_address_to_id_value_tmp_982; + let memoryidtobig_value_tmp_c5e3_17 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c5e3_16); + let op1_id_col20 = memoryaddresstoid_value_tmp_c5e3_16; trace[20].data[row_index] = op1_id_col20; sub_components_inputs.memory_address_to_id_inputs[2] .extend(((input_pc_col0) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[2].push([((input_pc_col0) + (M31_1)), op1_id_col20]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_984 = memory_id_to_big_value_tmp_983.get_m31(27).eq(M31_256); - let msb_col21 = msb_tmp_984.as_m31(); + let msb_tmp_c5e3_18 = memoryidtobig_value_tmp_c5e3_17.get_m31(27).eq(M31_256); + let msb_col21 = msb_tmp_c5e3_18.as_m31(); trace[21].data[row_index] = msb_col21; - let mid_limbs_set_tmp_985 = memory_id_to_big_value_tmp_983.get_m31(20).eq(M31_511); - let mid_limbs_set_col22 = mid_limbs_set_tmp_985.as_m31(); + let mid_limbs_set_tmp_c5e3_19 = memoryidtobig_value_tmp_c5e3_17.get_m31(20).eq(M31_511); + let mid_limbs_set_col22 = mid_limbs_set_tmp_c5e3_19.as_m31(); trace[22].data[row_index] = mid_limbs_set_col22; - let op1_limb_0_col23 = memory_id_to_big_value_tmp_983.get_m31(0); + let op1_limb_0_col23 = memoryidtobig_value_tmp_c5e3_17.get_m31(0); trace[23].data[row_index] = op1_limb_0_col23; - let op1_limb_1_col24 = memory_id_to_big_value_tmp_983.get_m31(1); + let op1_limb_1_col24 = memoryidtobig_value_tmp_c5e3_17.get_m31(1); trace[24].data[row_index] = op1_limb_1_col24; - let op1_limb_2_col25 = memory_id_to_big_value_tmp_983.get_m31(2); + let op1_limb_2_col25 = memoryidtobig_value_tmp_c5e3_17.get_m31(2); trace[25].data[row_index] = op1_limb_2_col25; sub_components_inputs.memory_id_to_big_inputs[2].extend(op1_id_col20.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/component.rs index e2d9cf59..3aed8fc2 100644 --- a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/component.rs @@ -89,9 +89,9 @@ impl FrameworkEval for Eval { let ap_update_add_1_col8 = eval.next_trace_mask(); let dst_id_col9 = eval.next_trace_mask(); - // decode_instruction_dc55adb272664963. + // DecodeInstruction_dc55adb272664963. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -115,16 +115,16 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); // Either flag op1_base_fp is on or flag op1_base_ap is on. eval.add_constraint( ((op1_base_fp_col6.clone() + op1_base_ap_col7.clone()) - M31_1.clone()), ); - // mem_verify_equal. + // MemVerifyEqual. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -133,9 +133,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col9.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -144,9 +144,9 @@ impl FrameworkEval for Eval { + (offset2_col4.clone() - M31_32768.clone())), dst_id_col9.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -154,9 +154,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -164,7 +164,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col8.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/prover.rs index a70f8203..2988665e 100644 --- a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_f/prover.rs @@ -171,72 +171,72 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, assert_eq_opcode_is_double_deref_f_is_imm_f_input)| { - let input_tmp_1110 = assert_eq_opcode_is_double_deref_f_is_imm_f_input; - let input_pc_col0 = input_tmp_1110.pc; + let input_tmp_4299_0 = assert_eq_opcode_is_double_deref_f_is_imm_f_input; + let input_pc_col0 = input_tmp_4299_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1110.ap; + let input_ap_col1 = input_tmp_4299_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1110.fp; + let input_fp_col2 = input_tmp_4299_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_dc55adb272664963. + // DecodeInstruction_dc55adb272664963. - let memory_address_to_id_value_tmp_1120 = + let memoryaddresstoid_value_tmp_4299_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1121 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1120); - let offset0_tmp_1122 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(1))) + let memoryidtobig_value_tmp_4299_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_4299_1); + let offset0_tmp_4299_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1122.as_m31(); + let offset0_col3 = offset0_tmp_4299_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset2_tmp_1123 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(3))) + let offset2_tmp_4299_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col4 = offset2_tmp_1123.as_m31(); + let offset2_col4 = offset2_tmp_4299_4.as_m31(); trace[4].data[row_index] = offset2_col4; - let dst_base_fp_tmp_1124 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(5))) + let dst_base_fp_tmp_4299_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col5 = dst_base_fp_tmp_1124.as_m31(); + let dst_base_fp_col5 = dst_base_fp_tmp_4299_5.as_m31(); trace[5].data[row_index] = dst_base_fp_col5; - let op1_base_fp_tmp_1125 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(5))) + let op1_base_fp_tmp_4299_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(6))) << (UInt16_6))) >> (UInt16_3)) & (UInt16_1)); - let op1_base_fp_col6 = op1_base_fp_tmp_1125.as_m31(); + let op1_base_fp_col6 = op1_base_fp_tmp_4299_6.as_m31(); trace[6].data[row_index] = op1_base_fp_col6; - let op1_base_ap_tmp_1126 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(5))) + let op1_base_ap_tmp_4299_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(6))) << (UInt16_6))) >> (UInt16_4)) & (UInt16_1)); - let op1_base_ap_col7 = op1_base_ap_tmp_1126.as_m31(); + let op1_base_ap_col7 = op1_base_ap_tmp_4299_7.as_m31(); trace[7].data[row_index] = op1_base_ap_col7; - let ap_update_add_1_tmp_1127 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(5))) + let ap_update_add_1_tmp_4299_8 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1121.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_4299_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col8 = ap_update_add_1_tmp_1127.as_m31(); + let ap_update_add_1_col8 = ap_update_add_1_tmp_4299_8.as_m31(); trace[8].data[row_index] = ap_update_add_1_col8; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -286,14 +286,14 @@ pub fn write_trace_simd( M31_1, ]); - // mem_verify_equal. + // MemVerifyEqual. - let memory_address_to_id_value_tmp_1130 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_4299_9 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col5) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col5)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let dst_id_col9 = memory_address_to_id_value_tmp_1130; + let dst_id_col9 = memoryaddresstoid_value_tmp_4299_9; trace[9].data[row_index] = dst_id_col9; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col5) * (input_fp_col2)) diff --git a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/component.rs index 7eac9f31..688ff73e 100644 --- a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/component.rs @@ -88,9 +88,9 @@ impl FrameworkEval for Eval { let ap_update_add_1_col5 = eval.next_trace_mask(); let dst_id_col6 = eval.next_trace_mask(); - // decode_instruction_684cf7138ce526e3. + // DecodeInstruction_684cf7138ce526e3. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -114,11 +114,11 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // mem_verify_equal. + // MemVerifyEqual. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -127,15 +127,15 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col6.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[(input_pc_col0.clone() + M31_1.clone()), dst_id_col6.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -143,9 +143,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -153,7 +153,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col5.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/prover.rs index 68c4b325..caaff5da 100644 --- a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_f_is_imm_t/prover.rs @@ -169,44 +169,44 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, assert_eq_opcode_is_double_deref_f_is_imm_t_input)| { - let input_tmp_1155 = assert_eq_opcode_is_double_deref_f_is_imm_t_input; - let input_pc_col0 = input_tmp_1155.pc; + let input_tmp_ab0b_0 = assert_eq_opcode_is_double_deref_f_is_imm_t_input; + let input_pc_col0 = input_tmp_ab0b_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1155.ap; + let input_ap_col1 = input_tmp_ab0b_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1155.fp; + let input_fp_col2 = input_tmp_ab0b_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_684cf7138ce526e3. + // DecodeInstruction_684cf7138ce526e3. - let memory_address_to_id_value_tmp_1162 = + let memoryaddresstoid_value_tmp_ab0b_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1163 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1162); - let offset0_tmp_1164 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1163.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1163.get_m31(1))) + let memoryidtobig_value_tmp_ab0b_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_ab0b_1); + let offset0_tmp_ab0b_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_ab0b_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_ab0b_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1164.as_m31(); + let offset0_col3 = offset0_tmp_ab0b_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let dst_base_fp_tmp_1165 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1163.get_m31(5))) + let dst_base_fp_tmp_ab0b_4 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_ab0b_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1163.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_ab0b_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col4 = dst_base_fp_tmp_1165.as_m31(); + let dst_base_fp_col4 = dst_base_fp_tmp_ab0b_4.as_m31(); trace[4].data[row_index] = dst_base_fp_col4; - let ap_update_add_1_tmp_1166 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1163.get_m31(5))) + let ap_update_add_1_tmp_ab0b_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_ab0b_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1163.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_ab0b_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col5 = ap_update_add_1_tmp_1166.as_m31(); + let ap_update_add_1_col5 = ap_update_add_1_tmp_ab0b_5.as_m31(); trace[5].data[row_index] = ap_update_add_1_col5; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -256,14 +256,14 @@ pub fn write_trace_simd( M31_1, ]); - // mem_verify_equal. + // MemVerifyEqual. - let memory_address_to_id_value_tmp_1168 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_ab0b_6 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col4) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col4)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let dst_id_col6 = memory_address_to_id_value_tmp_1168; + let dst_id_col6 = memoryaddresstoid_value_tmp_ab0b_6; trace[6].data[row_index] = dst_id_col6; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col4) * (input_fp_col2)) diff --git a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/component.rs index 689713c2..ee102cc7 100644 --- a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/component.rs @@ -95,9 +95,9 @@ impl FrameworkEval for Eval { let mem1_base_limb_2_col12 = eval.next_trace_mask(); let dst_id_col13 = eval.next_trace_mask(); - // decode_instruction_a2af169c0fec5c47. + // DecodeInstruction_a2af169c0fec5c47. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -121,11 +121,11 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -134,9 +134,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), mem1_base_id_col9.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -145,11 +145,11 @@ impl FrameworkEval for Eval { mem1_base_limb_1_col11.clone(), mem1_base_limb_2_col12.clone(), ], - )]); + )); - // mem_verify_equal. + // MemVerifyEqual. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -158,9 +158,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col13.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -170,9 +170,9 @@ impl FrameworkEval for Eval { + (offset2_col5.clone() - M31_32768.clone())), dst_id_col13.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -180,9 +180,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -190,7 +190,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col8.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/prover.rs index bc932ab7..aea3f420 100644 --- a/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/assert_eq_opcode_is_double_deref_t_is_imm_f/prover.rs @@ -186,73 +186,73 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, assert_eq_opcode_is_double_deref_t_is_imm_f_input)| { - let input_tmp_1131 = assert_eq_opcode_is_double_deref_t_is_imm_f_input; - let input_pc_col0 = input_tmp_1131.pc; + let input_tmp_d488_0 = assert_eq_opcode_is_double_deref_t_is_imm_f_input; + let input_pc_col0 = input_tmp_d488_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1131.ap; + let input_ap_col1 = input_tmp_d488_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1131.fp; + let input_fp_col2 = input_tmp_d488_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_a2af169c0fec5c47. + // DecodeInstruction_a2af169c0fec5c47. - let memory_address_to_id_value_tmp_1141 = + let memoryaddresstoid_value_tmp_d488_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1142 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1141); - let offset0_tmp_1143 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(1))) + let memoryidtobig_value_tmp_d488_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_d488_1); + let offset0_tmp_d488_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1143.as_m31(); + let offset0_col3 = offset0_tmp_d488_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset1_tmp_1144 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(1))) + let offset1_tmp_d488_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col4 = offset1_tmp_1144.as_m31(); + let offset1_col4 = offset1_tmp_d488_4.as_m31(); trace[4].data[row_index] = offset1_col4; - let offset2_tmp_1145 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(3))) + let offset2_tmp_d488_5 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col5 = offset2_tmp_1145.as_m31(); + let offset2_col5 = offset2_tmp_d488_5.as_m31(); trace[5].data[row_index] = offset2_col5; - let dst_base_fp_tmp_1146 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(5))) + let dst_base_fp_tmp_d488_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col6 = dst_base_fp_tmp_1146.as_m31(); + let dst_base_fp_col6 = dst_base_fp_tmp_d488_6.as_m31(); trace[6].data[row_index] = dst_base_fp_col6; - let op0_base_fp_tmp_1147 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(5))) + let op0_base_fp_tmp_d488_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col7 = op0_base_fp_tmp_1147.as_m31(); + let op0_base_fp_col7 = op0_base_fp_tmp_d488_7.as_m31(); trace[7].data[row_index] = op0_base_fp_col7; - let ap_update_add_1_tmp_1148 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(5))) + let ap_update_add_1_tmp_d488_8 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1142.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_d488_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col8 = ap_update_add_1_tmp_1148.as_m31(); + let ap_update_add_1_col8 = ap_update_add_1_tmp_d488_8.as_m31(); trace[8].data[row_index] = ap_update_add_1_col8; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -302,16 +302,16 @@ pub fn write_trace_simd( M31_1, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1152 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_d488_9 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col7) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col7)) * (input_ap_col1))) + ((offset1_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1153 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1152); - let mem1_base_id_col9 = memory_address_to_id_value_tmp_1152; + let memoryidtobig_value_tmp_d488_10 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_d488_9); + let mem1_base_id_col9 = memoryaddresstoid_value_tmp_d488_9; trace[9].data[row_index] = mem1_base_id_col9; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((op0_base_fp_col7) * (input_fp_col2)) @@ -326,11 +326,11 @@ pub fn write_trace_simd( + ((offset1_col4) - (M31_32768))), mem1_base_id_col9, ]); - let mem1_base_limb_0_col10 = memory_id_to_big_value_tmp_1153.get_m31(0); + let mem1_base_limb_0_col10 = memoryidtobig_value_tmp_d488_10.get_m31(0); trace[10].data[row_index] = mem1_base_limb_0_col10; - let mem1_base_limb_1_col11 = memory_id_to_big_value_tmp_1153.get_m31(1); + let mem1_base_limb_1_col11 = memoryidtobig_value_tmp_d488_10.get_m31(1); trace[11].data[row_index] = mem1_base_limb_1_col11; - let mem1_base_limb_2_col12 = memory_id_to_big_value_tmp_1153.get_m31(2); + let mem1_base_limb_2_col12 = memoryidtobig_value_tmp_d488_10.get_m31(2); trace[12].data[row_index] = mem1_base_limb_2_col12; sub_components_inputs.memory_id_to_big_inputs[0].extend(mem1_base_id_col9.unpack()); @@ -366,14 +366,14 @@ pub fn write_trace_simd( M31_0, ]); - // mem_verify_equal. + // MemVerifyEqual. - let memory_address_to_id_value_tmp_1154 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_d488_11 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col6) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col6)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let dst_id_col13 = memory_address_to_id_value_tmp_1154; + let dst_id_col13 = memoryaddresstoid_value_tmp_d488_11; trace[13].data[row_index] = dst_id_col13; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((dst_base_fp_col6) * (input_fp_col2)) diff --git a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/component.rs index 0edfeac0..5887f535 100644 --- a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/component.rs @@ -99,9 +99,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col14 = eval.next_trace_mask(); let next_pc_limb_2_col15 = eval.next_trace_mask(); - // decode_instruction_d06cc8770ddfafbc. + // DecodeInstruction_d06cc8770ddfafbc. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -123,17 +123,17 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[input_ap_col1.clone(), stored_fp_id_col4.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -142,7 +142,7 @@ impl FrameworkEval for Eval { stored_fp_limb_1_col6.clone(), stored_fp_limb_2_col7.clone(), ], - )]); + )); //[ap] = fp. eval.add_constraint( @@ -151,18 +151,18 @@ impl FrameworkEval for Eval { - input_fp_col2.clone()), ); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_ap_col1.clone() + M31_1.clone()), stored_ret_pc_id_col8.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -171,7 +171,7 @@ impl FrameworkEval for Eval { stored_ret_pc_limb_1_col10.clone(), stored_ret_pc_limb_2_col11.clone(), ], - )]); + )); //[ap+1] = return_pc. eval.add_constraint( @@ -181,18 +181,18 @@ impl FrameworkEval for Eval { - (input_pc_col0.clone() + M31_1.clone())), ); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_ap_col1.clone() + (offset2_col3.clone() - M31_32768.clone())), next_pc_id_col12.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -201,9 +201,9 @@ impl FrameworkEval for Eval { next_pc_limb_1_col14.clone(), next_pc_limb_2_col15.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -211,9 +211,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -222,7 +222,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + M31_2.clone()), (input_ap_col1.clone() + M31_2.clone()), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/prover.rs index e19a7adf..2d80d2f6 100644 --- a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_f/prover.rs @@ -183,29 +183,29 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, call_opcode_is_rel_f_op1_base_fp_f_input)| { - let input_tmp_1169 = call_opcode_is_rel_f_op1_base_fp_f_input; - let input_pc_col0 = input_tmp_1169.pc; + let input_tmp_eefa_0 = call_opcode_is_rel_f_op1_base_fp_f_input; + let input_pc_col0 = input_tmp_eefa_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1169.ap; + let input_ap_col1 = input_tmp_eefa_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1169.fp; + let input_fp_col2 = input_tmp_eefa_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_d06cc8770ddfafbc. + // DecodeInstruction_d06cc8770ddfafbc. - let memory_address_to_id_value_tmp_1174 = + let memoryaddresstoid_value_tmp_eefa_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1175 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1174); - let offset2_tmp_1176 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1175.get_m31(3))) + let memoryidtobig_value_tmp_eefa_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_eefa_1); + let offset2_tmp_eefa_3 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_eefa_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1175.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_eefa_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1175.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_eefa_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col3 = offset2_tmp_1176.as_m31(); + let offset2_col3 = offset2_tmp_eefa_3.as_m31(); trace[3].data[row_index] = offset2_col3; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -242,22 +242,22 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1178 = + let memoryaddresstoid_value_tmp_eefa_4 = memory_address_to_id_state.deduce_output(input_ap_col1); - let memory_id_to_big_value_tmp_1179 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1178); - let stored_fp_id_col4 = memory_address_to_id_value_tmp_1178; + let memoryidtobig_value_tmp_eefa_5 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_eefa_4); + let stored_fp_id_col4 = memoryaddresstoid_value_tmp_eefa_4; trace[4].data[row_index] = stored_fp_id_col4; sub_components_inputs.memory_address_to_id_inputs[0].extend(input_ap_col1.unpack()); lookup_data.memoryaddresstoid[0].push([input_ap_col1, stored_fp_id_col4]); - let stored_fp_limb_0_col5 = memory_id_to_big_value_tmp_1179.get_m31(0); + let stored_fp_limb_0_col5 = memoryidtobig_value_tmp_eefa_5.get_m31(0); trace[5].data[row_index] = stored_fp_limb_0_col5; - let stored_fp_limb_1_col6 = memory_id_to_big_value_tmp_1179.get_m31(1); + let stored_fp_limb_1_col6 = memoryidtobig_value_tmp_eefa_5.get_m31(1); trace[6].data[row_index] = stored_fp_limb_1_col6; - let stored_fp_limb_2_col7 = memory_id_to_big_value_tmp_1179.get_m31(2); + let stored_fp_limb_2_col7 = memoryidtobig_value_tmp_eefa_5.get_m31(2); trace[7].data[row_index] = stored_fp_limb_2_col7; sub_components_inputs.memory_id_to_big_inputs[0].extend(stored_fp_id_col4.unpack()); @@ -293,24 +293,24 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1180 = + let memoryaddresstoid_value_tmp_eefa_6 = memory_address_to_id_state.deduce_output(((input_ap_col1) + (M31_1))); - let memory_id_to_big_value_tmp_1181 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1180); - let stored_ret_pc_id_col8 = memory_address_to_id_value_tmp_1180; + let memoryidtobig_value_tmp_eefa_7 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_eefa_6); + let stored_ret_pc_id_col8 = memoryaddresstoid_value_tmp_eefa_6; trace[8].data[row_index] = stored_ret_pc_id_col8; sub_components_inputs.memory_address_to_id_inputs[1] .extend(((input_ap_col1) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[1] .push([((input_ap_col1) + (M31_1)), stored_ret_pc_id_col8]); - let stored_ret_pc_limb_0_col9 = memory_id_to_big_value_tmp_1181.get_m31(0); + let stored_ret_pc_limb_0_col9 = memoryidtobig_value_tmp_eefa_7.get_m31(0); trace[9].data[row_index] = stored_ret_pc_limb_0_col9; - let stored_ret_pc_limb_1_col10 = memory_id_to_big_value_tmp_1181.get_m31(1); + let stored_ret_pc_limb_1_col10 = memoryidtobig_value_tmp_eefa_7.get_m31(1); trace[10].data[row_index] = stored_ret_pc_limb_1_col10; - let stored_ret_pc_limb_2_col11 = memory_id_to_big_value_tmp_1181.get_m31(2); + let stored_ret_pc_limb_2_col11 = memoryidtobig_value_tmp_eefa_7.get_m31(2); trace[11].data[row_index] = stored_ret_pc_limb_2_col11; sub_components_inputs.memory_id_to_big_inputs[1].extend(stored_ret_pc_id_col8.unpack()); @@ -346,13 +346,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1182 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_eefa_8 = memory_address_to_id_state .deduce_output(((input_ap_col1) + ((offset2_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_1183 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1182); - let next_pc_id_col12 = memory_address_to_id_value_tmp_1182; + let memoryidtobig_value_tmp_eefa_9 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_eefa_8); + let next_pc_id_col12 = memoryaddresstoid_value_tmp_eefa_8; trace[12].data[row_index] = next_pc_id_col12; sub_components_inputs.memory_address_to_id_inputs[2] .extend(((input_ap_col1) + ((offset2_col3) - (M31_32768))).unpack()); @@ -361,11 +361,11 @@ pub fn write_trace_simd( ((input_ap_col1) + ((offset2_col3) - (M31_32768))), next_pc_id_col12, ]); - let next_pc_limb_0_col13 = memory_id_to_big_value_tmp_1183.get_m31(0); + let next_pc_limb_0_col13 = memoryidtobig_value_tmp_eefa_9.get_m31(0); trace[13].data[row_index] = next_pc_limb_0_col13; - let next_pc_limb_1_col14 = memory_id_to_big_value_tmp_1183.get_m31(1); + let next_pc_limb_1_col14 = memoryidtobig_value_tmp_eefa_9.get_m31(1); trace[14].data[row_index] = next_pc_limb_1_col14; - let next_pc_limb_2_col15 = memory_id_to_big_value_tmp_1183.get_m31(2); + let next_pc_limb_2_col15 = memoryidtobig_value_tmp_eefa_9.get_m31(2); trace[15].data[row_index] = next_pc_limb_2_col15; sub_components_inputs.memory_id_to_big_inputs[2].extend(next_pc_id_col12.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/component.rs index 0e965880..a5b61b3b 100644 --- a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/component.rs @@ -99,9 +99,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col14 = eval.next_trace_mask(); let next_pc_limb_2_col15 = eval.next_trace_mask(); - // decode_instruction_52374a4f35d83024. + // DecodeInstruction_52374a4f35d83024. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -123,17 +123,17 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[input_ap_col1.clone(), stored_fp_id_col4.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -142,7 +142,7 @@ impl FrameworkEval for Eval { stored_fp_limb_1_col6.clone(), stored_fp_limb_2_col7.clone(), ], - )]); + )); //[ap] = fp. eval.add_constraint( @@ -151,18 +151,18 @@ impl FrameworkEval for Eval { - input_fp_col2.clone()), ); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_ap_col1.clone() + M31_1.clone()), stored_ret_pc_id_col8.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -171,7 +171,7 @@ impl FrameworkEval for Eval { stored_ret_pc_limb_1_col10.clone(), stored_ret_pc_limb_2_col11.clone(), ], - )]); + )); //[ap+1] = return_pc. eval.add_constraint( @@ -181,18 +181,18 @@ impl FrameworkEval for Eval { - (input_pc_col0.clone() + M31_1.clone())), ); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_fp_col2.clone() + (offset2_col3.clone() - M31_32768.clone())), next_pc_id_col12.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -201,9 +201,9 @@ impl FrameworkEval for Eval { next_pc_limb_1_col14.clone(), next_pc_limb_2_col15.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -211,9 +211,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -222,7 +222,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + M31_2.clone()), (input_ap_col1.clone() + M31_2.clone()), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/prover.rs index f177f374..42f84dc8 100644 --- a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_f_op1_base_fp_t/prover.rs @@ -183,29 +183,29 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, call_opcode_is_rel_f_op1_base_fp_t_input)| { - let input_tmp_1199 = call_opcode_is_rel_f_op1_base_fp_t_input; - let input_pc_col0 = input_tmp_1199.pc; + let input_tmp_d5fd_0 = call_opcode_is_rel_f_op1_base_fp_t_input; + let input_pc_col0 = input_tmp_d5fd_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1199.ap; + let input_ap_col1 = input_tmp_d5fd_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1199.fp; + let input_fp_col2 = input_tmp_d5fd_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_52374a4f35d83024. + // DecodeInstruction_52374a4f35d83024. - let memory_address_to_id_value_tmp_1204 = + let memoryaddresstoid_value_tmp_d5fd_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1205 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1204); - let offset2_tmp_1206 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1205.get_m31(3))) + let memoryidtobig_value_tmp_d5fd_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_d5fd_1); + let offset2_tmp_d5fd_3 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_d5fd_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1205.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_d5fd_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1205.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_d5fd_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col3 = offset2_tmp_1206.as_m31(); + let offset2_col3 = offset2_tmp_d5fd_3.as_m31(); trace[3].data[row_index] = offset2_col3; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -242,22 +242,22 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1208 = + let memoryaddresstoid_value_tmp_d5fd_4 = memory_address_to_id_state.deduce_output(input_ap_col1); - let memory_id_to_big_value_tmp_1209 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1208); - let stored_fp_id_col4 = memory_address_to_id_value_tmp_1208; + let memoryidtobig_value_tmp_d5fd_5 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_d5fd_4); + let stored_fp_id_col4 = memoryaddresstoid_value_tmp_d5fd_4; trace[4].data[row_index] = stored_fp_id_col4; sub_components_inputs.memory_address_to_id_inputs[0].extend(input_ap_col1.unpack()); lookup_data.memoryaddresstoid[0].push([input_ap_col1, stored_fp_id_col4]); - let stored_fp_limb_0_col5 = memory_id_to_big_value_tmp_1209.get_m31(0); + let stored_fp_limb_0_col5 = memoryidtobig_value_tmp_d5fd_5.get_m31(0); trace[5].data[row_index] = stored_fp_limb_0_col5; - let stored_fp_limb_1_col6 = memory_id_to_big_value_tmp_1209.get_m31(1); + let stored_fp_limb_1_col6 = memoryidtobig_value_tmp_d5fd_5.get_m31(1); trace[6].data[row_index] = stored_fp_limb_1_col6; - let stored_fp_limb_2_col7 = memory_id_to_big_value_tmp_1209.get_m31(2); + let stored_fp_limb_2_col7 = memoryidtobig_value_tmp_d5fd_5.get_m31(2); trace[7].data[row_index] = stored_fp_limb_2_col7; sub_components_inputs.memory_id_to_big_inputs[0].extend(stored_fp_id_col4.unpack()); @@ -293,24 +293,24 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1210 = + let memoryaddresstoid_value_tmp_d5fd_6 = memory_address_to_id_state.deduce_output(((input_ap_col1) + (M31_1))); - let memory_id_to_big_value_tmp_1211 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1210); - let stored_ret_pc_id_col8 = memory_address_to_id_value_tmp_1210; + let memoryidtobig_value_tmp_d5fd_7 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_d5fd_6); + let stored_ret_pc_id_col8 = memoryaddresstoid_value_tmp_d5fd_6; trace[8].data[row_index] = stored_ret_pc_id_col8; sub_components_inputs.memory_address_to_id_inputs[1] .extend(((input_ap_col1) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[1] .push([((input_ap_col1) + (M31_1)), stored_ret_pc_id_col8]); - let stored_ret_pc_limb_0_col9 = memory_id_to_big_value_tmp_1211.get_m31(0); + let stored_ret_pc_limb_0_col9 = memoryidtobig_value_tmp_d5fd_7.get_m31(0); trace[9].data[row_index] = stored_ret_pc_limb_0_col9; - let stored_ret_pc_limb_1_col10 = memory_id_to_big_value_tmp_1211.get_m31(1); + let stored_ret_pc_limb_1_col10 = memoryidtobig_value_tmp_d5fd_7.get_m31(1); trace[10].data[row_index] = stored_ret_pc_limb_1_col10; - let stored_ret_pc_limb_2_col11 = memory_id_to_big_value_tmp_1211.get_m31(2); + let stored_ret_pc_limb_2_col11 = memoryidtobig_value_tmp_d5fd_7.get_m31(2); trace[11].data[row_index] = stored_ret_pc_limb_2_col11; sub_components_inputs.memory_id_to_big_inputs[1].extend(stored_ret_pc_id_col8.unpack()); @@ -346,13 +346,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1212 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_d5fd_8 = memory_address_to_id_state .deduce_output(((input_fp_col2) + ((offset2_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_1213 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1212); - let next_pc_id_col12 = memory_address_to_id_value_tmp_1212; + let memoryidtobig_value_tmp_d5fd_9 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_d5fd_8); + let next_pc_id_col12 = memoryaddresstoid_value_tmp_d5fd_8; trace[12].data[row_index] = next_pc_id_col12; sub_components_inputs.memory_address_to_id_inputs[2] .extend(((input_fp_col2) + ((offset2_col3) - (M31_32768))).unpack()); @@ -361,11 +361,11 @@ pub fn write_trace_simd( ((input_fp_col2) + ((offset2_col3) - (M31_32768))), next_pc_id_col12, ]); - let next_pc_limb_0_col13 = memory_id_to_big_value_tmp_1213.get_m31(0); + let next_pc_limb_0_col13 = memoryidtobig_value_tmp_d5fd_9.get_m31(0); trace[13].data[row_index] = next_pc_limb_0_col13; - let next_pc_limb_1_col14 = memory_id_to_big_value_tmp_1213.get_m31(1); + let next_pc_limb_1_col14 = memoryidtobig_value_tmp_d5fd_9.get_m31(1); trace[14].data[row_index] = next_pc_limb_1_col14; - let next_pc_limb_2_col15 = memory_id_to_big_value_tmp_1213.get_m31(2); + let next_pc_limb_2_col15 = memoryidtobig_value_tmp_d5fd_9.get_m31(2); trace[15].data[row_index] = next_pc_limb_2_col15; sub_components_inputs.memory_id_to_big_inputs[2].extend(next_pc_id_col12.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/component.rs index 7f4db22d..8a4562c1 100644 --- a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/component.rs @@ -104,9 +104,9 @@ impl FrameworkEval for Eval { let distance_to_next_pc_limb_1_col15 = eval.next_trace_mask(); let distance_to_next_pc_limb_2_col16 = eval.next_trace_mask(); - // decode_instruction_553df0b64b2e381f. + // DecodeInstruction_553df0b64b2e381f. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -128,17 +128,17 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[input_ap_col1.clone(), stored_fp_id_col3.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -147,7 +147,7 @@ impl FrameworkEval for Eval { stored_fp_limb_1_col5.clone(), stored_fp_limb_2_col6.clone(), ], - )]); + )); //[ap] = fp. eval.add_constraint( @@ -156,18 +156,18 @@ impl FrameworkEval for Eval { - input_fp_col2.clone()), ); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_ap_col1.clone() + M31_1.clone()), stored_ret_pc_id_col7.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -176,7 +176,7 @@ impl FrameworkEval for Eval { stored_ret_pc_limb_1_col9.clone(), stored_ret_pc_limb_2_col10.clone(), ], - )]); + )); //[ap+1] = return_pc. eval.add_constraint( @@ -186,18 +186,18 @@ impl FrameworkEval for Eval { - (input_pc_col0.clone() + M31_2.clone())), ); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_pc_col0.clone() + M31_1.clone()), distance_to_next_pc_id_col11.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col12.clone() * (msb_col12.clone() - M31_1.clone()))); @@ -210,7 +210,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col13.clone()) * (msb_col12.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -244,9 +244,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col12.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -254,9 +254,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -269,7 +269,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + M31_2.clone()), (input_ap_col1.clone() + M31_2.clone()), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/prover.rs index 49bbd704..f310e8dd 100644 --- a/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/call_opcode_is_rel_t_op1_base_fp_f/prover.rs @@ -183,20 +183,20 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, call_opcode_is_rel_t_op1_base_fp_f_input)| { - let input_tmp_1184 = call_opcode_is_rel_t_op1_base_fp_f_input; - let input_pc_col0 = input_tmp_1184.pc; + let input_tmp_4f8b_0 = call_opcode_is_rel_t_op1_base_fp_f_input; + let input_pc_col0 = input_tmp_4f8b_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1184.ap; + let input_ap_col1 = input_tmp_4f8b_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1184.fp; + let input_fp_col2 = input_tmp_4f8b_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_553df0b64b2e381f. + // DecodeInstruction_553df0b64b2e381f. - let memory_address_to_id_value_tmp_1188 = + let memoryaddresstoid_value_tmp_4f8b_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1189 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1188); + let memoryidtobig_value_tmp_4f8b_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_4f8b_1); sub_components_inputs.verify_instruction_inputs[0].extend( ( @@ -232,22 +232,22 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1191 = + let memoryaddresstoid_value_tmp_4f8b_3 = memory_address_to_id_state.deduce_output(input_ap_col1); - let memory_id_to_big_value_tmp_1192 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1191); - let stored_fp_id_col3 = memory_address_to_id_value_tmp_1191; + let memoryidtobig_value_tmp_4f8b_4 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_4f8b_3); + let stored_fp_id_col3 = memoryaddresstoid_value_tmp_4f8b_3; trace[3].data[row_index] = stored_fp_id_col3; sub_components_inputs.memory_address_to_id_inputs[0].extend(input_ap_col1.unpack()); lookup_data.memoryaddresstoid[0].push([input_ap_col1, stored_fp_id_col3]); - let stored_fp_limb_0_col4 = memory_id_to_big_value_tmp_1192.get_m31(0); + let stored_fp_limb_0_col4 = memoryidtobig_value_tmp_4f8b_4.get_m31(0); trace[4].data[row_index] = stored_fp_limb_0_col4; - let stored_fp_limb_1_col5 = memory_id_to_big_value_tmp_1192.get_m31(1); + let stored_fp_limb_1_col5 = memoryidtobig_value_tmp_4f8b_4.get_m31(1); trace[5].data[row_index] = stored_fp_limb_1_col5; - let stored_fp_limb_2_col6 = memory_id_to_big_value_tmp_1192.get_m31(2); + let stored_fp_limb_2_col6 = memoryidtobig_value_tmp_4f8b_4.get_m31(2); trace[6].data[row_index] = stored_fp_limb_2_col6; sub_components_inputs.memory_id_to_big_inputs[0].extend(stored_fp_id_col3.unpack()); @@ -283,24 +283,24 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1193 = + let memoryaddresstoid_value_tmp_4f8b_5 = memory_address_to_id_state.deduce_output(((input_ap_col1) + (M31_1))); - let memory_id_to_big_value_tmp_1194 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1193); - let stored_ret_pc_id_col7 = memory_address_to_id_value_tmp_1193; + let memoryidtobig_value_tmp_4f8b_6 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_4f8b_5); + let stored_ret_pc_id_col7 = memoryaddresstoid_value_tmp_4f8b_5; trace[7].data[row_index] = stored_ret_pc_id_col7; sub_components_inputs.memory_address_to_id_inputs[1] .extend(((input_ap_col1) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[1] .push([((input_ap_col1) + (M31_1)), stored_ret_pc_id_col7]); - let stored_ret_pc_limb_0_col8 = memory_id_to_big_value_tmp_1194.get_m31(0); + let stored_ret_pc_limb_0_col8 = memoryidtobig_value_tmp_4f8b_6.get_m31(0); trace[8].data[row_index] = stored_ret_pc_limb_0_col8; - let stored_ret_pc_limb_1_col9 = memory_id_to_big_value_tmp_1194.get_m31(1); + let stored_ret_pc_limb_1_col9 = memoryidtobig_value_tmp_4f8b_6.get_m31(1); trace[9].data[row_index] = stored_ret_pc_limb_1_col9; - let stored_ret_pc_limb_2_col10 = memory_id_to_big_value_tmp_1194.get_m31(2); + let stored_ret_pc_limb_2_col10 = memoryidtobig_value_tmp_4f8b_6.get_m31(2); trace[10].data[row_index] = stored_ret_pc_limb_2_col10; sub_components_inputs.memory_id_to_big_inputs[1].extend(stored_ret_pc_id_col7.unpack()); @@ -336,13 +336,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1195 = + let memoryaddresstoid_value_tmp_4f8b_7 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_1196 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1195); - let distance_to_next_pc_id_col11 = memory_address_to_id_value_tmp_1195; + let memoryidtobig_value_tmp_4f8b_8 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_4f8b_7); + let distance_to_next_pc_id_col11 = memoryaddresstoid_value_tmp_4f8b_7; trace[11].data[row_index] = distance_to_next_pc_id_col11; sub_components_inputs.memory_address_to_id_inputs[2] .extend(((input_pc_col0) + (M31_1)).unpack()); @@ -350,20 +350,20 @@ pub fn write_trace_simd( lookup_data.memoryaddresstoid[2] .push([((input_pc_col0) + (M31_1)), distance_to_next_pc_id_col11]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1197 = memory_id_to_big_value_tmp_1196.get_m31(27).eq(M31_256); - let msb_col12 = msb_tmp_1197.as_m31(); + let msb_tmp_4f8b_9 = memoryidtobig_value_tmp_4f8b_8.get_m31(27).eq(M31_256); + let msb_col12 = msb_tmp_4f8b_9.as_m31(); trace[12].data[row_index] = msb_col12; - let mid_limbs_set_tmp_1198 = memory_id_to_big_value_tmp_1196.get_m31(20).eq(M31_511); - let mid_limbs_set_col13 = mid_limbs_set_tmp_1198.as_m31(); + let mid_limbs_set_tmp_4f8b_10 = memoryidtobig_value_tmp_4f8b_8.get_m31(20).eq(M31_511); + let mid_limbs_set_col13 = mid_limbs_set_tmp_4f8b_10.as_m31(); trace[13].data[row_index] = mid_limbs_set_col13; - let distance_to_next_pc_limb_0_col14 = memory_id_to_big_value_tmp_1196.get_m31(0); + let distance_to_next_pc_limb_0_col14 = memoryidtobig_value_tmp_4f8b_8.get_m31(0); trace[14].data[row_index] = distance_to_next_pc_limb_0_col14; - let distance_to_next_pc_limb_1_col15 = memory_id_to_big_value_tmp_1196.get_m31(1); + let distance_to_next_pc_limb_1_col15 = memoryidtobig_value_tmp_4f8b_8.get_m31(1); trace[15].data[row_index] = distance_to_next_pc_limb_1_col15; - let distance_to_next_pc_limb_2_col16 = memory_id_to_big_value_tmp_1196.get_m31(2); + let distance_to_next_pc_limb_2_col16 = memoryidtobig_value_tmp_4f8b_8.get_m31(2); trace[16].data[row_index] = distance_to_next_pc_limb_2_col16; sub_components_inputs.memory_id_to_big_inputs[2] .extend(distance_to_next_pc_id_col11.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/generic_opcode/component.rs b/stwo_cairo_prover/crates/prover/src/components/generic_opcode/component.rs index 55241a68..8410c6a2 100644 --- a/stwo_cairo_prover/crates/prover/src/components/generic_opcode/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/generic_opcode/component.rs @@ -323,11 +323,11 @@ impl FrameworkEval for Eval { let mid_limbs_set_col227 = eval.next_trace_mask(); let next_pc_jnz_col228 = eval.next_trace_mask(); - // decode_generic_instruction. + // DecodeGenericInstruction. - // decode_instruction_337193008ebaa578. + // DecodeInstruction_337193008ebaa578. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -351,48 +351,51 @@ impl FrameworkEval for Eval { opcode_ret_col19.clone(), opcode_assert_eq_col20.clone(), ], - )]); + )); - let op1_base_op0_tmp_225 = (((M31_1.clone() - op1_imm_col8.clone()) + let op1_base_op0_tmp_5745_21 = (((M31_1.clone() - op1_imm_col8.clone()) - op1_base_fp_col9.clone()) - op1_base_ap_col10.clone()); // op1_src is 0, 1, 2, or 4. eval.add_constraint( - (op1_base_op0_tmp_225.clone() * (M31_1.clone() - op1_base_op0_tmp_225.clone())), + (op1_base_op0_tmp_5745_21.clone() * (M31_1.clone() - op1_base_op0_tmp_5745_21.clone())), ); - let res_op1_tmp_226 = (((M31_1.clone() - res_add_col11.clone()) - res_mul_col12.clone()) + let res_op1_tmp_5745_22 = (((M31_1.clone() - res_add_col11.clone()) + - res_mul_col12.clone()) - pc_update_jnz_col15.clone()); // res_logic is 0, 1, or 2. - eval.add_constraint((res_op1_tmp_226.clone() * (M31_1.clone() - res_op1_tmp_226.clone()))); - let pc_update_regular_tmp_227 = (((M31_1.clone() - pc_update_jump_col13.clone()) + eval.add_constraint( + (res_op1_tmp_5745_22.clone() * (M31_1.clone() - res_op1_tmp_5745_22.clone())), + ); + let pc_update_regular_tmp_5745_23 = (((M31_1.clone() - pc_update_jump_col13.clone()) - pc_update_jump_rel_col14.clone()) - pc_update_jnz_col15.clone()); // pc_update is 0, 1, 2, or 4. eval.add_constraint( - (pc_update_regular_tmp_227.clone() - * (M31_1.clone() - pc_update_regular_tmp_227.clone())), + (pc_update_regular_tmp_5745_23.clone() + * (M31_1.clone() - pc_update_regular_tmp_5745_23.clone())), ); - let ap_update_regular_tmp_228 = (((M31_1.clone() - ap_update_add_col16.clone()) + let ap_update_regular_tmp_5745_24 = (((M31_1.clone() - ap_update_add_col16.clone()) - ap_update_add_1_col17.clone()) - opcode_call_col18.clone()); // ap_update is 0, 1, 2, or 4. eval.add_constraint( - (ap_update_regular_tmp_228.clone() - * (M31_1.clone() - ap_update_regular_tmp_228.clone())), + (ap_update_regular_tmp_5745_24.clone() + * (M31_1.clone() - ap_update_regular_tmp_5745_24.clone())), ); - let fp_update_regular_tmp_229 = + let fp_update_regular_tmp_5745_25 = ((M31_1.clone() - opcode_call_col18.clone()) - opcode_ret_col19.clone()); // opcode is 0, 1, 2, or 4. eval.add_constraint( - (fp_update_regular_tmp_229.clone() - * (M31_1.clone() - fp_update_regular_tmp_229.clone())), + (fp_update_regular_tmp_5745_25.clone() + * (M31_1.clone() - fp_update_regular_tmp_5745_25.clone())), ); - // eval_operands. + // EvalOperands. - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -401,9 +404,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col21.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -437,11 +440,11 @@ impl FrameworkEval for Eval { dst_limb_26_col48.clone(), dst_limb_27_col49.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -450,9 +453,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), op0_id_col50.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -486,80 +489,80 @@ impl FrameworkEval for Eval { op0_limb_26_col77.clone(), op0_limb_27_col78.clone(), ], - )]); + )); - // cond_felt252_as_addr. + // CondFelt252AsAddr. // Address limb 3 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_3_col54.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_3_col54.clone())); // Address limb 4 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_4_col55.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_4_col55.clone())); // Address limb 5 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_5_col56.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_5_col56.clone())); // Address limb 6 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_6_col57.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_6_col57.clone())); // Address limb 7 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_7_col58.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_7_col58.clone())); // Address limb 8 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_8_col59.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_8_col59.clone())); // Address limb 9 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_9_col60.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_9_col60.clone())); // Address limb 10 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_10_col61.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_10_col61.clone())); // Address limb 11 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_11_col62.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_11_col62.clone())); // Address limb 12 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_12_col63.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_12_col63.clone())); // Address limb 13 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_13_col64.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_13_col64.clone())); // Address limb 14 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_14_col65.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_14_col65.clone())); // Address limb 15 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_15_col66.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_15_col66.clone())); // Address limb 16 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_16_col67.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_16_col67.clone())); // Address limb 17 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_17_col68.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_17_col68.clone())); // Address limb 18 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_18_col69.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_18_col69.clone())); // Address limb 19 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_19_col70.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_19_col70.clone())); // Address limb 20 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_20_col71.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_20_col71.clone())); // Address limb 21 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_21_col72.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_21_col72.clone())); // Address limb 22 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_22_col73.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_22_col73.clone())); // Address limb 23 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_23_col74.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_23_col74.clone())); // Address limb 24 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_24_col75.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_24_col75.clone())); // Address limb 25 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_25_col76.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_25_col76.clone())); // Address limb 26 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_26_col77.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_26_col77.clone())); // Address limb 27 equals 0. - eval.add_constraint((op1_base_op0_tmp_225.clone() * op0_limb_27_col78.clone())); + eval.add_constraint((op1_base_op0_tmp_5745_21.clone() * op0_limb_27_col78.clone())); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (((((op1_base_fp_col9.clone() * input_fp_col2.clone()) + (op1_base_ap_col10.clone() * input_ap_col1.clone())) + (op1_imm_col8.clone() * input_pc_col0.clone())) - + (op1_base_op0_tmp_225.clone() + + (op1_base_op0_tmp_5745_21.clone() * ((op0_limb_0_col51.clone() + (op0_limb_1_col52.clone() * M31_512.clone())) + (op0_limb_2_col53.clone() * M31_262144.clone())))) + (offset2_col5.clone() - M31_32768.clone())), op1_id_col79.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -593,523 +596,524 @@ impl FrameworkEval for Eval { op1_limb_26_col106.clone(), op1_limb_27_col107.clone(), ], - )]); + )); - // add252. + // Add252. - // range_check_big_value. + // RangeCheckBigValue. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[add_res_limb_0_col108.clone(), add_res_limb_1_col109.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[add_res_limb_2_col110.clone(), add_res_limb_3_col111.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[add_res_limb_4_col112.clone(), add_res_limb_5_col113.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[add_res_limb_6_col114.clone(), add_res_limb_7_col115.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[add_res_limb_8_col116.clone(), add_res_limb_9_col117.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_10_col118.clone(), add_res_limb_11_col119.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_12_col120.clone(), add_res_limb_13_col121.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_14_col122.clone(), add_res_limb_15_col123.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_16_col124.clone(), add_res_limb_17_col125.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_18_col126.clone(), add_res_limb_19_col127.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_20_col128.clone(), add_res_limb_21_col129.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_22_col130.clone(), add_res_limb_23_col131.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_24_col132.clone(), add_res_limb_25_col133.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ add_res_limb_26_col134.clone(), add_res_limb_27_col135.clone(), ], - )]); + )); - // verify_add252. + // VerifyAdd252. // sub_p_bit is a bit. eval.add_constraint( (sub_p_bit_col136.clone() * (sub_p_bit_col136.clone() - M31_1.clone())), ); - let carry_tmp_740 = (((((op0_limb_0_col51.clone() + op1_limb_0_col80.clone()) + let carry_tmp_5745_34 = (((((op0_limb_0_col51.clone() + op1_limb_0_col80.clone()) + M31_0.clone()) - add_res_limb_0_col108.clone()) - (M31_1.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_740.clone() - * ((carry_tmp_740.clone() * carry_tmp_740.clone()) - M31_1.clone())), + (carry_tmp_5745_34.clone() + * ((carry_tmp_5745_34.clone() * carry_tmp_5745_34.clone()) - M31_1.clone())), ); - let carry_tmp_741 = (((((op0_limb_1_col52.clone() + op1_limb_1_col81.clone()) - + carry_tmp_740.clone()) + let carry_tmp_5745_35 = (((((op0_limb_1_col52.clone() + op1_limb_1_col81.clone()) + + carry_tmp_5745_34.clone()) - add_res_limb_1_col109.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_741.clone() - * ((carry_tmp_741.clone() * carry_tmp_741.clone()) - M31_1.clone())), + (carry_tmp_5745_35.clone() + * ((carry_tmp_5745_35.clone() * carry_tmp_5745_35.clone()) - M31_1.clone())), ); - let carry_tmp_742 = (((((op0_limb_2_col53.clone() + op1_limb_2_col82.clone()) - + carry_tmp_741.clone()) + let carry_tmp_5745_36 = (((((op0_limb_2_col53.clone() + op1_limb_2_col82.clone()) + + carry_tmp_5745_35.clone()) - add_res_limb_2_col110.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_742.clone() - * ((carry_tmp_742.clone() * carry_tmp_742.clone()) - M31_1.clone())), + (carry_tmp_5745_36.clone() + * ((carry_tmp_5745_36.clone() * carry_tmp_5745_36.clone()) - M31_1.clone())), ); - let carry_tmp_743 = (((((op0_limb_3_col54.clone() + op1_limb_3_col83.clone()) - + carry_tmp_742.clone()) + let carry_tmp_5745_37 = (((((op0_limb_3_col54.clone() + op1_limb_3_col83.clone()) + + carry_tmp_5745_36.clone()) - add_res_limb_3_col111.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_743.clone() - * ((carry_tmp_743.clone() * carry_tmp_743.clone()) - M31_1.clone())), + (carry_tmp_5745_37.clone() + * ((carry_tmp_5745_37.clone() * carry_tmp_5745_37.clone()) - M31_1.clone())), ); - let carry_tmp_744 = (((((op0_limb_4_col55.clone() + op1_limb_4_col84.clone()) - + carry_tmp_743.clone()) + let carry_tmp_5745_38 = (((((op0_limb_4_col55.clone() + op1_limb_4_col84.clone()) + + carry_tmp_5745_37.clone()) - add_res_limb_4_col112.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_744.clone() - * ((carry_tmp_744.clone() * carry_tmp_744.clone()) - M31_1.clone())), + (carry_tmp_5745_38.clone() + * ((carry_tmp_5745_38.clone() * carry_tmp_5745_38.clone()) - M31_1.clone())), ); - let carry_tmp_745 = (((((op0_limb_5_col56.clone() + op1_limb_5_col85.clone()) - + carry_tmp_744.clone()) + let carry_tmp_5745_39 = (((((op0_limb_5_col56.clone() + op1_limb_5_col85.clone()) + + carry_tmp_5745_38.clone()) - add_res_limb_5_col113.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_745.clone() - * ((carry_tmp_745.clone() * carry_tmp_745.clone()) - M31_1.clone())), + (carry_tmp_5745_39.clone() + * ((carry_tmp_5745_39.clone() * carry_tmp_5745_39.clone()) - M31_1.clone())), ); - let carry_tmp_746 = (((((op0_limb_6_col57.clone() + op1_limb_6_col86.clone()) - + carry_tmp_745.clone()) + let carry_tmp_5745_40 = (((((op0_limb_6_col57.clone() + op1_limb_6_col86.clone()) + + carry_tmp_5745_39.clone()) - add_res_limb_6_col114.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_746.clone() - * ((carry_tmp_746.clone() * carry_tmp_746.clone()) - M31_1.clone())), + (carry_tmp_5745_40.clone() + * ((carry_tmp_5745_40.clone() * carry_tmp_5745_40.clone()) - M31_1.clone())), ); - let carry_tmp_747 = (((((op0_limb_7_col58.clone() + op1_limb_7_col87.clone()) - + carry_tmp_746.clone()) + let carry_tmp_5745_41 = (((((op0_limb_7_col58.clone() + op1_limb_7_col87.clone()) + + carry_tmp_5745_40.clone()) - add_res_limb_7_col115.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_747.clone() - * ((carry_tmp_747.clone() * carry_tmp_747.clone()) - M31_1.clone())), + (carry_tmp_5745_41.clone() + * ((carry_tmp_5745_41.clone() * carry_tmp_5745_41.clone()) - M31_1.clone())), ); - let carry_tmp_748 = (((((op0_limb_8_col59.clone() + op1_limb_8_col88.clone()) - + carry_tmp_747.clone()) + let carry_tmp_5745_42 = (((((op0_limb_8_col59.clone() + op1_limb_8_col88.clone()) + + carry_tmp_5745_41.clone()) - add_res_limb_8_col116.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_748.clone() - * ((carry_tmp_748.clone() * carry_tmp_748.clone()) - M31_1.clone())), + (carry_tmp_5745_42.clone() + * ((carry_tmp_5745_42.clone() * carry_tmp_5745_42.clone()) - M31_1.clone())), ); - let carry_tmp_749 = (((((op0_limb_9_col60.clone() + op1_limb_9_col89.clone()) - + carry_tmp_748.clone()) + let carry_tmp_5745_43 = (((((op0_limb_9_col60.clone() + op1_limb_9_col89.clone()) + + carry_tmp_5745_42.clone()) - add_res_limb_9_col117.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_749.clone() - * ((carry_tmp_749.clone() * carry_tmp_749.clone()) - M31_1.clone())), + (carry_tmp_5745_43.clone() + * ((carry_tmp_5745_43.clone() * carry_tmp_5745_43.clone()) - M31_1.clone())), ); - let carry_tmp_750 = (((((op0_limb_10_col61.clone() + op1_limb_10_col90.clone()) - + carry_tmp_749.clone()) + let carry_tmp_5745_44 = (((((op0_limb_10_col61.clone() + op1_limb_10_col90.clone()) + + carry_tmp_5745_43.clone()) - add_res_limb_10_col118.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_750.clone() - * ((carry_tmp_750.clone() * carry_tmp_750.clone()) - M31_1.clone())), + (carry_tmp_5745_44.clone() + * ((carry_tmp_5745_44.clone() * carry_tmp_5745_44.clone()) - M31_1.clone())), ); - let carry_tmp_751 = (((((op0_limb_11_col62.clone() + op1_limb_11_col91.clone()) - + carry_tmp_750.clone()) + let carry_tmp_5745_45 = (((((op0_limb_11_col62.clone() + op1_limb_11_col91.clone()) + + carry_tmp_5745_44.clone()) - add_res_limb_11_col119.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_751.clone() - * ((carry_tmp_751.clone() * carry_tmp_751.clone()) - M31_1.clone())), + (carry_tmp_5745_45.clone() + * ((carry_tmp_5745_45.clone() * carry_tmp_5745_45.clone()) - M31_1.clone())), ); - let carry_tmp_752 = (((((op0_limb_12_col63.clone() + op1_limb_12_col92.clone()) - + carry_tmp_751.clone()) + let carry_tmp_5745_46 = (((((op0_limb_12_col63.clone() + op1_limb_12_col92.clone()) + + carry_tmp_5745_45.clone()) - add_res_limb_12_col120.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_752.clone() - * ((carry_tmp_752.clone() * carry_tmp_752.clone()) - M31_1.clone())), + (carry_tmp_5745_46.clone() + * ((carry_tmp_5745_46.clone() * carry_tmp_5745_46.clone()) - M31_1.clone())), ); - let carry_tmp_753 = (((((op0_limb_13_col64.clone() + op1_limb_13_col93.clone()) - + carry_tmp_752.clone()) + let carry_tmp_5745_47 = (((((op0_limb_13_col64.clone() + op1_limb_13_col93.clone()) + + carry_tmp_5745_46.clone()) - add_res_limb_13_col121.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_753.clone() - * ((carry_tmp_753.clone() * carry_tmp_753.clone()) - M31_1.clone())), + (carry_tmp_5745_47.clone() + * ((carry_tmp_5745_47.clone() * carry_tmp_5745_47.clone()) - M31_1.clone())), ); - let carry_tmp_754 = (((((op0_limb_14_col65.clone() + op1_limb_14_col94.clone()) - + carry_tmp_753.clone()) + let carry_tmp_5745_48 = (((((op0_limb_14_col65.clone() + op1_limb_14_col94.clone()) + + carry_tmp_5745_47.clone()) - add_res_limb_14_col122.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_754.clone() - * ((carry_tmp_754.clone() * carry_tmp_754.clone()) - M31_1.clone())), + (carry_tmp_5745_48.clone() + * ((carry_tmp_5745_48.clone() * carry_tmp_5745_48.clone()) - M31_1.clone())), ); - let carry_tmp_755 = (((((op0_limb_15_col66.clone() + op1_limb_15_col95.clone()) - + carry_tmp_754.clone()) + let carry_tmp_5745_49 = (((((op0_limb_15_col66.clone() + op1_limb_15_col95.clone()) + + carry_tmp_5745_48.clone()) - add_res_limb_15_col123.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_755.clone() - * ((carry_tmp_755.clone() * carry_tmp_755.clone()) - M31_1.clone())), + (carry_tmp_5745_49.clone() + * ((carry_tmp_5745_49.clone() * carry_tmp_5745_49.clone()) - M31_1.clone())), ); - let carry_tmp_756 = (((((op0_limb_16_col67.clone() + op1_limb_16_col96.clone()) - + carry_tmp_755.clone()) + let carry_tmp_5745_50 = (((((op0_limb_16_col67.clone() + op1_limb_16_col96.clone()) + + carry_tmp_5745_49.clone()) - add_res_limb_16_col124.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_756.clone() - * ((carry_tmp_756.clone() * carry_tmp_756.clone()) - M31_1.clone())), + (carry_tmp_5745_50.clone() + * ((carry_tmp_5745_50.clone() * carry_tmp_5745_50.clone()) - M31_1.clone())), ); - let carry_tmp_757 = (((((op0_limb_17_col68.clone() + op1_limb_17_col97.clone()) - + carry_tmp_756.clone()) + let carry_tmp_5745_51 = (((((op0_limb_17_col68.clone() + op1_limb_17_col97.clone()) + + carry_tmp_5745_50.clone()) - add_res_limb_17_col125.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_757.clone() - * ((carry_tmp_757.clone() * carry_tmp_757.clone()) - M31_1.clone())), + (carry_tmp_5745_51.clone() + * ((carry_tmp_5745_51.clone() * carry_tmp_5745_51.clone()) - M31_1.clone())), ); - let carry_tmp_758 = (((((op0_limb_18_col69.clone() + op1_limb_18_col98.clone()) - + carry_tmp_757.clone()) + let carry_tmp_5745_52 = (((((op0_limb_18_col69.clone() + op1_limb_18_col98.clone()) + + carry_tmp_5745_51.clone()) - add_res_limb_18_col126.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_758.clone() - * ((carry_tmp_758.clone() * carry_tmp_758.clone()) - M31_1.clone())), + (carry_tmp_5745_52.clone() + * ((carry_tmp_5745_52.clone() * carry_tmp_5745_52.clone()) - M31_1.clone())), ); - let carry_tmp_759 = (((((op0_limb_19_col70.clone() + op1_limb_19_col99.clone()) - + carry_tmp_758.clone()) + let carry_tmp_5745_53 = (((((op0_limb_19_col70.clone() + op1_limb_19_col99.clone()) + + carry_tmp_5745_52.clone()) - add_res_limb_19_col127.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_759.clone() - * ((carry_tmp_759.clone() * carry_tmp_759.clone()) - M31_1.clone())), + (carry_tmp_5745_53.clone() + * ((carry_tmp_5745_53.clone() * carry_tmp_5745_53.clone()) - M31_1.clone())), ); - let carry_tmp_760 = (((((op0_limb_20_col71.clone() + op1_limb_20_col100.clone()) - + carry_tmp_759.clone()) + let carry_tmp_5745_54 = (((((op0_limb_20_col71.clone() + op1_limb_20_col100.clone()) + + carry_tmp_5745_53.clone()) - add_res_limb_20_col128.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_760.clone() - * ((carry_tmp_760.clone() * carry_tmp_760.clone()) - M31_1.clone())), + (carry_tmp_5745_54.clone() + * ((carry_tmp_5745_54.clone() * carry_tmp_5745_54.clone()) - M31_1.clone())), ); - let carry_tmp_761 = (((((op0_limb_21_col72.clone() + op1_limb_21_col101.clone()) - + carry_tmp_760.clone()) + let carry_tmp_5745_55 = (((((op0_limb_21_col72.clone() + op1_limb_21_col101.clone()) + + carry_tmp_5745_54.clone()) - add_res_limb_21_col129.clone()) - (M31_136.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_761.clone() - * ((carry_tmp_761.clone() * carry_tmp_761.clone()) - M31_1.clone())), + (carry_tmp_5745_55.clone() + * ((carry_tmp_5745_55.clone() * carry_tmp_5745_55.clone()) - M31_1.clone())), ); - let carry_tmp_762 = (((((op0_limb_22_col73.clone() + op1_limb_22_col102.clone()) - + carry_tmp_761.clone()) + let carry_tmp_5745_56 = (((((op0_limb_22_col73.clone() + op1_limb_22_col102.clone()) + + carry_tmp_5745_55.clone()) - add_res_limb_22_col130.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_762.clone() - * ((carry_tmp_762.clone() * carry_tmp_762.clone()) - M31_1.clone())), + (carry_tmp_5745_56.clone() + * ((carry_tmp_5745_56.clone() * carry_tmp_5745_56.clone()) - M31_1.clone())), ); - let carry_tmp_763 = (((((op0_limb_23_col74.clone() + op1_limb_23_col103.clone()) - + carry_tmp_762.clone()) + let carry_tmp_5745_57 = (((((op0_limb_23_col74.clone() + op1_limb_23_col103.clone()) + + carry_tmp_5745_56.clone()) - add_res_limb_23_col131.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_763.clone() - * ((carry_tmp_763.clone() * carry_tmp_763.clone()) - M31_1.clone())), + (carry_tmp_5745_57.clone() + * ((carry_tmp_5745_57.clone() * carry_tmp_5745_57.clone()) - M31_1.clone())), ); - let carry_tmp_764 = (((((op0_limb_24_col75.clone() + op1_limb_24_col104.clone()) - + carry_tmp_763.clone()) + let carry_tmp_5745_58 = (((((op0_limb_24_col75.clone() + op1_limb_24_col104.clone()) + + carry_tmp_5745_57.clone()) - add_res_limb_24_col132.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_764.clone() - * ((carry_tmp_764.clone() * carry_tmp_764.clone()) - M31_1.clone())), + (carry_tmp_5745_58.clone() + * ((carry_tmp_5745_58.clone() * carry_tmp_5745_58.clone()) - M31_1.clone())), ); - let carry_tmp_765 = (((((op0_limb_25_col76.clone() + op1_limb_25_col105.clone()) - + carry_tmp_764.clone()) + let carry_tmp_5745_59 = (((((op0_limb_25_col76.clone() + op1_limb_25_col105.clone()) + + carry_tmp_5745_58.clone()) - add_res_limb_25_col133.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_765.clone() - * ((carry_tmp_765.clone() * carry_tmp_765.clone()) - M31_1.clone())), + (carry_tmp_5745_59.clone() + * ((carry_tmp_5745_59.clone() * carry_tmp_5745_59.clone()) - M31_1.clone())), ); - let carry_tmp_766 = (((((op0_limb_26_col77.clone() + op1_limb_26_col106.clone()) - + carry_tmp_765.clone()) + let carry_tmp_5745_60 = (((((op0_limb_26_col77.clone() + op1_limb_26_col106.clone()) + + carry_tmp_5745_59.clone()) - add_res_limb_26_col134.clone()) - (M31_0.clone() * sub_p_bit_col136.clone())) * M31_4194304.clone()); eval.add_constraint( - (carry_tmp_766.clone() - * ((carry_tmp_766.clone() * carry_tmp_766.clone()) - M31_1.clone())), + (carry_tmp_5745_60.clone() + * ((carry_tmp_5745_60.clone() * carry_tmp_5745_60.clone()) - M31_1.clone())), ); eval.add_constraint( - ((((op0_limb_27_col78.clone() + op1_limb_27_col107.clone()) + carry_tmp_766.clone()) + ((((op0_limb_27_col78.clone() + op1_limb_27_col107.clone()) + + carry_tmp_5745_60.clone()) - add_res_limb_27_col135.clone()) - (M31_256.clone() * sub_p_bit_col136.clone())), ); - // mul252. + // Mul252. - // range_check_big_value. + // RangeCheckBigValue. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[mul_res_limb_0_col137.clone(), mul_res_limb_1_col138.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[mul_res_limb_2_col139.clone(), mul_res_limb_3_col140.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[mul_res_limb_4_col141.clone(), mul_res_limb_5_col142.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[mul_res_limb_6_col143.clone(), mul_res_limb_7_col144.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[mul_res_limb_8_col145.clone(), mul_res_limb_9_col146.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_10_col147.clone(), mul_res_limb_11_col148.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_12_col149.clone(), mul_res_limb_13_col150.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_14_col151.clone(), mul_res_limb_15_col152.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_16_col153.clone(), mul_res_limb_17_col154.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_18_col155.clone(), mul_res_limb_19_col156.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_20_col157.clone(), mul_res_limb_21_col158.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_22_col159.clone(), mul_res_limb_23_col160.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_24_col161.clone(), mul_res_limb_25_col162.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_9_9_lookup_elements, E::EF::one(), &[ mul_res_limb_26_col163.clone(), mul_res_limb_27_col164.clone(), ], - )]); + )); - // verify_mul252. + // VerifyMul252. - let conv_tmp_782 = ((M31_0.clone() - mul_res_limb_0_col137.clone()) + let conv_tmp_5745_62 = ((M31_0.clone() - mul_res_limb_0_col137.clone()) + (op0_limb_0_col51.clone() * op1_limb_0_col80.clone())); - let conv_tmp_783 = (((M31_0.clone() - mul_res_limb_1_col138.clone()) + let conv_tmp_5745_63 = (((M31_0.clone() - mul_res_limb_1_col138.clone()) + (op0_limb_0_col51.clone() * op1_limb_1_col81.clone())) + (op0_limb_1_col52.clone() * op1_limb_0_col80.clone())); - let conv_tmp_784 = ((((M31_0.clone() - mul_res_limb_2_col139.clone()) + let conv_tmp_5745_64 = ((((M31_0.clone() - mul_res_limb_2_col139.clone()) + (op0_limb_0_col51.clone() * op1_limb_2_col82.clone())) + (op0_limb_1_col52.clone() * op1_limb_1_col81.clone())) + (op0_limb_2_col53.clone() * op1_limb_0_col80.clone())); - let conv_tmp_785 = (((((M31_0.clone() - mul_res_limb_3_col140.clone()) + let conv_tmp_5745_65 = (((((M31_0.clone() - mul_res_limb_3_col140.clone()) + (op0_limb_0_col51.clone() * op1_limb_3_col83.clone())) + (op0_limb_1_col52.clone() * op1_limb_2_col82.clone())) + (op0_limb_2_col53.clone() * op1_limb_1_col81.clone())) + (op0_limb_3_col54.clone() * op1_limb_0_col80.clone())); - let conv_tmp_786 = ((((((M31_0.clone() - mul_res_limb_4_col141.clone()) + let conv_tmp_5745_66 = ((((((M31_0.clone() - mul_res_limb_4_col141.clone()) + (op0_limb_0_col51.clone() * op1_limb_4_col84.clone())) + (op0_limb_1_col52.clone() * op1_limb_3_col83.clone())) + (op0_limb_2_col53.clone() * op1_limb_2_col82.clone())) + (op0_limb_3_col54.clone() * op1_limb_1_col81.clone())) + (op0_limb_4_col55.clone() * op1_limb_0_col80.clone())); - let conv_tmp_787 = (((((((M31_0.clone() - mul_res_limb_5_col142.clone()) + let conv_tmp_5745_67 = (((((((M31_0.clone() - mul_res_limb_5_col142.clone()) + (op0_limb_0_col51.clone() * op1_limb_5_col85.clone())) + (op0_limb_1_col52.clone() * op1_limb_4_col84.clone())) + (op0_limb_2_col53.clone() * op1_limb_3_col83.clone())) + (op0_limb_3_col54.clone() * op1_limb_2_col82.clone())) + (op0_limb_4_col55.clone() * op1_limb_1_col81.clone())) + (op0_limb_5_col56.clone() * op1_limb_0_col80.clone())); - let conv_tmp_788 = ((((((((M31_0.clone() - mul_res_limb_6_col143.clone()) + let conv_tmp_5745_68 = ((((((((M31_0.clone() - mul_res_limb_6_col143.clone()) + (op0_limb_0_col51.clone() * op1_limb_6_col86.clone())) + (op0_limb_1_col52.clone() * op1_limb_5_col85.clone())) + (op0_limb_2_col53.clone() * op1_limb_4_col84.clone())) @@ -1117,7 +1121,7 @@ impl FrameworkEval for Eval { + (op0_limb_4_col55.clone() * op1_limb_2_col82.clone())) + (op0_limb_5_col56.clone() * op1_limb_1_col81.clone())) + (op0_limb_6_col57.clone() * op1_limb_0_col80.clone())); - let conv_tmp_789 = (((((((((M31_0.clone() - mul_res_limb_7_col144.clone()) + let conv_tmp_5745_69 = (((((((((M31_0.clone() - mul_res_limb_7_col144.clone()) + (op0_limb_0_col51.clone() * op1_limb_7_col87.clone())) + (op0_limb_1_col52.clone() * op1_limb_6_col86.clone())) + (op0_limb_2_col53.clone() * op1_limb_5_col85.clone())) @@ -1126,7 +1130,7 @@ impl FrameworkEval for Eval { + (op0_limb_5_col56.clone() * op1_limb_2_col82.clone())) + (op0_limb_6_col57.clone() * op1_limb_1_col81.clone())) + (op0_limb_7_col58.clone() * op1_limb_0_col80.clone())); - let conv_tmp_790 = ((((((((((M31_0.clone() - mul_res_limb_8_col145.clone()) + let conv_tmp_5745_70 = ((((((((((M31_0.clone() - mul_res_limb_8_col145.clone()) + (op0_limb_0_col51.clone() * op1_limb_8_col88.clone())) + (op0_limb_1_col52.clone() * op1_limb_7_col87.clone())) + (op0_limb_2_col53.clone() * op1_limb_6_col86.clone())) @@ -1136,7 +1140,7 @@ impl FrameworkEval for Eval { + (op0_limb_6_col57.clone() * op1_limb_2_col82.clone())) + (op0_limb_7_col58.clone() * op1_limb_1_col81.clone())) + (op0_limb_8_col59.clone() * op1_limb_0_col80.clone())); - let conv_tmp_791 = (((((((((((M31_0.clone() - mul_res_limb_9_col146.clone()) + let conv_tmp_5745_71 = (((((((((((M31_0.clone() - mul_res_limb_9_col146.clone()) + (op0_limb_0_col51.clone() * op1_limb_9_col89.clone())) + (op0_limb_1_col52.clone() * op1_limb_8_col88.clone())) + (op0_limb_2_col53.clone() * op1_limb_7_col87.clone())) @@ -1147,7 +1151,8 @@ impl FrameworkEval for Eval { + (op0_limb_7_col58.clone() * op1_limb_2_col82.clone())) + (op0_limb_8_col59.clone() * op1_limb_1_col81.clone())) + (op0_limb_9_col60.clone() * op1_limb_0_col80.clone())); - let conv_tmp_792 = ((((((((((((M31_0.clone() - mul_res_limb_10_col147.clone()) + let conv_tmp_5745_72 = ((((((((((((M31_0.clone() + - mul_res_limb_10_col147.clone()) + (op0_limb_0_col51.clone() * op1_limb_10_col90.clone())) + (op0_limb_1_col52.clone() * op1_limb_9_col89.clone())) + (op0_limb_2_col53.clone() * op1_limb_8_col88.clone())) @@ -1159,7 +1164,8 @@ impl FrameworkEval for Eval { + (op0_limb_8_col59.clone() * op1_limb_2_col82.clone())) + (op0_limb_9_col60.clone() * op1_limb_1_col81.clone())) + (op0_limb_10_col61.clone() * op1_limb_0_col80.clone())); - let conv_tmp_793 = (((((((((((((M31_0.clone() - mul_res_limb_11_col148.clone()) + let conv_tmp_5745_73 = (((((((((((((M31_0.clone() + - mul_res_limb_11_col148.clone()) + (op0_limb_0_col51.clone() * op1_limb_11_col91.clone())) + (op0_limb_1_col52.clone() * op1_limb_10_col90.clone())) + (op0_limb_2_col53.clone() * op1_limb_9_col89.clone())) @@ -1172,7 +1178,7 @@ impl FrameworkEval for Eval { + (op0_limb_9_col60.clone() * op1_limb_2_col82.clone())) + (op0_limb_10_col61.clone() * op1_limb_1_col81.clone())) + (op0_limb_11_col62.clone() * op1_limb_0_col80.clone())); - let conv_tmp_794 = ((((((((((((((M31_0.clone() + let conv_tmp_5745_74 = ((((((((((((((M31_0.clone() - mul_res_limb_12_col149.clone()) + (op0_limb_0_col51.clone() * op1_limb_12_col92.clone())) + (op0_limb_1_col52.clone() * op1_limb_11_col91.clone())) @@ -1187,7 +1193,7 @@ impl FrameworkEval for Eval { + (op0_limb_10_col61.clone() * op1_limb_2_col82.clone())) + (op0_limb_11_col62.clone() * op1_limb_1_col81.clone())) + (op0_limb_12_col63.clone() * op1_limb_0_col80.clone())); - let conv_tmp_795 = (((((((((((((((M31_0.clone() + let conv_tmp_5745_75 = (((((((((((((((M31_0.clone() - mul_res_limb_13_col150.clone()) + (op0_limb_0_col51.clone() * op1_limb_13_col93.clone())) + (op0_limb_1_col52.clone() * op1_limb_12_col92.clone())) @@ -1203,7 +1209,7 @@ impl FrameworkEval for Eval { + (op0_limb_11_col62.clone() * op1_limb_2_col82.clone())) + (op0_limb_12_col63.clone() * op1_limb_1_col81.clone())) + (op0_limb_13_col64.clone() * op1_limb_0_col80.clone())); - let conv_tmp_796 = ((((((((((((((((M31_0.clone() + let conv_tmp_5745_76 = ((((((((((((((((M31_0.clone() - mul_res_limb_14_col151.clone()) + (op0_limb_0_col51.clone() * op1_limb_14_col94.clone())) + (op0_limb_1_col52.clone() * op1_limb_13_col93.clone())) @@ -1220,7 +1226,7 @@ impl FrameworkEval for Eval { + (op0_limb_12_col63.clone() * op1_limb_2_col82.clone())) + (op0_limb_13_col64.clone() * op1_limb_1_col81.clone())) + (op0_limb_14_col65.clone() * op1_limb_0_col80.clone())); - let conv_tmp_797 = (((((((((((((((((M31_0.clone() + let conv_tmp_5745_77 = (((((((((((((((((M31_0.clone() - mul_res_limb_15_col152.clone()) + (op0_limb_0_col51.clone() * op1_limb_15_col95.clone())) + (op0_limb_1_col52.clone() * op1_limb_14_col94.clone())) @@ -1238,7 +1244,7 @@ impl FrameworkEval for Eval { + (op0_limb_13_col64.clone() * op1_limb_2_col82.clone())) + (op0_limb_14_col65.clone() * op1_limb_1_col81.clone())) + (op0_limb_15_col66.clone() * op1_limb_0_col80.clone())); - let conv_tmp_798 = ((((((((((((((((((M31_0.clone() + let conv_tmp_5745_78 = ((((((((((((((((((M31_0.clone() - mul_res_limb_16_col153.clone()) + (op0_limb_0_col51.clone() * op1_limb_16_col96.clone())) + (op0_limb_1_col52.clone() * op1_limb_15_col95.clone())) @@ -1257,7 +1263,7 @@ impl FrameworkEval for Eval { + (op0_limb_14_col65.clone() * op1_limb_2_col82.clone())) + (op0_limb_15_col66.clone() * op1_limb_1_col81.clone())) + (op0_limb_16_col67.clone() * op1_limb_0_col80.clone())); - let conv_tmp_799 = (((((((((((((((((((M31_0.clone() + let conv_tmp_5745_79 = (((((((((((((((((((M31_0.clone() - mul_res_limb_17_col154.clone()) + (op0_limb_0_col51.clone() * op1_limb_17_col97.clone())) + (op0_limb_1_col52.clone() * op1_limb_16_col96.clone())) @@ -1277,7 +1283,7 @@ impl FrameworkEval for Eval { + (op0_limb_15_col66.clone() * op1_limb_2_col82.clone())) + (op0_limb_16_col67.clone() * op1_limb_1_col81.clone())) + (op0_limb_17_col68.clone() * op1_limb_0_col80.clone())); - let conv_tmp_800 = ((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_80 = ((((((((((((((((((((M31_0.clone() - mul_res_limb_18_col155.clone()) + (op0_limb_0_col51.clone() * op1_limb_18_col98.clone())) + (op0_limb_1_col52.clone() * op1_limb_17_col97.clone())) @@ -1298,7 +1304,7 @@ impl FrameworkEval for Eval { + (op0_limb_16_col67.clone() * op1_limb_2_col82.clone())) + (op0_limb_17_col68.clone() * op1_limb_1_col81.clone())) + (op0_limb_18_col69.clone() * op1_limb_0_col80.clone())); - let conv_tmp_801 = (((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_81 = (((((((((((((((((((((M31_0.clone() - mul_res_limb_19_col156.clone()) + (op0_limb_0_col51.clone() * op1_limb_19_col99.clone())) + (op0_limb_1_col52.clone() * op1_limb_18_col98.clone())) @@ -1320,7 +1326,7 @@ impl FrameworkEval for Eval { + (op0_limb_17_col68.clone() * op1_limb_2_col82.clone())) + (op0_limb_18_col69.clone() * op1_limb_1_col81.clone())) + (op0_limb_19_col70.clone() * op1_limb_0_col80.clone())); - let conv_tmp_802 = ((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_82 = ((((((((((((((((((((((M31_0.clone() - mul_res_limb_20_col157.clone()) + (op0_limb_0_col51.clone() * op1_limb_20_col100.clone())) + (op0_limb_1_col52.clone() * op1_limb_19_col99.clone())) @@ -1343,7 +1349,7 @@ impl FrameworkEval for Eval { + (op0_limb_18_col69.clone() * op1_limb_2_col82.clone())) + (op0_limb_19_col70.clone() * op1_limb_1_col81.clone())) + (op0_limb_20_col71.clone() * op1_limb_0_col80.clone())); - let conv_tmp_803 = (((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_83 = (((((((((((((((((((((((M31_0.clone() - mul_res_limb_21_col158.clone()) + (op0_limb_0_col51.clone() * op1_limb_21_col101.clone())) + (op0_limb_1_col52.clone() * op1_limb_20_col100.clone())) @@ -1367,7 +1373,7 @@ impl FrameworkEval for Eval { + (op0_limb_19_col70.clone() * op1_limb_2_col82.clone())) + (op0_limb_20_col71.clone() * op1_limb_1_col81.clone())) + (op0_limb_21_col72.clone() * op1_limb_0_col80.clone())); - let conv_tmp_804 = ((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_84 = ((((((((((((((((((((((((M31_0.clone() - mul_res_limb_22_col159.clone()) + (op0_limb_0_col51.clone() * op1_limb_22_col102.clone())) + (op0_limb_1_col52.clone() * op1_limb_21_col101.clone())) @@ -1392,7 +1398,7 @@ impl FrameworkEval for Eval { + (op0_limb_20_col71.clone() * op1_limb_2_col82.clone())) + (op0_limb_21_col72.clone() * op1_limb_1_col81.clone())) + (op0_limb_22_col73.clone() * op1_limb_0_col80.clone())); - let conv_tmp_805 = (((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_85 = (((((((((((((((((((((((((M31_0.clone() - mul_res_limb_23_col160.clone()) + (op0_limb_0_col51.clone() * op1_limb_23_col103.clone())) + (op0_limb_1_col52.clone() * op1_limb_22_col102.clone())) @@ -1418,7 +1424,7 @@ impl FrameworkEval for Eval { + (op0_limb_21_col72.clone() * op1_limb_2_col82.clone())) + (op0_limb_22_col73.clone() * op1_limb_1_col81.clone())) + (op0_limb_23_col74.clone() * op1_limb_0_col80.clone())); - let conv_tmp_806 = ((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_86 = ((((((((((((((((((((((((((M31_0.clone() - mul_res_limb_24_col161.clone()) + (op0_limb_0_col51.clone() * op1_limb_24_col104.clone())) + (op0_limb_1_col52.clone() * op1_limb_23_col103.clone())) @@ -1445,7 +1451,7 @@ impl FrameworkEval for Eval { + (op0_limb_22_col73.clone() * op1_limb_2_col82.clone())) + (op0_limb_23_col74.clone() * op1_limb_1_col81.clone())) + (op0_limb_24_col75.clone() * op1_limb_0_col80.clone())); - let conv_tmp_807 = (((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_87 = (((((((((((((((((((((((((((M31_0.clone() - mul_res_limb_25_col162.clone()) + (op0_limb_0_col51.clone() * op1_limb_25_col105.clone())) + (op0_limb_1_col52.clone() * op1_limb_24_col104.clone())) @@ -1473,7 +1479,8 @@ impl FrameworkEval for Eval { + (op0_limb_23_col74.clone() * op1_limb_2_col82.clone())) + (op0_limb_24_col75.clone() * op1_limb_1_col81.clone())) + (op0_limb_25_col76.clone() * op1_limb_0_col80.clone())); - let conv_tmp_808 = ((((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_88 = ((((((((((((((((((((((((((((M31_0 + .clone() - mul_res_limb_26_col163.clone()) + (op0_limb_0_col51.clone() * op1_limb_26_col106.clone())) + (op0_limb_1_col52.clone() * op1_limb_25_col105.clone())) @@ -1502,7 +1509,8 @@ impl FrameworkEval for Eval { + (op0_limb_24_col75.clone() * op1_limb_2_col82.clone())) + (op0_limb_25_col76.clone() * op1_limb_1_col81.clone())) + (op0_limb_26_col77.clone() * op1_limb_0_col80.clone())); - let conv_tmp_809 = (((((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_89 = (((((((((((((((((((((((((((((M31_0 + .clone() - mul_res_limb_27_col164.clone()) + (op0_limb_0_col51.clone() * op1_limb_27_col107.clone())) + (op0_limb_1_col52.clone() * op1_limb_26_col106.clone())) @@ -1532,7 +1540,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_2_col82.clone())) + (op0_limb_26_col77.clone() * op1_limb_1_col81.clone())) + (op0_limb_27_col78.clone() * op1_limb_0_col80.clone())); - let conv_tmp_810 = (((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_90 = (((((((((((((((((((((((((((M31_0.clone() + (op0_limb_1_col52.clone() * op1_limb_27_col107.clone())) + (op0_limb_2_col53.clone() * op1_limb_26_col106.clone())) + (op0_limb_3_col54.clone() * op1_limb_25_col105.clone())) @@ -1560,7 +1568,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_3_col83.clone())) + (op0_limb_26_col77.clone() * op1_limb_2_col82.clone())) + (op0_limb_27_col78.clone() * op1_limb_1_col81.clone())); - let conv_tmp_811 = ((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_91 = ((((((((((((((((((((((((((M31_0.clone() + (op0_limb_2_col53.clone() * op1_limb_27_col107.clone())) + (op0_limb_3_col54.clone() * op1_limb_26_col106.clone())) + (op0_limb_4_col55.clone() * op1_limb_25_col105.clone())) @@ -1587,7 +1595,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_4_col84.clone())) + (op0_limb_26_col77.clone() * op1_limb_3_col83.clone())) + (op0_limb_27_col78.clone() * op1_limb_2_col82.clone())); - let conv_tmp_812 = (((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_92 = (((((((((((((((((((((((((M31_0.clone() + (op0_limb_3_col54.clone() * op1_limb_27_col107.clone())) + (op0_limb_4_col55.clone() * op1_limb_26_col106.clone())) + (op0_limb_5_col56.clone() * op1_limb_25_col105.clone())) @@ -1613,7 +1621,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_5_col85.clone())) + (op0_limb_26_col77.clone() * op1_limb_4_col84.clone())) + (op0_limb_27_col78.clone() * op1_limb_3_col83.clone())); - let conv_tmp_813 = ((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_93 = ((((((((((((((((((((((((M31_0.clone() + (op0_limb_4_col55.clone() * op1_limb_27_col107.clone())) + (op0_limb_5_col56.clone() * op1_limb_26_col106.clone())) + (op0_limb_6_col57.clone() * op1_limb_25_col105.clone())) @@ -1638,7 +1646,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_6_col86.clone())) + (op0_limb_26_col77.clone() * op1_limb_5_col85.clone())) + (op0_limb_27_col78.clone() * op1_limb_4_col84.clone())); - let conv_tmp_814 = (((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_94 = (((((((((((((((((((((((M31_0.clone() + (op0_limb_5_col56.clone() * op1_limb_27_col107.clone())) + (op0_limb_6_col57.clone() * op1_limb_26_col106.clone())) + (op0_limb_7_col58.clone() * op1_limb_25_col105.clone())) @@ -1662,7 +1670,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_7_col87.clone())) + (op0_limb_26_col77.clone() * op1_limb_6_col86.clone())) + (op0_limb_27_col78.clone() * op1_limb_5_col85.clone())); - let conv_tmp_815 = ((((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_95 = ((((((((((((((((((((((M31_0.clone() + (op0_limb_6_col57.clone() * op1_limb_27_col107.clone())) + (op0_limb_7_col58.clone() * op1_limb_26_col106.clone())) + (op0_limb_8_col59.clone() * op1_limb_25_col105.clone())) @@ -1685,7 +1693,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_8_col88.clone())) + (op0_limb_26_col77.clone() * op1_limb_7_col87.clone())) + (op0_limb_27_col78.clone() * op1_limb_6_col86.clone())); - let conv_tmp_816 = (((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_96 = (((((((((((((((((((((M31_0.clone() + (op0_limb_7_col58.clone() * op1_limb_27_col107.clone())) + (op0_limb_8_col59.clone() * op1_limb_26_col106.clone())) + (op0_limb_9_col60.clone() * op1_limb_25_col105.clone())) @@ -1707,7 +1715,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_9_col89.clone())) + (op0_limb_26_col77.clone() * op1_limb_8_col88.clone())) + (op0_limb_27_col78.clone() * op1_limb_7_col87.clone())); - let conv_tmp_817 = ((((((((((((((((((((M31_0.clone() + let conv_tmp_5745_97 = ((((((((((((((((((((M31_0.clone() + (op0_limb_8_col59.clone() * op1_limb_27_col107.clone())) + (op0_limb_9_col60.clone() * op1_limb_26_col106.clone())) + (op0_limb_10_col61.clone() * op1_limb_25_col105.clone())) @@ -1728,7 +1736,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_10_col90.clone())) + (op0_limb_26_col77.clone() * op1_limb_9_col89.clone())) + (op0_limb_27_col78.clone() * op1_limb_8_col88.clone())); - let conv_tmp_818 = (((((((((((((((((((M31_0.clone() + let conv_tmp_5745_98 = (((((((((((((((((((M31_0.clone() + (op0_limb_9_col60.clone() * op1_limb_27_col107.clone())) + (op0_limb_10_col61.clone() * op1_limb_26_col106.clone())) + (op0_limb_11_col62.clone() * op1_limb_25_col105.clone())) @@ -1748,7 +1756,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_11_col91.clone())) + (op0_limb_26_col77.clone() * op1_limb_10_col90.clone())) + (op0_limb_27_col78.clone() * op1_limb_9_col89.clone())); - let conv_tmp_819 = ((((((((((((((((((M31_0.clone() + let conv_tmp_5745_99 = ((((((((((((((((((M31_0.clone() + (op0_limb_10_col61.clone() * op1_limb_27_col107.clone())) + (op0_limb_11_col62.clone() * op1_limb_26_col106.clone())) + (op0_limb_12_col63.clone() * op1_limb_25_col105.clone())) @@ -1767,7 +1775,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_12_col92.clone())) + (op0_limb_26_col77.clone() * op1_limb_11_col91.clone())) + (op0_limb_27_col78.clone() * op1_limb_10_col90.clone())); - let conv_tmp_820 = (((((((((((((((((M31_0.clone() + let conv_tmp_5745_100 = (((((((((((((((((M31_0.clone() + (op0_limb_11_col62.clone() * op1_limb_27_col107.clone())) + (op0_limb_12_col63.clone() * op1_limb_26_col106.clone())) + (op0_limb_13_col64.clone() * op1_limb_25_col105.clone())) @@ -1785,7 +1793,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_13_col93.clone())) + (op0_limb_26_col77.clone() * op1_limb_12_col92.clone())) + (op0_limb_27_col78.clone() * op1_limb_11_col91.clone())); - let conv_tmp_821 = ((((((((((((((((M31_0.clone() + let conv_tmp_5745_101 = ((((((((((((((((M31_0.clone() + (op0_limb_12_col63.clone() * op1_limb_27_col107.clone())) + (op0_limb_13_col64.clone() * op1_limb_26_col106.clone())) + (op0_limb_14_col65.clone() * op1_limb_25_col105.clone())) @@ -1802,7 +1810,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_14_col94.clone())) + (op0_limb_26_col77.clone() * op1_limb_13_col93.clone())) + (op0_limb_27_col78.clone() * op1_limb_12_col92.clone())); - let conv_tmp_822 = (((((((((((((((M31_0.clone() + let conv_tmp_5745_102 = (((((((((((((((M31_0.clone() + (op0_limb_13_col64.clone() * op1_limb_27_col107.clone())) + (op0_limb_14_col65.clone() * op1_limb_26_col106.clone())) + (op0_limb_15_col66.clone() * op1_limb_25_col105.clone())) @@ -1818,7 +1826,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_15_col95.clone())) + (op0_limb_26_col77.clone() * op1_limb_14_col94.clone())) + (op0_limb_27_col78.clone() * op1_limb_13_col93.clone())); - let conv_tmp_823 = ((((((((((((((M31_0.clone() + let conv_tmp_5745_103 = ((((((((((((((M31_0.clone() + (op0_limb_14_col65.clone() * op1_limb_27_col107.clone())) + (op0_limb_15_col66.clone() * op1_limb_26_col106.clone())) + (op0_limb_16_col67.clone() * op1_limb_25_col105.clone())) @@ -1833,7 +1841,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_16_col96.clone())) + (op0_limb_26_col77.clone() * op1_limb_15_col95.clone())) + (op0_limb_27_col78.clone() * op1_limb_14_col94.clone())); - let conv_tmp_824 = (((((((((((((M31_0.clone() + let conv_tmp_5745_104 = (((((((((((((M31_0.clone() + (op0_limb_15_col66.clone() * op1_limb_27_col107.clone())) + (op0_limb_16_col67.clone() * op1_limb_26_col106.clone())) + (op0_limb_17_col68.clone() * op1_limb_25_col105.clone())) @@ -1847,7 +1855,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_17_col97.clone())) + (op0_limb_26_col77.clone() * op1_limb_16_col96.clone())) + (op0_limb_27_col78.clone() * op1_limb_15_col95.clone())); - let conv_tmp_825 = ((((((((((((M31_0.clone() + let conv_tmp_5745_105 = ((((((((((((M31_0.clone() + (op0_limb_16_col67.clone() * op1_limb_27_col107.clone())) + (op0_limb_17_col68.clone() * op1_limb_26_col106.clone())) + (op0_limb_18_col69.clone() * op1_limb_25_col105.clone())) @@ -1860,7 +1868,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_18_col98.clone())) + (op0_limb_26_col77.clone() * op1_limb_17_col97.clone())) + (op0_limb_27_col78.clone() * op1_limb_16_col96.clone())); - let conv_tmp_826 = (((((((((((M31_0.clone() + let conv_tmp_5745_106 = (((((((((((M31_0.clone() + (op0_limb_17_col68.clone() * op1_limb_27_col107.clone())) + (op0_limb_18_col69.clone() * op1_limb_26_col106.clone())) + (op0_limb_19_col70.clone() * op1_limb_25_col105.clone())) @@ -1872,7 +1880,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_19_col99.clone())) + (op0_limb_26_col77.clone() * op1_limb_18_col98.clone())) + (op0_limb_27_col78.clone() * op1_limb_17_col97.clone())); - let conv_tmp_827 = ((((((((((M31_0.clone() + let conv_tmp_5745_107 = ((((((((((M31_0.clone() + (op0_limb_18_col69.clone() * op1_limb_27_col107.clone())) + (op0_limb_19_col70.clone() * op1_limb_26_col106.clone())) + (op0_limb_20_col71.clone() * op1_limb_25_col105.clone())) @@ -1883,7 +1891,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_20_col100.clone())) + (op0_limb_26_col77.clone() * op1_limb_19_col99.clone())) + (op0_limb_27_col78.clone() * op1_limb_18_col98.clone())); - let conv_tmp_828 = (((((((((M31_0.clone() + let conv_tmp_5745_108 = (((((((((M31_0.clone() + (op0_limb_19_col70.clone() * op1_limb_27_col107.clone())) + (op0_limb_20_col71.clone() * op1_limb_26_col106.clone())) + (op0_limb_21_col72.clone() * op1_limb_25_col105.clone())) @@ -1893,7 +1901,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_21_col101.clone())) + (op0_limb_26_col77.clone() * op1_limb_20_col100.clone())) + (op0_limb_27_col78.clone() * op1_limb_19_col99.clone())); - let conv_tmp_829 = ((((((((M31_0.clone() + let conv_tmp_5745_109 = ((((((((M31_0.clone() + (op0_limb_20_col71.clone() * op1_limb_27_col107.clone())) + (op0_limb_21_col72.clone() * op1_limb_26_col106.clone())) + (op0_limb_22_col73.clone() * op1_limb_25_col105.clone())) @@ -1902,7 +1910,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_22_col102.clone())) + (op0_limb_26_col77.clone() * op1_limb_21_col101.clone())) + (op0_limb_27_col78.clone() * op1_limb_20_col100.clone())); - let conv_tmp_830 = (((((((M31_0.clone() + let conv_tmp_5745_110 = (((((((M31_0.clone() + (op0_limb_21_col72.clone() * op1_limb_27_col107.clone())) + (op0_limb_22_col73.clone() * op1_limb_26_col106.clone())) + (op0_limb_23_col74.clone() * op1_limb_25_col105.clone())) @@ -1910,429 +1918,457 @@ impl FrameworkEval for Eval { + (op0_limb_25_col76.clone() * op1_limb_23_col103.clone())) + (op0_limb_26_col77.clone() * op1_limb_22_col102.clone())) + (op0_limb_27_col78.clone() * op1_limb_21_col101.clone())); - let conv_tmp_831 = ((((((M31_0.clone() + let conv_tmp_5745_111 = ((((((M31_0.clone() + (op0_limb_22_col73.clone() * op1_limb_27_col107.clone())) + (op0_limb_23_col74.clone() * op1_limb_26_col106.clone())) + (op0_limb_24_col75.clone() * op1_limb_25_col105.clone())) + (op0_limb_25_col76.clone() * op1_limb_24_col104.clone())) + (op0_limb_26_col77.clone() * op1_limb_23_col103.clone())) + (op0_limb_27_col78.clone() * op1_limb_22_col102.clone())); - let conv_tmp_832 = (((((M31_0.clone() + let conv_tmp_5745_112 = (((((M31_0.clone() + (op0_limb_23_col74.clone() * op1_limb_27_col107.clone())) + (op0_limb_24_col75.clone() * op1_limb_26_col106.clone())) + (op0_limb_25_col76.clone() * op1_limb_25_col105.clone())) + (op0_limb_26_col77.clone() * op1_limb_24_col104.clone())) + (op0_limb_27_col78.clone() * op1_limb_23_col103.clone())); - let conv_tmp_833 = ((((M31_0.clone() + let conv_tmp_5745_113 = ((((M31_0.clone() + (op0_limb_24_col75.clone() * op1_limb_27_col107.clone())) + (op0_limb_25_col76.clone() * op1_limb_26_col106.clone())) + (op0_limb_26_col77.clone() * op1_limb_25_col105.clone())) + (op0_limb_27_col78.clone() * op1_limb_24_col104.clone())); - let conv_tmp_834 = (((M31_0.clone() + let conv_tmp_5745_114 = (((M31_0.clone() + (op0_limb_25_col76.clone() * op1_limb_27_col107.clone())) + (op0_limb_26_col77.clone() * op1_limb_26_col106.clone())) + (op0_limb_27_col78.clone() * op1_limb_25_col105.clone())); - let conv_tmp_835 = ((M31_0.clone() + let conv_tmp_5745_115 = ((M31_0.clone() + (op0_limb_26_col77.clone() * op1_limb_27_col107.clone())) + (op0_limb_27_col78.clone() * op1_limb_26_col106.clone())); - let conv_tmp_836 = + let conv_tmp_5745_116 = (M31_0.clone() + (op0_limb_27_col78.clone() * op1_limb_27_col107.clone())); - let conv_mod_tmp_837 = (((M31_0.clone() + (M31_32.clone() * conv_tmp_782.clone())) - - (M31_4.clone() * conv_tmp_803.clone())) - + (M31_8.clone() * conv_tmp_831.clone())); - let conv_mod_tmp_838 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_782.clone())) - + (M31_32.clone() * conv_tmp_783.clone())) - - (M31_4.clone() * conv_tmp_804.clone())) - + (M31_8.clone() * conv_tmp_832.clone())); - let conv_mod_tmp_839 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_783.clone())) - + (M31_32.clone() * conv_tmp_784.clone())) - - (M31_4.clone() * conv_tmp_805.clone())) - + (M31_8.clone() * conv_tmp_833.clone())); - let conv_mod_tmp_840 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_784.clone())) - + (M31_32.clone() * conv_tmp_785.clone())) - - (M31_4.clone() * conv_tmp_806.clone())) - + (M31_8.clone() * conv_tmp_834.clone())); - let conv_mod_tmp_841 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_785.clone())) - + (M31_32.clone() * conv_tmp_786.clone())) - - (M31_4.clone() * conv_tmp_807.clone())) - + (M31_8.clone() * conv_tmp_835.clone())); - let conv_mod_tmp_842 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_786.clone())) - + (M31_32.clone() * conv_tmp_787.clone())) - - (M31_4.clone() * conv_tmp_808.clone())) - + (M31_8.clone() * conv_tmp_836.clone())); - let conv_mod_tmp_843 = (((M31_0.clone() + (M31_1.clone() * conv_tmp_787.clone())) - + (M31_32.clone() * conv_tmp_788.clone())) - - (M31_4.clone() * conv_tmp_809.clone())); - let conv_mod_tmp_844 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_782.clone())) - + (M31_1.clone() * conv_tmp_788.clone())) - + (M31_32.clone() * conv_tmp_789.clone())) - - (M31_4.clone() * conv_tmp_810.clone())); - let conv_mod_tmp_845 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_783.clone())) - + (M31_1.clone() * conv_tmp_789.clone())) - + (M31_32.clone() * conv_tmp_790.clone())) - - (M31_4.clone() * conv_tmp_811.clone())); - let conv_mod_tmp_846 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_784.clone())) - + (M31_1.clone() * conv_tmp_790.clone())) - + (M31_32.clone() * conv_tmp_791.clone())) - - (M31_4.clone() * conv_tmp_812.clone())); - let conv_mod_tmp_847 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_785.clone())) - + (M31_1.clone() * conv_tmp_791.clone())) - + (M31_32.clone() * conv_tmp_792.clone())) - - (M31_4.clone() * conv_tmp_813.clone())); - let conv_mod_tmp_848 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_786.clone())) - + (M31_1.clone() * conv_tmp_792.clone())) - + (M31_32.clone() * conv_tmp_793.clone())) - - (M31_4.clone() * conv_tmp_814.clone())); - let conv_mod_tmp_849 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_787.clone())) - + (M31_1.clone() * conv_tmp_793.clone())) - + (M31_32.clone() * conv_tmp_794.clone())) - - (M31_4.clone() * conv_tmp_815.clone())); - let conv_mod_tmp_850 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_788.clone())) - + (M31_1.clone() * conv_tmp_794.clone())) - + (M31_32.clone() * conv_tmp_795.clone())) - - (M31_4.clone() * conv_tmp_816.clone())); - let conv_mod_tmp_851 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_789.clone())) - + (M31_1.clone() * conv_tmp_795.clone())) - + (M31_32.clone() * conv_tmp_796.clone())) - - (M31_4.clone() * conv_tmp_817.clone())); - let conv_mod_tmp_852 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_790.clone())) - + (M31_1.clone() * conv_tmp_796.clone())) - + (M31_32.clone() * conv_tmp_797.clone())) - - (M31_4.clone() * conv_tmp_818.clone())); - let conv_mod_tmp_853 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_791.clone())) - + (M31_1.clone() * conv_tmp_797.clone())) - + (M31_32.clone() * conv_tmp_798.clone())) - - (M31_4.clone() * conv_tmp_819.clone())); - let conv_mod_tmp_854 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_792.clone())) - + (M31_1.clone() * conv_tmp_798.clone())) - + (M31_32.clone() * conv_tmp_799.clone())) - - (M31_4.clone() * conv_tmp_820.clone())); - let conv_mod_tmp_855 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_793.clone())) - + (M31_1.clone() * conv_tmp_799.clone())) - + (M31_32.clone() * conv_tmp_800.clone())) - - (M31_4.clone() * conv_tmp_821.clone())); - let conv_mod_tmp_856 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_794.clone())) - + (M31_1.clone() * conv_tmp_800.clone())) - + (M31_32.clone() * conv_tmp_801.clone())) - - (M31_4.clone() * conv_tmp_822.clone())); - let conv_mod_tmp_857 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_795.clone())) - + (M31_1.clone() * conv_tmp_801.clone())) - + (M31_32.clone() * conv_tmp_802.clone())) - - (M31_4.clone() * conv_tmp_823.clone())); - let conv_mod_tmp_858 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_796.clone())) - + (M31_1.clone() * conv_tmp_802.clone())) - - (M31_4.clone() * conv_tmp_824.clone())) - + (M31_64.clone() * conv_tmp_831.clone())); - let conv_mod_tmp_859 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_797.clone())) - - (M31_4.clone() * conv_tmp_825.clone())) - + (M31_2.clone() * conv_tmp_831.clone())) - + (M31_64.clone() * conv_tmp_832.clone())); - let conv_mod_tmp_860 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_798.clone())) - - (M31_4.clone() * conv_tmp_826.clone())) - + (M31_2.clone() * conv_tmp_832.clone())) - + (M31_64.clone() * conv_tmp_833.clone())); - let conv_mod_tmp_861 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_799.clone())) - - (M31_4.clone() * conv_tmp_827.clone())) - + (M31_2.clone() * conv_tmp_833.clone())) - + (M31_64.clone() * conv_tmp_834.clone())); - let conv_mod_tmp_862 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_800.clone())) - - (M31_4.clone() * conv_tmp_828.clone())) - + (M31_2.clone() * conv_tmp_834.clone())) - + (M31_64.clone() * conv_tmp_835.clone())); - let conv_mod_tmp_863 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_801.clone())) - - (M31_4.clone() * conv_tmp_829.clone())) - + (M31_2.clone() * conv_tmp_835.clone())) - + (M31_64.clone() * conv_tmp_836.clone())); - let conv_mod_tmp_864 = (((M31_0.clone() + (M31_2.clone() * conv_tmp_802.clone())) - - (M31_4.clone() * conv_tmp_830.clone())) - + (M31_2.clone() * conv_tmp_836.clone())); - eval.add_to_relation(&[RelationEntry::new( + let conv_mod_tmp_5745_117 = (((M31_0.clone() + + (M31_32.clone() * conv_tmp_5745_62.clone())) + - (M31_4.clone() * conv_tmp_5745_83.clone())) + + (M31_8.clone() * conv_tmp_5745_111.clone())); + let conv_mod_tmp_5745_118 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5745_62.clone())) + + (M31_32.clone() * conv_tmp_5745_63.clone())) + - (M31_4.clone() * conv_tmp_5745_84.clone())) + + (M31_8.clone() * conv_tmp_5745_112.clone())); + let conv_mod_tmp_5745_119 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5745_63.clone())) + + (M31_32.clone() * conv_tmp_5745_64.clone())) + - (M31_4.clone() * conv_tmp_5745_85.clone())) + + (M31_8.clone() * conv_tmp_5745_113.clone())); + let conv_mod_tmp_5745_120 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5745_64.clone())) + + (M31_32.clone() * conv_tmp_5745_65.clone())) + - (M31_4.clone() * conv_tmp_5745_86.clone())) + + (M31_8.clone() * conv_tmp_5745_114.clone())); + let conv_mod_tmp_5745_121 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5745_65.clone())) + + (M31_32.clone() * conv_tmp_5745_66.clone())) + - (M31_4.clone() * conv_tmp_5745_87.clone())) + + (M31_8.clone() * conv_tmp_5745_115.clone())); + let conv_mod_tmp_5745_122 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5745_66.clone())) + + (M31_32.clone() * conv_tmp_5745_67.clone())) + - (M31_4.clone() * conv_tmp_5745_88.clone())) + + (M31_8.clone() * conv_tmp_5745_116.clone())); + let conv_mod_tmp_5745_123 = (((M31_0.clone() + + (M31_1.clone() * conv_tmp_5745_67.clone())) + + (M31_32.clone() * conv_tmp_5745_68.clone())) + - (M31_4.clone() * conv_tmp_5745_89.clone())); + let conv_mod_tmp_5745_124 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_62.clone())) + + (M31_1.clone() * conv_tmp_5745_68.clone())) + + (M31_32.clone() * conv_tmp_5745_69.clone())) + - (M31_4.clone() * conv_tmp_5745_90.clone())); + let conv_mod_tmp_5745_125 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_63.clone())) + + (M31_1.clone() * conv_tmp_5745_69.clone())) + + (M31_32.clone() * conv_tmp_5745_70.clone())) + - (M31_4.clone() * conv_tmp_5745_91.clone())); + let conv_mod_tmp_5745_126 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_64.clone())) + + (M31_1.clone() * conv_tmp_5745_70.clone())) + + (M31_32.clone() * conv_tmp_5745_71.clone())) + - (M31_4.clone() * conv_tmp_5745_92.clone())); + let conv_mod_tmp_5745_127 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_65.clone())) + + (M31_1.clone() * conv_tmp_5745_71.clone())) + + (M31_32.clone() * conv_tmp_5745_72.clone())) + - (M31_4.clone() * conv_tmp_5745_93.clone())); + let conv_mod_tmp_5745_128 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_66.clone())) + + (M31_1.clone() * conv_tmp_5745_72.clone())) + + (M31_32.clone() * conv_tmp_5745_73.clone())) + - (M31_4.clone() * conv_tmp_5745_94.clone())); + let conv_mod_tmp_5745_129 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_67.clone())) + + (M31_1.clone() * conv_tmp_5745_73.clone())) + + (M31_32.clone() * conv_tmp_5745_74.clone())) + - (M31_4.clone() * conv_tmp_5745_95.clone())); + let conv_mod_tmp_5745_130 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_68.clone())) + + (M31_1.clone() * conv_tmp_5745_74.clone())) + + (M31_32.clone() * conv_tmp_5745_75.clone())) + - (M31_4.clone() * conv_tmp_5745_96.clone())); + let conv_mod_tmp_5745_131 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_69.clone())) + + (M31_1.clone() * conv_tmp_5745_75.clone())) + + (M31_32.clone() * conv_tmp_5745_76.clone())) + - (M31_4.clone() * conv_tmp_5745_97.clone())); + let conv_mod_tmp_5745_132 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_70.clone())) + + (M31_1.clone() * conv_tmp_5745_76.clone())) + + (M31_32.clone() * conv_tmp_5745_77.clone())) + - (M31_4.clone() * conv_tmp_5745_98.clone())); + let conv_mod_tmp_5745_133 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_71.clone())) + + (M31_1.clone() * conv_tmp_5745_77.clone())) + + (M31_32.clone() * conv_tmp_5745_78.clone())) + - (M31_4.clone() * conv_tmp_5745_99.clone())); + let conv_mod_tmp_5745_134 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_72.clone())) + + (M31_1.clone() * conv_tmp_5745_78.clone())) + + (M31_32.clone() * conv_tmp_5745_79.clone())) + - (M31_4.clone() * conv_tmp_5745_100.clone())); + let conv_mod_tmp_5745_135 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_73.clone())) + + (M31_1.clone() * conv_tmp_5745_79.clone())) + + (M31_32.clone() * conv_tmp_5745_80.clone())) + - (M31_4.clone() * conv_tmp_5745_101.clone())); + let conv_mod_tmp_5745_136 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_74.clone())) + + (M31_1.clone() * conv_tmp_5745_80.clone())) + + (M31_32.clone() * conv_tmp_5745_81.clone())) + - (M31_4.clone() * conv_tmp_5745_102.clone())); + let conv_mod_tmp_5745_137 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_75.clone())) + + (M31_1.clone() * conv_tmp_5745_81.clone())) + + (M31_32.clone() * conv_tmp_5745_82.clone())) + - (M31_4.clone() * conv_tmp_5745_103.clone())); + let conv_mod_tmp_5745_138 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_76.clone())) + + (M31_1.clone() * conv_tmp_5745_82.clone())) + - (M31_4.clone() * conv_tmp_5745_104.clone())) + + (M31_64.clone() * conv_tmp_5745_111.clone())); + let conv_mod_tmp_5745_139 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_77.clone())) + - (M31_4.clone() * conv_tmp_5745_105.clone())) + + (M31_2.clone() * conv_tmp_5745_111.clone())) + + (M31_64.clone() * conv_tmp_5745_112.clone())); + let conv_mod_tmp_5745_140 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_78.clone())) + - (M31_4.clone() * conv_tmp_5745_106.clone())) + + (M31_2.clone() * conv_tmp_5745_112.clone())) + + (M31_64.clone() * conv_tmp_5745_113.clone())); + let conv_mod_tmp_5745_141 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_79.clone())) + - (M31_4.clone() * conv_tmp_5745_107.clone())) + + (M31_2.clone() * conv_tmp_5745_113.clone())) + + (M31_64.clone() * conv_tmp_5745_114.clone())); + let conv_mod_tmp_5745_142 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_80.clone())) + - (M31_4.clone() * conv_tmp_5745_108.clone())) + + (M31_2.clone() * conv_tmp_5745_114.clone())) + + (M31_64.clone() * conv_tmp_5745_115.clone())); + let conv_mod_tmp_5745_143 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_81.clone())) + - (M31_4.clone() * conv_tmp_5745_109.clone())) + + (M31_2.clone() * conv_tmp_5745_115.clone())) + + (M31_64.clone() * conv_tmp_5745_116.clone())); + let conv_mod_tmp_5745_144 = (((M31_0.clone() + + (M31_2.clone() * conv_tmp_5745_82.clone())) + - (M31_4.clone() * conv_tmp_5745_110.clone())) + + (M31_2.clone() * conv_tmp_5745_116.clone())); + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(k_col165.clone() + M31_262144.clone())], - )]); + )); eval.add_constraint( ((carry_0_col166.clone() * M31_512.clone()) - - ((conv_mod_tmp_837.clone() - (M31_1.clone() * k_col165.clone())) + - ((conv_mod_tmp_5745_117.clone() - (M31_1.clone() * k_col165.clone())) + M31_0.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_0_col166.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_1_col167.clone() * M31_512.clone()) - - (conv_mod_tmp_838.clone() + carry_0_col166.clone())), + - (conv_mod_tmp_5745_118.clone() + carry_0_col166.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_1_col167.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_2_col168.clone() * M31_512.clone()) - - (conv_mod_tmp_839.clone() + carry_1_col167.clone())), + - (conv_mod_tmp_5745_119.clone() + carry_1_col167.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_2_col168.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_3_col169.clone() * M31_512.clone()) - - (conv_mod_tmp_840.clone() + carry_2_col168.clone())), + - (conv_mod_tmp_5745_120.clone() + carry_2_col168.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_3_col169.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_4_col170.clone() * M31_512.clone()) - - (conv_mod_tmp_841.clone() + carry_3_col169.clone())), + - (conv_mod_tmp_5745_121.clone() + carry_3_col169.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_4_col170.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_5_col171.clone() * M31_512.clone()) - - (conv_mod_tmp_842.clone() + carry_4_col170.clone())), + - (conv_mod_tmp_5745_122.clone() + carry_4_col170.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_5_col171.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_6_col172.clone() * M31_512.clone()) - - (conv_mod_tmp_843.clone() + carry_5_col171.clone())), + - (conv_mod_tmp_5745_123.clone() + carry_5_col171.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_6_col172.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_7_col173.clone() * M31_512.clone()) - - (conv_mod_tmp_844.clone() + carry_6_col172.clone())), + - (conv_mod_tmp_5745_124.clone() + carry_6_col172.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_7_col173.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_8_col174.clone() * M31_512.clone()) - - (conv_mod_tmp_845.clone() + carry_7_col173.clone())), + - (conv_mod_tmp_5745_125.clone() + carry_7_col173.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_8_col174.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_9_col175.clone() * M31_512.clone()) - - (conv_mod_tmp_846.clone() + carry_8_col174.clone())), + - (conv_mod_tmp_5745_126.clone() + carry_8_col174.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_9_col175.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_10_col176.clone() * M31_512.clone()) - - (conv_mod_tmp_847.clone() + carry_9_col175.clone())), + - (conv_mod_tmp_5745_127.clone() + carry_9_col175.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_10_col176.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_11_col177.clone() * M31_512.clone()) - - (conv_mod_tmp_848.clone() + carry_10_col176.clone())), + - (conv_mod_tmp_5745_128.clone() + carry_10_col176.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_11_col177.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_12_col178.clone() * M31_512.clone()) - - (conv_mod_tmp_849.clone() + carry_11_col177.clone())), + - (conv_mod_tmp_5745_129.clone() + carry_11_col177.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_12_col178.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_13_col179.clone() * M31_512.clone()) - - (conv_mod_tmp_850.clone() + carry_12_col178.clone())), + - (conv_mod_tmp_5745_130.clone() + carry_12_col178.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_13_col179.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_14_col180.clone() * M31_512.clone()) - - (conv_mod_tmp_851.clone() + carry_13_col179.clone())), + - (conv_mod_tmp_5745_131.clone() + carry_13_col179.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_14_col180.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_15_col181.clone() * M31_512.clone()) - - (conv_mod_tmp_852.clone() + carry_14_col180.clone())), + - (conv_mod_tmp_5745_132.clone() + carry_14_col180.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_15_col181.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_16_col182.clone() * M31_512.clone()) - - (conv_mod_tmp_853.clone() + carry_15_col181.clone())), + - (conv_mod_tmp_5745_133.clone() + carry_15_col181.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_16_col182.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_17_col183.clone() * M31_512.clone()) - - (conv_mod_tmp_854.clone() + carry_16_col182.clone())), + - (conv_mod_tmp_5745_134.clone() + carry_16_col182.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_17_col183.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_18_col184.clone() * M31_512.clone()) - - (conv_mod_tmp_855.clone() + carry_17_col183.clone())), + - (conv_mod_tmp_5745_135.clone() + carry_17_col183.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_18_col184.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_19_col185.clone() * M31_512.clone()) - - (conv_mod_tmp_856.clone() + carry_18_col184.clone())), + - (conv_mod_tmp_5745_136.clone() + carry_18_col184.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_19_col185.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_20_col186.clone() * M31_512.clone()) - - (conv_mod_tmp_857.clone() + carry_19_col185.clone())), + - (conv_mod_tmp_5745_137.clone() + carry_19_col185.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_20_col186.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_21_col187.clone() * M31_512.clone()) - - ((conv_mod_tmp_858.clone() - (M31_136.clone() * k_col165.clone())) + - ((conv_mod_tmp_5745_138.clone() - (M31_136.clone() * k_col165.clone())) + carry_20_col186.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_21_col187.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_22_col188.clone() * M31_512.clone()) - - (conv_mod_tmp_859.clone() + carry_21_col187.clone())), + - (conv_mod_tmp_5745_139.clone() + carry_21_col187.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_22_col188.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_23_col189.clone() * M31_512.clone()) - - (conv_mod_tmp_860.clone() + carry_22_col188.clone())), + - (conv_mod_tmp_5745_140.clone() + carry_22_col188.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_23_col189.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_24_col190.clone() * M31_512.clone()) - - (conv_mod_tmp_861.clone() + carry_23_col189.clone())), + - (conv_mod_tmp_5745_141.clone() + carry_23_col189.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_24_col190.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_25_col191.clone() * M31_512.clone()) - - (conv_mod_tmp_862.clone() + carry_24_col190.clone())), + - (conv_mod_tmp_5745_142.clone() + carry_24_col190.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_25_col191.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_26_col192.clone() * M31_512.clone()) - - (conv_mod_tmp_863.clone() + carry_25_col191.clone())), + - (conv_mod_tmp_5745_143.clone() + carry_25_col191.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_26_col192.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( - ((conv_mod_tmp_864.clone() - (M31_256.clone() * k_col165.clone())) + ((conv_mod_tmp_5745_144.clone() - (M31_256.clone() * k_col165.clone())) + carry_26_col192.clone()), ); - let res_constrained_tmp_895 = (M31_1.clone() - pc_update_jnz_col15.clone()); + let res_constrained_tmp_5745_147 = (M31_1.clone() - pc_update_jnz_col15.clone()); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_0_col193.clone() - op1_limb_0_col80.clone())) + (res_add_col11.clone() * (res_limb_0_col193.clone() - add_res_limb_0_col108.clone()))) @@ -2340,8 +2376,8 @@ impl FrameworkEval for Eval { * (res_limb_0_col193.clone() - mul_res_limb_0_col137.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_1_col194.clone() - op1_limb_1_col81.clone())) + (res_add_col11.clone() * (res_limb_1_col194.clone() - add_res_limb_1_col109.clone()))) @@ -2349,8 +2385,8 @@ impl FrameworkEval for Eval { * (res_limb_1_col194.clone() - mul_res_limb_1_col138.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_2_col195.clone() - op1_limb_2_col82.clone())) + (res_add_col11.clone() * (res_limb_2_col195.clone() - add_res_limb_2_col110.clone()))) @@ -2358,8 +2394,8 @@ impl FrameworkEval for Eval { * (res_limb_2_col195.clone() - mul_res_limb_2_col139.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_3_col196.clone() - op1_limb_3_col83.clone())) + (res_add_col11.clone() * (res_limb_3_col196.clone() - add_res_limb_3_col111.clone()))) @@ -2367,8 +2403,8 @@ impl FrameworkEval for Eval { * (res_limb_3_col196.clone() - mul_res_limb_3_col140.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_4_col197.clone() - op1_limb_4_col84.clone())) + (res_add_col11.clone() * (res_limb_4_col197.clone() - add_res_limb_4_col112.clone()))) @@ -2376,8 +2412,8 @@ impl FrameworkEval for Eval { * (res_limb_4_col197.clone() - mul_res_limb_4_col141.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_5_col198.clone() - op1_limb_5_col85.clone())) + (res_add_col11.clone() * (res_limb_5_col198.clone() - add_res_limb_5_col113.clone()))) @@ -2385,8 +2421,8 @@ impl FrameworkEval for Eval { * (res_limb_5_col198.clone() - mul_res_limb_5_col142.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_6_col199.clone() - op1_limb_6_col86.clone())) + (res_add_col11.clone() * (res_limb_6_col199.clone() - add_res_limb_6_col114.clone()))) @@ -2394,8 +2430,8 @@ impl FrameworkEval for Eval { * (res_limb_6_col199.clone() - mul_res_limb_6_col143.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_7_col200.clone() - op1_limb_7_col87.clone())) + (res_add_col11.clone() * (res_limb_7_col200.clone() - add_res_limb_7_col115.clone()))) @@ -2403,8 +2439,8 @@ impl FrameworkEval for Eval { * (res_limb_7_col200.clone() - mul_res_limb_7_col144.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_8_col201.clone() - op1_limb_8_col88.clone())) + (res_add_col11.clone() * (res_limb_8_col201.clone() - add_res_limb_8_col116.clone()))) @@ -2412,8 +2448,8 @@ impl FrameworkEval for Eval { * (res_limb_8_col201.clone() - mul_res_limb_8_col145.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_9_col202.clone() - op1_limb_9_col89.clone())) + (res_add_col11.clone() * (res_limb_9_col202.clone() - add_res_limb_9_col117.clone()))) @@ -2421,8 +2457,8 @@ impl FrameworkEval for Eval { * (res_limb_9_col202.clone() - mul_res_limb_9_col146.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_10_col203.clone() - op1_limb_10_col90.clone())) + (res_add_col11.clone() * (res_limb_10_col203.clone() - add_res_limb_10_col118.clone()))) @@ -2430,8 +2466,8 @@ impl FrameworkEval for Eval { * (res_limb_10_col203.clone() - mul_res_limb_10_col147.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_11_col204.clone() - op1_limb_11_col91.clone())) + (res_add_col11.clone() * (res_limb_11_col204.clone() - add_res_limb_11_col119.clone()))) @@ -2439,8 +2475,8 @@ impl FrameworkEval for Eval { * (res_limb_11_col204.clone() - mul_res_limb_11_col148.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_12_col205.clone() - op1_limb_12_col92.clone())) + (res_add_col11.clone() * (res_limb_12_col205.clone() - add_res_limb_12_col120.clone()))) @@ -2448,8 +2484,8 @@ impl FrameworkEval for Eval { * (res_limb_12_col205.clone() - mul_res_limb_12_col149.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_13_col206.clone() - op1_limb_13_col93.clone())) + (res_add_col11.clone() * (res_limb_13_col206.clone() - add_res_limb_13_col121.clone()))) @@ -2457,8 +2493,8 @@ impl FrameworkEval for Eval { * (res_limb_13_col206.clone() - mul_res_limb_13_col150.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_14_col207.clone() - op1_limb_14_col94.clone())) + (res_add_col11.clone() * (res_limb_14_col207.clone() - add_res_limb_14_col122.clone()))) @@ -2466,8 +2502,8 @@ impl FrameworkEval for Eval { * (res_limb_14_col207.clone() - mul_res_limb_14_col151.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_15_col208.clone() - op1_limb_15_col95.clone())) + (res_add_col11.clone() * (res_limb_15_col208.clone() - add_res_limb_15_col123.clone()))) @@ -2475,8 +2511,8 @@ impl FrameworkEval for Eval { * (res_limb_15_col208.clone() - mul_res_limb_15_col152.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_16_col209.clone() - op1_limb_16_col96.clone())) + (res_add_col11.clone() * (res_limb_16_col209.clone() - add_res_limb_16_col124.clone()))) @@ -2484,8 +2520,8 @@ impl FrameworkEval for Eval { * (res_limb_16_col209.clone() - mul_res_limb_16_col153.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_17_col210.clone() - op1_limb_17_col97.clone())) + (res_add_col11.clone() * (res_limb_17_col210.clone() - add_res_limb_17_col125.clone()))) @@ -2493,8 +2529,8 @@ impl FrameworkEval for Eval { * (res_limb_17_col210.clone() - mul_res_limb_17_col154.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_18_col211.clone() - op1_limb_18_col98.clone())) + (res_add_col11.clone() * (res_limb_18_col211.clone() - add_res_limb_18_col126.clone()))) @@ -2502,8 +2538,8 @@ impl FrameworkEval for Eval { * (res_limb_18_col211.clone() - mul_res_limb_18_col155.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_19_col212.clone() - op1_limb_19_col99.clone())) + (res_add_col11.clone() * (res_limb_19_col212.clone() - add_res_limb_19_col127.clone()))) @@ -2511,8 +2547,8 @@ impl FrameworkEval for Eval { * (res_limb_19_col212.clone() - mul_res_limb_19_col156.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_20_col213.clone() - op1_limb_20_col100.clone())) + (res_add_col11.clone() * (res_limb_20_col213.clone() - add_res_limb_20_col128.clone()))) @@ -2520,8 +2556,8 @@ impl FrameworkEval for Eval { * (res_limb_20_col213.clone() - mul_res_limb_20_col157.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_21_col214.clone() - op1_limb_21_col101.clone())) + (res_add_col11.clone() * (res_limb_21_col214.clone() - add_res_limb_21_col129.clone()))) @@ -2529,8 +2565,8 @@ impl FrameworkEval for Eval { * (res_limb_21_col214.clone() - mul_res_limb_21_col158.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_22_col215.clone() - op1_limb_22_col102.clone())) + (res_add_col11.clone() * (res_limb_22_col215.clone() - add_res_limb_22_col130.clone()))) @@ -2538,8 +2574,8 @@ impl FrameworkEval for Eval { * (res_limb_22_col215.clone() - mul_res_limb_22_col159.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_23_col216.clone() - op1_limb_23_col103.clone())) + (res_add_col11.clone() * (res_limb_23_col216.clone() - add_res_limb_23_col131.clone()))) @@ -2547,8 +2583,8 @@ impl FrameworkEval for Eval { * (res_limb_23_col216.clone() - mul_res_limb_23_col160.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_24_col217.clone() - op1_limb_24_col104.clone())) + (res_add_col11.clone() * (res_limb_24_col217.clone() - add_res_limb_24_col132.clone()))) @@ -2556,8 +2592,8 @@ impl FrameworkEval for Eval { * (res_limb_24_col217.clone() - mul_res_limb_24_col161.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_25_col218.clone() - op1_limb_25_col105.clone())) + (res_add_col11.clone() * (res_limb_25_col218.clone() - add_res_limb_25_col133.clone()))) @@ -2565,8 +2601,8 @@ impl FrameworkEval for Eval { * (res_limb_25_col218.clone() - mul_res_limb_25_col162.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_26_col219.clone() - op1_limb_26_col106.clone())) + (res_add_col11.clone() * (res_limb_26_col219.clone() - add_res_limb_26_col134.clone()))) @@ -2574,8 +2610,8 @@ impl FrameworkEval for Eval { * (res_limb_26_col219.clone() - mul_res_limb_26_col163.clone())))), ); eval.add_constraint( - (res_constrained_tmp_895.clone() - * (((res_op1_tmp_226.clone() + (res_constrained_tmp_5745_147.clone() + * (((res_op1_tmp_5745_22.clone() * (res_limb_27_col220.clone() - op1_limb_27_col107.clone())) + (res_add_col11.clone() * (res_limb_27_col220.clone() - add_res_limb_27_col135.clone()))) @@ -2583,7 +2619,7 @@ impl FrameworkEval for Eval { * (res_limb_27_col220.clone() - mul_res_limb_27_col164.clone())))), ); - // handle_opcodes. + // HandleOpcodes. eval.add_constraint( (opcode_assert_eq_col20.clone() @@ -2712,7 +2748,7 @@ impl FrameworkEval for Eval { (opcode_ret_col19.clone() * ((((M31_4.clone() - pc_update_jump_col13.clone()) - dst_base_fp_col6.clone()) - op1_base_fp_col9.clone()) - - res_op1_tmp_226.clone())), + - res_op1_tmp_5745_22.clone())), ); // call opcode offset0 equals 0. eval.add_constraint( @@ -2728,7 +2764,7 @@ impl FrameworkEval for Eval { (opcode_call_col18.clone() * (op0_base_fp_col7.clone() + dst_base_fp_col6.clone())), ); - // cond_felt252_as_addr. + // CondFelt252AsAddr. // Address limb 3 equals 0. eval.add_constraint((opcode_call_col18.clone() * dst_limb_3_col25.clone())); @@ -2788,7 +2824,7 @@ impl FrameworkEval for Eval { - input_fp_col2.clone())), ); - // cond_felt252_as_addr. + // CondFelt252AsAddr. // Address limb 3 equals 0. eval.add_constraint((opcode_call_col18.clone() * op0_limb_3_col54.clone())); @@ -2848,9 +2884,9 @@ impl FrameworkEval for Eval { - (input_pc_col0.clone() + (M31_1.clone() + op1_imm_col8.clone())))), ); - // update_registers. + // UpdateRegisters. - // cond_felt252_as_addr. + // CondFelt252AsAddr. // Address limb 3 equals 0. eval.add_constraint((pc_update_jump_col13.clone() * res_limb_3_col196.clone())); @@ -2903,7 +2939,7 @@ impl FrameworkEval for Eval { // Address limb 27 equals 0. eval.add_constraint((pc_update_jump_col13.clone() * res_limb_27_col220.clone())); - // cond_felt252_as_addr. + // CondFelt252AsAddr. // Address limb 3 equals 0. eval.add_constraint((opcode_ret_col19.clone() * dst_limb_3_col25.clone())); @@ -2956,9 +2992,9 @@ impl FrameworkEval for Eval { // Address limb 27 equals 0. eval.add_constraint((opcode_ret_col19.clone() * dst_limb_27_col49.clone())); - // cond_felt252_as_rel_imm. + // CondFelt252AsRelImm. - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col221.clone() * (msb_col221.clone() - M31_1.clone()))); @@ -3100,14 +3136,14 @@ impl FrameworkEval for Eval { * (res_limb_27_col220.clone() - (msb_col221.clone() * M31_256.clone()))), ); - let diff_from_p_tmp_910 = (dst_limb_0_col22.clone() - M31_1.clone()); - let diff_from_p_tmp_911 = (dst_limb_21_col43.clone() - M31_136.clone()); - let diff_from_p_tmp_912 = (dst_limb_27_col49.clone() - M31_256.clone()); + let diff_from_p_tmp_5745_150 = (dst_limb_0_col22.clone() - M31_1.clone()); + let diff_from_p_tmp_5745_151 = (dst_limb_21_col43.clone() - M31_136.clone()); + let diff_from_p_tmp_5745_152 = (dst_limb_27_col49.clone() - M31_256.clone()); // dst_not_p. eval.add_constraint( ((((((((((((((((((((((((((((((M31_0.clone() - + (diff_from_p_tmp_910.clone() - * diff_from_p_tmp_910.clone())) + + (diff_from_p_tmp_5745_150.clone() + * diff_from_p_tmp_5745_150.clone())) + dst_limb_1_col23.clone()) + dst_limb_2_col24.clone()) + dst_limb_3_col25.clone()) @@ -3128,13 +3164,13 @@ impl FrameworkEval for Eval { + dst_limb_18_col40.clone()) + dst_limb_19_col41.clone()) + dst_limb_20_col42.clone()) - + (diff_from_p_tmp_911.clone() * diff_from_p_tmp_911.clone())) + + (diff_from_p_tmp_5745_151.clone() * diff_from_p_tmp_5745_151.clone())) + dst_limb_22_col44.clone()) + dst_limb_23_col45.clone()) + dst_limb_24_col46.clone()) + dst_limb_25_col47.clone()) + dst_limb_26_col48.clone()) - + (diff_from_p_tmp_912.clone() * diff_from_p_tmp_912.clone())) + + (diff_from_p_tmp_5745_152.clone() * diff_from_p_tmp_5745_152.clone())) * dst_sum_squares_inv_col223.clone()) - M31_1.clone()), ); @@ -3173,9 +3209,9 @@ impl FrameworkEval for Eval { + dst_limb_27_col49.clone()))), ); - // cond_felt252_as_rel_imm. + // CondFelt252AsRelImm. - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col226.clone() * (msb_col226.clone() - M31_1.clone()))); @@ -3387,7 +3423,7 @@ impl FrameworkEval for Eval { - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -3395,13 +3431,13 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ - ((((pc_update_regular_tmp_227.clone() + ((((pc_update_regular_tmp_5745_23.clone() * (input_pc_col0.clone() + (M31_1.clone() + op1_imm_col8.clone()))) + (pc_update_jump_col13.clone() * ((res_limb_0_col193.clone() @@ -3424,14 +3460,14 @@ impl FrameworkEval for Eval { - (M31_134217728.clone() * mid_limbs_set_col222.clone())))) + (ap_update_add_1_col17.clone() * M31_1.clone())) + (opcode_call_col18.clone() * M31_2.clone())), - (((fp_update_regular_tmp_229.clone() * input_fp_col2.clone()) + (((fp_update_regular_tmp_5745_25.clone() * input_fp_col2.clone()) + (opcode_ret_col19.clone() * ((dst_limb_0_col22.clone() + (dst_limb_1_col23.clone() * M31_512.clone())) + (dst_limb_2_col24.clone() * M31_262144.clone())))) + (opcode_call_col18.clone() * (input_ap_col1.clone() + M31_2.clone()))), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/generic_opcode/prover.rs b/stwo_cairo_prover/crates/prover/src/components/generic_opcode/prover.rs index 7c1a9e78..0af2b2bb 100644 --- a/stwo_cairo_prover/crates/prover/src/components/generic_opcode/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/generic_opcode/prover.rs @@ -60,14 +60,14 @@ impl ClaimGenerator { if need_padding { sub_components_inputs.bit_reverse_coset_to_circle_domain_order(); } - sub_components_inputs.range_check_19_inputs.iter().for_each(|inputs| { - range_check_19_state.add_inputs(&inputs[..n_calls]); - });sub_components_inputs.range_check_9_9_inputs.iter().for_each(|inputs| { - range_check_9_9_state.add_inputs(&inputs[..n_calls]); - });sub_components_inputs.memory_address_to_id_inputs.iter().for_each(|inputs| { + sub_components_inputs.memory_address_to_id_inputs.iter().for_each(|inputs| { memory_address_to_id_state.add_inputs(&inputs[..n_calls]); });sub_components_inputs.memory_id_to_big_inputs.iter().for_each(|inputs| { memory_id_to_big_state.add_inputs(&inputs[..n_calls]); + });sub_components_inputs.range_check_19_inputs.iter().for_each(|inputs| { + range_check_19_state.add_inputs(&inputs[..n_calls]); + });sub_components_inputs.range_check_9_9_inputs.iter().for_each(|inputs| { + range_check_9_9_state.add_inputs(&inputs[..n_calls]); });sub_components_inputs.verify_instruction_inputs.iter().for_each(|inputs| { verify_instruction_state.add_inputs(&inputs[..n_calls]); }); @@ -107,24 +107,24 @@ impl ClaimGenerator { } pub struct SubComponentInputs -{pub range_check_19_inputs: [Vec; 28],pub range_check_9_9_inputs: [Vec; 28],pub memory_address_to_id_inputs: [Vec; 3],pub memory_id_to_big_inputs: [Vec; 3],pub verify_instruction_inputs: [Vec; 1],} +{pub memory_address_to_id_inputs: [Vec; 3],pub memory_id_to_big_inputs: [Vec; 3],pub range_check_19_inputs: [Vec; 28],pub range_check_9_9_inputs: [Vec; 28],pub verify_instruction_inputs: [Vec; 1],} impl SubComponentInputs { #[allow(unused_variables)] fn with_capacity(capacity: usize) -> Self { - Self {range_check_19_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],range_check_9_9_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],memory_address_to_id_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],memory_id_to_big_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],verify_instruction_inputs: [Vec::with_capacity(capacity),],} + Self {memory_address_to_id_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],memory_id_to_big_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],range_check_19_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],range_check_9_9_inputs: [Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),Vec::with_capacity(capacity),],verify_instruction_inputs: [Vec::with_capacity(capacity),],} } fn bit_reverse_coset_to_circle_domain_order(&mut self) { - self.range_check_19_inputs + self.memory_address_to_id_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); - self.range_check_9_9_inputs + self.memory_id_to_big_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); - self.memory_address_to_id_inputs + self.range_check_19_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); - self.memory_id_to_big_inputs + self.range_check_9_9_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); self.verify_instruction_inputs @@ -156,82 +156,82 @@ pub fn write_trace_simd( inputs.into_iter() .enumerate().for_each(|(row_index, generic_opcode_input)| { - let input_tmp_134 = generic_opcode_input; -let input_pc_col0 = input_tmp_134.pc; + let input_tmp_5745_0 = generic_opcode_input; +let input_pc_col0 = input_tmp_5745_0.pc; trace[0].data[row_index] = input_pc_col0; -let input_ap_col1 = input_tmp_134.ap; +let input_ap_col1 = input_tmp_5745_0.ap; trace[1].data[row_index] = input_ap_col1; -let input_fp_col2 = input_tmp_134.fp; +let input_fp_col2 = input_tmp_5745_0.fp; trace[2].data[row_index] = input_fp_col2; - //decode_generic_instruction. + //DecodeGenericInstruction. - //decode_instruction_337193008ebaa578. + //DecodeInstruction_337193008ebaa578. -let memory_address_to_id_value_tmp_204 = memory_address_to_id_state.deduce_output( +let memoryaddresstoid_value_tmp_5745_1 = memory_address_to_id_state.deduce_output( input_pc_col0 ); -let memory_id_to_big_value_tmp_205 = memory_id_to_big_state.deduce_output( - memory_address_to_id_value_tmp_204 +let memoryidtobig_value_tmp_5745_2 = memory_id_to_big_state.deduce_output( + memoryaddresstoid_value_tmp_5745_1 ); -let offset0_tmp_206 = ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(0))) + (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(1))) & (UInt16_127))) << (UInt16_9)))); -let offset0_col3 = offset0_tmp_206.as_m31(); +let offset0_tmp_5745_3 = ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(0))) + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(1))) & (UInt16_127))) << (UInt16_9)))); +let offset0_col3 = offset0_tmp_5745_3.as_m31(); trace[3].data[row_index] = offset0_col3; -let offset1_tmp_207 = ((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(1))) >> (UInt16_7))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(2))) << (UInt16_2))))) + (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(3))) & (UInt16_31))) << (UInt16_11)))); -let offset1_col4 = offset1_tmp_207.as_m31(); +let offset1_tmp_5745_4 = ((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(1))) >> (UInt16_7))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(2))) << (UInt16_2))))) + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(3))) & (UInt16_31))) << (UInt16_11)))); +let offset1_col4 = offset1_tmp_5745_4.as_m31(); trace[4].data[row_index] = offset1_col4; -let offset2_tmp_208 = ((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(3))) >> (UInt16_5))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(4))) << (UInt16_4))))) + (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) & (UInt16_7))) << (UInt16_13)))); -let offset2_col5 = offset2_tmp_208.as_m31(); +let offset2_tmp_5745_5 = ((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(3))) >> (UInt16_5))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(4))) << (UInt16_4))))) + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) & (UInt16_7))) << (UInt16_13)))); +let offset2_col5 = offset2_tmp_5745_5.as_m31(); trace[5].data[row_index] = offset2_col5; -let dst_base_fp_tmp_209 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_0))) & (UInt16_1)); -let dst_base_fp_col6 = dst_base_fp_tmp_209.as_m31(); +let dst_base_fp_tmp_5745_6 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_0))) & (UInt16_1)); +let dst_base_fp_col6 = dst_base_fp_tmp_5745_6.as_m31(); trace[6].data[row_index] = dst_base_fp_col6; -let op0_base_fp_tmp_210 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_1))) & (UInt16_1)); -let op0_base_fp_col7 = op0_base_fp_tmp_210.as_m31(); +let op0_base_fp_tmp_5745_7 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_1))) & (UInt16_1)); +let op0_base_fp_col7 = op0_base_fp_tmp_5745_7.as_m31(); trace[7].data[row_index] = op0_base_fp_col7; -let op1_imm_tmp_211 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_2))) & (UInt16_1)); -let op1_imm_col8 = op1_imm_tmp_211.as_m31(); +let op1_imm_tmp_5745_8 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_2))) & (UInt16_1)); +let op1_imm_col8 = op1_imm_tmp_5745_8.as_m31(); trace[8].data[row_index] = op1_imm_col8; -let op1_base_fp_tmp_212 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_3))) & (UInt16_1)); -let op1_base_fp_col9 = op1_base_fp_tmp_212.as_m31(); +let op1_base_fp_tmp_5745_9 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_3))) & (UInt16_1)); +let op1_base_fp_col9 = op1_base_fp_tmp_5745_9.as_m31(); trace[9].data[row_index] = op1_base_fp_col9; -let op1_base_ap_tmp_213 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_4))) & (UInt16_1)); -let op1_base_ap_col10 = op1_base_ap_tmp_213.as_m31(); +let op1_base_ap_tmp_5745_10 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_4))) & (UInt16_1)); +let op1_base_ap_col10 = op1_base_ap_tmp_5745_10.as_m31(); trace[10].data[row_index] = op1_base_ap_col10; -let res_add_tmp_214 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_5))) & (UInt16_1)); -let res_add_col11 = res_add_tmp_214.as_m31(); +let res_add_tmp_5745_11 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_5))) & (UInt16_1)); +let res_add_col11 = res_add_tmp_5745_11.as_m31(); trace[11].data[row_index] = res_add_col11; -let res_mul_tmp_215 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_6))) & (UInt16_1)); -let res_mul_col12 = res_mul_tmp_215.as_m31(); +let res_mul_tmp_5745_12 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_6))) & (UInt16_1)); +let res_mul_col12 = res_mul_tmp_5745_12.as_m31(); trace[12].data[row_index] = res_mul_col12; -let pc_update_jump_tmp_216 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_7))) & (UInt16_1)); -let pc_update_jump_col13 = pc_update_jump_tmp_216.as_m31(); +let pc_update_jump_tmp_5745_13 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_7))) & (UInt16_1)); +let pc_update_jump_col13 = pc_update_jump_tmp_5745_13.as_m31(); trace[13].data[row_index] = pc_update_jump_col13; -let pc_update_jump_rel_tmp_217 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_8))) & (UInt16_1)); -let pc_update_jump_rel_col14 = pc_update_jump_rel_tmp_217.as_m31(); +let pc_update_jump_rel_tmp_5745_14 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_8))) & (UInt16_1)); +let pc_update_jump_rel_col14 = pc_update_jump_rel_tmp_5745_14.as_m31(); trace[14].data[row_index] = pc_update_jump_rel_col14; -let pc_update_jnz_tmp_218 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_9))) & (UInt16_1)); -let pc_update_jnz_col15 = pc_update_jnz_tmp_218.as_m31(); +let pc_update_jnz_tmp_5745_15 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_9))) & (UInt16_1)); +let pc_update_jnz_col15 = pc_update_jnz_tmp_5745_15.as_m31(); trace[15].data[row_index] = pc_update_jnz_col15; -let ap_update_add_tmp_219 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_10))) & (UInt16_1)); -let ap_update_add_col16 = ap_update_add_tmp_219.as_m31(); +let ap_update_add_tmp_5745_16 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_10))) & (UInt16_1)); +let ap_update_add_col16 = ap_update_add_tmp_5745_16.as_m31(); trace[16].data[row_index] = ap_update_add_col16; -let ap_update_add_1_tmp_220 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_11))) & (UInt16_1)); -let ap_update_add_1_col17 = ap_update_add_1_tmp_220.as_m31(); +let ap_update_add_1_tmp_5745_17 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_11))) & (UInt16_1)); +let ap_update_add_1_col17 = ap_update_add_1_tmp_5745_17.as_m31(); trace[17].data[row_index] = ap_update_add_1_col17; -let opcode_call_tmp_221 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_12))) & (UInt16_1)); -let opcode_call_col18 = opcode_call_tmp_221.as_m31(); +let opcode_call_tmp_5745_18 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_12))) & (UInt16_1)); +let opcode_call_col18 = opcode_call_tmp_5745_18.as_m31(); trace[18].data[row_index] = opcode_call_col18; -let opcode_ret_tmp_222 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_13))) & (UInt16_1)); -let opcode_ret_col19 = opcode_ret_tmp_222.as_m31(); +let opcode_ret_tmp_5745_19 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_13))) & (UInt16_1)); +let opcode_ret_col19 = opcode_ret_tmp_5745_19.as_m31(); trace[19].data[row_index] = opcode_ret_col19; -let opcode_assert_eq_tmp_223 = ((((((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_205.get_m31(6))) << (UInt16_6))))) >> (UInt16_14))) & (UInt16_1)); -let opcode_assert_eq_col20 = opcode_assert_eq_tmp_223.as_m31(); +let opcode_assert_eq_tmp_5745_20 = ((((((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(5))) >> (UInt16_3))) + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5745_2.get_m31(6))) << (UInt16_6))))) >> (UInt16_14))) & (UInt16_1)); +let opcode_assert_eq_col20 = opcode_assert_eq_tmp_5745_20.as_m31(); trace[20].data[row_index] = opcode_assert_eq_col20; sub_components_inputs @@ -242,92 +242,92 @@ lookup_data.verifyinstruction[0].push([input_pc_col0, offset0_col3, offset1_col4 -let op1_base_op0_tmp_225 = ((((((M31_1) - (op1_imm_col8))) - (op1_base_fp_col9))) - (op1_base_ap_col10)); -let res_op1_tmp_226 = ((((((M31_1) - (res_add_col11))) - (res_mul_col12))) - (pc_update_jnz_col15)); -let pc_update_regular_tmp_227 = ((((((M31_1) - (pc_update_jump_col13))) - (pc_update_jump_rel_col14))) - (pc_update_jnz_col15)); -let ap_update_regular_tmp_228 = ((((((M31_1) - (ap_update_add_col16))) - (ap_update_add_1_col17))) - (opcode_call_col18)); -let fp_update_regular_tmp_229 = ((((M31_1) - (opcode_call_col18))) - (opcode_ret_col19)); +let op1_base_op0_tmp_5745_21 = ((((((M31_1) - (op1_imm_col8))) - (op1_base_fp_col9))) - (op1_base_ap_col10)); +let res_op1_tmp_5745_22 = ((((((M31_1) - (res_add_col11))) - (res_mul_col12))) - (pc_update_jnz_col15)); +let pc_update_regular_tmp_5745_23 = ((((((M31_1) - (pc_update_jump_col13))) - (pc_update_jump_rel_col14))) - (pc_update_jnz_col15)); +let ap_update_regular_tmp_5745_24 = ((((((M31_1) - (ap_update_add_col16))) - (ap_update_add_1_col17))) - (opcode_call_col18)); +let fp_update_regular_tmp_5745_25 = ((((M31_1) - (opcode_call_col18))) - (opcode_ret_col19)); - //eval_operands. + //EvalOperands. - //read_positive_num_bits_252. + //ReadPositive_num_bits_252. -let memory_address_to_id_value_tmp_718 = memory_address_to_id_state.deduce_output( +let memoryaddresstoid_value_tmp_5745_26 = memory_address_to_id_state.deduce_output( ((((((dst_base_fp_col6) * (input_fp_col2))) + (((((M31_1) - (dst_base_fp_col6))) * (input_ap_col1))))) + (((offset0_col3) - (M31_32768)))) ); -let memory_id_to_big_value_tmp_719 = memory_id_to_big_state.deduce_output( - memory_address_to_id_value_tmp_718 +let memoryidtobig_value_tmp_5745_27 = memory_id_to_big_state.deduce_output( + memoryaddresstoid_value_tmp_5745_26 ); -let dst_id_col21 = memory_address_to_id_value_tmp_718; +let dst_id_col21 = memoryaddresstoid_value_tmp_5745_26; trace[21].data[row_index] = dst_id_col21; sub_components_inputs .memory_address_to_id_inputs[0] .extend(((((((dst_base_fp_col6) * (input_fp_col2))) + (((((M31_1) - (dst_base_fp_col6))) * (input_ap_col1))))) + (((offset0_col3) - (M31_32768)))).unpack()); lookup_data.memoryaddresstoid[0].push([((((((dst_base_fp_col6) * (input_fp_col2))) + (((((M31_1) - (dst_base_fp_col6))) * (input_ap_col1))))) + (((offset0_col3) - (M31_32768)))), dst_id_col21]); -let dst_limb_0_col22 = memory_id_to_big_value_tmp_719.get_m31(0); +let dst_limb_0_col22 = memoryidtobig_value_tmp_5745_27.get_m31(0); trace[22].data[row_index] = dst_limb_0_col22; -let dst_limb_1_col23 = memory_id_to_big_value_tmp_719.get_m31(1); +let dst_limb_1_col23 = memoryidtobig_value_tmp_5745_27.get_m31(1); trace[23].data[row_index] = dst_limb_1_col23; -let dst_limb_2_col24 = memory_id_to_big_value_tmp_719.get_m31(2); +let dst_limb_2_col24 = memoryidtobig_value_tmp_5745_27.get_m31(2); trace[24].data[row_index] = dst_limb_2_col24; -let dst_limb_3_col25 = memory_id_to_big_value_tmp_719.get_m31(3); +let dst_limb_3_col25 = memoryidtobig_value_tmp_5745_27.get_m31(3); trace[25].data[row_index] = dst_limb_3_col25; -let dst_limb_4_col26 = memory_id_to_big_value_tmp_719.get_m31(4); +let dst_limb_4_col26 = memoryidtobig_value_tmp_5745_27.get_m31(4); trace[26].data[row_index] = dst_limb_4_col26; -let dst_limb_5_col27 = memory_id_to_big_value_tmp_719.get_m31(5); +let dst_limb_5_col27 = memoryidtobig_value_tmp_5745_27.get_m31(5); trace[27].data[row_index] = dst_limb_5_col27; -let dst_limb_6_col28 = memory_id_to_big_value_tmp_719.get_m31(6); +let dst_limb_6_col28 = memoryidtobig_value_tmp_5745_27.get_m31(6); trace[28].data[row_index] = dst_limb_6_col28; -let dst_limb_7_col29 = memory_id_to_big_value_tmp_719.get_m31(7); +let dst_limb_7_col29 = memoryidtobig_value_tmp_5745_27.get_m31(7); trace[29].data[row_index] = dst_limb_7_col29; -let dst_limb_8_col30 = memory_id_to_big_value_tmp_719.get_m31(8); +let dst_limb_8_col30 = memoryidtobig_value_tmp_5745_27.get_m31(8); trace[30].data[row_index] = dst_limb_8_col30; -let dst_limb_9_col31 = memory_id_to_big_value_tmp_719.get_m31(9); +let dst_limb_9_col31 = memoryidtobig_value_tmp_5745_27.get_m31(9); trace[31].data[row_index] = dst_limb_9_col31; -let dst_limb_10_col32 = memory_id_to_big_value_tmp_719.get_m31(10); +let dst_limb_10_col32 = memoryidtobig_value_tmp_5745_27.get_m31(10); trace[32].data[row_index] = dst_limb_10_col32; -let dst_limb_11_col33 = memory_id_to_big_value_tmp_719.get_m31(11); +let dst_limb_11_col33 = memoryidtobig_value_tmp_5745_27.get_m31(11); trace[33].data[row_index] = dst_limb_11_col33; -let dst_limb_12_col34 = memory_id_to_big_value_tmp_719.get_m31(12); +let dst_limb_12_col34 = memoryidtobig_value_tmp_5745_27.get_m31(12); trace[34].data[row_index] = dst_limb_12_col34; -let dst_limb_13_col35 = memory_id_to_big_value_tmp_719.get_m31(13); +let dst_limb_13_col35 = memoryidtobig_value_tmp_5745_27.get_m31(13); trace[35].data[row_index] = dst_limb_13_col35; -let dst_limb_14_col36 = memory_id_to_big_value_tmp_719.get_m31(14); +let dst_limb_14_col36 = memoryidtobig_value_tmp_5745_27.get_m31(14); trace[36].data[row_index] = dst_limb_14_col36; -let dst_limb_15_col37 = memory_id_to_big_value_tmp_719.get_m31(15); +let dst_limb_15_col37 = memoryidtobig_value_tmp_5745_27.get_m31(15); trace[37].data[row_index] = dst_limb_15_col37; -let dst_limb_16_col38 = memory_id_to_big_value_tmp_719.get_m31(16); +let dst_limb_16_col38 = memoryidtobig_value_tmp_5745_27.get_m31(16); trace[38].data[row_index] = dst_limb_16_col38; -let dst_limb_17_col39 = memory_id_to_big_value_tmp_719.get_m31(17); +let dst_limb_17_col39 = memoryidtobig_value_tmp_5745_27.get_m31(17); trace[39].data[row_index] = dst_limb_17_col39; -let dst_limb_18_col40 = memory_id_to_big_value_tmp_719.get_m31(18); +let dst_limb_18_col40 = memoryidtobig_value_tmp_5745_27.get_m31(18); trace[40].data[row_index] = dst_limb_18_col40; -let dst_limb_19_col41 = memory_id_to_big_value_tmp_719.get_m31(19); +let dst_limb_19_col41 = memoryidtobig_value_tmp_5745_27.get_m31(19); trace[41].data[row_index] = dst_limb_19_col41; -let dst_limb_20_col42 = memory_id_to_big_value_tmp_719.get_m31(20); +let dst_limb_20_col42 = memoryidtobig_value_tmp_5745_27.get_m31(20); trace[42].data[row_index] = dst_limb_20_col42; -let dst_limb_21_col43 = memory_id_to_big_value_tmp_719.get_m31(21); +let dst_limb_21_col43 = memoryidtobig_value_tmp_5745_27.get_m31(21); trace[43].data[row_index] = dst_limb_21_col43; -let dst_limb_22_col44 = memory_id_to_big_value_tmp_719.get_m31(22); +let dst_limb_22_col44 = memoryidtobig_value_tmp_5745_27.get_m31(22); trace[44].data[row_index] = dst_limb_22_col44; -let dst_limb_23_col45 = memory_id_to_big_value_tmp_719.get_m31(23); +let dst_limb_23_col45 = memoryidtobig_value_tmp_5745_27.get_m31(23); trace[45].data[row_index] = dst_limb_23_col45; -let dst_limb_24_col46 = memory_id_to_big_value_tmp_719.get_m31(24); +let dst_limb_24_col46 = memoryidtobig_value_tmp_5745_27.get_m31(24); trace[46].data[row_index] = dst_limb_24_col46; -let dst_limb_25_col47 = memory_id_to_big_value_tmp_719.get_m31(25); +let dst_limb_25_col47 = memoryidtobig_value_tmp_5745_27.get_m31(25); trace[47].data[row_index] = dst_limb_25_col47; -let dst_limb_26_col48 = memory_id_to_big_value_tmp_719.get_m31(26); +let dst_limb_26_col48 = memoryidtobig_value_tmp_5745_27.get_m31(26); trace[48].data[row_index] = dst_limb_26_col48; -let dst_limb_27_col49 = memory_id_to_big_value_tmp_719.get_m31(27); +let dst_limb_27_col49 = memoryidtobig_value_tmp_5745_27.get_m31(27); trace[49].data[row_index] = dst_limb_27_col49; sub_components_inputs .memory_id_to_big_inputs[0] @@ -339,77 +339,77 @@ lookup_data.memoryidtobig[0].push([dst_id_col21, dst_limb_0_col22, dst_limb_1_co - //read_positive_num_bits_252. + //ReadPositive_num_bits_252. -let memory_address_to_id_value_tmp_720 = memory_address_to_id_state.deduce_output( +let memoryaddresstoid_value_tmp_5745_28 = memory_address_to_id_state.deduce_output( ((((((op0_base_fp_col7) * (input_fp_col2))) + (((((M31_1) - (op0_base_fp_col7))) * (input_ap_col1))))) + (((offset1_col4) - (M31_32768)))) ); -let memory_id_to_big_value_tmp_721 = memory_id_to_big_state.deduce_output( - memory_address_to_id_value_tmp_720 +let memoryidtobig_value_tmp_5745_29 = memory_id_to_big_state.deduce_output( + memoryaddresstoid_value_tmp_5745_28 ); -let op0_id_col50 = memory_address_to_id_value_tmp_720; +let op0_id_col50 = memoryaddresstoid_value_tmp_5745_28; trace[50].data[row_index] = op0_id_col50; sub_components_inputs .memory_address_to_id_inputs[1] .extend(((((((op0_base_fp_col7) * (input_fp_col2))) + (((((M31_1) - (op0_base_fp_col7))) * (input_ap_col1))))) + (((offset1_col4) - (M31_32768)))).unpack()); lookup_data.memoryaddresstoid[1].push([((((((op0_base_fp_col7) * (input_fp_col2))) + (((((M31_1) - (op0_base_fp_col7))) * (input_ap_col1))))) + (((offset1_col4) - (M31_32768)))), op0_id_col50]); -let op0_limb_0_col51 = memory_id_to_big_value_tmp_721.get_m31(0); +let op0_limb_0_col51 = memoryidtobig_value_tmp_5745_29.get_m31(0); trace[51].data[row_index] = op0_limb_0_col51; -let op0_limb_1_col52 = memory_id_to_big_value_tmp_721.get_m31(1); +let op0_limb_1_col52 = memoryidtobig_value_tmp_5745_29.get_m31(1); trace[52].data[row_index] = op0_limb_1_col52; -let op0_limb_2_col53 = memory_id_to_big_value_tmp_721.get_m31(2); +let op0_limb_2_col53 = memoryidtobig_value_tmp_5745_29.get_m31(2); trace[53].data[row_index] = op0_limb_2_col53; -let op0_limb_3_col54 = memory_id_to_big_value_tmp_721.get_m31(3); +let op0_limb_3_col54 = memoryidtobig_value_tmp_5745_29.get_m31(3); trace[54].data[row_index] = op0_limb_3_col54; -let op0_limb_4_col55 = memory_id_to_big_value_tmp_721.get_m31(4); +let op0_limb_4_col55 = memoryidtobig_value_tmp_5745_29.get_m31(4); trace[55].data[row_index] = op0_limb_4_col55; -let op0_limb_5_col56 = memory_id_to_big_value_tmp_721.get_m31(5); +let op0_limb_5_col56 = memoryidtobig_value_tmp_5745_29.get_m31(5); trace[56].data[row_index] = op0_limb_5_col56; -let op0_limb_6_col57 = memory_id_to_big_value_tmp_721.get_m31(6); +let op0_limb_6_col57 = memoryidtobig_value_tmp_5745_29.get_m31(6); trace[57].data[row_index] = op0_limb_6_col57; -let op0_limb_7_col58 = memory_id_to_big_value_tmp_721.get_m31(7); +let op0_limb_7_col58 = memoryidtobig_value_tmp_5745_29.get_m31(7); trace[58].data[row_index] = op0_limb_7_col58; -let op0_limb_8_col59 = memory_id_to_big_value_tmp_721.get_m31(8); +let op0_limb_8_col59 = memoryidtobig_value_tmp_5745_29.get_m31(8); trace[59].data[row_index] = op0_limb_8_col59; -let op0_limb_9_col60 = memory_id_to_big_value_tmp_721.get_m31(9); +let op0_limb_9_col60 = memoryidtobig_value_tmp_5745_29.get_m31(9); trace[60].data[row_index] = op0_limb_9_col60; -let op0_limb_10_col61 = memory_id_to_big_value_tmp_721.get_m31(10); +let op0_limb_10_col61 = memoryidtobig_value_tmp_5745_29.get_m31(10); trace[61].data[row_index] = op0_limb_10_col61; -let op0_limb_11_col62 = memory_id_to_big_value_tmp_721.get_m31(11); +let op0_limb_11_col62 = memoryidtobig_value_tmp_5745_29.get_m31(11); trace[62].data[row_index] = op0_limb_11_col62; -let op0_limb_12_col63 = memory_id_to_big_value_tmp_721.get_m31(12); +let op0_limb_12_col63 = memoryidtobig_value_tmp_5745_29.get_m31(12); trace[63].data[row_index] = op0_limb_12_col63; -let op0_limb_13_col64 = memory_id_to_big_value_tmp_721.get_m31(13); +let op0_limb_13_col64 = memoryidtobig_value_tmp_5745_29.get_m31(13); trace[64].data[row_index] = op0_limb_13_col64; -let op0_limb_14_col65 = memory_id_to_big_value_tmp_721.get_m31(14); +let op0_limb_14_col65 = memoryidtobig_value_tmp_5745_29.get_m31(14); trace[65].data[row_index] = op0_limb_14_col65; -let op0_limb_15_col66 = memory_id_to_big_value_tmp_721.get_m31(15); +let op0_limb_15_col66 = memoryidtobig_value_tmp_5745_29.get_m31(15); trace[66].data[row_index] = op0_limb_15_col66; -let op0_limb_16_col67 = memory_id_to_big_value_tmp_721.get_m31(16); +let op0_limb_16_col67 = memoryidtobig_value_tmp_5745_29.get_m31(16); trace[67].data[row_index] = op0_limb_16_col67; -let op0_limb_17_col68 = memory_id_to_big_value_tmp_721.get_m31(17); +let op0_limb_17_col68 = memoryidtobig_value_tmp_5745_29.get_m31(17); trace[68].data[row_index] = op0_limb_17_col68; -let op0_limb_18_col69 = memory_id_to_big_value_tmp_721.get_m31(18); +let op0_limb_18_col69 = memoryidtobig_value_tmp_5745_29.get_m31(18); trace[69].data[row_index] = op0_limb_18_col69; -let op0_limb_19_col70 = memory_id_to_big_value_tmp_721.get_m31(19); +let op0_limb_19_col70 = memoryidtobig_value_tmp_5745_29.get_m31(19); trace[70].data[row_index] = op0_limb_19_col70; -let op0_limb_20_col71 = memory_id_to_big_value_tmp_721.get_m31(20); +let op0_limb_20_col71 = memoryidtobig_value_tmp_5745_29.get_m31(20); trace[71].data[row_index] = op0_limb_20_col71; -let op0_limb_21_col72 = memory_id_to_big_value_tmp_721.get_m31(21); +let op0_limb_21_col72 = memoryidtobig_value_tmp_5745_29.get_m31(21); trace[72].data[row_index] = op0_limb_21_col72; -let op0_limb_22_col73 = memory_id_to_big_value_tmp_721.get_m31(22); +let op0_limb_22_col73 = memoryidtobig_value_tmp_5745_29.get_m31(22); trace[73].data[row_index] = op0_limb_22_col73; -let op0_limb_23_col74 = memory_id_to_big_value_tmp_721.get_m31(23); +let op0_limb_23_col74 = memoryidtobig_value_tmp_5745_29.get_m31(23); trace[74].data[row_index] = op0_limb_23_col74; -let op0_limb_24_col75 = memory_id_to_big_value_tmp_721.get_m31(24); +let op0_limb_24_col75 = memoryidtobig_value_tmp_5745_29.get_m31(24); trace[75].data[row_index] = op0_limb_24_col75; -let op0_limb_25_col76 = memory_id_to_big_value_tmp_721.get_m31(25); +let op0_limb_25_col76 = memoryidtobig_value_tmp_5745_29.get_m31(25); trace[76].data[row_index] = op0_limb_25_col76; -let op0_limb_26_col77 = memory_id_to_big_value_tmp_721.get_m31(26); +let op0_limb_26_col77 = memoryidtobig_value_tmp_5745_29.get_m31(26); trace[77].data[row_index] = op0_limb_26_col77; -let op0_limb_27_col78 = memory_id_to_big_value_tmp_721.get_m31(27); +let op0_limb_27_col78 = memoryidtobig_value_tmp_5745_29.get_m31(27); trace[78].data[row_index] = op0_limb_27_col78; sub_components_inputs .memory_id_to_big_inputs[1] @@ -421,85 +421,77 @@ lookup_data.memoryidtobig[1].push([op0_id_col50, op0_limb_0_col51, op0_limb_1_co - //cond_felt252_as_addr. + //ReadPositive_num_bits_252. - - - - - - //read_positive_num_bits_252. - - -let memory_address_to_id_value_tmp_722 = memory_address_to_id_state.deduce_output( - ((((((((((op1_base_fp_col9) * (input_fp_col2))) + (((op1_base_ap_col10) * (input_ap_col1))))) + (((op1_imm_col8) * (input_pc_col0))))) + (((op1_base_op0_tmp_225) * (((((op0_limb_0_col51) + (((op0_limb_1_col52) * (M31_512))))) + (((op0_limb_2_col53) * (M31_262144))))))))) + (((offset2_col5) - (M31_32768)))) +let memoryaddresstoid_value_tmp_5745_30 = memory_address_to_id_state.deduce_output( + ((((((((((op1_base_fp_col9) * (input_fp_col2))) + (((op1_base_ap_col10) * (input_ap_col1))))) + (((op1_imm_col8) * (input_pc_col0))))) + (((op1_base_op0_tmp_5745_21) * (((((op0_limb_0_col51) + (((op0_limb_1_col52) * (M31_512))))) + (((op0_limb_2_col53) * (M31_262144))))))))) + (((offset2_col5) - (M31_32768)))) ); -let memory_id_to_big_value_tmp_723 = memory_id_to_big_state.deduce_output( - memory_address_to_id_value_tmp_722 +let memoryidtobig_value_tmp_5745_31 = memory_id_to_big_state.deduce_output( + memoryaddresstoid_value_tmp_5745_30 ); -let op1_id_col79 = memory_address_to_id_value_tmp_722; +let op1_id_col79 = memoryaddresstoid_value_tmp_5745_30; trace[79].data[row_index] = op1_id_col79; sub_components_inputs .memory_address_to_id_inputs[2] - .extend(((((((((((op1_base_fp_col9) * (input_fp_col2))) + (((op1_base_ap_col10) * (input_ap_col1))))) + (((op1_imm_col8) * (input_pc_col0))))) + (((op1_base_op0_tmp_225) * (((((op0_limb_0_col51) + (((op0_limb_1_col52) * (M31_512))))) + (((op0_limb_2_col53) * (M31_262144))))))))) + (((offset2_col5) - (M31_32768)))).unpack()); + .extend(((((((((((op1_base_fp_col9) * (input_fp_col2))) + (((op1_base_ap_col10) * (input_ap_col1))))) + (((op1_imm_col8) * (input_pc_col0))))) + (((op1_base_op0_tmp_5745_21) * (((((op0_limb_0_col51) + (((op0_limb_1_col52) * (M31_512))))) + (((op0_limb_2_col53) * (M31_262144))))))))) + (((offset2_col5) - (M31_32768)))).unpack()); -lookup_data.memoryaddresstoid[2].push([((((((((((op1_base_fp_col9) * (input_fp_col2))) + (((op1_base_ap_col10) * (input_ap_col1))))) + (((op1_imm_col8) * (input_pc_col0))))) + (((op1_base_op0_tmp_225) * (((((op0_limb_0_col51) + (((op0_limb_1_col52) * (M31_512))))) + (((op0_limb_2_col53) * (M31_262144))))))))) + (((offset2_col5) - (M31_32768)))), op1_id_col79]); -let op1_limb_0_col80 = memory_id_to_big_value_tmp_723.get_m31(0); +lookup_data.memoryaddresstoid[2].push([((((((((((op1_base_fp_col9) * (input_fp_col2))) + (((op1_base_ap_col10) * (input_ap_col1))))) + (((op1_imm_col8) * (input_pc_col0))))) + (((op1_base_op0_tmp_5745_21) * (((((op0_limb_0_col51) + (((op0_limb_1_col52) * (M31_512))))) + (((op0_limb_2_col53) * (M31_262144))))))))) + (((offset2_col5) - (M31_32768)))), op1_id_col79]); +let op1_limb_0_col80 = memoryidtobig_value_tmp_5745_31.get_m31(0); trace[80].data[row_index] = op1_limb_0_col80; -let op1_limb_1_col81 = memory_id_to_big_value_tmp_723.get_m31(1); +let op1_limb_1_col81 = memoryidtobig_value_tmp_5745_31.get_m31(1); trace[81].data[row_index] = op1_limb_1_col81; -let op1_limb_2_col82 = memory_id_to_big_value_tmp_723.get_m31(2); +let op1_limb_2_col82 = memoryidtobig_value_tmp_5745_31.get_m31(2); trace[82].data[row_index] = op1_limb_2_col82; -let op1_limb_3_col83 = memory_id_to_big_value_tmp_723.get_m31(3); +let op1_limb_3_col83 = memoryidtobig_value_tmp_5745_31.get_m31(3); trace[83].data[row_index] = op1_limb_3_col83; -let op1_limb_4_col84 = memory_id_to_big_value_tmp_723.get_m31(4); +let op1_limb_4_col84 = memoryidtobig_value_tmp_5745_31.get_m31(4); trace[84].data[row_index] = op1_limb_4_col84; -let op1_limb_5_col85 = memory_id_to_big_value_tmp_723.get_m31(5); +let op1_limb_5_col85 = memoryidtobig_value_tmp_5745_31.get_m31(5); trace[85].data[row_index] = op1_limb_5_col85; -let op1_limb_6_col86 = memory_id_to_big_value_tmp_723.get_m31(6); +let op1_limb_6_col86 = memoryidtobig_value_tmp_5745_31.get_m31(6); trace[86].data[row_index] = op1_limb_6_col86; -let op1_limb_7_col87 = memory_id_to_big_value_tmp_723.get_m31(7); +let op1_limb_7_col87 = memoryidtobig_value_tmp_5745_31.get_m31(7); trace[87].data[row_index] = op1_limb_7_col87; -let op1_limb_8_col88 = memory_id_to_big_value_tmp_723.get_m31(8); +let op1_limb_8_col88 = memoryidtobig_value_tmp_5745_31.get_m31(8); trace[88].data[row_index] = op1_limb_8_col88; -let op1_limb_9_col89 = memory_id_to_big_value_tmp_723.get_m31(9); +let op1_limb_9_col89 = memoryidtobig_value_tmp_5745_31.get_m31(9); trace[89].data[row_index] = op1_limb_9_col89; -let op1_limb_10_col90 = memory_id_to_big_value_tmp_723.get_m31(10); +let op1_limb_10_col90 = memoryidtobig_value_tmp_5745_31.get_m31(10); trace[90].data[row_index] = op1_limb_10_col90; -let op1_limb_11_col91 = memory_id_to_big_value_tmp_723.get_m31(11); +let op1_limb_11_col91 = memoryidtobig_value_tmp_5745_31.get_m31(11); trace[91].data[row_index] = op1_limb_11_col91; -let op1_limb_12_col92 = memory_id_to_big_value_tmp_723.get_m31(12); +let op1_limb_12_col92 = memoryidtobig_value_tmp_5745_31.get_m31(12); trace[92].data[row_index] = op1_limb_12_col92; -let op1_limb_13_col93 = memory_id_to_big_value_tmp_723.get_m31(13); +let op1_limb_13_col93 = memoryidtobig_value_tmp_5745_31.get_m31(13); trace[93].data[row_index] = op1_limb_13_col93; -let op1_limb_14_col94 = memory_id_to_big_value_tmp_723.get_m31(14); +let op1_limb_14_col94 = memoryidtobig_value_tmp_5745_31.get_m31(14); trace[94].data[row_index] = op1_limb_14_col94; -let op1_limb_15_col95 = memory_id_to_big_value_tmp_723.get_m31(15); +let op1_limb_15_col95 = memoryidtobig_value_tmp_5745_31.get_m31(15); trace[95].data[row_index] = op1_limb_15_col95; -let op1_limb_16_col96 = memory_id_to_big_value_tmp_723.get_m31(16); +let op1_limb_16_col96 = memoryidtobig_value_tmp_5745_31.get_m31(16); trace[96].data[row_index] = op1_limb_16_col96; -let op1_limb_17_col97 = memory_id_to_big_value_tmp_723.get_m31(17); +let op1_limb_17_col97 = memoryidtobig_value_tmp_5745_31.get_m31(17); trace[97].data[row_index] = op1_limb_17_col97; -let op1_limb_18_col98 = memory_id_to_big_value_tmp_723.get_m31(18); +let op1_limb_18_col98 = memoryidtobig_value_tmp_5745_31.get_m31(18); trace[98].data[row_index] = op1_limb_18_col98; -let op1_limb_19_col99 = memory_id_to_big_value_tmp_723.get_m31(19); +let op1_limb_19_col99 = memoryidtobig_value_tmp_5745_31.get_m31(19); trace[99].data[row_index] = op1_limb_19_col99; -let op1_limb_20_col100 = memory_id_to_big_value_tmp_723.get_m31(20); +let op1_limb_20_col100 = memoryidtobig_value_tmp_5745_31.get_m31(20); trace[100].data[row_index] = op1_limb_20_col100; -let op1_limb_21_col101 = memory_id_to_big_value_tmp_723.get_m31(21); +let op1_limb_21_col101 = memoryidtobig_value_tmp_5745_31.get_m31(21); trace[101].data[row_index] = op1_limb_21_col101; -let op1_limb_22_col102 = memory_id_to_big_value_tmp_723.get_m31(22); +let op1_limb_22_col102 = memoryidtobig_value_tmp_5745_31.get_m31(22); trace[102].data[row_index] = op1_limb_22_col102; -let op1_limb_23_col103 = memory_id_to_big_value_tmp_723.get_m31(23); +let op1_limb_23_col103 = memoryidtobig_value_tmp_5745_31.get_m31(23); trace[103].data[row_index] = op1_limb_23_col103; -let op1_limb_24_col104 = memory_id_to_big_value_tmp_723.get_m31(24); +let op1_limb_24_col104 = memoryidtobig_value_tmp_5745_31.get_m31(24); trace[104].data[row_index] = op1_limb_24_col104; -let op1_limb_25_col105 = memory_id_to_big_value_tmp_723.get_m31(25); +let op1_limb_25_col105 = memoryidtobig_value_tmp_5745_31.get_m31(25); trace[105].data[row_index] = op1_limb_25_col105; -let op1_limb_26_col106 = memory_id_to_big_value_tmp_723.get_m31(26); +let op1_limb_26_col106 = memoryidtobig_value_tmp_5745_31.get_m31(26); trace[106].data[row_index] = op1_limb_26_col106; -let op1_limb_27_col107 = memory_id_to_big_value_tmp_723.get_m31(27); +let op1_limb_27_col107 = memoryidtobig_value_tmp_5745_31.get_m31(27); trace[107].data[row_index] = op1_limb_27_col107; sub_components_inputs .memory_id_to_big_inputs[2] @@ -511,69 +503,69 @@ lookup_data.memoryidtobig[2].push([op1_id_col79, op1_limb_0_col80, op1_limb_1_co - //add252. + //Add252. -let add_res_tmp_724 = ((PackedFelt252::from_limbs([op0_limb_0_col51, op0_limb_1_col52, op0_limb_2_col53, op0_limb_3_col54, op0_limb_4_col55, op0_limb_5_col56, op0_limb_6_col57, op0_limb_7_col58, op0_limb_8_col59, op0_limb_9_col60, op0_limb_10_col61, op0_limb_11_col62, op0_limb_12_col63, op0_limb_13_col64, op0_limb_14_col65, op0_limb_15_col66, op0_limb_16_col67, op0_limb_17_col68, op0_limb_18_col69, op0_limb_19_col70, op0_limb_20_col71, op0_limb_21_col72, op0_limb_22_col73, op0_limb_23_col74, op0_limb_24_col75, op0_limb_25_col76, op0_limb_26_col77, op0_limb_27_col78])) + (PackedFelt252::from_limbs([op1_limb_0_col80, op1_limb_1_col81, op1_limb_2_col82, op1_limb_3_col83, op1_limb_4_col84, op1_limb_5_col85, op1_limb_6_col86, op1_limb_7_col87, op1_limb_8_col88, op1_limb_9_col89, op1_limb_10_col90, op1_limb_11_col91, op1_limb_12_col92, op1_limb_13_col93, op1_limb_14_col94, op1_limb_15_col95, op1_limb_16_col96, op1_limb_17_col97, op1_limb_18_col98, op1_limb_19_col99, op1_limb_20_col100, op1_limb_21_col101, op1_limb_22_col102, op1_limb_23_col103, op1_limb_24_col104, op1_limb_25_col105, op1_limb_26_col106, op1_limb_27_col107]))); -let add_res_limb_0_col108 = add_res_tmp_724.get_m31(0); +let add_res_tmp_5745_32 = ((PackedFelt252::from_limbs([op0_limb_0_col51, op0_limb_1_col52, op0_limb_2_col53, op0_limb_3_col54, op0_limb_4_col55, op0_limb_5_col56, op0_limb_6_col57, op0_limb_7_col58, op0_limb_8_col59, op0_limb_9_col60, op0_limb_10_col61, op0_limb_11_col62, op0_limb_12_col63, op0_limb_13_col64, op0_limb_14_col65, op0_limb_15_col66, op0_limb_16_col67, op0_limb_17_col68, op0_limb_18_col69, op0_limb_19_col70, op0_limb_20_col71, op0_limb_21_col72, op0_limb_22_col73, op0_limb_23_col74, op0_limb_24_col75, op0_limb_25_col76, op0_limb_26_col77, op0_limb_27_col78])) + (PackedFelt252::from_limbs([op1_limb_0_col80, op1_limb_1_col81, op1_limb_2_col82, op1_limb_3_col83, op1_limb_4_col84, op1_limb_5_col85, op1_limb_6_col86, op1_limb_7_col87, op1_limb_8_col88, op1_limb_9_col89, op1_limb_10_col90, op1_limb_11_col91, op1_limb_12_col92, op1_limb_13_col93, op1_limb_14_col94, op1_limb_15_col95, op1_limb_16_col96, op1_limb_17_col97, op1_limb_18_col98, op1_limb_19_col99, op1_limb_20_col100, op1_limb_21_col101, op1_limb_22_col102, op1_limb_23_col103, op1_limb_24_col104, op1_limb_25_col105, op1_limb_26_col106, op1_limb_27_col107]))); +let add_res_limb_0_col108 = add_res_tmp_5745_32.get_m31(0); trace[108].data[row_index] = add_res_limb_0_col108; -let add_res_limb_1_col109 = add_res_tmp_724.get_m31(1); +let add_res_limb_1_col109 = add_res_tmp_5745_32.get_m31(1); trace[109].data[row_index] = add_res_limb_1_col109; -let add_res_limb_2_col110 = add_res_tmp_724.get_m31(2); +let add_res_limb_2_col110 = add_res_tmp_5745_32.get_m31(2); trace[110].data[row_index] = add_res_limb_2_col110; -let add_res_limb_3_col111 = add_res_tmp_724.get_m31(3); +let add_res_limb_3_col111 = add_res_tmp_5745_32.get_m31(3); trace[111].data[row_index] = add_res_limb_3_col111; -let add_res_limb_4_col112 = add_res_tmp_724.get_m31(4); +let add_res_limb_4_col112 = add_res_tmp_5745_32.get_m31(4); trace[112].data[row_index] = add_res_limb_4_col112; -let add_res_limb_5_col113 = add_res_tmp_724.get_m31(5); +let add_res_limb_5_col113 = add_res_tmp_5745_32.get_m31(5); trace[113].data[row_index] = add_res_limb_5_col113; -let add_res_limb_6_col114 = add_res_tmp_724.get_m31(6); +let add_res_limb_6_col114 = add_res_tmp_5745_32.get_m31(6); trace[114].data[row_index] = add_res_limb_6_col114; -let add_res_limb_7_col115 = add_res_tmp_724.get_m31(7); +let add_res_limb_7_col115 = add_res_tmp_5745_32.get_m31(7); trace[115].data[row_index] = add_res_limb_7_col115; -let add_res_limb_8_col116 = add_res_tmp_724.get_m31(8); +let add_res_limb_8_col116 = add_res_tmp_5745_32.get_m31(8); trace[116].data[row_index] = add_res_limb_8_col116; -let add_res_limb_9_col117 = add_res_tmp_724.get_m31(9); +let add_res_limb_9_col117 = add_res_tmp_5745_32.get_m31(9); trace[117].data[row_index] = add_res_limb_9_col117; -let add_res_limb_10_col118 = add_res_tmp_724.get_m31(10); +let add_res_limb_10_col118 = add_res_tmp_5745_32.get_m31(10); trace[118].data[row_index] = add_res_limb_10_col118; -let add_res_limb_11_col119 = add_res_tmp_724.get_m31(11); +let add_res_limb_11_col119 = add_res_tmp_5745_32.get_m31(11); trace[119].data[row_index] = add_res_limb_11_col119; -let add_res_limb_12_col120 = add_res_tmp_724.get_m31(12); +let add_res_limb_12_col120 = add_res_tmp_5745_32.get_m31(12); trace[120].data[row_index] = add_res_limb_12_col120; -let add_res_limb_13_col121 = add_res_tmp_724.get_m31(13); +let add_res_limb_13_col121 = add_res_tmp_5745_32.get_m31(13); trace[121].data[row_index] = add_res_limb_13_col121; -let add_res_limb_14_col122 = add_res_tmp_724.get_m31(14); +let add_res_limb_14_col122 = add_res_tmp_5745_32.get_m31(14); trace[122].data[row_index] = add_res_limb_14_col122; -let add_res_limb_15_col123 = add_res_tmp_724.get_m31(15); +let add_res_limb_15_col123 = add_res_tmp_5745_32.get_m31(15); trace[123].data[row_index] = add_res_limb_15_col123; -let add_res_limb_16_col124 = add_res_tmp_724.get_m31(16); +let add_res_limb_16_col124 = add_res_tmp_5745_32.get_m31(16); trace[124].data[row_index] = add_res_limb_16_col124; -let add_res_limb_17_col125 = add_res_tmp_724.get_m31(17); +let add_res_limb_17_col125 = add_res_tmp_5745_32.get_m31(17); trace[125].data[row_index] = add_res_limb_17_col125; -let add_res_limb_18_col126 = add_res_tmp_724.get_m31(18); +let add_res_limb_18_col126 = add_res_tmp_5745_32.get_m31(18); trace[126].data[row_index] = add_res_limb_18_col126; -let add_res_limb_19_col127 = add_res_tmp_724.get_m31(19); +let add_res_limb_19_col127 = add_res_tmp_5745_32.get_m31(19); trace[127].data[row_index] = add_res_limb_19_col127; -let add_res_limb_20_col128 = add_res_tmp_724.get_m31(20); +let add_res_limb_20_col128 = add_res_tmp_5745_32.get_m31(20); trace[128].data[row_index] = add_res_limb_20_col128; -let add_res_limb_21_col129 = add_res_tmp_724.get_m31(21); +let add_res_limb_21_col129 = add_res_tmp_5745_32.get_m31(21); trace[129].data[row_index] = add_res_limb_21_col129; -let add_res_limb_22_col130 = add_res_tmp_724.get_m31(22); +let add_res_limb_22_col130 = add_res_tmp_5745_32.get_m31(22); trace[130].data[row_index] = add_res_limb_22_col130; -let add_res_limb_23_col131 = add_res_tmp_724.get_m31(23); +let add_res_limb_23_col131 = add_res_tmp_5745_32.get_m31(23); trace[131].data[row_index] = add_res_limb_23_col131; -let add_res_limb_24_col132 = add_res_tmp_724.get_m31(24); +let add_res_limb_24_col132 = add_res_tmp_5745_32.get_m31(24); trace[132].data[row_index] = add_res_limb_24_col132; -let add_res_limb_25_col133 = add_res_tmp_724.get_m31(25); +let add_res_limb_25_col133 = add_res_tmp_5745_32.get_m31(25); trace[133].data[row_index] = add_res_limb_25_col133; -let add_res_limb_26_col134 = add_res_tmp_724.get_m31(26); +let add_res_limb_26_col134 = add_res_tmp_5745_32.get_m31(26); trace[134].data[row_index] = add_res_limb_26_col134; -let add_res_limb_27_col135 = add_res_tmp_724.get_m31(27); +let add_res_limb_27_col135 = add_res_tmp_5745_32.get_m31(27); trace[135].data[row_index] = add_res_limb_27_col135; - //range_check_big_value. + //RangeCheckBigValue. @@ -665,11 +657,11 @@ lookup_data.rangecheck_9_9[13].push([add_res_limb_26_col134, add_res_limb_27_col - //verify_add252. + //VerifyAdd252. -let sub_p_bit_tmp_739 = ((UInt16_1) & (((((PackedUInt16::from_m31(op0_limb_0_col51)) ^ (PackedUInt16::from_m31(op1_limb_0_col80)))) ^ (PackedUInt16::from_m31(add_res_limb_0_col108))))); -let sub_p_bit_col136 = sub_p_bit_tmp_739.as_m31(); +let sub_p_bit_tmp_5745_33 = ((UInt16_1) & (((((PackedUInt16::from_m31(op0_limb_0_col51)) ^ (PackedUInt16::from_m31(op1_limb_0_col80)))) ^ (PackedUInt16::from_m31(add_res_limb_0_col108))))); +let sub_p_bit_col136 = sub_p_bit_tmp_5745_33.as_m31(); trace[136].data[row_index] = sub_p_bit_col136; @@ -679,69 +671,69 @@ let sub_p_bit_col136 = sub_p_bit_tmp_739.as_m31(); - //mul252. + //Mul252. -let mul_res_tmp_767 = ((PackedFelt252::from_limbs([op0_limb_0_col51, op0_limb_1_col52, op0_limb_2_col53, op0_limb_3_col54, op0_limb_4_col55, op0_limb_5_col56, op0_limb_6_col57, op0_limb_7_col58, op0_limb_8_col59, op0_limb_9_col60, op0_limb_10_col61, op0_limb_11_col62, op0_limb_12_col63, op0_limb_13_col64, op0_limb_14_col65, op0_limb_15_col66, op0_limb_16_col67, op0_limb_17_col68, op0_limb_18_col69, op0_limb_19_col70, op0_limb_20_col71, op0_limb_21_col72, op0_limb_22_col73, op0_limb_23_col74, op0_limb_24_col75, op0_limb_25_col76, op0_limb_26_col77, op0_limb_27_col78])) * (PackedFelt252::from_limbs([op1_limb_0_col80, op1_limb_1_col81, op1_limb_2_col82, op1_limb_3_col83, op1_limb_4_col84, op1_limb_5_col85, op1_limb_6_col86, op1_limb_7_col87, op1_limb_8_col88, op1_limb_9_col89, op1_limb_10_col90, op1_limb_11_col91, op1_limb_12_col92, op1_limb_13_col93, op1_limb_14_col94, op1_limb_15_col95, op1_limb_16_col96, op1_limb_17_col97, op1_limb_18_col98, op1_limb_19_col99, op1_limb_20_col100, op1_limb_21_col101, op1_limb_22_col102, op1_limb_23_col103, op1_limb_24_col104, op1_limb_25_col105, op1_limb_26_col106, op1_limb_27_col107]))); -let mul_res_limb_0_col137 = mul_res_tmp_767.get_m31(0); +let mul_res_tmp_5745_61 = ((PackedFelt252::from_limbs([op0_limb_0_col51, op0_limb_1_col52, op0_limb_2_col53, op0_limb_3_col54, op0_limb_4_col55, op0_limb_5_col56, op0_limb_6_col57, op0_limb_7_col58, op0_limb_8_col59, op0_limb_9_col60, op0_limb_10_col61, op0_limb_11_col62, op0_limb_12_col63, op0_limb_13_col64, op0_limb_14_col65, op0_limb_15_col66, op0_limb_16_col67, op0_limb_17_col68, op0_limb_18_col69, op0_limb_19_col70, op0_limb_20_col71, op0_limb_21_col72, op0_limb_22_col73, op0_limb_23_col74, op0_limb_24_col75, op0_limb_25_col76, op0_limb_26_col77, op0_limb_27_col78])) * (PackedFelt252::from_limbs([op1_limb_0_col80, op1_limb_1_col81, op1_limb_2_col82, op1_limb_3_col83, op1_limb_4_col84, op1_limb_5_col85, op1_limb_6_col86, op1_limb_7_col87, op1_limb_8_col88, op1_limb_9_col89, op1_limb_10_col90, op1_limb_11_col91, op1_limb_12_col92, op1_limb_13_col93, op1_limb_14_col94, op1_limb_15_col95, op1_limb_16_col96, op1_limb_17_col97, op1_limb_18_col98, op1_limb_19_col99, op1_limb_20_col100, op1_limb_21_col101, op1_limb_22_col102, op1_limb_23_col103, op1_limb_24_col104, op1_limb_25_col105, op1_limb_26_col106, op1_limb_27_col107]))); +let mul_res_limb_0_col137 = mul_res_tmp_5745_61.get_m31(0); trace[137].data[row_index] = mul_res_limb_0_col137; -let mul_res_limb_1_col138 = mul_res_tmp_767.get_m31(1); +let mul_res_limb_1_col138 = mul_res_tmp_5745_61.get_m31(1); trace[138].data[row_index] = mul_res_limb_1_col138; -let mul_res_limb_2_col139 = mul_res_tmp_767.get_m31(2); +let mul_res_limb_2_col139 = mul_res_tmp_5745_61.get_m31(2); trace[139].data[row_index] = mul_res_limb_2_col139; -let mul_res_limb_3_col140 = mul_res_tmp_767.get_m31(3); +let mul_res_limb_3_col140 = mul_res_tmp_5745_61.get_m31(3); trace[140].data[row_index] = mul_res_limb_3_col140; -let mul_res_limb_4_col141 = mul_res_tmp_767.get_m31(4); +let mul_res_limb_4_col141 = mul_res_tmp_5745_61.get_m31(4); trace[141].data[row_index] = mul_res_limb_4_col141; -let mul_res_limb_5_col142 = mul_res_tmp_767.get_m31(5); +let mul_res_limb_5_col142 = mul_res_tmp_5745_61.get_m31(5); trace[142].data[row_index] = mul_res_limb_5_col142; -let mul_res_limb_6_col143 = mul_res_tmp_767.get_m31(6); +let mul_res_limb_6_col143 = mul_res_tmp_5745_61.get_m31(6); trace[143].data[row_index] = mul_res_limb_6_col143; -let mul_res_limb_7_col144 = mul_res_tmp_767.get_m31(7); +let mul_res_limb_7_col144 = mul_res_tmp_5745_61.get_m31(7); trace[144].data[row_index] = mul_res_limb_7_col144; -let mul_res_limb_8_col145 = mul_res_tmp_767.get_m31(8); +let mul_res_limb_8_col145 = mul_res_tmp_5745_61.get_m31(8); trace[145].data[row_index] = mul_res_limb_8_col145; -let mul_res_limb_9_col146 = mul_res_tmp_767.get_m31(9); +let mul_res_limb_9_col146 = mul_res_tmp_5745_61.get_m31(9); trace[146].data[row_index] = mul_res_limb_9_col146; -let mul_res_limb_10_col147 = mul_res_tmp_767.get_m31(10); +let mul_res_limb_10_col147 = mul_res_tmp_5745_61.get_m31(10); trace[147].data[row_index] = mul_res_limb_10_col147; -let mul_res_limb_11_col148 = mul_res_tmp_767.get_m31(11); +let mul_res_limb_11_col148 = mul_res_tmp_5745_61.get_m31(11); trace[148].data[row_index] = mul_res_limb_11_col148; -let mul_res_limb_12_col149 = mul_res_tmp_767.get_m31(12); +let mul_res_limb_12_col149 = mul_res_tmp_5745_61.get_m31(12); trace[149].data[row_index] = mul_res_limb_12_col149; -let mul_res_limb_13_col150 = mul_res_tmp_767.get_m31(13); +let mul_res_limb_13_col150 = mul_res_tmp_5745_61.get_m31(13); trace[150].data[row_index] = mul_res_limb_13_col150; -let mul_res_limb_14_col151 = mul_res_tmp_767.get_m31(14); +let mul_res_limb_14_col151 = mul_res_tmp_5745_61.get_m31(14); trace[151].data[row_index] = mul_res_limb_14_col151; -let mul_res_limb_15_col152 = mul_res_tmp_767.get_m31(15); +let mul_res_limb_15_col152 = mul_res_tmp_5745_61.get_m31(15); trace[152].data[row_index] = mul_res_limb_15_col152; -let mul_res_limb_16_col153 = mul_res_tmp_767.get_m31(16); +let mul_res_limb_16_col153 = mul_res_tmp_5745_61.get_m31(16); trace[153].data[row_index] = mul_res_limb_16_col153; -let mul_res_limb_17_col154 = mul_res_tmp_767.get_m31(17); +let mul_res_limb_17_col154 = mul_res_tmp_5745_61.get_m31(17); trace[154].data[row_index] = mul_res_limb_17_col154; -let mul_res_limb_18_col155 = mul_res_tmp_767.get_m31(18); +let mul_res_limb_18_col155 = mul_res_tmp_5745_61.get_m31(18); trace[155].data[row_index] = mul_res_limb_18_col155; -let mul_res_limb_19_col156 = mul_res_tmp_767.get_m31(19); +let mul_res_limb_19_col156 = mul_res_tmp_5745_61.get_m31(19); trace[156].data[row_index] = mul_res_limb_19_col156; -let mul_res_limb_20_col157 = mul_res_tmp_767.get_m31(20); +let mul_res_limb_20_col157 = mul_res_tmp_5745_61.get_m31(20); trace[157].data[row_index] = mul_res_limb_20_col157; -let mul_res_limb_21_col158 = mul_res_tmp_767.get_m31(21); +let mul_res_limb_21_col158 = mul_res_tmp_5745_61.get_m31(21); trace[158].data[row_index] = mul_res_limb_21_col158; -let mul_res_limb_22_col159 = mul_res_tmp_767.get_m31(22); +let mul_res_limb_22_col159 = mul_res_tmp_5745_61.get_m31(22); trace[159].data[row_index] = mul_res_limb_22_col159; -let mul_res_limb_23_col160 = mul_res_tmp_767.get_m31(23); +let mul_res_limb_23_col160 = mul_res_tmp_5745_61.get_m31(23); trace[160].data[row_index] = mul_res_limb_23_col160; -let mul_res_limb_24_col161 = mul_res_tmp_767.get_m31(24); +let mul_res_limb_24_col161 = mul_res_tmp_5745_61.get_m31(24); trace[161].data[row_index] = mul_res_limb_24_col161; -let mul_res_limb_25_col162 = mul_res_tmp_767.get_m31(25); +let mul_res_limb_25_col162 = mul_res_tmp_5745_61.get_m31(25); trace[162].data[row_index] = mul_res_limb_25_col162; -let mul_res_limb_26_col163 = mul_res_tmp_767.get_m31(26); +let mul_res_limb_26_col163 = mul_res_tmp_5745_61.get_m31(26); trace[163].data[row_index] = mul_res_limb_26_col163; -let mul_res_limb_27_col164 = mul_res_tmp_767.get_m31(27); +let mul_res_limb_27_col164 = mul_res_tmp_5745_61.get_m31(27); trace[164].data[row_index] = mul_res_limb_27_col164; - //range_check_big_value. + //RangeCheckBigValue. @@ -833,94 +825,94 @@ lookup_data.rangecheck_9_9[27].push([mul_res_limb_26_col163, mul_res_limb_27_col - //verify_mul252. - - -let conv_tmp_782 = ((((M31_0) - (mul_res_limb_0_col137))) + (((op0_limb_0_col51) * (op1_limb_0_col80)))); -let conv_tmp_783 = ((((((M31_0) - (mul_res_limb_1_col138))) + (((op0_limb_0_col51) * (op1_limb_1_col81))))) + (((op0_limb_1_col52) * (op1_limb_0_col80)))); -let conv_tmp_784 = ((((((((M31_0) - (mul_res_limb_2_col139))) + (((op0_limb_0_col51) * (op1_limb_2_col82))))) + (((op0_limb_1_col52) * (op1_limb_1_col81))))) + (((op0_limb_2_col53) * (op1_limb_0_col80)))); -let conv_tmp_785 = ((((((((((M31_0) - (mul_res_limb_3_col140))) + (((op0_limb_0_col51) * (op1_limb_3_col83))))) + (((op0_limb_1_col52) * (op1_limb_2_col82))))) + (((op0_limb_2_col53) * (op1_limb_1_col81))))) + (((op0_limb_3_col54) * (op1_limb_0_col80)))); -let conv_tmp_786 = ((((((((((((M31_0) - (mul_res_limb_4_col141))) + (((op0_limb_0_col51) * (op1_limb_4_col84))))) + (((op0_limb_1_col52) * (op1_limb_3_col83))))) + (((op0_limb_2_col53) * (op1_limb_2_col82))))) + (((op0_limb_3_col54) * (op1_limb_1_col81))))) + (((op0_limb_4_col55) * (op1_limb_0_col80)))); -let conv_tmp_787 = ((((((((((((((M31_0) - (mul_res_limb_5_col142))) + (((op0_limb_0_col51) * (op1_limb_5_col85))))) + (((op0_limb_1_col52) * (op1_limb_4_col84))))) + (((op0_limb_2_col53) * (op1_limb_3_col83))))) + (((op0_limb_3_col54) * (op1_limb_2_col82))))) + (((op0_limb_4_col55) * (op1_limb_1_col81))))) + (((op0_limb_5_col56) * (op1_limb_0_col80)))); -let conv_tmp_788 = ((((((((((((((((M31_0) - (mul_res_limb_6_col143))) + (((op0_limb_0_col51) * (op1_limb_6_col86))))) + (((op0_limb_1_col52) * (op1_limb_5_col85))))) + (((op0_limb_2_col53) * (op1_limb_4_col84))))) + (((op0_limb_3_col54) * (op1_limb_3_col83))))) + (((op0_limb_4_col55) * (op1_limb_2_col82))))) + (((op0_limb_5_col56) * (op1_limb_1_col81))))) + (((op0_limb_6_col57) * (op1_limb_0_col80)))); -let conv_tmp_789 = ((((((((((((((((((M31_0) - (mul_res_limb_7_col144))) + (((op0_limb_0_col51) * (op1_limb_7_col87))))) + (((op0_limb_1_col52) * (op1_limb_6_col86))))) + (((op0_limb_2_col53) * (op1_limb_5_col85))))) + (((op0_limb_3_col54) * (op1_limb_4_col84))))) + (((op0_limb_4_col55) * (op1_limb_3_col83))))) + (((op0_limb_5_col56) * (op1_limb_2_col82))))) + (((op0_limb_6_col57) * (op1_limb_1_col81))))) + (((op0_limb_7_col58) * (op1_limb_0_col80)))); -let conv_tmp_790 = ((((((((((((((((((((M31_0) - (mul_res_limb_8_col145))) + (((op0_limb_0_col51) * (op1_limb_8_col88))))) + (((op0_limb_1_col52) * (op1_limb_7_col87))))) + (((op0_limb_2_col53) * (op1_limb_6_col86))))) + (((op0_limb_3_col54) * (op1_limb_5_col85))))) + (((op0_limb_4_col55) * (op1_limb_4_col84))))) + (((op0_limb_5_col56) * (op1_limb_3_col83))))) + (((op0_limb_6_col57) * (op1_limb_2_col82))))) + (((op0_limb_7_col58) * (op1_limb_1_col81))))) + (((op0_limb_8_col59) * (op1_limb_0_col80)))); -let conv_tmp_791 = ((((((((((((((((((((((M31_0) - (mul_res_limb_9_col146))) + (((op0_limb_0_col51) * (op1_limb_9_col89))))) + (((op0_limb_1_col52) * (op1_limb_8_col88))))) + (((op0_limb_2_col53) * (op1_limb_7_col87))))) + (((op0_limb_3_col54) * (op1_limb_6_col86))))) + (((op0_limb_4_col55) * (op1_limb_5_col85))))) + (((op0_limb_5_col56) * (op1_limb_4_col84))))) + (((op0_limb_6_col57) * (op1_limb_3_col83))))) + (((op0_limb_7_col58) * (op1_limb_2_col82))))) + (((op0_limb_8_col59) * (op1_limb_1_col81))))) + (((op0_limb_9_col60) * (op1_limb_0_col80)))); -let conv_tmp_792 = ((((((((((((((((((((((((M31_0) - (mul_res_limb_10_col147))) + (((op0_limb_0_col51) * (op1_limb_10_col90))))) + (((op0_limb_1_col52) * (op1_limb_9_col89))))) + (((op0_limb_2_col53) * (op1_limb_8_col88))))) + (((op0_limb_3_col54) * (op1_limb_7_col87))))) + (((op0_limb_4_col55) * (op1_limb_6_col86))))) + (((op0_limb_5_col56) * (op1_limb_5_col85))))) + (((op0_limb_6_col57) * (op1_limb_4_col84))))) + (((op0_limb_7_col58) * (op1_limb_3_col83))))) + (((op0_limb_8_col59) * (op1_limb_2_col82))))) + (((op0_limb_9_col60) * (op1_limb_1_col81))))) + (((op0_limb_10_col61) * (op1_limb_0_col80)))); -let conv_tmp_793 = ((((((((((((((((((((((((((M31_0) - (mul_res_limb_11_col148))) + (((op0_limb_0_col51) * (op1_limb_11_col91))))) + (((op0_limb_1_col52) * (op1_limb_10_col90))))) + (((op0_limb_2_col53) * (op1_limb_9_col89))))) + (((op0_limb_3_col54) * (op1_limb_8_col88))))) + (((op0_limb_4_col55) * (op1_limb_7_col87))))) + (((op0_limb_5_col56) * (op1_limb_6_col86))))) + (((op0_limb_6_col57) * (op1_limb_5_col85))))) + (((op0_limb_7_col58) * (op1_limb_4_col84))))) + (((op0_limb_8_col59) * (op1_limb_3_col83))))) + (((op0_limb_9_col60) * (op1_limb_2_col82))))) + (((op0_limb_10_col61) * (op1_limb_1_col81))))) + (((op0_limb_11_col62) * (op1_limb_0_col80)))); -let conv_tmp_794 = ((((((((((((((((((((((((((((M31_0) - (mul_res_limb_12_col149))) + (((op0_limb_0_col51) * (op1_limb_12_col92))))) + (((op0_limb_1_col52) * (op1_limb_11_col91))))) + (((op0_limb_2_col53) * (op1_limb_10_col90))))) + (((op0_limb_3_col54) * (op1_limb_9_col89))))) + (((op0_limb_4_col55) * (op1_limb_8_col88))))) + (((op0_limb_5_col56) * (op1_limb_7_col87))))) + (((op0_limb_6_col57) * (op1_limb_6_col86))))) + (((op0_limb_7_col58) * (op1_limb_5_col85))))) + (((op0_limb_8_col59) * (op1_limb_4_col84))))) + (((op0_limb_9_col60) * (op1_limb_3_col83))))) + (((op0_limb_10_col61) * (op1_limb_2_col82))))) + (((op0_limb_11_col62) * (op1_limb_1_col81))))) + (((op0_limb_12_col63) * (op1_limb_0_col80)))); -let conv_tmp_795 = ((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_13_col150))) + (((op0_limb_0_col51) * (op1_limb_13_col93))))) + (((op0_limb_1_col52) * (op1_limb_12_col92))))) + (((op0_limb_2_col53) * (op1_limb_11_col91))))) + (((op0_limb_3_col54) * (op1_limb_10_col90))))) + (((op0_limb_4_col55) * (op1_limb_9_col89))))) + (((op0_limb_5_col56) * (op1_limb_8_col88))))) + (((op0_limb_6_col57) * (op1_limb_7_col87))))) + (((op0_limb_7_col58) * (op1_limb_6_col86))))) + (((op0_limb_8_col59) * (op1_limb_5_col85))))) + (((op0_limb_9_col60) * (op1_limb_4_col84))))) + (((op0_limb_10_col61) * (op1_limb_3_col83))))) + (((op0_limb_11_col62) * (op1_limb_2_col82))))) + (((op0_limb_12_col63) * (op1_limb_1_col81))))) + (((op0_limb_13_col64) * (op1_limb_0_col80)))); -let conv_tmp_796 = ((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_14_col151))) + (((op0_limb_0_col51) * (op1_limb_14_col94))))) + (((op0_limb_1_col52) * (op1_limb_13_col93))))) + (((op0_limb_2_col53) * (op1_limb_12_col92))))) + (((op0_limb_3_col54) * (op1_limb_11_col91))))) + (((op0_limb_4_col55) * (op1_limb_10_col90))))) + (((op0_limb_5_col56) * (op1_limb_9_col89))))) + (((op0_limb_6_col57) * (op1_limb_8_col88))))) + (((op0_limb_7_col58) * (op1_limb_7_col87))))) + (((op0_limb_8_col59) * (op1_limb_6_col86))))) + (((op0_limb_9_col60) * (op1_limb_5_col85))))) + (((op0_limb_10_col61) * (op1_limb_4_col84))))) + (((op0_limb_11_col62) * (op1_limb_3_col83))))) + (((op0_limb_12_col63) * (op1_limb_2_col82))))) + (((op0_limb_13_col64) * (op1_limb_1_col81))))) + (((op0_limb_14_col65) * (op1_limb_0_col80)))); -let conv_tmp_797 = ((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_15_col152))) + (((op0_limb_0_col51) * (op1_limb_15_col95))))) + (((op0_limb_1_col52) * (op1_limb_14_col94))))) + (((op0_limb_2_col53) * (op1_limb_13_col93))))) + (((op0_limb_3_col54) * (op1_limb_12_col92))))) + (((op0_limb_4_col55) * (op1_limb_11_col91))))) + (((op0_limb_5_col56) * (op1_limb_10_col90))))) + (((op0_limb_6_col57) * (op1_limb_9_col89))))) + (((op0_limb_7_col58) * (op1_limb_8_col88))))) + (((op0_limb_8_col59) * (op1_limb_7_col87))))) + (((op0_limb_9_col60) * (op1_limb_6_col86))))) + (((op0_limb_10_col61) * (op1_limb_5_col85))))) + (((op0_limb_11_col62) * (op1_limb_4_col84))))) + (((op0_limb_12_col63) * (op1_limb_3_col83))))) + (((op0_limb_13_col64) * (op1_limb_2_col82))))) + (((op0_limb_14_col65) * (op1_limb_1_col81))))) + (((op0_limb_15_col66) * (op1_limb_0_col80)))); -let conv_tmp_798 = ((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_16_col153))) + (((op0_limb_0_col51) * (op1_limb_16_col96))))) + (((op0_limb_1_col52) * (op1_limb_15_col95))))) + (((op0_limb_2_col53) * (op1_limb_14_col94))))) + (((op0_limb_3_col54) * (op1_limb_13_col93))))) + (((op0_limb_4_col55) * (op1_limb_12_col92))))) + (((op0_limb_5_col56) * (op1_limb_11_col91))))) + (((op0_limb_6_col57) * (op1_limb_10_col90))))) + (((op0_limb_7_col58) * (op1_limb_9_col89))))) + (((op0_limb_8_col59) * (op1_limb_8_col88))))) + (((op0_limb_9_col60) * (op1_limb_7_col87))))) + (((op0_limb_10_col61) * (op1_limb_6_col86))))) + (((op0_limb_11_col62) * (op1_limb_5_col85))))) + (((op0_limb_12_col63) * (op1_limb_4_col84))))) + (((op0_limb_13_col64) * (op1_limb_3_col83))))) + (((op0_limb_14_col65) * (op1_limb_2_col82))))) + (((op0_limb_15_col66) * (op1_limb_1_col81))))) + (((op0_limb_16_col67) * (op1_limb_0_col80)))); -let conv_tmp_799 = ((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_17_col154))) + (((op0_limb_0_col51) * (op1_limb_17_col97))))) + (((op0_limb_1_col52) * (op1_limb_16_col96))))) + (((op0_limb_2_col53) * (op1_limb_15_col95))))) + (((op0_limb_3_col54) * (op1_limb_14_col94))))) + (((op0_limb_4_col55) * (op1_limb_13_col93))))) + (((op0_limb_5_col56) * (op1_limb_12_col92))))) + (((op0_limb_6_col57) * (op1_limb_11_col91))))) + (((op0_limb_7_col58) * (op1_limb_10_col90))))) + (((op0_limb_8_col59) * (op1_limb_9_col89))))) + (((op0_limb_9_col60) * (op1_limb_8_col88))))) + (((op0_limb_10_col61) * (op1_limb_7_col87))))) + (((op0_limb_11_col62) * (op1_limb_6_col86))))) + (((op0_limb_12_col63) * (op1_limb_5_col85))))) + (((op0_limb_13_col64) * (op1_limb_4_col84))))) + (((op0_limb_14_col65) * (op1_limb_3_col83))))) + (((op0_limb_15_col66) * (op1_limb_2_col82))))) + (((op0_limb_16_col67) * (op1_limb_1_col81))))) + (((op0_limb_17_col68) * (op1_limb_0_col80)))); -let conv_tmp_800 = ((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_18_col155))) + (((op0_limb_0_col51) * (op1_limb_18_col98))))) + (((op0_limb_1_col52) * (op1_limb_17_col97))))) + (((op0_limb_2_col53) * (op1_limb_16_col96))))) + (((op0_limb_3_col54) * (op1_limb_15_col95))))) + (((op0_limb_4_col55) * (op1_limb_14_col94))))) + (((op0_limb_5_col56) * (op1_limb_13_col93))))) + (((op0_limb_6_col57) * (op1_limb_12_col92))))) + (((op0_limb_7_col58) * (op1_limb_11_col91))))) + (((op0_limb_8_col59) * (op1_limb_10_col90))))) + (((op0_limb_9_col60) * (op1_limb_9_col89))))) + (((op0_limb_10_col61) * (op1_limb_8_col88))))) + (((op0_limb_11_col62) * (op1_limb_7_col87))))) + (((op0_limb_12_col63) * (op1_limb_6_col86))))) + (((op0_limb_13_col64) * (op1_limb_5_col85))))) + (((op0_limb_14_col65) * (op1_limb_4_col84))))) + (((op0_limb_15_col66) * (op1_limb_3_col83))))) + (((op0_limb_16_col67) * (op1_limb_2_col82))))) + (((op0_limb_17_col68) * (op1_limb_1_col81))))) + (((op0_limb_18_col69) * (op1_limb_0_col80)))); -let conv_tmp_801 = ((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_19_col156))) + (((op0_limb_0_col51) * (op1_limb_19_col99))))) + (((op0_limb_1_col52) * (op1_limb_18_col98))))) + (((op0_limb_2_col53) * (op1_limb_17_col97))))) + (((op0_limb_3_col54) * (op1_limb_16_col96))))) + (((op0_limb_4_col55) * (op1_limb_15_col95))))) + (((op0_limb_5_col56) * (op1_limb_14_col94))))) + (((op0_limb_6_col57) * (op1_limb_13_col93))))) + (((op0_limb_7_col58) * (op1_limb_12_col92))))) + (((op0_limb_8_col59) * (op1_limb_11_col91))))) + (((op0_limb_9_col60) * (op1_limb_10_col90))))) + (((op0_limb_10_col61) * (op1_limb_9_col89))))) + (((op0_limb_11_col62) * (op1_limb_8_col88))))) + (((op0_limb_12_col63) * (op1_limb_7_col87))))) + (((op0_limb_13_col64) * (op1_limb_6_col86))))) + (((op0_limb_14_col65) * (op1_limb_5_col85))))) + (((op0_limb_15_col66) * (op1_limb_4_col84))))) + (((op0_limb_16_col67) * (op1_limb_3_col83))))) + (((op0_limb_17_col68) * (op1_limb_2_col82))))) + (((op0_limb_18_col69) * (op1_limb_1_col81))))) + (((op0_limb_19_col70) * (op1_limb_0_col80)))); -let conv_tmp_802 = ((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_20_col157))) + (((op0_limb_0_col51) * (op1_limb_20_col100))))) + (((op0_limb_1_col52) * (op1_limb_19_col99))))) + (((op0_limb_2_col53) * (op1_limb_18_col98))))) + (((op0_limb_3_col54) * (op1_limb_17_col97))))) + (((op0_limb_4_col55) * (op1_limb_16_col96))))) + (((op0_limb_5_col56) * (op1_limb_15_col95))))) + (((op0_limb_6_col57) * (op1_limb_14_col94))))) + (((op0_limb_7_col58) * (op1_limb_13_col93))))) + (((op0_limb_8_col59) * (op1_limb_12_col92))))) + (((op0_limb_9_col60) * (op1_limb_11_col91))))) + (((op0_limb_10_col61) * (op1_limb_10_col90))))) + (((op0_limb_11_col62) * (op1_limb_9_col89))))) + (((op0_limb_12_col63) * (op1_limb_8_col88))))) + (((op0_limb_13_col64) * (op1_limb_7_col87))))) + (((op0_limb_14_col65) * (op1_limb_6_col86))))) + (((op0_limb_15_col66) * (op1_limb_5_col85))))) + (((op0_limb_16_col67) * (op1_limb_4_col84))))) + (((op0_limb_17_col68) * (op1_limb_3_col83))))) + (((op0_limb_18_col69) * (op1_limb_2_col82))))) + (((op0_limb_19_col70) * (op1_limb_1_col81))))) + (((op0_limb_20_col71) * (op1_limb_0_col80)))); -let conv_tmp_803 = ((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_21_col158))) + (((op0_limb_0_col51) * (op1_limb_21_col101))))) + (((op0_limb_1_col52) * (op1_limb_20_col100))))) + (((op0_limb_2_col53) * (op1_limb_19_col99))))) + (((op0_limb_3_col54) * (op1_limb_18_col98))))) + (((op0_limb_4_col55) * (op1_limb_17_col97))))) + (((op0_limb_5_col56) * (op1_limb_16_col96))))) + (((op0_limb_6_col57) * (op1_limb_15_col95))))) + (((op0_limb_7_col58) * (op1_limb_14_col94))))) + (((op0_limb_8_col59) * (op1_limb_13_col93))))) + (((op0_limb_9_col60) * (op1_limb_12_col92))))) + (((op0_limb_10_col61) * (op1_limb_11_col91))))) + (((op0_limb_11_col62) * (op1_limb_10_col90))))) + (((op0_limb_12_col63) * (op1_limb_9_col89))))) + (((op0_limb_13_col64) * (op1_limb_8_col88))))) + (((op0_limb_14_col65) * (op1_limb_7_col87))))) + (((op0_limb_15_col66) * (op1_limb_6_col86))))) + (((op0_limb_16_col67) * (op1_limb_5_col85))))) + (((op0_limb_17_col68) * (op1_limb_4_col84))))) + (((op0_limb_18_col69) * (op1_limb_3_col83))))) + (((op0_limb_19_col70) * (op1_limb_2_col82))))) + (((op0_limb_20_col71) * (op1_limb_1_col81))))) + (((op0_limb_21_col72) * (op1_limb_0_col80)))); -let conv_tmp_804 = ((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_22_col159))) + (((op0_limb_0_col51) * (op1_limb_22_col102))))) + (((op0_limb_1_col52) * (op1_limb_21_col101))))) + (((op0_limb_2_col53) * (op1_limb_20_col100))))) + (((op0_limb_3_col54) * (op1_limb_19_col99))))) + (((op0_limb_4_col55) * (op1_limb_18_col98))))) + (((op0_limb_5_col56) * (op1_limb_17_col97))))) + (((op0_limb_6_col57) * (op1_limb_16_col96))))) + (((op0_limb_7_col58) * (op1_limb_15_col95))))) + (((op0_limb_8_col59) * (op1_limb_14_col94))))) + (((op0_limb_9_col60) * (op1_limb_13_col93))))) + (((op0_limb_10_col61) * (op1_limb_12_col92))))) + (((op0_limb_11_col62) * (op1_limb_11_col91))))) + (((op0_limb_12_col63) * (op1_limb_10_col90))))) + (((op0_limb_13_col64) * (op1_limb_9_col89))))) + (((op0_limb_14_col65) * (op1_limb_8_col88))))) + (((op0_limb_15_col66) * (op1_limb_7_col87))))) + (((op0_limb_16_col67) * (op1_limb_6_col86))))) + (((op0_limb_17_col68) * (op1_limb_5_col85))))) + (((op0_limb_18_col69) * (op1_limb_4_col84))))) + (((op0_limb_19_col70) * (op1_limb_3_col83))))) + (((op0_limb_20_col71) * (op1_limb_2_col82))))) + (((op0_limb_21_col72) * (op1_limb_1_col81))))) + (((op0_limb_22_col73) * (op1_limb_0_col80)))); -let conv_tmp_805 = ((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_23_col160))) + (((op0_limb_0_col51) * (op1_limb_23_col103))))) + (((op0_limb_1_col52) * (op1_limb_22_col102))))) + (((op0_limb_2_col53) * (op1_limb_21_col101))))) + (((op0_limb_3_col54) * (op1_limb_20_col100))))) + (((op0_limb_4_col55) * (op1_limb_19_col99))))) + (((op0_limb_5_col56) * (op1_limb_18_col98))))) + (((op0_limb_6_col57) * (op1_limb_17_col97))))) + (((op0_limb_7_col58) * (op1_limb_16_col96))))) + (((op0_limb_8_col59) * (op1_limb_15_col95))))) + (((op0_limb_9_col60) * (op1_limb_14_col94))))) + (((op0_limb_10_col61) * (op1_limb_13_col93))))) + (((op0_limb_11_col62) * (op1_limb_12_col92))))) + (((op0_limb_12_col63) * (op1_limb_11_col91))))) + (((op0_limb_13_col64) * (op1_limb_10_col90))))) + (((op0_limb_14_col65) * (op1_limb_9_col89))))) + (((op0_limb_15_col66) * (op1_limb_8_col88))))) + (((op0_limb_16_col67) * (op1_limb_7_col87))))) + (((op0_limb_17_col68) * (op1_limb_6_col86))))) + (((op0_limb_18_col69) * (op1_limb_5_col85))))) + (((op0_limb_19_col70) * (op1_limb_4_col84))))) + (((op0_limb_20_col71) * (op1_limb_3_col83))))) + (((op0_limb_21_col72) * (op1_limb_2_col82))))) + (((op0_limb_22_col73) * (op1_limb_1_col81))))) + (((op0_limb_23_col74) * (op1_limb_0_col80)))); -let conv_tmp_806 = ((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_24_col161))) + (((op0_limb_0_col51) * (op1_limb_24_col104))))) + (((op0_limb_1_col52) * (op1_limb_23_col103))))) + (((op0_limb_2_col53) * (op1_limb_22_col102))))) + (((op0_limb_3_col54) * (op1_limb_21_col101))))) + (((op0_limb_4_col55) * (op1_limb_20_col100))))) + (((op0_limb_5_col56) * (op1_limb_19_col99))))) + (((op0_limb_6_col57) * (op1_limb_18_col98))))) + (((op0_limb_7_col58) * (op1_limb_17_col97))))) + (((op0_limb_8_col59) * (op1_limb_16_col96))))) + (((op0_limb_9_col60) * (op1_limb_15_col95))))) + (((op0_limb_10_col61) * (op1_limb_14_col94))))) + (((op0_limb_11_col62) * (op1_limb_13_col93))))) + (((op0_limb_12_col63) * (op1_limb_12_col92))))) + (((op0_limb_13_col64) * (op1_limb_11_col91))))) + (((op0_limb_14_col65) * (op1_limb_10_col90))))) + (((op0_limb_15_col66) * (op1_limb_9_col89))))) + (((op0_limb_16_col67) * (op1_limb_8_col88))))) + (((op0_limb_17_col68) * (op1_limb_7_col87))))) + (((op0_limb_18_col69) * (op1_limb_6_col86))))) + (((op0_limb_19_col70) * (op1_limb_5_col85))))) + (((op0_limb_20_col71) * (op1_limb_4_col84))))) + (((op0_limb_21_col72) * (op1_limb_3_col83))))) + (((op0_limb_22_col73) * (op1_limb_2_col82))))) + (((op0_limb_23_col74) * (op1_limb_1_col81))))) + (((op0_limb_24_col75) * (op1_limb_0_col80)))); -let conv_tmp_807 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_25_col162))) + (((op0_limb_0_col51) * (op1_limb_25_col105))))) + (((op0_limb_1_col52) * (op1_limb_24_col104))))) + (((op0_limb_2_col53) * (op1_limb_23_col103))))) + (((op0_limb_3_col54) * (op1_limb_22_col102))))) + (((op0_limb_4_col55) * (op1_limb_21_col101))))) + (((op0_limb_5_col56) * (op1_limb_20_col100))))) + (((op0_limb_6_col57) * (op1_limb_19_col99))))) + (((op0_limb_7_col58) * (op1_limb_18_col98))))) + (((op0_limb_8_col59) * (op1_limb_17_col97))))) + (((op0_limb_9_col60) * (op1_limb_16_col96))))) + (((op0_limb_10_col61) * (op1_limb_15_col95))))) + (((op0_limb_11_col62) * (op1_limb_14_col94))))) + (((op0_limb_12_col63) * (op1_limb_13_col93))))) + (((op0_limb_13_col64) * (op1_limb_12_col92))))) + (((op0_limb_14_col65) * (op1_limb_11_col91))))) + (((op0_limb_15_col66) * (op1_limb_10_col90))))) + (((op0_limb_16_col67) * (op1_limb_9_col89))))) + (((op0_limb_17_col68) * (op1_limb_8_col88))))) + (((op0_limb_18_col69) * (op1_limb_7_col87))))) + (((op0_limb_19_col70) * (op1_limb_6_col86))))) + (((op0_limb_20_col71) * (op1_limb_5_col85))))) + (((op0_limb_21_col72) * (op1_limb_4_col84))))) + (((op0_limb_22_col73) * (op1_limb_3_col83))))) + (((op0_limb_23_col74) * (op1_limb_2_col82))))) + (((op0_limb_24_col75) * (op1_limb_1_col81))))) + (((op0_limb_25_col76) * (op1_limb_0_col80)))); -let conv_tmp_808 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_26_col163))) + (((op0_limb_0_col51) * (op1_limb_26_col106))))) + (((op0_limb_1_col52) * (op1_limb_25_col105))))) + (((op0_limb_2_col53) * (op1_limb_24_col104))))) + (((op0_limb_3_col54) * (op1_limb_23_col103))))) + (((op0_limb_4_col55) * (op1_limb_22_col102))))) + (((op0_limb_5_col56) * (op1_limb_21_col101))))) + (((op0_limb_6_col57) * (op1_limb_20_col100))))) + (((op0_limb_7_col58) * (op1_limb_19_col99))))) + (((op0_limb_8_col59) * (op1_limb_18_col98))))) + (((op0_limb_9_col60) * (op1_limb_17_col97))))) + (((op0_limb_10_col61) * (op1_limb_16_col96))))) + (((op0_limb_11_col62) * (op1_limb_15_col95))))) + (((op0_limb_12_col63) * (op1_limb_14_col94))))) + (((op0_limb_13_col64) * (op1_limb_13_col93))))) + (((op0_limb_14_col65) * (op1_limb_12_col92))))) + (((op0_limb_15_col66) * (op1_limb_11_col91))))) + (((op0_limb_16_col67) * (op1_limb_10_col90))))) + (((op0_limb_17_col68) * (op1_limb_9_col89))))) + (((op0_limb_18_col69) * (op1_limb_8_col88))))) + (((op0_limb_19_col70) * (op1_limb_7_col87))))) + (((op0_limb_20_col71) * (op1_limb_6_col86))))) + (((op0_limb_21_col72) * (op1_limb_5_col85))))) + (((op0_limb_22_col73) * (op1_limb_4_col84))))) + (((op0_limb_23_col74) * (op1_limb_3_col83))))) + (((op0_limb_24_col75) * (op1_limb_2_col82))))) + (((op0_limb_25_col76) * (op1_limb_1_col81))))) + (((op0_limb_26_col77) * (op1_limb_0_col80)))); -let conv_tmp_809 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_27_col164))) + (((op0_limb_0_col51) * (op1_limb_27_col107))))) + (((op0_limb_1_col52) * (op1_limb_26_col106))))) + (((op0_limb_2_col53) * (op1_limb_25_col105))))) + (((op0_limb_3_col54) * (op1_limb_24_col104))))) + (((op0_limb_4_col55) * (op1_limb_23_col103))))) + (((op0_limb_5_col56) * (op1_limb_22_col102))))) + (((op0_limb_6_col57) * (op1_limb_21_col101))))) + (((op0_limb_7_col58) * (op1_limb_20_col100))))) + (((op0_limb_8_col59) * (op1_limb_19_col99))))) + (((op0_limb_9_col60) * (op1_limb_18_col98))))) + (((op0_limb_10_col61) * (op1_limb_17_col97))))) + (((op0_limb_11_col62) * (op1_limb_16_col96))))) + (((op0_limb_12_col63) * (op1_limb_15_col95))))) + (((op0_limb_13_col64) * (op1_limb_14_col94))))) + (((op0_limb_14_col65) * (op1_limb_13_col93))))) + (((op0_limb_15_col66) * (op1_limb_12_col92))))) + (((op0_limb_16_col67) * (op1_limb_11_col91))))) + (((op0_limb_17_col68) * (op1_limb_10_col90))))) + (((op0_limb_18_col69) * (op1_limb_9_col89))))) + (((op0_limb_19_col70) * (op1_limb_8_col88))))) + (((op0_limb_20_col71) * (op1_limb_7_col87))))) + (((op0_limb_21_col72) * (op1_limb_6_col86))))) + (((op0_limb_22_col73) * (op1_limb_5_col85))))) + (((op0_limb_23_col74) * (op1_limb_4_col84))))) + (((op0_limb_24_col75) * (op1_limb_3_col83))))) + (((op0_limb_25_col76) * (op1_limb_2_col82))))) + (((op0_limb_26_col77) * (op1_limb_1_col81))))) + (((op0_limb_27_col78) * (op1_limb_0_col80)))); -let conv_tmp_810 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_1_col52) * (op1_limb_27_col107))))) + (((op0_limb_2_col53) * (op1_limb_26_col106))))) + (((op0_limb_3_col54) * (op1_limb_25_col105))))) + (((op0_limb_4_col55) * (op1_limb_24_col104))))) + (((op0_limb_5_col56) * (op1_limb_23_col103))))) + (((op0_limb_6_col57) * (op1_limb_22_col102))))) + (((op0_limb_7_col58) * (op1_limb_21_col101))))) + (((op0_limb_8_col59) * (op1_limb_20_col100))))) + (((op0_limb_9_col60) * (op1_limb_19_col99))))) + (((op0_limb_10_col61) * (op1_limb_18_col98))))) + (((op0_limb_11_col62) * (op1_limb_17_col97))))) + (((op0_limb_12_col63) * (op1_limb_16_col96))))) + (((op0_limb_13_col64) * (op1_limb_15_col95))))) + (((op0_limb_14_col65) * (op1_limb_14_col94))))) + (((op0_limb_15_col66) * (op1_limb_13_col93))))) + (((op0_limb_16_col67) * (op1_limb_12_col92))))) + (((op0_limb_17_col68) * (op1_limb_11_col91))))) + (((op0_limb_18_col69) * (op1_limb_10_col90))))) + (((op0_limb_19_col70) * (op1_limb_9_col89))))) + (((op0_limb_20_col71) * (op1_limb_8_col88))))) + (((op0_limb_21_col72) * (op1_limb_7_col87))))) + (((op0_limb_22_col73) * (op1_limb_6_col86))))) + (((op0_limb_23_col74) * (op1_limb_5_col85))))) + (((op0_limb_24_col75) * (op1_limb_4_col84))))) + (((op0_limb_25_col76) * (op1_limb_3_col83))))) + (((op0_limb_26_col77) * (op1_limb_2_col82))))) + (((op0_limb_27_col78) * (op1_limb_1_col81)))); -let conv_tmp_811 = ((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_2_col53) * (op1_limb_27_col107))))) + (((op0_limb_3_col54) * (op1_limb_26_col106))))) + (((op0_limb_4_col55) * (op1_limb_25_col105))))) + (((op0_limb_5_col56) * (op1_limb_24_col104))))) + (((op0_limb_6_col57) * (op1_limb_23_col103))))) + (((op0_limb_7_col58) * (op1_limb_22_col102))))) + (((op0_limb_8_col59) * (op1_limb_21_col101))))) + (((op0_limb_9_col60) * (op1_limb_20_col100))))) + (((op0_limb_10_col61) * (op1_limb_19_col99))))) + (((op0_limb_11_col62) * (op1_limb_18_col98))))) + (((op0_limb_12_col63) * (op1_limb_17_col97))))) + (((op0_limb_13_col64) * (op1_limb_16_col96))))) + (((op0_limb_14_col65) * (op1_limb_15_col95))))) + (((op0_limb_15_col66) * (op1_limb_14_col94))))) + (((op0_limb_16_col67) * (op1_limb_13_col93))))) + (((op0_limb_17_col68) * (op1_limb_12_col92))))) + (((op0_limb_18_col69) * (op1_limb_11_col91))))) + (((op0_limb_19_col70) * (op1_limb_10_col90))))) + (((op0_limb_20_col71) * (op1_limb_9_col89))))) + (((op0_limb_21_col72) * (op1_limb_8_col88))))) + (((op0_limb_22_col73) * (op1_limb_7_col87))))) + (((op0_limb_23_col74) * (op1_limb_6_col86))))) + (((op0_limb_24_col75) * (op1_limb_5_col85))))) + (((op0_limb_25_col76) * (op1_limb_4_col84))))) + (((op0_limb_26_col77) * (op1_limb_3_col83))))) + (((op0_limb_27_col78) * (op1_limb_2_col82)))); -let conv_tmp_812 = ((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_3_col54) * (op1_limb_27_col107))))) + (((op0_limb_4_col55) * (op1_limb_26_col106))))) + (((op0_limb_5_col56) * (op1_limb_25_col105))))) + (((op0_limb_6_col57) * (op1_limb_24_col104))))) + (((op0_limb_7_col58) * (op1_limb_23_col103))))) + (((op0_limb_8_col59) * (op1_limb_22_col102))))) + (((op0_limb_9_col60) * (op1_limb_21_col101))))) + (((op0_limb_10_col61) * (op1_limb_20_col100))))) + (((op0_limb_11_col62) * (op1_limb_19_col99))))) + (((op0_limb_12_col63) * (op1_limb_18_col98))))) + (((op0_limb_13_col64) * (op1_limb_17_col97))))) + (((op0_limb_14_col65) * (op1_limb_16_col96))))) + (((op0_limb_15_col66) * (op1_limb_15_col95))))) + (((op0_limb_16_col67) * (op1_limb_14_col94))))) + (((op0_limb_17_col68) * (op1_limb_13_col93))))) + (((op0_limb_18_col69) * (op1_limb_12_col92))))) + (((op0_limb_19_col70) * (op1_limb_11_col91))))) + (((op0_limb_20_col71) * (op1_limb_10_col90))))) + (((op0_limb_21_col72) * (op1_limb_9_col89))))) + (((op0_limb_22_col73) * (op1_limb_8_col88))))) + (((op0_limb_23_col74) * (op1_limb_7_col87))))) + (((op0_limb_24_col75) * (op1_limb_6_col86))))) + (((op0_limb_25_col76) * (op1_limb_5_col85))))) + (((op0_limb_26_col77) * (op1_limb_4_col84))))) + (((op0_limb_27_col78) * (op1_limb_3_col83)))); -let conv_tmp_813 = ((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_4_col55) * (op1_limb_27_col107))))) + (((op0_limb_5_col56) * (op1_limb_26_col106))))) + (((op0_limb_6_col57) * (op1_limb_25_col105))))) + (((op0_limb_7_col58) * (op1_limb_24_col104))))) + (((op0_limb_8_col59) * (op1_limb_23_col103))))) + (((op0_limb_9_col60) * (op1_limb_22_col102))))) + (((op0_limb_10_col61) * (op1_limb_21_col101))))) + (((op0_limb_11_col62) * (op1_limb_20_col100))))) + (((op0_limb_12_col63) * (op1_limb_19_col99))))) + (((op0_limb_13_col64) * (op1_limb_18_col98))))) + (((op0_limb_14_col65) * (op1_limb_17_col97))))) + (((op0_limb_15_col66) * (op1_limb_16_col96))))) + (((op0_limb_16_col67) * (op1_limb_15_col95))))) + (((op0_limb_17_col68) * (op1_limb_14_col94))))) + (((op0_limb_18_col69) * (op1_limb_13_col93))))) + (((op0_limb_19_col70) * (op1_limb_12_col92))))) + (((op0_limb_20_col71) * (op1_limb_11_col91))))) + (((op0_limb_21_col72) * (op1_limb_10_col90))))) + (((op0_limb_22_col73) * (op1_limb_9_col89))))) + (((op0_limb_23_col74) * (op1_limb_8_col88))))) + (((op0_limb_24_col75) * (op1_limb_7_col87))))) + (((op0_limb_25_col76) * (op1_limb_6_col86))))) + (((op0_limb_26_col77) * (op1_limb_5_col85))))) + (((op0_limb_27_col78) * (op1_limb_4_col84)))); -let conv_tmp_814 = ((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_5_col56) * (op1_limb_27_col107))))) + (((op0_limb_6_col57) * (op1_limb_26_col106))))) + (((op0_limb_7_col58) * (op1_limb_25_col105))))) + (((op0_limb_8_col59) * (op1_limb_24_col104))))) + (((op0_limb_9_col60) * (op1_limb_23_col103))))) + (((op0_limb_10_col61) * (op1_limb_22_col102))))) + (((op0_limb_11_col62) * (op1_limb_21_col101))))) + (((op0_limb_12_col63) * (op1_limb_20_col100))))) + (((op0_limb_13_col64) * (op1_limb_19_col99))))) + (((op0_limb_14_col65) * (op1_limb_18_col98))))) + (((op0_limb_15_col66) * (op1_limb_17_col97))))) + (((op0_limb_16_col67) * (op1_limb_16_col96))))) + (((op0_limb_17_col68) * (op1_limb_15_col95))))) + (((op0_limb_18_col69) * (op1_limb_14_col94))))) + (((op0_limb_19_col70) * (op1_limb_13_col93))))) + (((op0_limb_20_col71) * (op1_limb_12_col92))))) + (((op0_limb_21_col72) * (op1_limb_11_col91))))) + (((op0_limb_22_col73) * (op1_limb_10_col90))))) + (((op0_limb_23_col74) * (op1_limb_9_col89))))) + (((op0_limb_24_col75) * (op1_limb_8_col88))))) + (((op0_limb_25_col76) * (op1_limb_7_col87))))) + (((op0_limb_26_col77) * (op1_limb_6_col86))))) + (((op0_limb_27_col78) * (op1_limb_5_col85)))); -let conv_tmp_815 = ((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_6_col57) * (op1_limb_27_col107))))) + (((op0_limb_7_col58) * (op1_limb_26_col106))))) + (((op0_limb_8_col59) * (op1_limb_25_col105))))) + (((op0_limb_9_col60) * (op1_limb_24_col104))))) + (((op0_limb_10_col61) * (op1_limb_23_col103))))) + (((op0_limb_11_col62) * (op1_limb_22_col102))))) + (((op0_limb_12_col63) * (op1_limb_21_col101))))) + (((op0_limb_13_col64) * (op1_limb_20_col100))))) + (((op0_limb_14_col65) * (op1_limb_19_col99))))) + (((op0_limb_15_col66) * (op1_limb_18_col98))))) + (((op0_limb_16_col67) * (op1_limb_17_col97))))) + (((op0_limb_17_col68) * (op1_limb_16_col96))))) + (((op0_limb_18_col69) * (op1_limb_15_col95))))) + (((op0_limb_19_col70) * (op1_limb_14_col94))))) + (((op0_limb_20_col71) * (op1_limb_13_col93))))) + (((op0_limb_21_col72) * (op1_limb_12_col92))))) + (((op0_limb_22_col73) * (op1_limb_11_col91))))) + (((op0_limb_23_col74) * (op1_limb_10_col90))))) + (((op0_limb_24_col75) * (op1_limb_9_col89))))) + (((op0_limb_25_col76) * (op1_limb_8_col88))))) + (((op0_limb_26_col77) * (op1_limb_7_col87))))) + (((op0_limb_27_col78) * (op1_limb_6_col86)))); -let conv_tmp_816 = ((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_7_col58) * (op1_limb_27_col107))))) + (((op0_limb_8_col59) * (op1_limb_26_col106))))) + (((op0_limb_9_col60) * (op1_limb_25_col105))))) + (((op0_limb_10_col61) * (op1_limb_24_col104))))) + (((op0_limb_11_col62) * (op1_limb_23_col103))))) + (((op0_limb_12_col63) * (op1_limb_22_col102))))) + (((op0_limb_13_col64) * (op1_limb_21_col101))))) + (((op0_limb_14_col65) * (op1_limb_20_col100))))) + (((op0_limb_15_col66) * (op1_limb_19_col99))))) + (((op0_limb_16_col67) * (op1_limb_18_col98))))) + (((op0_limb_17_col68) * (op1_limb_17_col97))))) + (((op0_limb_18_col69) * (op1_limb_16_col96))))) + (((op0_limb_19_col70) * (op1_limb_15_col95))))) + (((op0_limb_20_col71) * (op1_limb_14_col94))))) + (((op0_limb_21_col72) * (op1_limb_13_col93))))) + (((op0_limb_22_col73) * (op1_limb_12_col92))))) + (((op0_limb_23_col74) * (op1_limb_11_col91))))) + (((op0_limb_24_col75) * (op1_limb_10_col90))))) + (((op0_limb_25_col76) * (op1_limb_9_col89))))) + (((op0_limb_26_col77) * (op1_limb_8_col88))))) + (((op0_limb_27_col78) * (op1_limb_7_col87)))); -let conv_tmp_817 = ((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_8_col59) * (op1_limb_27_col107))))) + (((op0_limb_9_col60) * (op1_limb_26_col106))))) + (((op0_limb_10_col61) * (op1_limb_25_col105))))) + (((op0_limb_11_col62) * (op1_limb_24_col104))))) + (((op0_limb_12_col63) * (op1_limb_23_col103))))) + (((op0_limb_13_col64) * (op1_limb_22_col102))))) + (((op0_limb_14_col65) * (op1_limb_21_col101))))) + (((op0_limb_15_col66) * (op1_limb_20_col100))))) + (((op0_limb_16_col67) * (op1_limb_19_col99))))) + (((op0_limb_17_col68) * (op1_limb_18_col98))))) + (((op0_limb_18_col69) * (op1_limb_17_col97))))) + (((op0_limb_19_col70) * (op1_limb_16_col96))))) + (((op0_limb_20_col71) * (op1_limb_15_col95))))) + (((op0_limb_21_col72) * (op1_limb_14_col94))))) + (((op0_limb_22_col73) * (op1_limb_13_col93))))) + (((op0_limb_23_col74) * (op1_limb_12_col92))))) + (((op0_limb_24_col75) * (op1_limb_11_col91))))) + (((op0_limb_25_col76) * (op1_limb_10_col90))))) + (((op0_limb_26_col77) * (op1_limb_9_col89))))) + (((op0_limb_27_col78) * (op1_limb_8_col88)))); -let conv_tmp_818 = ((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_9_col60) * (op1_limb_27_col107))))) + (((op0_limb_10_col61) * (op1_limb_26_col106))))) + (((op0_limb_11_col62) * (op1_limb_25_col105))))) + (((op0_limb_12_col63) * (op1_limb_24_col104))))) + (((op0_limb_13_col64) * (op1_limb_23_col103))))) + (((op0_limb_14_col65) * (op1_limb_22_col102))))) + (((op0_limb_15_col66) * (op1_limb_21_col101))))) + (((op0_limb_16_col67) * (op1_limb_20_col100))))) + (((op0_limb_17_col68) * (op1_limb_19_col99))))) + (((op0_limb_18_col69) * (op1_limb_18_col98))))) + (((op0_limb_19_col70) * (op1_limb_17_col97))))) + (((op0_limb_20_col71) * (op1_limb_16_col96))))) + (((op0_limb_21_col72) * (op1_limb_15_col95))))) + (((op0_limb_22_col73) * (op1_limb_14_col94))))) + (((op0_limb_23_col74) * (op1_limb_13_col93))))) + (((op0_limb_24_col75) * (op1_limb_12_col92))))) + (((op0_limb_25_col76) * (op1_limb_11_col91))))) + (((op0_limb_26_col77) * (op1_limb_10_col90))))) + (((op0_limb_27_col78) * (op1_limb_9_col89)))); -let conv_tmp_819 = ((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_10_col61) * (op1_limb_27_col107))))) + (((op0_limb_11_col62) * (op1_limb_26_col106))))) + (((op0_limb_12_col63) * (op1_limb_25_col105))))) + (((op0_limb_13_col64) * (op1_limb_24_col104))))) + (((op0_limb_14_col65) * (op1_limb_23_col103))))) + (((op0_limb_15_col66) * (op1_limb_22_col102))))) + (((op0_limb_16_col67) * (op1_limb_21_col101))))) + (((op0_limb_17_col68) * (op1_limb_20_col100))))) + (((op0_limb_18_col69) * (op1_limb_19_col99))))) + (((op0_limb_19_col70) * (op1_limb_18_col98))))) + (((op0_limb_20_col71) * (op1_limb_17_col97))))) + (((op0_limb_21_col72) * (op1_limb_16_col96))))) + (((op0_limb_22_col73) * (op1_limb_15_col95))))) + (((op0_limb_23_col74) * (op1_limb_14_col94))))) + (((op0_limb_24_col75) * (op1_limb_13_col93))))) + (((op0_limb_25_col76) * (op1_limb_12_col92))))) + (((op0_limb_26_col77) * (op1_limb_11_col91))))) + (((op0_limb_27_col78) * (op1_limb_10_col90)))); -let conv_tmp_820 = ((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_11_col62) * (op1_limb_27_col107))))) + (((op0_limb_12_col63) * (op1_limb_26_col106))))) + (((op0_limb_13_col64) * (op1_limb_25_col105))))) + (((op0_limb_14_col65) * (op1_limb_24_col104))))) + (((op0_limb_15_col66) * (op1_limb_23_col103))))) + (((op0_limb_16_col67) * (op1_limb_22_col102))))) + (((op0_limb_17_col68) * (op1_limb_21_col101))))) + (((op0_limb_18_col69) * (op1_limb_20_col100))))) + (((op0_limb_19_col70) * (op1_limb_19_col99))))) + (((op0_limb_20_col71) * (op1_limb_18_col98))))) + (((op0_limb_21_col72) * (op1_limb_17_col97))))) + (((op0_limb_22_col73) * (op1_limb_16_col96))))) + (((op0_limb_23_col74) * (op1_limb_15_col95))))) + (((op0_limb_24_col75) * (op1_limb_14_col94))))) + (((op0_limb_25_col76) * (op1_limb_13_col93))))) + (((op0_limb_26_col77) * (op1_limb_12_col92))))) + (((op0_limb_27_col78) * (op1_limb_11_col91)))); -let conv_tmp_821 = ((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_12_col63) * (op1_limb_27_col107))))) + (((op0_limb_13_col64) * (op1_limb_26_col106))))) + (((op0_limb_14_col65) * (op1_limb_25_col105))))) + (((op0_limb_15_col66) * (op1_limb_24_col104))))) + (((op0_limb_16_col67) * (op1_limb_23_col103))))) + (((op0_limb_17_col68) * (op1_limb_22_col102))))) + (((op0_limb_18_col69) * (op1_limb_21_col101))))) + (((op0_limb_19_col70) * (op1_limb_20_col100))))) + (((op0_limb_20_col71) * (op1_limb_19_col99))))) + (((op0_limb_21_col72) * (op1_limb_18_col98))))) + (((op0_limb_22_col73) * (op1_limb_17_col97))))) + (((op0_limb_23_col74) * (op1_limb_16_col96))))) + (((op0_limb_24_col75) * (op1_limb_15_col95))))) + (((op0_limb_25_col76) * (op1_limb_14_col94))))) + (((op0_limb_26_col77) * (op1_limb_13_col93))))) + (((op0_limb_27_col78) * (op1_limb_12_col92)))); -let conv_tmp_822 = ((((((((((((((((((((((((((((((M31_0) + (((op0_limb_13_col64) * (op1_limb_27_col107))))) + (((op0_limb_14_col65) * (op1_limb_26_col106))))) + (((op0_limb_15_col66) * (op1_limb_25_col105))))) + (((op0_limb_16_col67) * (op1_limb_24_col104))))) + (((op0_limb_17_col68) * (op1_limb_23_col103))))) + (((op0_limb_18_col69) * (op1_limb_22_col102))))) + (((op0_limb_19_col70) * (op1_limb_21_col101))))) + (((op0_limb_20_col71) * (op1_limb_20_col100))))) + (((op0_limb_21_col72) * (op1_limb_19_col99))))) + (((op0_limb_22_col73) * (op1_limb_18_col98))))) + (((op0_limb_23_col74) * (op1_limb_17_col97))))) + (((op0_limb_24_col75) * (op1_limb_16_col96))))) + (((op0_limb_25_col76) * (op1_limb_15_col95))))) + (((op0_limb_26_col77) * (op1_limb_14_col94))))) + (((op0_limb_27_col78) * (op1_limb_13_col93)))); -let conv_tmp_823 = ((((((((((((((((((((((((((((M31_0) + (((op0_limb_14_col65) * (op1_limb_27_col107))))) + (((op0_limb_15_col66) * (op1_limb_26_col106))))) + (((op0_limb_16_col67) * (op1_limb_25_col105))))) + (((op0_limb_17_col68) * (op1_limb_24_col104))))) + (((op0_limb_18_col69) * (op1_limb_23_col103))))) + (((op0_limb_19_col70) * (op1_limb_22_col102))))) + (((op0_limb_20_col71) * (op1_limb_21_col101))))) + (((op0_limb_21_col72) * (op1_limb_20_col100))))) + (((op0_limb_22_col73) * (op1_limb_19_col99))))) + (((op0_limb_23_col74) * (op1_limb_18_col98))))) + (((op0_limb_24_col75) * (op1_limb_17_col97))))) + (((op0_limb_25_col76) * (op1_limb_16_col96))))) + (((op0_limb_26_col77) * (op1_limb_15_col95))))) + (((op0_limb_27_col78) * (op1_limb_14_col94)))); -let conv_tmp_824 = ((((((((((((((((((((((((((M31_0) + (((op0_limb_15_col66) * (op1_limb_27_col107))))) + (((op0_limb_16_col67) * (op1_limb_26_col106))))) + (((op0_limb_17_col68) * (op1_limb_25_col105))))) + (((op0_limb_18_col69) * (op1_limb_24_col104))))) + (((op0_limb_19_col70) * (op1_limb_23_col103))))) + (((op0_limb_20_col71) * (op1_limb_22_col102))))) + (((op0_limb_21_col72) * (op1_limb_21_col101))))) + (((op0_limb_22_col73) * (op1_limb_20_col100))))) + (((op0_limb_23_col74) * (op1_limb_19_col99))))) + (((op0_limb_24_col75) * (op1_limb_18_col98))))) + (((op0_limb_25_col76) * (op1_limb_17_col97))))) + (((op0_limb_26_col77) * (op1_limb_16_col96))))) + (((op0_limb_27_col78) * (op1_limb_15_col95)))); -let conv_tmp_825 = ((((((((((((((((((((((((M31_0) + (((op0_limb_16_col67) * (op1_limb_27_col107))))) + (((op0_limb_17_col68) * (op1_limb_26_col106))))) + (((op0_limb_18_col69) * (op1_limb_25_col105))))) + (((op0_limb_19_col70) * (op1_limb_24_col104))))) + (((op0_limb_20_col71) * (op1_limb_23_col103))))) + (((op0_limb_21_col72) * (op1_limb_22_col102))))) + (((op0_limb_22_col73) * (op1_limb_21_col101))))) + (((op0_limb_23_col74) * (op1_limb_20_col100))))) + (((op0_limb_24_col75) * (op1_limb_19_col99))))) + (((op0_limb_25_col76) * (op1_limb_18_col98))))) + (((op0_limb_26_col77) * (op1_limb_17_col97))))) + (((op0_limb_27_col78) * (op1_limb_16_col96)))); -let conv_tmp_826 = ((((((((((((((((((((((M31_0) + (((op0_limb_17_col68) * (op1_limb_27_col107))))) + (((op0_limb_18_col69) * (op1_limb_26_col106))))) + (((op0_limb_19_col70) * (op1_limb_25_col105))))) + (((op0_limb_20_col71) * (op1_limb_24_col104))))) + (((op0_limb_21_col72) * (op1_limb_23_col103))))) + (((op0_limb_22_col73) * (op1_limb_22_col102))))) + (((op0_limb_23_col74) * (op1_limb_21_col101))))) + (((op0_limb_24_col75) * (op1_limb_20_col100))))) + (((op0_limb_25_col76) * (op1_limb_19_col99))))) + (((op0_limb_26_col77) * (op1_limb_18_col98))))) + (((op0_limb_27_col78) * (op1_limb_17_col97)))); -let conv_tmp_827 = ((((((((((((((((((((M31_0) + (((op0_limb_18_col69) * (op1_limb_27_col107))))) + (((op0_limb_19_col70) * (op1_limb_26_col106))))) + (((op0_limb_20_col71) * (op1_limb_25_col105))))) + (((op0_limb_21_col72) * (op1_limb_24_col104))))) + (((op0_limb_22_col73) * (op1_limb_23_col103))))) + (((op0_limb_23_col74) * (op1_limb_22_col102))))) + (((op0_limb_24_col75) * (op1_limb_21_col101))))) + (((op0_limb_25_col76) * (op1_limb_20_col100))))) + (((op0_limb_26_col77) * (op1_limb_19_col99))))) + (((op0_limb_27_col78) * (op1_limb_18_col98)))); -let conv_tmp_828 = ((((((((((((((((((M31_0) + (((op0_limb_19_col70) * (op1_limb_27_col107))))) + (((op0_limb_20_col71) * (op1_limb_26_col106))))) + (((op0_limb_21_col72) * (op1_limb_25_col105))))) + (((op0_limb_22_col73) * (op1_limb_24_col104))))) + (((op0_limb_23_col74) * (op1_limb_23_col103))))) + (((op0_limb_24_col75) * (op1_limb_22_col102))))) + (((op0_limb_25_col76) * (op1_limb_21_col101))))) + (((op0_limb_26_col77) * (op1_limb_20_col100))))) + (((op0_limb_27_col78) * (op1_limb_19_col99)))); -let conv_tmp_829 = ((((((((((((((((M31_0) + (((op0_limb_20_col71) * (op1_limb_27_col107))))) + (((op0_limb_21_col72) * (op1_limb_26_col106))))) + (((op0_limb_22_col73) * (op1_limb_25_col105))))) + (((op0_limb_23_col74) * (op1_limb_24_col104))))) + (((op0_limb_24_col75) * (op1_limb_23_col103))))) + (((op0_limb_25_col76) * (op1_limb_22_col102))))) + (((op0_limb_26_col77) * (op1_limb_21_col101))))) + (((op0_limb_27_col78) * (op1_limb_20_col100)))); -let conv_tmp_830 = ((((((((((((((M31_0) + (((op0_limb_21_col72) * (op1_limb_27_col107))))) + (((op0_limb_22_col73) * (op1_limb_26_col106))))) + (((op0_limb_23_col74) * (op1_limb_25_col105))))) + (((op0_limb_24_col75) * (op1_limb_24_col104))))) + (((op0_limb_25_col76) * (op1_limb_23_col103))))) + (((op0_limb_26_col77) * (op1_limb_22_col102))))) + (((op0_limb_27_col78) * (op1_limb_21_col101)))); -let conv_tmp_831 = ((((((((((((M31_0) + (((op0_limb_22_col73) * (op1_limb_27_col107))))) + (((op0_limb_23_col74) * (op1_limb_26_col106))))) + (((op0_limb_24_col75) * (op1_limb_25_col105))))) + (((op0_limb_25_col76) * (op1_limb_24_col104))))) + (((op0_limb_26_col77) * (op1_limb_23_col103))))) + (((op0_limb_27_col78) * (op1_limb_22_col102)))); -let conv_tmp_832 = ((((((((((M31_0) + (((op0_limb_23_col74) * (op1_limb_27_col107))))) + (((op0_limb_24_col75) * (op1_limb_26_col106))))) + (((op0_limb_25_col76) * (op1_limb_25_col105))))) + (((op0_limb_26_col77) * (op1_limb_24_col104))))) + (((op0_limb_27_col78) * (op1_limb_23_col103)))); -let conv_tmp_833 = ((((((((M31_0) + (((op0_limb_24_col75) * (op1_limb_27_col107))))) + (((op0_limb_25_col76) * (op1_limb_26_col106))))) + (((op0_limb_26_col77) * (op1_limb_25_col105))))) + (((op0_limb_27_col78) * (op1_limb_24_col104)))); -let conv_tmp_834 = ((((((M31_0) + (((op0_limb_25_col76) * (op1_limb_27_col107))))) + (((op0_limb_26_col77) * (op1_limb_26_col106))))) + (((op0_limb_27_col78) * (op1_limb_25_col105)))); -let conv_tmp_835 = ((((M31_0) + (((op0_limb_26_col77) * (op1_limb_27_col107))))) + (((op0_limb_27_col78) * (op1_limb_26_col106)))); -let conv_tmp_836 = ((M31_0) + (((op0_limb_27_col78) * (op1_limb_27_col107)))); -let conv_mod_tmp_837 = ((((((M31_0) + (((M31_32) * (conv_tmp_782))))) - (((M31_4) * (conv_tmp_803))))) + (((M31_8) * (conv_tmp_831)))); -let conv_mod_tmp_838 = ((((((((M31_0) + (((M31_1) * (conv_tmp_782))))) + (((M31_32) * (conv_tmp_783))))) - (((M31_4) * (conv_tmp_804))))) + (((M31_8) * (conv_tmp_832)))); -let conv_mod_tmp_839 = ((((((((M31_0) + (((M31_1) * (conv_tmp_783))))) + (((M31_32) * (conv_tmp_784))))) - (((M31_4) * (conv_tmp_805))))) + (((M31_8) * (conv_tmp_833)))); -let conv_mod_tmp_840 = ((((((((M31_0) + (((M31_1) * (conv_tmp_784))))) + (((M31_32) * (conv_tmp_785))))) - (((M31_4) * (conv_tmp_806))))) + (((M31_8) * (conv_tmp_834)))); -let conv_mod_tmp_841 = ((((((((M31_0) + (((M31_1) * (conv_tmp_785))))) + (((M31_32) * (conv_tmp_786))))) - (((M31_4) * (conv_tmp_807))))) + (((M31_8) * (conv_tmp_835)))); -let conv_mod_tmp_842 = ((((((((M31_0) + (((M31_1) * (conv_tmp_786))))) + (((M31_32) * (conv_tmp_787))))) - (((M31_4) * (conv_tmp_808))))) + (((M31_8) * (conv_tmp_836)))); -let conv_mod_tmp_843 = ((((((M31_0) + (((M31_1) * (conv_tmp_787))))) + (((M31_32) * (conv_tmp_788))))) - (((M31_4) * (conv_tmp_809)))); -let conv_mod_tmp_844 = ((((((((M31_0) + (((M31_2) * (conv_tmp_782))))) + (((M31_1) * (conv_tmp_788))))) + (((M31_32) * (conv_tmp_789))))) - (((M31_4) * (conv_tmp_810)))); -let conv_mod_tmp_845 = ((((((((M31_0) + (((M31_2) * (conv_tmp_783))))) + (((M31_1) * (conv_tmp_789))))) + (((M31_32) * (conv_tmp_790))))) - (((M31_4) * (conv_tmp_811)))); -let conv_mod_tmp_846 = ((((((((M31_0) + (((M31_2) * (conv_tmp_784))))) + (((M31_1) * (conv_tmp_790))))) + (((M31_32) * (conv_tmp_791))))) - (((M31_4) * (conv_tmp_812)))); -let conv_mod_tmp_847 = ((((((((M31_0) + (((M31_2) * (conv_tmp_785))))) + (((M31_1) * (conv_tmp_791))))) + (((M31_32) * (conv_tmp_792))))) - (((M31_4) * (conv_tmp_813)))); -let conv_mod_tmp_848 = ((((((((M31_0) + (((M31_2) * (conv_tmp_786))))) + (((M31_1) * (conv_tmp_792))))) + (((M31_32) * (conv_tmp_793))))) - (((M31_4) * (conv_tmp_814)))); -let conv_mod_tmp_849 = ((((((((M31_0) + (((M31_2) * (conv_tmp_787))))) + (((M31_1) * (conv_tmp_793))))) + (((M31_32) * (conv_tmp_794))))) - (((M31_4) * (conv_tmp_815)))); -let conv_mod_tmp_850 = ((((((((M31_0) + (((M31_2) * (conv_tmp_788))))) + (((M31_1) * (conv_tmp_794))))) + (((M31_32) * (conv_tmp_795))))) - (((M31_4) * (conv_tmp_816)))); -let conv_mod_tmp_851 = ((((((((M31_0) + (((M31_2) * (conv_tmp_789))))) + (((M31_1) * (conv_tmp_795))))) + (((M31_32) * (conv_tmp_796))))) - (((M31_4) * (conv_tmp_817)))); -let conv_mod_tmp_852 = ((((((((M31_0) + (((M31_2) * (conv_tmp_790))))) + (((M31_1) * (conv_tmp_796))))) + (((M31_32) * (conv_tmp_797))))) - (((M31_4) * (conv_tmp_818)))); -let conv_mod_tmp_853 = ((((((((M31_0) + (((M31_2) * (conv_tmp_791))))) + (((M31_1) * (conv_tmp_797))))) + (((M31_32) * (conv_tmp_798))))) - (((M31_4) * (conv_tmp_819)))); -let conv_mod_tmp_854 = ((((((((M31_0) + (((M31_2) * (conv_tmp_792))))) + (((M31_1) * (conv_tmp_798))))) + (((M31_32) * (conv_tmp_799))))) - (((M31_4) * (conv_tmp_820)))); -let conv_mod_tmp_855 = ((((((((M31_0) + (((M31_2) * (conv_tmp_793))))) + (((M31_1) * (conv_tmp_799))))) + (((M31_32) * (conv_tmp_800))))) - (((M31_4) * (conv_tmp_821)))); -let conv_mod_tmp_856 = ((((((((M31_0) + (((M31_2) * (conv_tmp_794))))) + (((M31_1) * (conv_tmp_800))))) + (((M31_32) * (conv_tmp_801))))) - (((M31_4) * (conv_tmp_822)))); -let conv_mod_tmp_857 = ((((((((M31_0) + (((M31_2) * (conv_tmp_795))))) + (((M31_1) * (conv_tmp_801))))) + (((M31_32) * (conv_tmp_802))))) - (((M31_4) * (conv_tmp_823)))); -let conv_mod_tmp_858 = ((((((((M31_0) + (((M31_2) * (conv_tmp_796))))) + (((M31_1) * (conv_tmp_802))))) - (((M31_4) * (conv_tmp_824))))) + (((M31_64) * (conv_tmp_831)))); -let conv_mod_tmp_859 = ((((((((M31_0) + (((M31_2) * (conv_tmp_797))))) - (((M31_4) * (conv_tmp_825))))) + (((M31_2) * (conv_tmp_831))))) + (((M31_64) * (conv_tmp_832)))); -let conv_mod_tmp_860 = ((((((((M31_0) + (((M31_2) * (conv_tmp_798))))) - (((M31_4) * (conv_tmp_826))))) + (((M31_2) * (conv_tmp_832))))) + (((M31_64) * (conv_tmp_833)))); -let conv_mod_tmp_861 = ((((((((M31_0) + (((M31_2) * (conv_tmp_799))))) - (((M31_4) * (conv_tmp_827))))) + (((M31_2) * (conv_tmp_833))))) + (((M31_64) * (conv_tmp_834)))); -let conv_mod_tmp_862 = ((((((((M31_0) + (((M31_2) * (conv_tmp_800))))) - (((M31_4) * (conv_tmp_828))))) + (((M31_2) * (conv_tmp_834))))) + (((M31_64) * (conv_tmp_835)))); -let conv_mod_tmp_863 = ((((((((M31_0) + (((M31_2) * (conv_tmp_801))))) - (((M31_4) * (conv_tmp_829))))) + (((M31_2) * (conv_tmp_835))))) + (((M31_64) * (conv_tmp_836)))); -let conv_mod_tmp_864 = ((((((M31_0) + (((M31_2) * (conv_tmp_802))))) - (((M31_4) * (conv_tmp_830))))) + (((M31_2) * (conv_tmp_836)))); -let k_mod_2_18_biased_tmp_865 = ((((((PackedUInt32::from_m31(((conv_mod_tmp_837) + (M31_134217728)))) + (((((PackedUInt32::from_m31(((conv_mod_tmp_838) + (M31_134217728)))) & (UInt32_511))) << (UInt32_9))))) + (UInt32_65536))) & (UInt32_262143)); -let k_col165 = ((k_mod_2_18_biased_tmp_865.low().as_m31()) + (((((k_mod_2_18_biased_tmp_865.high().as_m31()) - (M31_1))) * (M31_65536)))); + //VerifyMul252. + + +let conv_tmp_5745_62 = ((((M31_0) - (mul_res_limb_0_col137))) + (((op0_limb_0_col51) * (op1_limb_0_col80)))); +let conv_tmp_5745_63 = ((((((M31_0) - (mul_res_limb_1_col138))) + (((op0_limb_0_col51) * (op1_limb_1_col81))))) + (((op0_limb_1_col52) * (op1_limb_0_col80)))); +let conv_tmp_5745_64 = ((((((((M31_0) - (mul_res_limb_2_col139))) + (((op0_limb_0_col51) * (op1_limb_2_col82))))) + (((op0_limb_1_col52) * (op1_limb_1_col81))))) + (((op0_limb_2_col53) * (op1_limb_0_col80)))); +let conv_tmp_5745_65 = ((((((((((M31_0) - (mul_res_limb_3_col140))) + (((op0_limb_0_col51) * (op1_limb_3_col83))))) + (((op0_limb_1_col52) * (op1_limb_2_col82))))) + (((op0_limb_2_col53) * (op1_limb_1_col81))))) + (((op0_limb_3_col54) * (op1_limb_0_col80)))); +let conv_tmp_5745_66 = ((((((((((((M31_0) - (mul_res_limb_4_col141))) + (((op0_limb_0_col51) * (op1_limb_4_col84))))) + (((op0_limb_1_col52) * (op1_limb_3_col83))))) + (((op0_limb_2_col53) * (op1_limb_2_col82))))) + (((op0_limb_3_col54) * (op1_limb_1_col81))))) + (((op0_limb_4_col55) * (op1_limb_0_col80)))); +let conv_tmp_5745_67 = ((((((((((((((M31_0) - (mul_res_limb_5_col142))) + (((op0_limb_0_col51) * (op1_limb_5_col85))))) + (((op0_limb_1_col52) * (op1_limb_4_col84))))) + (((op0_limb_2_col53) * (op1_limb_3_col83))))) + (((op0_limb_3_col54) * (op1_limb_2_col82))))) + (((op0_limb_4_col55) * (op1_limb_1_col81))))) + (((op0_limb_5_col56) * (op1_limb_0_col80)))); +let conv_tmp_5745_68 = ((((((((((((((((M31_0) - (mul_res_limb_6_col143))) + (((op0_limb_0_col51) * (op1_limb_6_col86))))) + (((op0_limb_1_col52) * (op1_limb_5_col85))))) + (((op0_limb_2_col53) * (op1_limb_4_col84))))) + (((op0_limb_3_col54) * (op1_limb_3_col83))))) + (((op0_limb_4_col55) * (op1_limb_2_col82))))) + (((op0_limb_5_col56) * (op1_limb_1_col81))))) + (((op0_limb_6_col57) * (op1_limb_0_col80)))); +let conv_tmp_5745_69 = ((((((((((((((((((M31_0) - (mul_res_limb_7_col144))) + (((op0_limb_0_col51) * (op1_limb_7_col87))))) + (((op0_limb_1_col52) * (op1_limb_6_col86))))) + (((op0_limb_2_col53) * (op1_limb_5_col85))))) + (((op0_limb_3_col54) * (op1_limb_4_col84))))) + (((op0_limb_4_col55) * (op1_limb_3_col83))))) + (((op0_limb_5_col56) * (op1_limb_2_col82))))) + (((op0_limb_6_col57) * (op1_limb_1_col81))))) + (((op0_limb_7_col58) * (op1_limb_0_col80)))); +let conv_tmp_5745_70 = ((((((((((((((((((((M31_0) - (mul_res_limb_8_col145))) + (((op0_limb_0_col51) * (op1_limb_8_col88))))) + (((op0_limb_1_col52) * (op1_limb_7_col87))))) + (((op0_limb_2_col53) * (op1_limb_6_col86))))) + (((op0_limb_3_col54) * (op1_limb_5_col85))))) + (((op0_limb_4_col55) * (op1_limb_4_col84))))) + (((op0_limb_5_col56) * (op1_limb_3_col83))))) + (((op0_limb_6_col57) * (op1_limb_2_col82))))) + (((op0_limb_7_col58) * (op1_limb_1_col81))))) + (((op0_limb_8_col59) * (op1_limb_0_col80)))); +let conv_tmp_5745_71 = ((((((((((((((((((((((M31_0) - (mul_res_limb_9_col146))) + (((op0_limb_0_col51) * (op1_limb_9_col89))))) + (((op0_limb_1_col52) * (op1_limb_8_col88))))) + (((op0_limb_2_col53) * (op1_limb_7_col87))))) + (((op0_limb_3_col54) * (op1_limb_6_col86))))) + (((op0_limb_4_col55) * (op1_limb_5_col85))))) + (((op0_limb_5_col56) * (op1_limb_4_col84))))) + (((op0_limb_6_col57) * (op1_limb_3_col83))))) + (((op0_limb_7_col58) * (op1_limb_2_col82))))) + (((op0_limb_8_col59) * (op1_limb_1_col81))))) + (((op0_limb_9_col60) * (op1_limb_0_col80)))); +let conv_tmp_5745_72 = ((((((((((((((((((((((((M31_0) - (mul_res_limb_10_col147))) + (((op0_limb_0_col51) * (op1_limb_10_col90))))) + (((op0_limb_1_col52) * (op1_limb_9_col89))))) + (((op0_limb_2_col53) * (op1_limb_8_col88))))) + (((op0_limb_3_col54) * (op1_limb_7_col87))))) + (((op0_limb_4_col55) * (op1_limb_6_col86))))) + (((op0_limb_5_col56) * (op1_limb_5_col85))))) + (((op0_limb_6_col57) * (op1_limb_4_col84))))) + (((op0_limb_7_col58) * (op1_limb_3_col83))))) + (((op0_limb_8_col59) * (op1_limb_2_col82))))) + (((op0_limb_9_col60) * (op1_limb_1_col81))))) + (((op0_limb_10_col61) * (op1_limb_0_col80)))); +let conv_tmp_5745_73 = ((((((((((((((((((((((((((M31_0) - (mul_res_limb_11_col148))) + (((op0_limb_0_col51) * (op1_limb_11_col91))))) + (((op0_limb_1_col52) * (op1_limb_10_col90))))) + (((op0_limb_2_col53) * (op1_limb_9_col89))))) + (((op0_limb_3_col54) * (op1_limb_8_col88))))) + (((op0_limb_4_col55) * (op1_limb_7_col87))))) + (((op0_limb_5_col56) * (op1_limb_6_col86))))) + (((op0_limb_6_col57) * (op1_limb_5_col85))))) + (((op0_limb_7_col58) * (op1_limb_4_col84))))) + (((op0_limb_8_col59) * (op1_limb_3_col83))))) + (((op0_limb_9_col60) * (op1_limb_2_col82))))) + (((op0_limb_10_col61) * (op1_limb_1_col81))))) + (((op0_limb_11_col62) * (op1_limb_0_col80)))); +let conv_tmp_5745_74 = ((((((((((((((((((((((((((((M31_0) - (mul_res_limb_12_col149))) + (((op0_limb_0_col51) * (op1_limb_12_col92))))) + (((op0_limb_1_col52) * (op1_limb_11_col91))))) + (((op0_limb_2_col53) * (op1_limb_10_col90))))) + (((op0_limb_3_col54) * (op1_limb_9_col89))))) + (((op0_limb_4_col55) * (op1_limb_8_col88))))) + (((op0_limb_5_col56) * (op1_limb_7_col87))))) + (((op0_limb_6_col57) * (op1_limb_6_col86))))) + (((op0_limb_7_col58) * (op1_limb_5_col85))))) + (((op0_limb_8_col59) * (op1_limb_4_col84))))) + (((op0_limb_9_col60) * (op1_limb_3_col83))))) + (((op0_limb_10_col61) * (op1_limb_2_col82))))) + (((op0_limb_11_col62) * (op1_limb_1_col81))))) + (((op0_limb_12_col63) * (op1_limb_0_col80)))); +let conv_tmp_5745_75 = ((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_13_col150))) + (((op0_limb_0_col51) * (op1_limb_13_col93))))) + (((op0_limb_1_col52) * (op1_limb_12_col92))))) + (((op0_limb_2_col53) * (op1_limb_11_col91))))) + (((op0_limb_3_col54) * (op1_limb_10_col90))))) + (((op0_limb_4_col55) * (op1_limb_9_col89))))) + (((op0_limb_5_col56) * (op1_limb_8_col88))))) + (((op0_limb_6_col57) * (op1_limb_7_col87))))) + (((op0_limb_7_col58) * (op1_limb_6_col86))))) + (((op0_limb_8_col59) * (op1_limb_5_col85))))) + (((op0_limb_9_col60) * (op1_limb_4_col84))))) + (((op0_limb_10_col61) * (op1_limb_3_col83))))) + (((op0_limb_11_col62) * (op1_limb_2_col82))))) + (((op0_limb_12_col63) * (op1_limb_1_col81))))) + (((op0_limb_13_col64) * (op1_limb_0_col80)))); +let conv_tmp_5745_76 = ((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_14_col151))) + (((op0_limb_0_col51) * (op1_limb_14_col94))))) + (((op0_limb_1_col52) * (op1_limb_13_col93))))) + (((op0_limb_2_col53) * (op1_limb_12_col92))))) + (((op0_limb_3_col54) * (op1_limb_11_col91))))) + (((op0_limb_4_col55) * (op1_limb_10_col90))))) + (((op0_limb_5_col56) * (op1_limb_9_col89))))) + (((op0_limb_6_col57) * (op1_limb_8_col88))))) + (((op0_limb_7_col58) * (op1_limb_7_col87))))) + (((op0_limb_8_col59) * (op1_limb_6_col86))))) + (((op0_limb_9_col60) * (op1_limb_5_col85))))) + (((op0_limb_10_col61) * (op1_limb_4_col84))))) + (((op0_limb_11_col62) * (op1_limb_3_col83))))) + (((op0_limb_12_col63) * (op1_limb_2_col82))))) + (((op0_limb_13_col64) * (op1_limb_1_col81))))) + (((op0_limb_14_col65) * (op1_limb_0_col80)))); +let conv_tmp_5745_77 = ((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_15_col152))) + (((op0_limb_0_col51) * (op1_limb_15_col95))))) + (((op0_limb_1_col52) * (op1_limb_14_col94))))) + (((op0_limb_2_col53) * (op1_limb_13_col93))))) + (((op0_limb_3_col54) * (op1_limb_12_col92))))) + (((op0_limb_4_col55) * (op1_limb_11_col91))))) + (((op0_limb_5_col56) * (op1_limb_10_col90))))) + (((op0_limb_6_col57) * (op1_limb_9_col89))))) + (((op0_limb_7_col58) * (op1_limb_8_col88))))) + (((op0_limb_8_col59) * (op1_limb_7_col87))))) + (((op0_limb_9_col60) * (op1_limb_6_col86))))) + (((op0_limb_10_col61) * (op1_limb_5_col85))))) + (((op0_limb_11_col62) * (op1_limb_4_col84))))) + (((op0_limb_12_col63) * (op1_limb_3_col83))))) + (((op0_limb_13_col64) * (op1_limb_2_col82))))) + (((op0_limb_14_col65) * (op1_limb_1_col81))))) + (((op0_limb_15_col66) * (op1_limb_0_col80)))); +let conv_tmp_5745_78 = ((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_16_col153))) + (((op0_limb_0_col51) * (op1_limb_16_col96))))) + (((op0_limb_1_col52) * (op1_limb_15_col95))))) + (((op0_limb_2_col53) * (op1_limb_14_col94))))) + (((op0_limb_3_col54) * (op1_limb_13_col93))))) + (((op0_limb_4_col55) * (op1_limb_12_col92))))) + (((op0_limb_5_col56) * (op1_limb_11_col91))))) + (((op0_limb_6_col57) * (op1_limb_10_col90))))) + (((op0_limb_7_col58) * (op1_limb_9_col89))))) + (((op0_limb_8_col59) * (op1_limb_8_col88))))) + (((op0_limb_9_col60) * (op1_limb_7_col87))))) + (((op0_limb_10_col61) * (op1_limb_6_col86))))) + (((op0_limb_11_col62) * (op1_limb_5_col85))))) + (((op0_limb_12_col63) * (op1_limb_4_col84))))) + (((op0_limb_13_col64) * (op1_limb_3_col83))))) + (((op0_limb_14_col65) * (op1_limb_2_col82))))) + (((op0_limb_15_col66) * (op1_limb_1_col81))))) + (((op0_limb_16_col67) * (op1_limb_0_col80)))); +let conv_tmp_5745_79 = ((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_17_col154))) + (((op0_limb_0_col51) * (op1_limb_17_col97))))) + (((op0_limb_1_col52) * (op1_limb_16_col96))))) + (((op0_limb_2_col53) * (op1_limb_15_col95))))) + (((op0_limb_3_col54) * (op1_limb_14_col94))))) + (((op0_limb_4_col55) * (op1_limb_13_col93))))) + (((op0_limb_5_col56) * (op1_limb_12_col92))))) + (((op0_limb_6_col57) * (op1_limb_11_col91))))) + (((op0_limb_7_col58) * (op1_limb_10_col90))))) + (((op0_limb_8_col59) * (op1_limb_9_col89))))) + (((op0_limb_9_col60) * (op1_limb_8_col88))))) + (((op0_limb_10_col61) * (op1_limb_7_col87))))) + (((op0_limb_11_col62) * (op1_limb_6_col86))))) + (((op0_limb_12_col63) * (op1_limb_5_col85))))) + (((op0_limb_13_col64) * (op1_limb_4_col84))))) + (((op0_limb_14_col65) * (op1_limb_3_col83))))) + (((op0_limb_15_col66) * (op1_limb_2_col82))))) + (((op0_limb_16_col67) * (op1_limb_1_col81))))) + (((op0_limb_17_col68) * (op1_limb_0_col80)))); +let conv_tmp_5745_80 = ((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_18_col155))) + (((op0_limb_0_col51) * (op1_limb_18_col98))))) + (((op0_limb_1_col52) * (op1_limb_17_col97))))) + (((op0_limb_2_col53) * (op1_limb_16_col96))))) + (((op0_limb_3_col54) * (op1_limb_15_col95))))) + (((op0_limb_4_col55) * (op1_limb_14_col94))))) + (((op0_limb_5_col56) * (op1_limb_13_col93))))) + (((op0_limb_6_col57) * (op1_limb_12_col92))))) + (((op0_limb_7_col58) * (op1_limb_11_col91))))) + (((op0_limb_8_col59) * (op1_limb_10_col90))))) + (((op0_limb_9_col60) * (op1_limb_9_col89))))) + (((op0_limb_10_col61) * (op1_limb_8_col88))))) + (((op0_limb_11_col62) * (op1_limb_7_col87))))) + (((op0_limb_12_col63) * (op1_limb_6_col86))))) + (((op0_limb_13_col64) * (op1_limb_5_col85))))) + (((op0_limb_14_col65) * (op1_limb_4_col84))))) + (((op0_limb_15_col66) * (op1_limb_3_col83))))) + (((op0_limb_16_col67) * (op1_limb_2_col82))))) + (((op0_limb_17_col68) * (op1_limb_1_col81))))) + (((op0_limb_18_col69) * (op1_limb_0_col80)))); +let conv_tmp_5745_81 = ((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_19_col156))) + (((op0_limb_0_col51) * (op1_limb_19_col99))))) + (((op0_limb_1_col52) * (op1_limb_18_col98))))) + (((op0_limb_2_col53) * (op1_limb_17_col97))))) + (((op0_limb_3_col54) * (op1_limb_16_col96))))) + (((op0_limb_4_col55) * (op1_limb_15_col95))))) + (((op0_limb_5_col56) * (op1_limb_14_col94))))) + (((op0_limb_6_col57) * (op1_limb_13_col93))))) + (((op0_limb_7_col58) * (op1_limb_12_col92))))) + (((op0_limb_8_col59) * (op1_limb_11_col91))))) + (((op0_limb_9_col60) * (op1_limb_10_col90))))) + (((op0_limb_10_col61) * (op1_limb_9_col89))))) + (((op0_limb_11_col62) * (op1_limb_8_col88))))) + (((op0_limb_12_col63) * (op1_limb_7_col87))))) + (((op0_limb_13_col64) * (op1_limb_6_col86))))) + (((op0_limb_14_col65) * (op1_limb_5_col85))))) + (((op0_limb_15_col66) * (op1_limb_4_col84))))) + (((op0_limb_16_col67) * (op1_limb_3_col83))))) + (((op0_limb_17_col68) * (op1_limb_2_col82))))) + (((op0_limb_18_col69) * (op1_limb_1_col81))))) + (((op0_limb_19_col70) * (op1_limb_0_col80)))); +let conv_tmp_5745_82 = ((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_20_col157))) + (((op0_limb_0_col51) * (op1_limb_20_col100))))) + (((op0_limb_1_col52) * (op1_limb_19_col99))))) + (((op0_limb_2_col53) * (op1_limb_18_col98))))) + (((op0_limb_3_col54) * (op1_limb_17_col97))))) + (((op0_limb_4_col55) * (op1_limb_16_col96))))) + (((op0_limb_5_col56) * (op1_limb_15_col95))))) + (((op0_limb_6_col57) * (op1_limb_14_col94))))) + (((op0_limb_7_col58) * (op1_limb_13_col93))))) + (((op0_limb_8_col59) * (op1_limb_12_col92))))) + (((op0_limb_9_col60) * (op1_limb_11_col91))))) + (((op0_limb_10_col61) * (op1_limb_10_col90))))) + (((op0_limb_11_col62) * (op1_limb_9_col89))))) + (((op0_limb_12_col63) * (op1_limb_8_col88))))) + (((op0_limb_13_col64) * (op1_limb_7_col87))))) + (((op0_limb_14_col65) * (op1_limb_6_col86))))) + (((op0_limb_15_col66) * (op1_limb_5_col85))))) + (((op0_limb_16_col67) * (op1_limb_4_col84))))) + (((op0_limb_17_col68) * (op1_limb_3_col83))))) + (((op0_limb_18_col69) * (op1_limb_2_col82))))) + (((op0_limb_19_col70) * (op1_limb_1_col81))))) + (((op0_limb_20_col71) * (op1_limb_0_col80)))); +let conv_tmp_5745_83 = ((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_21_col158))) + (((op0_limb_0_col51) * (op1_limb_21_col101))))) + (((op0_limb_1_col52) * (op1_limb_20_col100))))) + (((op0_limb_2_col53) * (op1_limb_19_col99))))) + (((op0_limb_3_col54) * (op1_limb_18_col98))))) + (((op0_limb_4_col55) * (op1_limb_17_col97))))) + (((op0_limb_5_col56) * (op1_limb_16_col96))))) + (((op0_limb_6_col57) * (op1_limb_15_col95))))) + (((op0_limb_7_col58) * (op1_limb_14_col94))))) + (((op0_limb_8_col59) * (op1_limb_13_col93))))) + (((op0_limb_9_col60) * (op1_limb_12_col92))))) + (((op0_limb_10_col61) * (op1_limb_11_col91))))) + (((op0_limb_11_col62) * (op1_limb_10_col90))))) + (((op0_limb_12_col63) * (op1_limb_9_col89))))) + (((op0_limb_13_col64) * (op1_limb_8_col88))))) + (((op0_limb_14_col65) * (op1_limb_7_col87))))) + (((op0_limb_15_col66) * (op1_limb_6_col86))))) + (((op0_limb_16_col67) * (op1_limb_5_col85))))) + (((op0_limb_17_col68) * (op1_limb_4_col84))))) + (((op0_limb_18_col69) * (op1_limb_3_col83))))) + (((op0_limb_19_col70) * (op1_limb_2_col82))))) + (((op0_limb_20_col71) * (op1_limb_1_col81))))) + (((op0_limb_21_col72) * (op1_limb_0_col80)))); +let conv_tmp_5745_84 = ((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_22_col159))) + (((op0_limb_0_col51) * (op1_limb_22_col102))))) + (((op0_limb_1_col52) * (op1_limb_21_col101))))) + (((op0_limb_2_col53) * (op1_limb_20_col100))))) + (((op0_limb_3_col54) * (op1_limb_19_col99))))) + (((op0_limb_4_col55) * (op1_limb_18_col98))))) + (((op0_limb_5_col56) * (op1_limb_17_col97))))) + (((op0_limb_6_col57) * (op1_limb_16_col96))))) + (((op0_limb_7_col58) * (op1_limb_15_col95))))) + (((op0_limb_8_col59) * (op1_limb_14_col94))))) + (((op0_limb_9_col60) * (op1_limb_13_col93))))) + (((op0_limb_10_col61) * (op1_limb_12_col92))))) + (((op0_limb_11_col62) * (op1_limb_11_col91))))) + (((op0_limb_12_col63) * (op1_limb_10_col90))))) + (((op0_limb_13_col64) * (op1_limb_9_col89))))) + (((op0_limb_14_col65) * (op1_limb_8_col88))))) + (((op0_limb_15_col66) * (op1_limb_7_col87))))) + (((op0_limb_16_col67) * (op1_limb_6_col86))))) + (((op0_limb_17_col68) * (op1_limb_5_col85))))) + (((op0_limb_18_col69) * (op1_limb_4_col84))))) + (((op0_limb_19_col70) * (op1_limb_3_col83))))) + (((op0_limb_20_col71) * (op1_limb_2_col82))))) + (((op0_limb_21_col72) * (op1_limb_1_col81))))) + (((op0_limb_22_col73) * (op1_limb_0_col80)))); +let conv_tmp_5745_85 = ((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_23_col160))) + (((op0_limb_0_col51) * (op1_limb_23_col103))))) + (((op0_limb_1_col52) * (op1_limb_22_col102))))) + (((op0_limb_2_col53) * (op1_limb_21_col101))))) + (((op0_limb_3_col54) * (op1_limb_20_col100))))) + (((op0_limb_4_col55) * (op1_limb_19_col99))))) + (((op0_limb_5_col56) * (op1_limb_18_col98))))) + (((op0_limb_6_col57) * (op1_limb_17_col97))))) + (((op0_limb_7_col58) * (op1_limb_16_col96))))) + (((op0_limb_8_col59) * (op1_limb_15_col95))))) + (((op0_limb_9_col60) * (op1_limb_14_col94))))) + (((op0_limb_10_col61) * (op1_limb_13_col93))))) + (((op0_limb_11_col62) * (op1_limb_12_col92))))) + (((op0_limb_12_col63) * (op1_limb_11_col91))))) + (((op0_limb_13_col64) * (op1_limb_10_col90))))) + (((op0_limb_14_col65) * (op1_limb_9_col89))))) + (((op0_limb_15_col66) * (op1_limb_8_col88))))) + (((op0_limb_16_col67) * (op1_limb_7_col87))))) + (((op0_limb_17_col68) * (op1_limb_6_col86))))) + (((op0_limb_18_col69) * (op1_limb_5_col85))))) + (((op0_limb_19_col70) * (op1_limb_4_col84))))) + (((op0_limb_20_col71) * (op1_limb_3_col83))))) + (((op0_limb_21_col72) * (op1_limb_2_col82))))) + (((op0_limb_22_col73) * (op1_limb_1_col81))))) + (((op0_limb_23_col74) * (op1_limb_0_col80)))); +let conv_tmp_5745_86 = ((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_24_col161))) + (((op0_limb_0_col51) * (op1_limb_24_col104))))) + (((op0_limb_1_col52) * (op1_limb_23_col103))))) + (((op0_limb_2_col53) * (op1_limb_22_col102))))) + (((op0_limb_3_col54) * (op1_limb_21_col101))))) + (((op0_limb_4_col55) * (op1_limb_20_col100))))) + (((op0_limb_5_col56) * (op1_limb_19_col99))))) + (((op0_limb_6_col57) * (op1_limb_18_col98))))) + (((op0_limb_7_col58) * (op1_limb_17_col97))))) + (((op0_limb_8_col59) * (op1_limb_16_col96))))) + (((op0_limb_9_col60) * (op1_limb_15_col95))))) + (((op0_limb_10_col61) * (op1_limb_14_col94))))) + (((op0_limb_11_col62) * (op1_limb_13_col93))))) + (((op0_limb_12_col63) * (op1_limb_12_col92))))) + (((op0_limb_13_col64) * (op1_limb_11_col91))))) + (((op0_limb_14_col65) * (op1_limb_10_col90))))) + (((op0_limb_15_col66) * (op1_limb_9_col89))))) + (((op0_limb_16_col67) * (op1_limb_8_col88))))) + (((op0_limb_17_col68) * (op1_limb_7_col87))))) + (((op0_limb_18_col69) * (op1_limb_6_col86))))) + (((op0_limb_19_col70) * (op1_limb_5_col85))))) + (((op0_limb_20_col71) * (op1_limb_4_col84))))) + (((op0_limb_21_col72) * (op1_limb_3_col83))))) + (((op0_limb_22_col73) * (op1_limb_2_col82))))) + (((op0_limb_23_col74) * (op1_limb_1_col81))))) + (((op0_limb_24_col75) * (op1_limb_0_col80)))); +let conv_tmp_5745_87 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_25_col162))) + (((op0_limb_0_col51) * (op1_limb_25_col105))))) + (((op0_limb_1_col52) * (op1_limb_24_col104))))) + (((op0_limb_2_col53) * (op1_limb_23_col103))))) + (((op0_limb_3_col54) * (op1_limb_22_col102))))) + (((op0_limb_4_col55) * (op1_limb_21_col101))))) + (((op0_limb_5_col56) * (op1_limb_20_col100))))) + (((op0_limb_6_col57) * (op1_limb_19_col99))))) + (((op0_limb_7_col58) * (op1_limb_18_col98))))) + (((op0_limb_8_col59) * (op1_limb_17_col97))))) + (((op0_limb_9_col60) * (op1_limb_16_col96))))) + (((op0_limb_10_col61) * (op1_limb_15_col95))))) + (((op0_limb_11_col62) * (op1_limb_14_col94))))) + (((op0_limb_12_col63) * (op1_limb_13_col93))))) + (((op0_limb_13_col64) * (op1_limb_12_col92))))) + (((op0_limb_14_col65) * (op1_limb_11_col91))))) + (((op0_limb_15_col66) * (op1_limb_10_col90))))) + (((op0_limb_16_col67) * (op1_limb_9_col89))))) + (((op0_limb_17_col68) * (op1_limb_8_col88))))) + (((op0_limb_18_col69) * (op1_limb_7_col87))))) + (((op0_limb_19_col70) * (op1_limb_6_col86))))) + (((op0_limb_20_col71) * (op1_limb_5_col85))))) + (((op0_limb_21_col72) * (op1_limb_4_col84))))) + (((op0_limb_22_col73) * (op1_limb_3_col83))))) + (((op0_limb_23_col74) * (op1_limb_2_col82))))) + (((op0_limb_24_col75) * (op1_limb_1_col81))))) + (((op0_limb_25_col76) * (op1_limb_0_col80)))); +let conv_tmp_5745_88 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_26_col163))) + (((op0_limb_0_col51) * (op1_limb_26_col106))))) + (((op0_limb_1_col52) * (op1_limb_25_col105))))) + (((op0_limb_2_col53) * (op1_limb_24_col104))))) + (((op0_limb_3_col54) * (op1_limb_23_col103))))) + (((op0_limb_4_col55) * (op1_limb_22_col102))))) + (((op0_limb_5_col56) * (op1_limb_21_col101))))) + (((op0_limb_6_col57) * (op1_limb_20_col100))))) + (((op0_limb_7_col58) * (op1_limb_19_col99))))) + (((op0_limb_8_col59) * (op1_limb_18_col98))))) + (((op0_limb_9_col60) * (op1_limb_17_col97))))) + (((op0_limb_10_col61) * (op1_limb_16_col96))))) + (((op0_limb_11_col62) * (op1_limb_15_col95))))) + (((op0_limb_12_col63) * (op1_limb_14_col94))))) + (((op0_limb_13_col64) * (op1_limb_13_col93))))) + (((op0_limb_14_col65) * (op1_limb_12_col92))))) + (((op0_limb_15_col66) * (op1_limb_11_col91))))) + (((op0_limb_16_col67) * (op1_limb_10_col90))))) + (((op0_limb_17_col68) * (op1_limb_9_col89))))) + (((op0_limb_18_col69) * (op1_limb_8_col88))))) + (((op0_limb_19_col70) * (op1_limb_7_col87))))) + (((op0_limb_20_col71) * (op1_limb_6_col86))))) + (((op0_limb_21_col72) * (op1_limb_5_col85))))) + (((op0_limb_22_col73) * (op1_limb_4_col84))))) + (((op0_limb_23_col74) * (op1_limb_3_col83))))) + (((op0_limb_24_col75) * (op1_limb_2_col82))))) + (((op0_limb_25_col76) * (op1_limb_1_col81))))) + (((op0_limb_26_col77) * (op1_limb_0_col80)))); +let conv_tmp_5745_89 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) - (mul_res_limb_27_col164))) + (((op0_limb_0_col51) * (op1_limb_27_col107))))) + (((op0_limb_1_col52) * (op1_limb_26_col106))))) + (((op0_limb_2_col53) * (op1_limb_25_col105))))) + (((op0_limb_3_col54) * (op1_limb_24_col104))))) + (((op0_limb_4_col55) * (op1_limb_23_col103))))) + (((op0_limb_5_col56) * (op1_limb_22_col102))))) + (((op0_limb_6_col57) * (op1_limb_21_col101))))) + (((op0_limb_7_col58) * (op1_limb_20_col100))))) + (((op0_limb_8_col59) * (op1_limb_19_col99))))) + (((op0_limb_9_col60) * (op1_limb_18_col98))))) + (((op0_limb_10_col61) * (op1_limb_17_col97))))) + (((op0_limb_11_col62) * (op1_limb_16_col96))))) + (((op0_limb_12_col63) * (op1_limb_15_col95))))) + (((op0_limb_13_col64) * (op1_limb_14_col94))))) + (((op0_limb_14_col65) * (op1_limb_13_col93))))) + (((op0_limb_15_col66) * (op1_limb_12_col92))))) + (((op0_limb_16_col67) * (op1_limb_11_col91))))) + (((op0_limb_17_col68) * (op1_limb_10_col90))))) + (((op0_limb_18_col69) * (op1_limb_9_col89))))) + (((op0_limb_19_col70) * (op1_limb_8_col88))))) + (((op0_limb_20_col71) * (op1_limb_7_col87))))) + (((op0_limb_21_col72) * (op1_limb_6_col86))))) + (((op0_limb_22_col73) * (op1_limb_5_col85))))) + (((op0_limb_23_col74) * (op1_limb_4_col84))))) + (((op0_limb_24_col75) * (op1_limb_3_col83))))) + (((op0_limb_25_col76) * (op1_limb_2_col82))))) + (((op0_limb_26_col77) * (op1_limb_1_col81))))) + (((op0_limb_27_col78) * (op1_limb_0_col80)))); +let conv_tmp_5745_90 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_1_col52) * (op1_limb_27_col107))))) + (((op0_limb_2_col53) * (op1_limb_26_col106))))) + (((op0_limb_3_col54) * (op1_limb_25_col105))))) + (((op0_limb_4_col55) * (op1_limb_24_col104))))) + (((op0_limb_5_col56) * (op1_limb_23_col103))))) + (((op0_limb_6_col57) * (op1_limb_22_col102))))) + (((op0_limb_7_col58) * (op1_limb_21_col101))))) + (((op0_limb_8_col59) * (op1_limb_20_col100))))) + (((op0_limb_9_col60) * (op1_limb_19_col99))))) + (((op0_limb_10_col61) * (op1_limb_18_col98))))) + (((op0_limb_11_col62) * (op1_limb_17_col97))))) + (((op0_limb_12_col63) * (op1_limb_16_col96))))) + (((op0_limb_13_col64) * (op1_limb_15_col95))))) + (((op0_limb_14_col65) * (op1_limb_14_col94))))) + (((op0_limb_15_col66) * (op1_limb_13_col93))))) + (((op0_limb_16_col67) * (op1_limb_12_col92))))) + (((op0_limb_17_col68) * (op1_limb_11_col91))))) + (((op0_limb_18_col69) * (op1_limb_10_col90))))) + (((op0_limb_19_col70) * (op1_limb_9_col89))))) + (((op0_limb_20_col71) * (op1_limb_8_col88))))) + (((op0_limb_21_col72) * (op1_limb_7_col87))))) + (((op0_limb_22_col73) * (op1_limb_6_col86))))) + (((op0_limb_23_col74) * (op1_limb_5_col85))))) + (((op0_limb_24_col75) * (op1_limb_4_col84))))) + (((op0_limb_25_col76) * (op1_limb_3_col83))))) + (((op0_limb_26_col77) * (op1_limb_2_col82))))) + (((op0_limb_27_col78) * (op1_limb_1_col81)))); +let conv_tmp_5745_91 = ((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_2_col53) * (op1_limb_27_col107))))) + (((op0_limb_3_col54) * (op1_limb_26_col106))))) + (((op0_limb_4_col55) * (op1_limb_25_col105))))) + (((op0_limb_5_col56) * (op1_limb_24_col104))))) + (((op0_limb_6_col57) * (op1_limb_23_col103))))) + (((op0_limb_7_col58) * (op1_limb_22_col102))))) + (((op0_limb_8_col59) * (op1_limb_21_col101))))) + (((op0_limb_9_col60) * (op1_limb_20_col100))))) + (((op0_limb_10_col61) * (op1_limb_19_col99))))) + (((op0_limb_11_col62) * (op1_limb_18_col98))))) + (((op0_limb_12_col63) * (op1_limb_17_col97))))) + (((op0_limb_13_col64) * (op1_limb_16_col96))))) + (((op0_limb_14_col65) * (op1_limb_15_col95))))) + (((op0_limb_15_col66) * (op1_limb_14_col94))))) + (((op0_limb_16_col67) * (op1_limb_13_col93))))) + (((op0_limb_17_col68) * (op1_limb_12_col92))))) + (((op0_limb_18_col69) * (op1_limb_11_col91))))) + (((op0_limb_19_col70) * (op1_limb_10_col90))))) + (((op0_limb_20_col71) * (op1_limb_9_col89))))) + (((op0_limb_21_col72) * (op1_limb_8_col88))))) + (((op0_limb_22_col73) * (op1_limb_7_col87))))) + (((op0_limb_23_col74) * (op1_limb_6_col86))))) + (((op0_limb_24_col75) * (op1_limb_5_col85))))) + (((op0_limb_25_col76) * (op1_limb_4_col84))))) + (((op0_limb_26_col77) * (op1_limb_3_col83))))) + (((op0_limb_27_col78) * (op1_limb_2_col82)))); +let conv_tmp_5745_92 = ((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_3_col54) * (op1_limb_27_col107))))) + (((op0_limb_4_col55) * (op1_limb_26_col106))))) + (((op0_limb_5_col56) * (op1_limb_25_col105))))) + (((op0_limb_6_col57) * (op1_limb_24_col104))))) + (((op0_limb_7_col58) * (op1_limb_23_col103))))) + (((op0_limb_8_col59) * (op1_limb_22_col102))))) + (((op0_limb_9_col60) * (op1_limb_21_col101))))) + (((op0_limb_10_col61) * (op1_limb_20_col100))))) + (((op0_limb_11_col62) * (op1_limb_19_col99))))) + (((op0_limb_12_col63) * (op1_limb_18_col98))))) + (((op0_limb_13_col64) * (op1_limb_17_col97))))) + (((op0_limb_14_col65) * (op1_limb_16_col96))))) + (((op0_limb_15_col66) * (op1_limb_15_col95))))) + (((op0_limb_16_col67) * (op1_limb_14_col94))))) + (((op0_limb_17_col68) * (op1_limb_13_col93))))) + (((op0_limb_18_col69) * (op1_limb_12_col92))))) + (((op0_limb_19_col70) * (op1_limb_11_col91))))) + (((op0_limb_20_col71) * (op1_limb_10_col90))))) + (((op0_limb_21_col72) * (op1_limb_9_col89))))) + (((op0_limb_22_col73) * (op1_limb_8_col88))))) + (((op0_limb_23_col74) * (op1_limb_7_col87))))) + (((op0_limb_24_col75) * (op1_limb_6_col86))))) + (((op0_limb_25_col76) * (op1_limb_5_col85))))) + (((op0_limb_26_col77) * (op1_limb_4_col84))))) + (((op0_limb_27_col78) * (op1_limb_3_col83)))); +let conv_tmp_5745_93 = ((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_4_col55) * (op1_limb_27_col107))))) + (((op0_limb_5_col56) * (op1_limb_26_col106))))) + (((op0_limb_6_col57) * (op1_limb_25_col105))))) + (((op0_limb_7_col58) * (op1_limb_24_col104))))) + (((op0_limb_8_col59) * (op1_limb_23_col103))))) + (((op0_limb_9_col60) * (op1_limb_22_col102))))) + (((op0_limb_10_col61) * (op1_limb_21_col101))))) + (((op0_limb_11_col62) * (op1_limb_20_col100))))) + (((op0_limb_12_col63) * (op1_limb_19_col99))))) + (((op0_limb_13_col64) * (op1_limb_18_col98))))) + (((op0_limb_14_col65) * (op1_limb_17_col97))))) + (((op0_limb_15_col66) * (op1_limb_16_col96))))) + (((op0_limb_16_col67) * (op1_limb_15_col95))))) + (((op0_limb_17_col68) * (op1_limb_14_col94))))) + (((op0_limb_18_col69) * (op1_limb_13_col93))))) + (((op0_limb_19_col70) * (op1_limb_12_col92))))) + (((op0_limb_20_col71) * (op1_limb_11_col91))))) + (((op0_limb_21_col72) * (op1_limb_10_col90))))) + (((op0_limb_22_col73) * (op1_limb_9_col89))))) + (((op0_limb_23_col74) * (op1_limb_8_col88))))) + (((op0_limb_24_col75) * (op1_limb_7_col87))))) + (((op0_limb_25_col76) * (op1_limb_6_col86))))) + (((op0_limb_26_col77) * (op1_limb_5_col85))))) + (((op0_limb_27_col78) * (op1_limb_4_col84)))); +let conv_tmp_5745_94 = ((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_5_col56) * (op1_limb_27_col107))))) + (((op0_limb_6_col57) * (op1_limb_26_col106))))) + (((op0_limb_7_col58) * (op1_limb_25_col105))))) + (((op0_limb_8_col59) * (op1_limb_24_col104))))) + (((op0_limb_9_col60) * (op1_limb_23_col103))))) + (((op0_limb_10_col61) * (op1_limb_22_col102))))) + (((op0_limb_11_col62) * (op1_limb_21_col101))))) + (((op0_limb_12_col63) * (op1_limb_20_col100))))) + (((op0_limb_13_col64) * (op1_limb_19_col99))))) + (((op0_limb_14_col65) * (op1_limb_18_col98))))) + (((op0_limb_15_col66) * (op1_limb_17_col97))))) + (((op0_limb_16_col67) * (op1_limb_16_col96))))) + (((op0_limb_17_col68) * (op1_limb_15_col95))))) + (((op0_limb_18_col69) * (op1_limb_14_col94))))) + (((op0_limb_19_col70) * (op1_limb_13_col93))))) + (((op0_limb_20_col71) * (op1_limb_12_col92))))) + (((op0_limb_21_col72) * (op1_limb_11_col91))))) + (((op0_limb_22_col73) * (op1_limb_10_col90))))) + (((op0_limb_23_col74) * (op1_limb_9_col89))))) + (((op0_limb_24_col75) * (op1_limb_8_col88))))) + (((op0_limb_25_col76) * (op1_limb_7_col87))))) + (((op0_limb_26_col77) * (op1_limb_6_col86))))) + (((op0_limb_27_col78) * (op1_limb_5_col85)))); +let conv_tmp_5745_95 = ((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_6_col57) * (op1_limb_27_col107))))) + (((op0_limb_7_col58) * (op1_limb_26_col106))))) + (((op0_limb_8_col59) * (op1_limb_25_col105))))) + (((op0_limb_9_col60) * (op1_limb_24_col104))))) + (((op0_limb_10_col61) * (op1_limb_23_col103))))) + (((op0_limb_11_col62) * (op1_limb_22_col102))))) + (((op0_limb_12_col63) * (op1_limb_21_col101))))) + (((op0_limb_13_col64) * (op1_limb_20_col100))))) + (((op0_limb_14_col65) * (op1_limb_19_col99))))) + (((op0_limb_15_col66) * (op1_limb_18_col98))))) + (((op0_limb_16_col67) * (op1_limb_17_col97))))) + (((op0_limb_17_col68) * (op1_limb_16_col96))))) + (((op0_limb_18_col69) * (op1_limb_15_col95))))) + (((op0_limb_19_col70) * (op1_limb_14_col94))))) + (((op0_limb_20_col71) * (op1_limb_13_col93))))) + (((op0_limb_21_col72) * (op1_limb_12_col92))))) + (((op0_limb_22_col73) * (op1_limb_11_col91))))) + (((op0_limb_23_col74) * (op1_limb_10_col90))))) + (((op0_limb_24_col75) * (op1_limb_9_col89))))) + (((op0_limb_25_col76) * (op1_limb_8_col88))))) + (((op0_limb_26_col77) * (op1_limb_7_col87))))) + (((op0_limb_27_col78) * (op1_limb_6_col86)))); +let conv_tmp_5745_96 = ((((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_7_col58) * (op1_limb_27_col107))))) + (((op0_limb_8_col59) * (op1_limb_26_col106))))) + (((op0_limb_9_col60) * (op1_limb_25_col105))))) + (((op0_limb_10_col61) * (op1_limb_24_col104))))) + (((op0_limb_11_col62) * (op1_limb_23_col103))))) + (((op0_limb_12_col63) * (op1_limb_22_col102))))) + (((op0_limb_13_col64) * (op1_limb_21_col101))))) + (((op0_limb_14_col65) * (op1_limb_20_col100))))) + (((op0_limb_15_col66) * (op1_limb_19_col99))))) + (((op0_limb_16_col67) * (op1_limb_18_col98))))) + (((op0_limb_17_col68) * (op1_limb_17_col97))))) + (((op0_limb_18_col69) * (op1_limb_16_col96))))) + (((op0_limb_19_col70) * (op1_limb_15_col95))))) + (((op0_limb_20_col71) * (op1_limb_14_col94))))) + (((op0_limb_21_col72) * (op1_limb_13_col93))))) + (((op0_limb_22_col73) * (op1_limb_12_col92))))) + (((op0_limb_23_col74) * (op1_limb_11_col91))))) + (((op0_limb_24_col75) * (op1_limb_10_col90))))) + (((op0_limb_25_col76) * (op1_limb_9_col89))))) + (((op0_limb_26_col77) * (op1_limb_8_col88))))) + (((op0_limb_27_col78) * (op1_limb_7_col87)))); +let conv_tmp_5745_97 = ((((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_8_col59) * (op1_limb_27_col107))))) + (((op0_limb_9_col60) * (op1_limb_26_col106))))) + (((op0_limb_10_col61) * (op1_limb_25_col105))))) + (((op0_limb_11_col62) * (op1_limb_24_col104))))) + (((op0_limb_12_col63) * (op1_limb_23_col103))))) + (((op0_limb_13_col64) * (op1_limb_22_col102))))) + (((op0_limb_14_col65) * (op1_limb_21_col101))))) + (((op0_limb_15_col66) * (op1_limb_20_col100))))) + (((op0_limb_16_col67) * (op1_limb_19_col99))))) + (((op0_limb_17_col68) * (op1_limb_18_col98))))) + (((op0_limb_18_col69) * (op1_limb_17_col97))))) + (((op0_limb_19_col70) * (op1_limb_16_col96))))) + (((op0_limb_20_col71) * (op1_limb_15_col95))))) + (((op0_limb_21_col72) * (op1_limb_14_col94))))) + (((op0_limb_22_col73) * (op1_limb_13_col93))))) + (((op0_limb_23_col74) * (op1_limb_12_col92))))) + (((op0_limb_24_col75) * (op1_limb_11_col91))))) + (((op0_limb_25_col76) * (op1_limb_10_col90))))) + (((op0_limb_26_col77) * (op1_limb_9_col89))))) + (((op0_limb_27_col78) * (op1_limb_8_col88)))); +let conv_tmp_5745_98 = ((((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_9_col60) * (op1_limb_27_col107))))) + (((op0_limb_10_col61) * (op1_limb_26_col106))))) + (((op0_limb_11_col62) * (op1_limb_25_col105))))) + (((op0_limb_12_col63) * (op1_limb_24_col104))))) + (((op0_limb_13_col64) * (op1_limb_23_col103))))) + (((op0_limb_14_col65) * (op1_limb_22_col102))))) + (((op0_limb_15_col66) * (op1_limb_21_col101))))) + (((op0_limb_16_col67) * (op1_limb_20_col100))))) + (((op0_limb_17_col68) * (op1_limb_19_col99))))) + (((op0_limb_18_col69) * (op1_limb_18_col98))))) + (((op0_limb_19_col70) * (op1_limb_17_col97))))) + (((op0_limb_20_col71) * (op1_limb_16_col96))))) + (((op0_limb_21_col72) * (op1_limb_15_col95))))) + (((op0_limb_22_col73) * (op1_limb_14_col94))))) + (((op0_limb_23_col74) * (op1_limb_13_col93))))) + (((op0_limb_24_col75) * (op1_limb_12_col92))))) + (((op0_limb_25_col76) * (op1_limb_11_col91))))) + (((op0_limb_26_col77) * (op1_limb_10_col90))))) + (((op0_limb_27_col78) * (op1_limb_9_col89)))); +let conv_tmp_5745_99 = ((((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_10_col61) * (op1_limb_27_col107))))) + (((op0_limb_11_col62) * (op1_limb_26_col106))))) + (((op0_limb_12_col63) * (op1_limb_25_col105))))) + (((op0_limb_13_col64) * (op1_limb_24_col104))))) + (((op0_limb_14_col65) * (op1_limb_23_col103))))) + (((op0_limb_15_col66) * (op1_limb_22_col102))))) + (((op0_limb_16_col67) * (op1_limb_21_col101))))) + (((op0_limb_17_col68) * (op1_limb_20_col100))))) + (((op0_limb_18_col69) * (op1_limb_19_col99))))) + (((op0_limb_19_col70) * (op1_limb_18_col98))))) + (((op0_limb_20_col71) * (op1_limb_17_col97))))) + (((op0_limb_21_col72) * (op1_limb_16_col96))))) + (((op0_limb_22_col73) * (op1_limb_15_col95))))) + (((op0_limb_23_col74) * (op1_limb_14_col94))))) + (((op0_limb_24_col75) * (op1_limb_13_col93))))) + (((op0_limb_25_col76) * (op1_limb_12_col92))))) + (((op0_limb_26_col77) * (op1_limb_11_col91))))) + (((op0_limb_27_col78) * (op1_limb_10_col90)))); +let conv_tmp_5745_100 = ((((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_11_col62) * (op1_limb_27_col107))))) + (((op0_limb_12_col63) * (op1_limb_26_col106))))) + (((op0_limb_13_col64) * (op1_limb_25_col105))))) + (((op0_limb_14_col65) * (op1_limb_24_col104))))) + (((op0_limb_15_col66) * (op1_limb_23_col103))))) + (((op0_limb_16_col67) * (op1_limb_22_col102))))) + (((op0_limb_17_col68) * (op1_limb_21_col101))))) + (((op0_limb_18_col69) * (op1_limb_20_col100))))) + (((op0_limb_19_col70) * (op1_limb_19_col99))))) + (((op0_limb_20_col71) * (op1_limb_18_col98))))) + (((op0_limb_21_col72) * (op1_limb_17_col97))))) + (((op0_limb_22_col73) * (op1_limb_16_col96))))) + (((op0_limb_23_col74) * (op1_limb_15_col95))))) + (((op0_limb_24_col75) * (op1_limb_14_col94))))) + (((op0_limb_25_col76) * (op1_limb_13_col93))))) + (((op0_limb_26_col77) * (op1_limb_12_col92))))) + (((op0_limb_27_col78) * (op1_limb_11_col91)))); +let conv_tmp_5745_101 = ((((((((((((((((((((((((((((((((M31_0) + (((op0_limb_12_col63) * (op1_limb_27_col107))))) + (((op0_limb_13_col64) * (op1_limb_26_col106))))) + (((op0_limb_14_col65) * (op1_limb_25_col105))))) + (((op0_limb_15_col66) * (op1_limb_24_col104))))) + (((op0_limb_16_col67) * (op1_limb_23_col103))))) + (((op0_limb_17_col68) * (op1_limb_22_col102))))) + (((op0_limb_18_col69) * (op1_limb_21_col101))))) + (((op0_limb_19_col70) * (op1_limb_20_col100))))) + (((op0_limb_20_col71) * (op1_limb_19_col99))))) + (((op0_limb_21_col72) * (op1_limb_18_col98))))) + (((op0_limb_22_col73) * (op1_limb_17_col97))))) + (((op0_limb_23_col74) * (op1_limb_16_col96))))) + (((op0_limb_24_col75) * (op1_limb_15_col95))))) + (((op0_limb_25_col76) * (op1_limb_14_col94))))) + (((op0_limb_26_col77) * (op1_limb_13_col93))))) + (((op0_limb_27_col78) * (op1_limb_12_col92)))); +let conv_tmp_5745_102 = ((((((((((((((((((((((((((((((M31_0) + (((op0_limb_13_col64) * (op1_limb_27_col107))))) + (((op0_limb_14_col65) * (op1_limb_26_col106))))) + (((op0_limb_15_col66) * (op1_limb_25_col105))))) + (((op0_limb_16_col67) * (op1_limb_24_col104))))) + (((op0_limb_17_col68) * (op1_limb_23_col103))))) + (((op0_limb_18_col69) * (op1_limb_22_col102))))) + (((op0_limb_19_col70) * (op1_limb_21_col101))))) + (((op0_limb_20_col71) * (op1_limb_20_col100))))) + (((op0_limb_21_col72) * (op1_limb_19_col99))))) + (((op0_limb_22_col73) * (op1_limb_18_col98))))) + (((op0_limb_23_col74) * (op1_limb_17_col97))))) + (((op0_limb_24_col75) * (op1_limb_16_col96))))) + (((op0_limb_25_col76) * (op1_limb_15_col95))))) + (((op0_limb_26_col77) * (op1_limb_14_col94))))) + (((op0_limb_27_col78) * (op1_limb_13_col93)))); +let conv_tmp_5745_103 = ((((((((((((((((((((((((((((M31_0) + (((op0_limb_14_col65) * (op1_limb_27_col107))))) + (((op0_limb_15_col66) * (op1_limb_26_col106))))) + (((op0_limb_16_col67) * (op1_limb_25_col105))))) + (((op0_limb_17_col68) * (op1_limb_24_col104))))) + (((op0_limb_18_col69) * (op1_limb_23_col103))))) + (((op0_limb_19_col70) * (op1_limb_22_col102))))) + (((op0_limb_20_col71) * (op1_limb_21_col101))))) + (((op0_limb_21_col72) * (op1_limb_20_col100))))) + (((op0_limb_22_col73) * (op1_limb_19_col99))))) + (((op0_limb_23_col74) * (op1_limb_18_col98))))) + (((op0_limb_24_col75) * (op1_limb_17_col97))))) + (((op0_limb_25_col76) * (op1_limb_16_col96))))) + (((op0_limb_26_col77) * (op1_limb_15_col95))))) + (((op0_limb_27_col78) * (op1_limb_14_col94)))); +let conv_tmp_5745_104 = ((((((((((((((((((((((((((M31_0) + (((op0_limb_15_col66) * (op1_limb_27_col107))))) + (((op0_limb_16_col67) * (op1_limb_26_col106))))) + (((op0_limb_17_col68) * (op1_limb_25_col105))))) + (((op0_limb_18_col69) * (op1_limb_24_col104))))) + (((op0_limb_19_col70) * (op1_limb_23_col103))))) + (((op0_limb_20_col71) * (op1_limb_22_col102))))) + (((op0_limb_21_col72) * (op1_limb_21_col101))))) + (((op0_limb_22_col73) * (op1_limb_20_col100))))) + (((op0_limb_23_col74) * (op1_limb_19_col99))))) + (((op0_limb_24_col75) * (op1_limb_18_col98))))) + (((op0_limb_25_col76) * (op1_limb_17_col97))))) + (((op0_limb_26_col77) * (op1_limb_16_col96))))) + (((op0_limb_27_col78) * (op1_limb_15_col95)))); +let conv_tmp_5745_105 = ((((((((((((((((((((((((M31_0) + (((op0_limb_16_col67) * (op1_limb_27_col107))))) + (((op0_limb_17_col68) * (op1_limb_26_col106))))) + (((op0_limb_18_col69) * (op1_limb_25_col105))))) + (((op0_limb_19_col70) * (op1_limb_24_col104))))) + (((op0_limb_20_col71) * (op1_limb_23_col103))))) + (((op0_limb_21_col72) * (op1_limb_22_col102))))) + (((op0_limb_22_col73) * (op1_limb_21_col101))))) + (((op0_limb_23_col74) * (op1_limb_20_col100))))) + (((op0_limb_24_col75) * (op1_limb_19_col99))))) + (((op0_limb_25_col76) * (op1_limb_18_col98))))) + (((op0_limb_26_col77) * (op1_limb_17_col97))))) + (((op0_limb_27_col78) * (op1_limb_16_col96)))); +let conv_tmp_5745_106 = ((((((((((((((((((((((M31_0) + (((op0_limb_17_col68) * (op1_limb_27_col107))))) + (((op0_limb_18_col69) * (op1_limb_26_col106))))) + (((op0_limb_19_col70) * (op1_limb_25_col105))))) + (((op0_limb_20_col71) * (op1_limb_24_col104))))) + (((op0_limb_21_col72) * (op1_limb_23_col103))))) + (((op0_limb_22_col73) * (op1_limb_22_col102))))) + (((op0_limb_23_col74) * (op1_limb_21_col101))))) + (((op0_limb_24_col75) * (op1_limb_20_col100))))) + (((op0_limb_25_col76) * (op1_limb_19_col99))))) + (((op0_limb_26_col77) * (op1_limb_18_col98))))) + (((op0_limb_27_col78) * (op1_limb_17_col97)))); +let conv_tmp_5745_107 = ((((((((((((((((((((M31_0) + (((op0_limb_18_col69) * (op1_limb_27_col107))))) + (((op0_limb_19_col70) * (op1_limb_26_col106))))) + (((op0_limb_20_col71) * (op1_limb_25_col105))))) + (((op0_limb_21_col72) * (op1_limb_24_col104))))) + (((op0_limb_22_col73) * (op1_limb_23_col103))))) + (((op0_limb_23_col74) * (op1_limb_22_col102))))) + (((op0_limb_24_col75) * (op1_limb_21_col101))))) + (((op0_limb_25_col76) * (op1_limb_20_col100))))) + (((op0_limb_26_col77) * (op1_limb_19_col99))))) + (((op0_limb_27_col78) * (op1_limb_18_col98)))); +let conv_tmp_5745_108 = ((((((((((((((((((M31_0) + (((op0_limb_19_col70) * (op1_limb_27_col107))))) + (((op0_limb_20_col71) * (op1_limb_26_col106))))) + (((op0_limb_21_col72) * (op1_limb_25_col105))))) + (((op0_limb_22_col73) * (op1_limb_24_col104))))) + (((op0_limb_23_col74) * (op1_limb_23_col103))))) + (((op0_limb_24_col75) * (op1_limb_22_col102))))) + (((op0_limb_25_col76) * (op1_limb_21_col101))))) + (((op0_limb_26_col77) * (op1_limb_20_col100))))) + (((op0_limb_27_col78) * (op1_limb_19_col99)))); +let conv_tmp_5745_109 = ((((((((((((((((M31_0) + (((op0_limb_20_col71) * (op1_limb_27_col107))))) + (((op0_limb_21_col72) * (op1_limb_26_col106))))) + (((op0_limb_22_col73) * (op1_limb_25_col105))))) + (((op0_limb_23_col74) * (op1_limb_24_col104))))) + (((op0_limb_24_col75) * (op1_limb_23_col103))))) + (((op0_limb_25_col76) * (op1_limb_22_col102))))) + (((op0_limb_26_col77) * (op1_limb_21_col101))))) + (((op0_limb_27_col78) * (op1_limb_20_col100)))); +let conv_tmp_5745_110 = ((((((((((((((M31_0) + (((op0_limb_21_col72) * (op1_limb_27_col107))))) + (((op0_limb_22_col73) * (op1_limb_26_col106))))) + (((op0_limb_23_col74) * (op1_limb_25_col105))))) + (((op0_limb_24_col75) * (op1_limb_24_col104))))) + (((op0_limb_25_col76) * (op1_limb_23_col103))))) + (((op0_limb_26_col77) * (op1_limb_22_col102))))) + (((op0_limb_27_col78) * (op1_limb_21_col101)))); +let conv_tmp_5745_111 = ((((((((((((M31_0) + (((op0_limb_22_col73) * (op1_limb_27_col107))))) + (((op0_limb_23_col74) * (op1_limb_26_col106))))) + (((op0_limb_24_col75) * (op1_limb_25_col105))))) + (((op0_limb_25_col76) * (op1_limb_24_col104))))) + (((op0_limb_26_col77) * (op1_limb_23_col103))))) + (((op0_limb_27_col78) * (op1_limb_22_col102)))); +let conv_tmp_5745_112 = ((((((((((M31_0) + (((op0_limb_23_col74) * (op1_limb_27_col107))))) + (((op0_limb_24_col75) * (op1_limb_26_col106))))) + (((op0_limb_25_col76) * (op1_limb_25_col105))))) + (((op0_limb_26_col77) * (op1_limb_24_col104))))) + (((op0_limb_27_col78) * (op1_limb_23_col103)))); +let conv_tmp_5745_113 = ((((((((M31_0) + (((op0_limb_24_col75) * (op1_limb_27_col107))))) + (((op0_limb_25_col76) * (op1_limb_26_col106))))) + (((op0_limb_26_col77) * (op1_limb_25_col105))))) + (((op0_limb_27_col78) * (op1_limb_24_col104)))); +let conv_tmp_5745_114 = ((((((M31_0) + (((op0_limb_25_col76) * (op1_limb_27_col107))))) + (((op0_limb_26_col77) * (op1_limb_26_col106))))) + (((op0_limb_27_col78) * (op1_limb_25_col105)))); +let conv_tmp_5745_115 = ((((M31_0) + (((op0_limb_26_col77) * (op1_limb_27_col107))))) + (((op0_limb_27_col78) * (op1_limb_26_col106)))); +let conv_tmp_5745_116 = ((M31_0) + (((op0_limb_27_col78) * (op1_limb_27_col107)))); +let conv_mod_tmp_5745_117 = ((((((M31_0) + (((M31_32) * (conv_tmp_5745_62))))) - (((M31_4) * (conv_tmp_5745_83))))) + (((M31_8) * (conv_tmp_5745_111)))); +let conv_mod_tmp_5745_118 = ((((((((M31_0) + (((M31_1) * (conv_tmp_5745_62))))) + (((M31_32) * (conv_tmp_5745_63))))) - (((M31_4) * (conv_tmp_5745_84))))) + (((M31_8) * (conv_tmp_5745_112)))); +let conv_mod_tmp_5745_119 = ((((((((M31_0) + (((M31_1) * (conv_tmp_5745_63))))) + (((M31_32) * (conv_tmp_5745_64))))) - (((M31_4) * (conv_tmp_5745_85))))) + (((M31_8) * (conv_tmp_5745_113)))); +let conv_mod_tmp_5745_120 = ((((((((M31_0) + (((M31_1) * (conv_tmp_5745_64))))) + (((M31_32) * (conv_tmp_5745_65))))) - (((M31_4) * (conv_tmp_5745_86))))) + (((M31_8) * (conv_tmp_5745_114)))); +let conv_mod_tmp_5745_121 = ((((((((M31_0) + (((M31_1) * (conv_tmp_5745_65))))) + (((M31_32) * (conv_tmp_5745_66))))) - (((M31_4) * (conv_tmp_5745_87))))) + (((M31_8) * (conv_tmp_5745_115)))); +let conv_mod_tmp_5745_122 = ((((((((M31_0) + (((M31_1) * (conv_tmp_5745_66))))) + (((M31_32) * (conv_tmp_5745_67))))) - (((M31_4) * (conv_tmp_5745_88))))) + (((M31_8) * (conv_tmp_5745_116)))); +let conv_mod_tmp_5745_123 = ((((((M31_0) + (((M31_1) * (conv_tmp_5745_67))))) + (((M31_32) * (conv_tmp_5745_68))))) - (((M31_4) * (conv_tmp_5745_89)))); +let conv_mod_tmp_5745_124 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_62))))) + (((M31_1) * (conv_tmp_5745_68))))) + (((M31_32) * (conv_tmp_5745_69))))) - (((M31_4) * (conv_tmp_5745_90)))); +let conv_mod_tmp_5745_125 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_63))))) + (((M31_1) * (conv_tmp_5745_69))))) + (((M31_32) * (conv_tmp_5745_70))))) - (((M31_4) * (conv_tmp_5745_91)))); +let conv_mod_tmp_5745_126 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_64))))) + (((M31_1) * (conv_tmp_5745_70))))) + (((M31_32) * (conv_tmp_5745_71))))) - (((M31_4) * (conv_tmp_5745_92)))); +let conv_mod_tmp_5745_127 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_65))))) + (((M31_1) * (conv_tmp_5745_71))))) + (((M31_32) * (conv_tmp_5745_72))))) - (((M31_4) * (conv_tmp_5745_93)))); +let conv_mod_tmp_5745_128 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_66))))) + (((M31_1) * (conv_tmp_5745_72))))) + (((M31_32) * (conv_tmp_5745_73))))) - (((M31_4) * (conv_tmp_5745_94)))); +let conv_mod_tmp_5745_129 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_67))))) + (((M31_1) * (conv_tmp_5745_73))))) + (((M31_32) * (conv_tmp_5745_74))))) - (((M31_4) * (conv_tmp_5745_95)))); +let conv_mod_tmp_5745_130 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_68))))) + (((M31_1) * (conv_tmp_5745_74))))) + (((M31_32) * (conv_tmp_5745_75))))) - (((M31_4) * (conv_tmp_5745_96)))); +let conv_mod_tmp_5745_131 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_69))))) + (((M31_1) * (conv_tmp_5745_75))))) + (((M31_32) * (conv_tmp_5745_76))))) - (((M31_4) * (conv_tmp_5745_97)))); +let conv_mod_tmp_5745_132 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_70))))) + (((M31_1) * (conv_tmp_5745_76))))) + (((M31_32) * (conv_tmp_5745_77))))) - (((M31_4) * (conv_tmp_5745_98)))); +let conv_mod_tmp_5745_133 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_71))))) + (((M31_1) * (conv_tmp_5745_77))))) + (((M31_32) * (conv_tmp_5745_78))))) - (((M31_4) * (conv_tmp_5745_99)))); +let conv_mod_tmp_5745_134 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_72))))) + (((M31_1) * (conv_tmp_5745_78))))) + (((M31_32) * (conv_tmp_5745_79))))) - (((M31_4) * (conv_tmp_5745_100)))); +let conv_mod_tmp_5745_135 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_73))))) + (((M31_1) * (conv_tmp_5745_79))))) + (((M31_32) * (conv_tmp_5745_80))))) - (((M31_4) * (conv_tmp_5745_101)))); +let conv_mod_tmp_5745_136 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_74))))) + (((M31_1) * (conv_tmp_5745_80))))) + (((M31_32) * (conv_tmp_5745_81))))) - (((M31_4) * (conv_tmp_5745_102)))); +let conv_mod_tmp_5745_137 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_75))))) + (((M31_1) * (conv_tmp_5745_81))))) + (((M31_32) * (conv_tmp_5745_82))))) - (((M31_4) * (conv_tmp_5745_103)))); +let conv_mod_tmp_5745_138 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_76))))) + (((M31_1) * (conv_tmp_5745_82))))) - (((M31_4) * (conv_tmp_5745_104))))) + (((M31_64) * (conv_tmp_5745_111)))); +let conv_mod_tmp_5745_139 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_77))))) - (((M31_4) * (conv_tmp_5745_105))))) + (((M31_2) * (conv_tmp_5745_111))))) + (((M31_64) * (conv_tmp_5745_112)))); +let conv_mod_tmp_5745_140 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_78))))) - (((M31_4) * (conv_tmp_5745_106))))) + (((M31_2) * (conv_tmp_5745_112))))) + (((M31_64) * (conv_tmp_5745_113)))); +let conv_mod_tmp_5745_141 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_79))))) - (((M31_4) * (conv_tmp_5745_107))))) + (((M31_2) * (conv_tmp_5745_113))))) + (((M31_64) * (conv_tmp_5745_114)))); +let conv_mod_tmp_5745_142 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_80))))) - (((M31_4) * (conv_tmp_5745_108))))) + (((M31_2) * (conv_tmp_5745_114))))) + (((M31_64) * (conv_tmp_5745_115)))); +let conv_mod_tmp_5745_143 = ((((((((M31_0) + (((M31_2) * (conv_tmp_5745_81))))) - (((M31_4) * (conv_tmp_5745_109))))) + (((M31_2) * (conv_tmp_5745_115))))) + (((M31_64) * (conv_tmp_5745_116)))); +let conv_mod_tmp_5745_144 = ((((((M31_0) + (((M31_2) * (conv_tmp_5745_82))))) - (((M31_4) * (conv_tmp_5745_110))))) + (((M31_2) * (conv_tmp_5745_116)))); +let k_mod_2_18_biased_tmp_5745_145 = ((((((PackedUInt32::from_m31(((conv_mod_tmp_5745_117) + (M31_134217728)))) + (((((PackedUInt32::from_m31(((conv_mod_tmp_5745_118) + (M31_134217728)))) & (UInt32_511))) << (UInt32_9))))) + (UInt32_65536))) & (UInt32_262143)); +let k_col165 = ((k_mod_2_18_biased_tmp_5745_145.low().as_m31()) + (((((k_mod_2_18_biased_tmp_5745_145.high().as_m31()) - (M31_1))) * (M31_65536)))); trace[165].data[row_index] = k_col165; sub_components_inputs @@ -928,7 +920,7 @@ sub_components_inputs .extend([((k_col165) + (M31_262144))].unpack()); lookup_data.rangecheck_19[0].push([((k_col165) + (M31_262144))]); -let carry_0_col166 = ((((((conv_mod_tmp_837) - (((M31_1) * (k_col165))))) + (M31_0))) * (M31_4194304)); +let carry_0_col166 = ((((((conv_mod_tmp_5745_117) - (((M31_1) * (k_col165))))) + (M31_0))) * (M31_4194304)); trace[166].data[row_index] = carry_0_col166; sub_components_inputs @@ -936,7 +928,7 @@ sub_components_inputs .extend([((carry_0_col166) + (M31_131072))].unpack()); lookup_data.rangecheck_19[1].push([((carry_0_col166) + (M31_131072))]); -let carry_1_col167 = ((((conv_mod_tmp_838) + (carry_0_col166))) * (M31_4194304)); +let carry_1_col167 = ((((conv_mod_tmp_5745_118) + (carry_0_col166))) * (M31_4194304)); trace[167].data[row_index] = carry_1_col167; sub_components_inputs @@ -944,7 +936,7 @@ sub_components_inputs .extend([((carry_1_col167) + (M31_131072))].unpack()); lookup_data.rangecheck_19[2].push([((carry_1_col167) + (M31_131072))]); -let carry_2_col168 = ((((conv_mod_tmp_839) + (carry_1_col167))) * (M31_4194304)); +let carry_2_col168 = ((((conv_mod_tmp_5745_119) + (carry_1_col167))) * (M31_4194304)); trace[168].data[row_index] = carry_2_col168; sub_components_inputs @@ -952,7 +944,7 @@ sub_components_inputs .extend([((carry_2_col168) + (M31_131072))].unpack()); lookup_data.rangecheck_19[3].push([((carry_2_col168) + (M31_131072))]); -let carry_3_col169 = ((((conv_mod_tmp_840) + (carry_2_col168))) * (M31_4194304)); +let carry_3_col169 = ((((conv_mod_tmp_5745_120) + (carry_2_col168))) * (M31_4194304)); trace[169].data[row_index] = carry_3_col169; sub_components_inputs @@ -960,7 +952,7 @@ sub_components_inputs .extend([((carry_3_col169) + (M31_131072))].unpack()); lookup_data.rangecheck_19[4].push([((carry_3_col169) + (M31_131072))]); -let carry_4_col170 = ((((conv_mod_tmp_841) + (carry_3_col169))) * (M31_4194304)); +let carry_4_col170 = ((((conv_mod_tmp_5745_121) + (carry_3_col169))) * (M31_4194304)); trace[170].data[row_index] = carry_4_col170; sub_components_inputs @@ -968,7 +960,7 @@ sub_components_inputs .extend([((carry_4_col170) + (M31_131072))].unpack()); lookup_data.rangecheck_19[5].push([((carry_4_col170) + (M31_131072))]); -let carry_5_col171 = ((((conv_mod_tmp_842) + (carry_4_col170))) * (M31_4194304)); +let carry_5_col171 = ((((conv_mod_tmp_5745_122) + (carry_4_col170))) * (M31_4194304)); trace[171].data[row_index] = carry_5_col171; sub_components_inputs @@ -976,7 +968,7 @@ sub_components_inputs .extend([((carry_5_col171) + (M31_131072))].unpack()); lookup_data.rangecheck_19[6].push([((carry_5_col171) + (M31_131072))]); -let carry_6_col172 = ((((conv_mod_tmp_843) + (carry_5_col171))) * (M31_4194304)); +let carry_6_col172 = ((((conv_mod_tmp_5745_123) + (carry_5_col171))) * (M31_4194304)); trace[172].data[row_index] = carry_6_col172; sub_components_inputs @@ -984,7 +976,7 @@ sub_components_inputs .extend([((carry_6_col172) + (M31_131072))].unpack()); lookup_data.rangecheck_19[7].push([((carry_6_col172) + (M31_131072))]); -let carry_7_col173 = ((((conv_mod_tmp_844) + (carry_6_col172))) * (M31_4194304)); +let carry_7_col173 = ((((conv_mod_tmp_5745_124) + (carry_6_col172))) * (M31_4194304)); trace[173].data[row_index] = carry_7_col173; sub_components_inputs @@ -992,7 +984,7 @@ sub_components_inputs .extend([((carry_7_col173) + (M31_131072))].unpack()); lookup_data.rangecheck_19[8].push([((carry_7_col173) + (M31_131072))]); -let carry_8_col174 = ((((conv_mod_tmp_845) + (carry_7_col173))) * (M31_4194304)); +let carry_8_col174 = ((((conv_mod_tmp_5745_125) + (carry_7_col173))) * (M31_4194304)); trace[174].data[row_index] = carry_8_col174; sub_components_inputs @@ -1000,7 +992,7 @@ sub_components_inputs .extend([((carry_8_col174) + (M31_131072))].unpack()); lookup_data.rangecheck_19[9].push([((carry_8_col174) + (M31_131072))]); -let carry_9_col175 = ((((conv_mod_tmp_846) + (carry_8_col174))) * (M31_4194304)); +let carry_9_col175 = ((((conv_mod_tmp_5745_126) + (carry_8_col174))) * (M31_4194304)); trace[175].data[row_index] = carry_9_col175; sub_components_inputs @@ -1008,7 +1000,7 @@ sub_components_inputs .extend([((carry_9_col175) + (M31_131072))].unpack()); lookup_data.rangecheck_19[10].push([((carry_9_col175) + (M31_131072))]); -let carry_10_col176 = ((((conv_mod_tmp_847) + (carry_9_col175))) * (M31_4194304)); +let carry_10_col176 = ((((conv_mod_tmp_5745_127) + (carry_9_col175))) * (M31_4194304)); trace[176].data[row_index] = carry_10_col176; sub_components_inputs @@ -1016,7 +1008,7 @@ sub_components_inputs .extend([((carry_10_col176) + (M31_131072))].unpack()); lookup_data.rangecheck_19[11].push([((carry_10_col176) + (M31_131072))]); -let carry_11_col177 = ((((conv_mod_tmp_848) + (carry_10_col176))) * (M31_4194304)); +let carry_11_col177 = ((((conv_mod_tmp_5745_128) + (carry_10_col176))) * (M31_4194304)); trace[177].data[row_index] = carry_11_col177; sub_components_inputs @@ -1024,7 +1016,7 @@ sub_components_inputs .extend([((carry_11_col177) + (M31_131072))].unpack()); lookup_data.rangecheck_19[12].push([((carry_11_col177) + (M31_131072))]); -let carry_12_col178 = ((((conv_mod_tmp_849) + (carry_11_col177))) * (M31_4194304)); +let carry_12_col178 = ((((conv_mod_tmp_5745_129) + (carry_11_col177))) * (M31_4194304)); trace[178].data[row_index] = carry_12_col178; sub_components_inputs @@ -1032,7 +1024,7 @@ sub_components_inputs .extend([((carry_12_col178) + (M31_131072))].unpack()); lookup_data.rangecheck_19[13].push([((carry_12_col178) + (M31_131072))]); -let carry_13_col179 = ((((conv_mod_tmp_850) + (carry_12_col178))) * (M31_4194304)); +let carry_13_col179 = ((((conv_mod_tmp_5745_130) + (carry_12_col178))) * (M31_4194304)); trace[179].data[row_index] = carry_13_col179; sub_components_inputs @@ -1040,7 +1032,7 @@ sub_components_inputs .extend([((carry_13_col179) + (M31_131072))].unpack()); lookup_data.rangecheck_19[14].push([((carry_13_col179) + (M31_131072))]); -let carry_14_col180 = ((((conv_mod_tmp_851) + (carry_13_col179))) * (M31_4194304)); +let carry_14_col180 = ((((conv_mod_tmp_5745_131) + (carry_13_col179))) * (M31_4194304)); trace[180].data[row_index] = carry_14_col180; sub_components_inputs @@ -1048,7 +1040,7 @@ sub_components_inputs .extend([((carry_14_col180) + (M31_131072))].unpack()); lookup_data.rangecheck_19[15].push([((carry_14_col180) + (M31_131072))]); -let carry_15_col181 = ((((conv_mod_tmp_852) + (carry_14_col180))) * (M31_4194304)); +let carry_15_col181 = ((((conv_mod_tmp_5745_132) + (carry_14_col180))) * (M31_4194304)); trace[181].data[row_index] = carry_15_col181; sub_components_inputs @@ -1056,7 +1048,7 @@ sub_components_inputs .extend([((carry_15_col181) + (M31_131072))].unpack()); lookup_data.rangecheck_19[16].push([((carry_15_col181) + (M31_131072))]); -let carry_16_col182 = ((((conv_mod_tmp_853) + (carry_15_col181))) * (M31_4194304)); +let carry_16_col182 = ((((conv_mod_tmp_5745_133) + (carry_15_col181))) * (M31_4194304)); trace[182].data[row_index] = carry_16_col182; sub_components_inputs @@ -1064,7 +1056,7 @@ sub_components_inputs .extend([((carry_16_col182) + (M31_131072))].unpack()); lookup_data.rangecheck_19[17].push([((carry_16_col182) + (M31_131072))]); -let carry_17_col183 = ((((conv_mod_tmp_854) + (carry_16_col182))) * (M31_4194304)); +let carry_17_col183 = ((((conv_mod_tmp_5745_134) + (carry_16_col182))) * (M31_4194304)); trace[183].data[row_index] = carry_17_col183; sub_components_inputs @@ -1072,7 +1064,7 @@ sub_components_inputs .extend([((carry_17_col183) + (M31_131072))].unpack()); lookup_data.rangecheck_19[18].push([((carry_17_col183) + (M31_131072))]); -let carry_18_col184 = ((((conv_mod_tmp_855) + (carry_17_col183))) * (M31_4194304)); +let carry_18_col184 = ((((conv_mod_tmp_5745_135) + (carry_17_col183))) * (M31_4194304)); trace[184].data[row_index] = carry_18_col184; sub_components_inputs @@ -1080,7 +1072,7 @@ sub_components_inputs .extend([((carry_18_col184) + (M31_131072))].unpack()); lookup_data.rangecheck_19[19].push([((carry_18_col184) + (M31_131072))]); -let carry_19_col185 = ((((conv_mod_tmp_856) + (carry_18_col184))) * (M31_4194304)); +let carry_19_col185 = ((((conv_mod_tmp_5745_136) + (carry_18_col184))) * (M31_4194304)); trace[185].data[row_index] = carry_19_col185; sub_components_inputs @@ -1088,7 +1080,7 @@ sub_components_inputs .extend([((carry_19_col185) + (M31_131072))].unpack()); lookup_data.rangecheck_19[20].push([((carry_19_col185) + (M31_131072))]); -let carry_20_col186 = ((((conv_mod_tmp_857) + (carry_19_col185))) * (M31_4194304)); +let carry_20_col186 = ((((conv_mod_tmp_5745_137) + (carry_19_col185))) * (M31_4194304)); trace[186].data[row_index] = carry_20_col186; sub_components_inputs @@ -1096,7 +1088,7 @@ sub_components_inputs .extend([((carry_20_col186) + (M31_131072))].unpack()); lookup_data.rangecheck_19[21].push([((carry_20_col186) + (M31_131072))]); -let carry_21_col187 = ((((((conv_mod_tmp_858) - (((M31_136) * (k_col165))))) + (carry_20_col186))) * (M31_4194304)); +let carry_21_col187 = ((((((conv_mod_tmp_5745_138) - (((M31_136) * (k_col165))))) + (carry_20_col186))) * (M31_4194304)); trace[187].data[row_index] = carry_21_col187; sub_components_inputs @@ -1104,7 +1096,7 @@ sub_components_inputs .extend([((carry_21_col187) + (M31_131072))].unpack()); lookup_data.rangecheck_19[22].push([((carry_21_col187) + (M31_131072))]); -let carry_22_col188 = ((((conv_mod_tmp_859) + (carry_21_col187))) * (M31_4194304)); +let carry_22_col188 = ((((conv_mod_tmp_5745_139) + (carry_21_col187))) * (M31_4194304)); trace[188].data[row_index] = carry_22_col188; sub_components_inputs @@ -1112,7 +1104,7 @@ sub_components_inputs .extend([((carry_22_col188) + (M31_131072))].unpack()); lookup_data.rangecheck_19[23].push([((carry_22_col188) + (M31_131072))]); -let carry_23_col189 = ((((conv_mod_tmp_860) + (carry_22_col188))) * (M31_4194304)); +let carry_23_col189 = ((((conv_mod_tmp_5745_140) + (carry_22_col188))) * (M31_4194304)); trace[189].data[row_index] = carry_23_col189; sub_components_inputs @@ -1120,7 +1112,7 @@ sub_components_inputs .extend([((carry_23_col189) + (M31_131072))].unpack()); lookup_data.rangecheck_19[24].push([((carry_23_col189) + (M31_131072))]); -let carry_24_col190 = ((((conv_mod_tmp_861) + (carry_23_col189))) * (M31_4194304)); +let carry_24_col190 = ((((conv_mod_tmp_5745_141) + (carry_23_col189))) * (M31_4194304)); trace[190].data[row_index] = carry_24_col190; sub_components_inputs @@ -1128,7 +1120,7 @@ sub_components_inputs .extend([((carry_24_col190) + (M31_131072))].unpack()); lookup_data.rangecheck_19[25].push([((carry_24_col190) + (M31_131072))]); -let carry_25_col191 = ((((conv_mod_tmp_862) + (carry_24_col190))) * (M31_4194304)); +let carry_25_col191 = ((((conv_mod_tmp_5745_142) + (carry_24_col190))) * (M31_4194304)); trace[191].data[row_index] = carry_25_col191; sub_components_inputs @@ -1136,7 +1128,7 @@ sub_components_inputs .extend([((carry_25_col191) + (M31_131072))].unpack()); lookup_data.rangecheck_19[26].push([((carry_25_col191) + (M31_131072))]); -let carry_26_col192 = ((((conv_mod_tmp_863) + (carry_25_col191))) * (M31_4194304)); +let carry_26_col192 = ((((conv_mod_tmp_5745_143) + (carry_25_col191))) * (M31_4194304)); trace[192].data[row_index] = carry_26_col192; sub_components_inputs @@ -1150,126 +1142,86 @@ lookup_data.rangecheck_19[27].push([((carry_26_col192) + (M31_131072))]); -let res_tmp_894 = ((((((PackedFelt252::from_m31(res_op1_tmp_226)) * (PackedFelt252::from_limbs([op1_limb_0_col80, op1_limb_1_col81, op1_limb_2_col82, op1_limb_3_col83, op1_limb_4_col84, op1_limb_5_col85, op1_limb_6_col86, op1_limb_7_col87, op1_limb_8_col88, op1_limb_9_col89, op1_limb_10_col90, op1_limb_11_col91, op1_limb_12_col92, op1_limb_13_col93, op1_limb_14_col94, op1_limb_15_col95, op1_limb_16_col96, op1_limb_17_col97, op1_limb_18_col98, op1_limb_19_col99, op1_limb_20_col100, op1_limb_21_col101, op1_limb_22_col102, op1_limb_23_col103, op1_limb_24_col104, op1_limb_25_col105, op1_limb_26_col106, op1_limb_27_col107])))) + (((PackedFelt252::from_m31(res_mul_col12)) * (mul_res_tmp_767))))) + (((PackedFelt252::from_m31(res_add_col11)) * (add_res_tmp_724)))); -let res_limb_0_col193 = res_tmp_894.get_m31(0); +let res_tmp_5745_146 = ((((((PackedFelt252::from_m31(res_op1_tmp_5745_22)) * (PackedFelt252::from_limbs([op1_limb_0_col80, op1_limb_1_col81, op1_limb_2_col82, op1_limb_3_col83, op1_limb_4_col84, op1_limb_5_col85, op1_limb_6_col86, op1_limb_7_col87, op1_limb_8_col88, op1_limb_9_col89, op1_limb_10_col90, op1_limb_11_col91, op1_limb_12_col92, op1_limb_13_col93, op1_limb_14_col94, op1_limb_15_col95, op1_limb_16_col96, op1_limb_17_col97, op1_limb_18_col98, op1_limb_19_col99, op1_limb_20_col100, op1_limb_21_col101, op1_limb_22_col102, op1_limb_23_col103, op1_limb_24_col104, op1_limb_25_col105, op1_limb_26_col106, op1_limb_27_col107])))) + (((PackedFelt252::from_m31(res_mul_col12)) * (mul_res_tmp_5745_61))))) + (((PackedFelt252::from_m31(res_add_col11)) * (add_res_tmp_5745_32)))); +let res_limb_0_col193 = res_tmp_5745_146.get_m31(0); trace[193].data[row_index] = res_limb_0_col193; -let res_limb_1_col194 = res_tmp_894.get_m31(1); +let res_limb_1_col194 = res_tmp_5745_146.get_m31(1); trace[194].data[row_index] = res_limb_1_col194; -let res_limb_2_col195 = res_tmp_894.get_m31(2); +let res_limb_2_col195 = res_tmp_5745_146.get_m31(2); trace[195].data[row_index] = res_limb_2_col195; -let res_limb_3_col196 = res_tmp_894.get_m31(3); +let res_limb_3_col196 = res_tmp_5745_146.get_m31(3); trace[196].data[row_index] = res_limb_3_col196; -let res_limb_4_col197 = res_tmp_894.get_m31(4); +let res_limb_4_col197 = res_tmp_5745_146.get_m31(4); trace[197].data[row_index] = res_limb_4_col197; -let res_limb_5_col198 = res_tmp_894.get_m31(5); +let res_limb_5_col198 = res_tmp_5745_146.get_m31(5); trace[198].data[row_index] = res_limb_5_col198; -let res_limb_6_col199 = res_tmp_894.get_m31(6); +let res_limb_6_col199 = res_tmp_5745_146.get_m31(6); trace[199].data[row_index] = res_limb_6_col199; -let res_limb_7_col200 = res_tmp_894.get_m31(7); +let res_limb_7_col200 = res_tmp_5745_146.get_m31(7); trace[200].data[row_index] = res_limb_7_col200; -let res_limb_8_col201 = res_tmp_894.get_m31(8); +let res_limb_8_col201 = res_tmp_5745_146.get_m31(8); trace[201].data[row_index] = res_limb_8_col201; -let res_limb_9_col202 = res_tmp_894.get_m31(9); +let res_limb_9_col202 = res_tmp_5745_146.get_m31(9); trace[202].data[row_index] = res_limb_9_col202; -let res_limb_10_col203 = res_tmp_894.get_m31(10); +let res_limb_10_col203 = res_tmp_5745_146.get_m31(10); trace[203].data[row_index] = res_limb_10_col203; -let res_limb_11_col204 = res_tmp_894.get_m31(11); +let res_limb_11_col204 = res_tmp_5745_146.get_m31(11); trace[204].data[row_index] = res_limb_11_col204; -let res_limb_12_col205 = res_tmp_894.get_m31(12); +let res_limb_12_col205 = res_tmp_5745_146.get_m31(12); trace[205].data[row_index] = res_limb_12_col205; -let res_limb_13_col206 = res_tmp_894.get_m31(13); +let res_limb_13_col206 = res_tmp_5745_146.get_m31(13); trace[206].data[row_index] = res_limb_13_col206; -let res_limb_14_col207 = res_tmp_894.get_m31(14); +let res_limb_14_col207 = res_tmp_5745_146.get_m31(14); trace[207].data[row_index] = res_limb_14_col207; -let res_limb_15_col208 = res_tmp_894.get_m31(15); +let res_limb_15_col208 = res_tmp_5745_146.get_m31(15); trace[208].data[row_index] = res_limb_15_col208; -let res_limb_16_col209 = res_tmp_894.get_m31(16); +let res_limb_16_col209 = res_tmp_5745_146.get_m31(16); trace[209].data[row_index] = res_limb_16_col209; -let res_limb_17_col210 = res_tmp_894.get_m31(17); +let res_limb_17_col210 = res_tmp_5745_146.get_m31(17); trace[210].data[row_index] = res_limb_17_col210; -let res_limb_18_col211 = res_tmp_894.get_m31(18); +let res_limb_18_col211 = res_tmp_5745_146.get_m31(18); trace[211].data[row_index] = res_limb_18_col211; -let res_limb_19_col212 = res_tmp_894.get_m31(19); +let res_limb_19_col212 = res_tmp_5745_146.get_m31(19); trace[212].data[row_index] = res_limb_19_col212; -let res_limb_20_col213 = res_tmp_894.get_m31(20); +let res_limb_20_col213 = res_tmp_5745_146.get_m31(20); trace[213].data[row_index] = res_limb_20_col213; -let res_limb_21_col214 = res_tmp_894.get_m31(21); +let res_limb_21_col214 = res_tmp_5745_146.get_m31(21); trace[214].data[row_index] = res_limb_21_col214; -let res_limb_22_col215 = res_tmp_894.get_m31(22); +let res_limb_22_col215 = res_tmp_5745_146.get_m31(22); trace[215].data[row_index] = res_limb_22_col215; -let res_limb_23_col216 = res_tmp_894.get_m31(23); +let res_limb_23_col216 = res_tmp_5745_146.get_m31(23); trace[216].data[row_index] = res_limb_23_col216; -let res_limb_24_col217 = res_tmp_894.get_m31(24); +let res_limb_24_col217 = res_tmp_5745_146.get_m31(24); trace[217].data[row_index] = res_limb_24_col217; -let res_limb_25_col218 = res_tmp_894.get_m31(25); +let res_limb_25_col218 = res_tmp_5745_146.get_m31(25); trace[218].data[row_index] = res_limb_25_col218; -let res_limb_26_col219 = res_tmp_894.get_m31(26); +let res_limb_26_col219 = res_tmp_5745_146.get_m31(26); trace[219].data[row_index] = res_limb_26_col219; -let res_limb_27_col220 = res_tmp_894.get_m31(27); +let res_limb_27_col220 = res_tmp_5745_146.get_m31(27); trace[220].data[row_index] = res_limb_27_col220; - //handle_opcodes. - - - - - //cond_felt252_as_addr. - - - - - - - - //cond_felt252_as_addr. - - - - - - - - - - - //update_registers. - - - - - //cond_felt252_as_addr. - - - - - - - - //cond_felt252_as_addr. - - - + //UpdateRegisters. - //cond_felt252_as_rel_imm. + //CondFelt252AsRelImm. - //cond_decode_small_sign. + //CondDecodeSmallSign. -let msb_tmp_908 = res_limb_27_col220.eq(M31_256); -let msb_col221 = msb_tmp_908.as_m31(); +let msb_tmp_5745_148 = res_limb_27_col220.eq(M31_256); +let msb_col221 = msb_tmp_5745_148.as_m31(); trace[221].data[row_index] = msb_col221; -let mid_limbs_set_tmp_909 = res_limb_20_col213.eq(M31_511); -let mid_limbs_set_col222 = mid_limbs_set_tmp_909.as_m31(); +let mid_limbs_set_tmp_5745_149 = res_limb_20_col213.eq(M31_511); +let mid_limbs_set_col222 = mid_limbs_set_tmp_5745_149.as_m31(); trace[222].data[row_index] = mid_limbs_set_col222; @@ -1277,31 +1229,31 @@ let mid_limbs_set_col222 = mid_limbs_set_tmp_909.as_m31(); -let diff_from_p_tmp_910 = ((dst_limb_0_col22) - (M31_1)); -let diff_from_p_tmp_911 = ((dst_limb_21_col43) - (M31_136)); -let diff_from_p_tmp_912 = ((dst_limb_27_col49) - (M31_256)); -let dst_sum_squares_inv_col223 = ((M31_1) .div (((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((diff_from_p_tmp_910) * (diff_from_p_tmp_910))))) + (dst_limb_1_col23))) + (dst_limb_2_col24))) + (dst_limb_3_col25))) + (dst_limb_4_col26))) + (dst_limb_5_col27))) + (dst_limb_6_col28))) + (dst_limb_7_col29))) + (dst_limb_8_col30))) + (dst_limb_9_col31))) + (dst_limb_10_col32))) + (dst_limb_11_col33))) + (dst_limb_12_col34))) + (dst_limb_13_col35))) + (dst_limb_14_col36))) + (dst_limb_15_col37))) + (dst_limb_16_col38))) + (dst_limb_17_col39))) + (dst_limb_18_col40))) + (dst_limb_19_col41))) + (dst_limb_20_col42))) + (((diff_from_p_tmp_911) * (diff_from_p_tmp_911))))) + (dst_limb_22_col44))) + (dst_limb_23_col45))) + (dst_limb_24_col46))) + (dst_limb_25_col47))) + (dst_limb_26_col48))) + (((diff_from_p_tmp_912) * (diff_from_p_tmp_912)))))); +let diff_from_p_tmp_5745_150 = ((dst_limb_0_col22) - (M31_1)); +let diff_from_p_tmp_5745_151 = ((dst_limb_21_col43) - (M31_136)); +let diff_from_p_tmp_5745_152 = ((dst_limb_27_col49) - (M31_256)); +let dst_sum_squares_inv_col223 = ((M31_1) .div (((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (((diff_from_p_tmp_5745_150) * (diff_from_p_tmp_5745_150))))) + (dst_limb_1_col23))) + (dst_limb_2_col24))) + (dst_limb_3_col25))) + (dst_limb_4_col26))) + (dst_limb_5_col27))) + (dst_limb_6_col28))) + (dst_limb_7_col29))) + (dst_limb_8_col30))) + (dst_limb_9_col31))) + (dst_limb_10_col32))) + (dst_limb_11_col33))) + (dst_limb_12_col34))) + (dst_limb_13_col35))) + (dst_limb_14_col36))) + (dst_limb_15_col37))) + (dst_limb_16_col38))) + (dst_limb_17_col39))) + (dst_limb_18_col40))) + (dst_limb_19_col41))) + (dst_limb_20_col42))) + (((diff_from_p_tmp_5745_151) * (diff_from_p_tmp_5745_151))))) + (dst_limb_22_col44))) + (dst_limb_23_col45))) + (dst_limb_24_col46))) + (dst_limb_25_col47))) + (dst_limb_26_col48))) + (((diff_from_p_tmp_5745_152) * (diff_from_p_tmp_5745_152)))))); trace[223].data[row_index] = dst_sum_squares_inv_col223; -let dst_is_zero_tmp_913 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (dst_limb_0_col22))) + (dst_limb_1_col23))) + (dst_limb_2_col24))) + (dst_limb_3_col25))) + (dst_limb_4_col26))) + (dst_limb_5_col27))) + (dst_limb_6_col28))) + (dst_limb_7_col29))) + (dst_limb_8_col30))) + (dst_limb_9_col31))) + (dst_limb_10_col32))) + (dst_limb_11_col33))) + (dst_limb_12_col34))) + (dst_limb_13_col35))) + (dst_limb_14_col36))) + (dst_limb_15_col37))) + (dst_limb_16_col38))) + (dst_limb_17_col39))) + (dst_limb_18_col40))) + (dst_limb_19_col41))) + (dst_limb_20_col42))) + (dst_limb_21_col43))) + (dst_limb_22_col44))) + (dst_limb_23_col45))) + (dst_limb_24_col46))) + (dst_limb_25_col47))) + (dst_limb_26_col48))) + (dst_limb_27_col49)).eq(M31_0); -let dst_sum_inv_col224 = ((M31_1) .div (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (dst_limb_0_col22))) + (dst_limb_1_col23))) + (dst_limb_2_col24))) + (dst_limb_3_col25))) + (dst_limb_4_col26))) + (dst_limb_5_col27))) + (dst_limb_6_col28))) + (dst_limb_7_col29))) + (dst_limb_8_col30))) + (dst_limb_9_col31))) + (dst_limb_10_col32))) + (dst_limb_11_col33))) + (dst_limb_12_col34))) + (dst_limb_13_col35))) + (dst_limb_14_col36))) + (dst_limb_15_col37))) + (dst_limb_16_col38))) + (dst_limb_17_col39))) + (dst_limb_18_col40))) + (dst_limb_19_col41))) + (dst_limb_20_col42))) + (dst_limb_21_col43))) + (dst_limb_22_col44))) + (dst_limb_23_col45))) + (dst_limb_24_col46))) + (dst_limb_25_col47))) + (dst_limb_26_col48))) + (dst_limb_27_col49))) + (dst_is_zero_tmp_913.as_m31())))); +let dst_is_zero_tmp_5745_153 = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (dst_limb_0_col22))) + (dst_limb_1_col23))) + (dst_limb_2_col24))) + (dst_limb_3_col25))) + (dst_limb_4_col26))) + (dst_limb_5_col27))) + (dst_limb_6_col28))) + (dst_limb_7_col29))) + (dst_limb_8_col30))) + (dst_limb_9_col31))) + (dst_limb_10_col32))) + (dst_limb_11_col33))) + (dst_limb_12_col34))) + (dst_limb_13_col35))) + (dst_limb_14_col36))) + (dst_limb_15_col37))) + (dst_limb_16_col38))) + (dst_limb_17_col39))) + (dst_limb_18_col40))) + (dst_limb_19_col41))) + (dst_limb_20_col42))) + (dst_limb_21_col43))) + (dst_limb_22_col44))) + (dst_limb_23_col45))) + (dst_limb_24_col46))) + (dst_limb_25_col47))) + (dst_limb_26_col48))) + (dst_limb_27_col49)).eq(M31_0); +let dst_sum_inv_col224 = ((M31_1) .div (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (dst_limb_0_col22))) + (dst_limb_1_col23))) + (dst_limb_2_col24))) + (dst_limb_3_col25))) + (dst_limb_4_col26))) + (dst_limb_5_col27))) + (dst_limb_6_col28))) + (dst_limb_7_col29))) + (dst_limb_8_col30))) + (dst_limb_9_col31))) + (dst_limb_10_col32))) + (dst_limb_11_col33))) + (dst_limb_12_col34))) + (dst_limb_13_col35))) + (dst_limb_14_col36))) + (dst_limb_15_col37))) + (dst_limb_16_col38))) + (dst_limb_17_col39))) + (dst_limb_18_col40))) + (dst_limb_19_col41))) + (dst_limb_20_col42))) + (dst_limb_21_col43))) + (dst_limb_22_col44))) + (dst_limb_23_col45))) + (dst_limb_24_col46))) + (dst_limb_25_col47))) + (dst_limb_26_col48))) + (dst_limb_27_col49))) + (dst_is_zero_tmp_5745_153.as_m31())))); trace[224].data[row_index] = dst_sum_inv_col224; let op1_as_rel_imm_cond_col225 = ((pc_update_jnz_col15) * (((((((((((((((((((((((((((((((((((((((((((((((((((((((((M31_0) + (dst_limb_0_col22))) + (dst_limb_1_col23))) + (dst_limb_2_col24))) + (dst_limb_3_col25))) + (dst_limb_4_col26))) + (dst_limb_5_col27))) + (dst_limb_6_col28))) + (dst_limb_7_col29))) + (dst_limb_8_col30))) + (dst_limb_9_col31))) + (dst_limb_10_col32))) + (dst_limb_11_col33))) + (dst_limb_12_col34))) + (dst_limb_13_col35))) + (dst_limb_14_col36))) + (dst_limb_15_col37))) + (dst_limb_16_col38))) + (dst_limb_17_col39))) + (dst_limb_18_col40))) + (dst_limb_19_col41))) + (dst_limb_20_col42))) + (dst_limb_21_col43))) + (dst_limb_22_col44))) + (dst_limb_23_col45))) + (dst_limb_24_col46))) + (dst_limb_25_col47))) + (dst_limb_26_col48))) + (dst_limb_27_col49)))); trace[225].data[row_index] = op1_as_rel_imm_cond_col225; - //cond_felt252_as_rel_imm. + //CondFelt252AsRelImm. - //cond_decode_small_sign. + //CondDecodeSmallSign. -let msb_tmp_914 = op1_limb_27_col107.eq(M31_256); -let msb_col226 = msb_tmp_914.as_m31(); +let msb_tmp_5745_154 = op1_limb_27_col107.eq(M31_256); +let msb_col226 = msb_tmp_5745_154.as_m31(); trace[226].data[row_index] = msb_col226; -let mid_limbs_set_tmp_915 = op1_limb_20_col100.eq(M31_511); -let mid_limbs_set_col227 = mid_limbs_set_tmp_915.as_m31(); +let mid_limbs_set_tmp_5745_155 = op1_limb_20_col100.eq(M31_511); +let mid_limbs_set_col227 = mid_limbs_set_tmp_5745_155.as_m31(); trace[227].data[row_index] = mid_limbs_set_col227; @@ -1309,13 +1261,13 @@ let mid_limbs_set_col227 = mid_limbs_set_tmp_915.as_m31(); -let next_pc_jnz_col228 = ((((dst_is_zero_tmp_913.as_m31()) * (((input_pc_col0) + (((M31_1) + (op1_imm_col8))))))) + (((((M31_1) - (dst_is_zero_tmp_913.as_m31()))) * (((input_pc_col0) + (((((((((op1_limb_0_col80) + (((op1_limb_1_col81) * (M31_512))))) + (((op1_limb_2_col82) * (M31_262144))))) - (msb_col226))) - (((M31_134217728) * (mid_limbs_set_col227)))))))))); +let next_pc_jnz_col228 = ((((dst_is_zero_tmp_5745_153.as_m31()) * (((input_pc_col0) + (((M31_1) + (op1_imm_col8))))))) + (((((M31_1) - (dst_is_zero_tmp_5745_153.as_m31()))) * (((input_pc_col0) + (((((((((op1_limb_0_col80) + (((op1_limb_1_col81) * (M31_512))))) + (((op1_limb_2_col82) * (M31_262144))))) - (msb_col226))) - (((M31_134217728) * (mid_limbs_set_col227)))))))))); trace[228].data[row_index] = next_pc_jnz_col228; lookup_data.opcodes[0].push([input_pc_col0, input_ap_col1, input_fp_col2]); -lookup_data.opcodes[1].push([((((((((pc_update_regular_tmp_227) * (((input_pc_col0) + (((M31_1) + (op1_imm_col8))))))) + (((pc_update_jump_col13) * (((((res_limb_0_col193) + (((res_limb_1_col194) * (M31_512))))) + (((res_limb_2_col195) * (M31_262144))))))))) + (((pc_update_jump_rel_col14) * (((input_pc_col0) + (((((((((res_limb_0_col193) + (((res_limb_1_col194) * (M31_512))))) + (((res_limb_2_col195) * (M31_262144))))) - (msb_col221))) - (((M31_134217728) * (mid_limbs_set_col222))))))))))) + (((pc_update_jnz_col15) * (next_pc_jnz_col228)))), ((((((input_ap_col1) + (((ap_update_add_col16) * (((((((((res_limb_0_col193) + (((res_limb_1_col194) * (M31_512))))) + (((res_limb_2_col195) * (M31_262144))))) - (msb_col221))) - (((M31_134217728) * (mid_limbs_set_col222))))))))) + (((ap_update_add_1_col17) * (M31_1))))) + (((opcode_call_col18) * (M31_2)))), ((((((fp_update_regular_tmp_229) * (input_fp_col2))) + (((opcode_ret_col19) * (((((dst_limb_0_col22) + (((dst_limb_1_col23) * (M31_512))))) + (((dst_limb_2_col24) * (M31_262144))))))))) + (((opcode_call_col18) * (((input_ap_col1) + (M31_2))))))]); +lookup_data.opcodes[1].push([((((((((pc_update_regular_tmp_5745_23) * (((input_pc_col0) + (((M31_1) + (op1_imm_col8))))))) + (((pc_update_jump_col13) * (((((res_limb_0_col193) + (((res_limb_1_col194) * (M31_512))))) + (((res_limb_2_col195) * (M31_262144))))))))) + (((pc_update_jump_rel_col14) * (((input_pc_col0) + (((((((((res_limb_0_col193) + (((res_limb_1_col194) * (M31_512))))) + (((res_limb_2_col195) * (M31_262144))))) - (msb_col221))) - (((M31_134217728) * (mid_limbs_set_col222))))))))))) + (((pc_update_jnz_col15) * (next_pc_jnz_col228)))), ((((((input_ap_col1) + (((ap_update_add_col16) * (((((((((res_limb_0_col193) + (((res_limb_1_col194) * (M31_512))))) + (((res_limb_2_col195) * (M31_262144))))) - (msb_col221))) - (((M31_134217728) * (mid_limbs_set_col222))))))))) + (((ap_update_add_1_col17) * (M31_1))))) + (((opcode_call_col18) * (M31_2)))), ((((((fp_update_regular_tmp_5745_25) * (input_fp_col2))) + (((opcode_ret_col19) * (((((dst_limb_0_col22) + (((dst_limb_1_col23) * (M31_512))))) + (((dst_limb_2_col24) * (M31_262144))))))))) + (((opcode_call_col18) * (((input_ap_col1) + (M31_2))))))]); }); @@ -1351,7 +1303,7 @@ impl InteractionClaimGenerator { &relations::RangeCheck_19, rangecheck_9_9_lookup_elements: &relations::RangeCheck_9_9, - verify_instruction_lookup_elements: + verifyinstruction_lookup_elements: &relations::VerifyInstruction, ) -> InteractionClaim { let log_size = std::cmp::max(self.n_calls.next_power_of_two().ilog2(), LOG_N_LANES); @@ -1362,7 +1314,7 @@ impl InteractionClaimGenerator { .verifyinstruction[0]; for (i, lookup_values) in lookup_row.iter().enumerate() { let denom = - verify_instruction_lookup_elements.combine(lookup_values); + verifyinstruction_lookup_elements.combine(lookup_values); col_gen.write_frac(i, PackedQM31::one(), denom); } col_gen.finalize_col(); diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/component.rs index cd2e4291..2140dab3 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/component.rs @@ -116,9 +116,9 @@ impl FrameworkEval for Eval { let dst_limb_26_col32 = eval.next_trace_mask(); let dst_limb_27_col33 = eval.next_trace_mask(); - // decode_instruction_d2b4cd588a3e2a7b. + // DecodeInstruction_d2b4cd588a3e2a7b. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -139,20 +139,20 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col4.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_ap_col1.clone() + (offset0_col3.clone() - M31_32768.clone())), dst_id_col5.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -186,7 +186,7 @@ impl FrameworkEval for Eval { dst_limb_26_col32.clone(), dst_limb_27_col33.clone(), ], - )]); + )); // dst equals 0. eval.add_constraint( @@ -220,7 +220,7 @@ impl FrameworkEval for Eval { + dst_limb_26_col32.clone()) + dst_limb_27_col33.clone()), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -228,9 +228,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -238,7 +238,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col4.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/prover.rs index 58cad706..ad30b83a 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_f/prover.rs @@ -176,35 +176,35 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jnz_opcode_is_taken_f_dst_base_fp_f_input)| { - let input_tmp_1228 = jnz_opcode_is_taken_f_dst_base_fp_f_input; - let input_pc_col0 = input_tmp_1228.pc; + let input_tmp_c1ec_0 = jnz_opcode_is_taken_f_dst_base_fp_f_input; + let input_pc_col0 = input_tmp_c1ec_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1228.ap; + let input_ap_col1 = input_tmp_c1ec_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1228.fp; + let input_fp_col2 = input_tmp_c1ec_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_d2b4cd588a3e2a7b. + // DecodeInstruction_d2b4cd588a3e2a7b. - let memory_address_to_id_value_tmp_1234 = + let memoryaddresstoid_value_tmp_c1ec_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1235 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1234); - let offset0_tmp_1236 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1235.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1235.get_m31(1))) + let memoryidtobig_value_tmp_c1ec_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c1ec_1); + let offset0_tmp_c1ec_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c1ec_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_c1ec_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1236.as_m31(); + let offset0_col3 = offset0_tmp_c1ec_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let ap_update_add_1_tmp_1237 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1235.get_m31(5))) + let ap_update_add_1_tmp_c1ec_4 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_c1ec_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1235.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_c1ec_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col4 = ap_update_add_1_tmp_1237.as_m31(); + let ap_update_add_1_col4 = ap_update_add_1_tmp_c1ec_4.as_m31(); trace[4].data[row_index] = ap_update_add_1_col4; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -254,13 +254,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1239 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_c1ec_5 = memory_address_to_id_state .deduce_output(((input_ap_col1) + ((offset0_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_1240 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1239); - let dst_id_col5 = memory_address_to_id_value_tmp_1239; + let memoryidtobig_value_tmp_c1ec_6 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_c1ec_5); + let dst_id_col5 = memoryaddresstoid_value_tmp_c1ec_5; trace[5].data[row_index] = dst_id_col5; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_ap_col1) + ((offset0_col3) - (M31_32768))).unpack()); @@ -269,61 +269,61 @@ pub fn write_trace_simd( ((input_ap_col1) + ((offset0_col3) - (M31_32768))), dst_id_col5, ]); - let dst_limb_0_col6 = memory_id_to_big_value_tmp_1240.get_m31(0); + let dst_limb_0_col6 = memoryidtobig_value_tmp_c1ec_6.get_m31(0); trace[6].data[row_index] = dst_limb_0_col6; - let dst_limb_1_col7 = memory_id_to_big_value_tmp_1240.get_m31(1); + let dst_limb_1_col7 = memoryidtobig_value_tmp_c1ec_6.get_m31(1); trace[7].data[row_index] = dst_limb_1_col7; - let dst_limb_2_col8 = memory_id_to_big_value_tmp_1240.get_m31(2); + let dst_limb_2_col8 = memoryidtobig_value_tmp_c1ec_6.get_m31(2); trace[8].data[row_index] = dst_limb_2_col8; - let dst_limb_3_col9 = memory_id_to_big_value_tmp_1240.get_m31(3); + let dst_limb_3_col9 = memoryidtobig_value_tmp_c1ec_6.get_m31(3); trace[9].data[row_index] = dst_limb_3_col9; - let dst_limb_4_col10 = memory_id_to_big_value_tmp_1240.get_m31(4); + let dst_limb_4_col10 = memoryidtobig_value_tmp_c1ec_6.get_m31(4); trace[10].data[row_index] = dst_limb_4_col10; - let dst_limb_5_col11 = memory_id_to_big_value_tmp_1240.get_m31(5); + let dst_limb_5_col11 = memoryidtobig_value_tmp_c1ec_6.get_m31(5); trace[11].data[row_index] = dst_limb_5_col11; - let dst_limb_6_col12 = memory_id_to_big_value_tmp_1240.get_m31(6); + let dst_limb_6_col12 = memoryidtobig_value_tmp_c1ec_6.get_m31(6); trace[12].data[row_index] = dst_limb_6_col12; - let dst_limb_7_col13 = memory_id_to_big_value_tmp_1240.get_m31(7); + let dst_limb_7_col13 = memoryidtobig_value_tmp_c1ec_6.get_m31(7); trace[13].data[row_index] = dst_limb_7_col13; - let dst_limb_8_col14 = memory_id_to_big_value_tmp_1240.get_m31(8); + let dst_limb_8_col14 = memoryidtobig_value_tmp_c1ec_6.get_m31(8); trace[14].data[row_index] = dst_limb_8_col14; - let dst_limb_9_col15 = memory_id_to_big_value_tmp_1240.get_m31(9); + let dst_limb_9_col15 = memoryidtobig_value_tmp_c1ec_6.get_m31(9); trace[15].data[row_index] = dst_limb_9_col15; - let dst_limb_10_col16 = memory_id_to_big_value_tmp_1240.get_m31(10); + let dst_limb_10_col16 = memoryidtobig_value_tmp_c1ec_6.get_m31(10); trace[16].data[row_index] = dst_limb_10_col16; - let dst_limb_11_col17 = memory_id_to_big_value_tmp_1240.get_m31(11); + let dst_limb_11_col17 = memoryidtobig_value_tmp_c1ec_6.get_m31(11); trace[17].data[row_index] = dst_limb_11_col17; - let dst_limb_12_col18 = memory_id_to_big_value_tmp_1240.get_m31(12); + let dst_limb_12_col18 = memoryidtobig_value_tmp_c1ec_6.get_m31(12); trace[18].data[row_index] = dst_limb_12_col18; - let dst_limb_13_col19 = memory_id_to_big_value_tmp_1240.get_m31(13); + let dst_limb_13_col19 = memoryidtobig_value_tmp_c1ec_6.get_m31(13); trace[19].data[row_index] = dst_limb_13_col19; - let dst_limb_14_col20 = memory_id_to_big_value_tmp_1240.get_m31(14); + let dst_limb_14_col20 = memoryidtobig_value_tmp_c1ec_6.get_m31(14); trace[20].data[row_index] = dst_limb_14_col20; - let dst_limb_15_col21 = memory_id_to_big_value_tmp_1240.get_m31(15); + let dst_limb_15_col21 = memoryidtobig_value_tmp_c1ec_6.get_m31(15); trace[21].data[row_index] = dst_limb_15_col21; - let dst_limb_16_col22 = memory_id_to_big_value_tmp_1240.get_m31(16); + let dst_limb_16_col22 = memoryidtobig_value_tmp_c1ec_6.get_m31(16); trace[22].data[row_index] = dst_limb_16_col22; - let dst_limb_17_col23 = memory_id_to_big_value_tmp_1240.get_m31(17); + let dst_limb_17_col23 = memoryidtobig_value_tmp_c1ec_6.get_m31(17); trace[23].data[row_index] = dst_limb_17_col23; - let dst_limb_18_col24 = memory_id_to_big_value_tmp_1240.get_m31(18); + let dst_limb_18_col24 = memoryidtobig_value_tmp_c1ec_6.get_m31(18); trace[24].data[row_index] = dst_limb_18_col24; - let dst_limb_19_col25 = memory_id_to_big_value_tmp_1240.get_m31(19); + let dst_limb_19_col25 = memoryidtobig_value_tmp_c1ec_6.get_m31(19); trace[25].data[row_index] = dst_limb_19_col25; - let dst_limb_20_col26 = memory_id_to_big_value_tmp_1240.get_m31(20); + let dst_limb_20_col26 = memoryidtobig_value_tmp_c1ec_6.get_m31(20); trace[26].data[row_index] = dst_limb_20_col26; - let dst_limb_21_col27 = memory_id_to_big_value_tmp_1240.get_m31(21); + let dst_limb_21_col27 = memoryidtobig_value_tmp_c1ec_6.get_m31(21); trace[27].data[row_index] = dst_limb_21_col27; - let dst_limb_22_col28 = memory_id_to_big_value_tmp_1240.get_m31(22); + let dst_limb_22_col28 = memoryidtobig_value_tmp_c1ec_6.get_m31(22); trace[28].data[row_index] = dst_limb_22_col28; - let dst_limb_23_col29 = memory_id_to_big_value_tmp_1240.get_m31(23); + let dst_limb_23_col29 = memoryidtobig_value_tmp_c1ec_6.get_m31(23); trace[29].data[row_index] = dst_limb_23_col29; - let dst_limb_24_col30 = memory_id_to_big_value_tmp_1240.get_m31(24); + let dst_limb_24_col30 = memoryidtobig_value_tmp_c1ec_6.get_m31(24); trace[30].data[row_index] = dst_limb_24_col30; - let dst_limb_25_col31 = memory_id_to_big_value_tmp_1240.get_m31(25); + let dst_limb_25_col31 = memoryidtobig_value_tmp_c1ec_6.get_m31(25); trace[31].data[row_index] = dst_limb_25_col31; - let dst_limb_26_col32 = memory_id_to_big_value_tmp_1240.get_m31(26); + let dst_limb_26_col32 = memoryidtobig_value_tmp_c1ec_6.get_m31(26); trace[32].data[row_index] = dst_limb_26_col32; - let dst_limb_27_col33 = memory_id_to_big_value_tmp_1240.get_m31(27); + let dst_limb_27_col33 = memoryidtobig_value_tmp_c1ec_6.get_m31(27); trace[33].data[row_index] = dst_limb_27_col33; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col5.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/component.rs index 1507e81a..6587a759 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/component.rs @@ -116,9 +116,9 @@ impl FrameworkEval for Eval { let dst_limb_26_col32 = eval.next_trace_mask(); let dst_limb_27_col33 = eval.next_trace_mask(); - // decode_instruction_113648125c3c3f56. + // DecodeInstruction_113648125c3c3f56. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -139,20 +139,20 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col4.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_fp_col2.clone() + (offset0_col3.clone() - M31_32768.clone())), dst_id_col5.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -186,7 +186,7 @@ impl FrameworkEval for Eval { dst_limb_26_col32.clone(), dst_limb_27_col33.clone(), ], - )]); + )); // dst equals 0. eval.add_constraint( @@ -220,7 +220,7 @@ impl FrameworkEval for Eval { + dst_limb_26_col32.clone()) + dst_limb_27_col33.clone()), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -228,9 +228,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -238,7 +238,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col4.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/prover.rs index d85ab070..ea676002 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_f_dst_base_fp_t/prover.rs @@ -176,35 +176,35 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jnz_opcode_is_taken_f_dst_base_fp_t_input)| { - let input_tmp_1256 = jnz_opcode_is_taken_f_dst_base_fp_t_input; - let input_pc_col0 = input_tmp_1256.pc; + let input_tmp_1c37_0 = jnz_opcode_is_taken_f_dst_base_fp_t_input; + let input_pc_col0 = input_tmp_1c37_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1256.ap; + let input_ap_col1 = input_tmp_1c37_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1256.fp; + let input_fp_col2 = input_tmp_1c37_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_113648125c3c3f56. + // DecodeInstruction_113648125c3c3f56. - let memory_address_to_id_value_tmp_1257 = + let memoryaddresstoid_value_tmp_1c37_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1258 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1257); - let offset0_tmp_1259 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1258.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1258.get_m31(1))) + let memoryidtobig_value_tmp_1c37_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_1c37_1); + let offset0_tmp_1c37_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1c37_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_1c37_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1259.as_m31(); + let offset0_col3 = offset0_tmp_1c37_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let ap_update_add_1_tmp_1260 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1258.get_m31(5))) + let ap_update_add_1_tmp_1c37_4 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_1c37_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1258.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1c37_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col4 = ap_update_add_1_tmp_1260.as_m31(); + let ap_update_add_1_col4 = ap_update_add_1_tmp_1c37_4.as_m31(); trace[4].data[row_index] = ap_update_add_1_col4; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -254,13 +254,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1262 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_1c37_5 = memory_address_to_id_state .deduce_output(((input_fp_col2) + ((offset0_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_1263 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1262); - let dst_id_col5 = memory_address_to_id_value_tmp_1262; + let memoryidtobig_value_tmp_1c37_6 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_1c37_5); + let dst_id_col5 = memoryaddresstoid_value_tmp_1c37_5; trace[5].data[row_index] = dst_id_col5; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_fp_col2) + ((offset0_col3) - (M31_32768))).unpack()); @@ -269,61 +269,61 @@ pub fn write_trace_simd( ((input_fp_col2) + ((offset0_col3) - (M31_32768))), dst_id_col5, ]); - let dst_limb_0_col6 = memory_id_to_big_value_tmp_1263.get_m31(0); + let dst_limb_0_col6 = memoryidtobig_value_tmp_1c37_6.get_m31(0); trace[6].data[row_index] = dst_limb_0_col6; - let dst_limb_1_col7 = memory_id_to_big_value_tmp_1263.get_m31(1); + let dst_limb_1_col7 = memoryidtobig_value_tmp_1c37_6.get_m31(1); trace[7].data[row_index] = dst_limb_1_col7; - let dst_limb_2_col8 = memory_id_to_big_value_tmp_1263.get_m31(2); + let dst_limb_2_col8 = memoryidtobig_value_tmp_1c37_6.get_m31(2); trace[8].data[row_index] = dst_limb_2_col8; - let dst_limb_3_col9 = memory_id_to_big_value_tmp_1263.get_m31(3); + let dst_limb_3_col9 = memoryidtobig_value_tmp_1c37_6.get_m31(3); trace[9].data[row_index] = dst_limb_3_col9; - let dst_limb_4_col10 = memory_id_to_big_value_tmp_1263.get_m31(4); + let dst_limb_4_col10 = memoryidtobig_value_tmp_1c37_6.get_m31(4); trace[10].data[row_index] = dst_limb_4_col10; - let dst_limb_5_col11 = memory_id_to_big_value_tmp_1263.get_m31(5); + let dst_limb_5_col11 = memoryidtobig_value_tmp_1c37_6.get_m31(5); trace[11].data[row_index] = dst_limb_5_col11; - let dst_limb_6_col12 = memory_id_to_big_value_tmp_1263.get_m31(6); + let dst_limb_6_col12 = memoryidtobig_value_tmp_1c37_6.get_m31(6); trace[12].data[row_index] = dst_limb_6_col12; - let dst_limb_7_col13 = memory_id_to_big_value_tmp_1263.get_m31(7); + let dst_limb_7_col13 = memoryidtobig_value_tmp_1c37_6.get_m31(7); trace[13].data[row_index] = dst_limb_7_col13; - let dst_limb_8_col14 = memory_id_to_big_value_tmp_1263.get_m31(8); + let dst_limb_8_col14 = memoryidtobig_value_tmp_1c37_6.get_m31(8); trace[14].data[row_index] = dst_limb_8_col14; - let dst_limb_9_col15 = memory_id_to_big_value_tmp_1263.get_m31(9); + let dst_limb_9_col15 = memoryidtobig_value_tmp_1c37_6.get_m31(9); trace[15].data[row_index] = dst_limb_9_col15; - let dst_limb_10_col16 = memory_id_to_big_value_tmp_1263.get_m31(10); + let dst_limb_10_col16 = memoryidtobig_value_tmp_1c37_6.get_m31(10); trace[16].data[row_index] = dst_limb_10_col16; - let dst_limb_11_col17 = memory_id_to_big_value_tmp_1263.get_m31(11); + let dst_limb_11_col17 = memoryidtobig_value_tmp_1c37_6.get_m31(11); trace[17].data[row_index] = dst_limb_11_col17; - let dst_limb_12_col18 = memory_id_to_big_value_tmp_1263.get_m31(12); + let dst_limb_12_col18 = memoryidtobig_value_tmp_1c37_6.get_m31(12); trace[18].data[row_index] = dst_limb_12_col18; - let dst_limb_13_col19 = memory_id_to_big_value_tmp_1263.get_m31(13); + let dst_limb_13_col19 = memoryidtobig_value_tmp_1c37_6.get_m31(13); trace[19].data[row_index] = dst_limb_13_col19; - let dst_limb_14_col20 = memory_id_to_big_value_tmp_1263.get_m31(14); + let dst_limb_14_col20 = memoryidtobig_value_tmp_1c37_6.get_m31(14); trace[20].data[row_index] = dst_limb_14_col20; - let dst_limb_15_col21 = memory_id_to_big_value_tmp_1263.get_m31(15); + let dst_limb_15_col21 = memoryidtobig_value_tmp_1c37_6.get_m31(15); trace[21].data[row_index] = dst_limb_15_col21; - let dst_limb_16_col22 = memory_id_to_big_value_tmp_1263.get_m31(16); + let dst_limb_16_col22 = memoryidtobig_value_tmp_1c37_6.get_m31(16); trace[22].data[row_index] = dst_limb_16_col22; - let dst_limb_17_col23 = memory_id_to_big_value_tmp_1263.get_m31(17); + let dst_limb_17_col23 = memoryidtobig_value_tmp_1c37_6.get_m31(17); trace[23].data[row_index] = dst_limb_17_col23; - let dst_limb_18_col24 = memory_id_to_big_value_tmp_1263.get_m31(18); + let dst_limb_18_col24 = memoryidtobig_value_tmp_1c37_6.get_m31(18); trace[24].data[row_index] = dst_limb_18_col24; - let dst_limb_19_col25 = memory_id_to_big_value_tmp_1263.get_m31(19); + let dst_limb_19_col25 = memoryidtobig_value_tmp_1c37_6.get_m31(19); trace[25].data[row_index] = dst_limb_19_col25; - let dst_limb_20_col26 = memory_id_to_big_value_tmp_1263.get_m31(20); + let dst_limb_20_col26 = memoryidtobig_value_tmp_1c37_6.get_m31(20); trace[26].data[row_index] = dst_limb_20_col26; - let dst_limb_21_col27 = memory_id_to_big_value_tmp_1263.get_m31(21); + let dst_limb_21_col27 = memoryidtobig_value_tmp_1c37_6.get_m31(21); trace[27].data[row_index] = dst_limb_21_col27; - let dst_limb_22_col28 = memory_id_to_big_value_tmp_1263.get_m31(22); + let dst_limb_22_col28 = memoryidtobig_value_tmp_1c37_6.get_m31(22); trace[28].data[row_index] = dst_limb_22_col28; - let dst_limb_23_col29 = memory_id_to_big_value_tmp_1263.get_m31(23); + let dst_limb_23_col29 = memoryidtobig_value_tmp_1c37_6.get_m31(23); trace[29].data[row_index] = dst_limb_23_col29; - let dst_limb_24_col30 = memory_id_to_big_value_tmp_1263.get_m31(24); + let dst_limb_24_col30 = memoryidtobig_value_tmp_1c37_6.get_m31(24); trace[30].data[row_index] = dst_limb_24_col30; - let dst_limb_25_col31 = memory_id_to_big_value_tmp_1263.get_m31(25); + let dst_limb_25_col31 = memoryidtobig_value_tmp_1c37_6.get_m31(25); trace[31].data[row_index] = dst_limb_25_col31; - let dst_limb_26_col32 = memory_id_to_big_value_tmp_1263.get_m31(26); + let dst_limb_26_col32 = memoryidtobig_value_tmp_1c37_6.get_m31(26); trace[32].data[row_index] = dst_limb_26_col32; - let dst_limb_27_col33 = memory_id_to_big_value_tmp_1263.get_m31(27); + let dst_limb_27_col33 = memoryidtobig_value_tmp_1c37_6.get_m31(27); trace[33].data[row_index] = dst_limb_27_col33; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col5.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/component.rs index 3999f0fb..cbb4d0ca 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/component.rs @@ -129,9 +129,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col40 = eval.next_trace_mask(); let next_pc_limb_2_col41 = eval.next_trace_mask(); - // decode_instruction_d2b4cd588a3e2a7b. + // DecodeInstruction_d2b4cd588a3e2a7b. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -152,20 +152,20 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col4.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_ap_col1.clone() + (offset0_col3.clone() - M31_32768.clone())), dst_id_col5.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -199,7 +199,7 @@ impl FrameworkEval for Eval { dst_limb_26_col32.clone(), dst_limb_27_col33.clone(), ], - )]); + )); // dst doesn't equal 0. eval.add_constraint( @@ -235,14 +235,14 @@ impl FrameworkEval for Eval { * res_col34.clone()) - M31_1.clone()), ); - let diff_from_p_tmp_1249 = (dst_limb_0_col6.clone() - M31_1.clone()); - let diff_from_p_tmp_1250 = (dst_limb_21_col27.clone() - M31_136.clone()); - let diff_from_p_tmp_1251 = (dst_limb_27_col33.clone() - M31_256.clone()); + let diff_from_p_tmp_490d_7 = (dst_limb_0_col6.clone() - M31_1.clone()); + let diff_from_p_tmp_490d_8 = (dst_limb_21_col27.clone() - M31_136.clone()); + let diff_from_p_tmp_490d_9 = (dst_limb_27_col33.clone() - M31_256.clone()); // dst doesn't equal P. eval.add_constraint( ((((((((((((((((((((((((((((((M31_0.clone() - + (diff_from_p_tmp_1249.clone() - * diff_from_p_tmp_1249.clone())) + + (diff_from_p_tmp_490d_7.clone() + * diff_from_p_tmp_490d_7.clone())) + dst_limb_1_col7.clone()) + dst_limb_2_col8.clone()) + dst_limb_3_col9.clone()) @@ -263,29 +263,29 @@ impl FrameworkEval for Eval { + dst_limb_18_col24.clone()) + dst_limb_19_col25.clone()) + dst_limb_20_col26.clone()) - + (diff_from_p_tmp_1250.clone() * diff_from_p_tmp_1250.clone())) + + (diff_from_p_tmp_490d_8.clone() * diff_from_p_tmp_490d_8.clone())) + dst_limb_22_col28.clone()) + dst_limb_23_col29.clone()) + dst_limb_24_col30.clone()) + dst_limb_25_col31.clone()) + dst_limb_26_col32.clone()) - + (diff_from_p_tmp_1251.clone() * diff_from_p_tmp_1251.clone())) + + (diff_from_p_tmp_490d_9.clone() * diff_from_p_tmp_490d_9.clone())) * res_squares_col35.clone()) - M31_1.clone()), ); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_pc_col0.clone() + M31_1.clone()), next_pc_id_col36.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col37.clone() * (msb_col37.clone() - M31_1.clone()))); @@ -298,7 +298,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col38.clone()) * (msb_col37.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -332,9 +332,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col37.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -342,9 +342,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -357,7 +357,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col4.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/prover.rs index 6fa732d0..7e59342a 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_f/prover.rs @@ -184,35 +184,35 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jnz_opcode_is_taken_t_dst_base_fp_f_input)| { - let input_tmp_1241 = jnz_opcode_is_taken_t_dst_base_fp_f_input; - let input_pc_col0 = input_tmp_1241.pc; + let input_tmp_490d_0 = jnz_opcode_is_taken_t_dst_base_fp_f_input; + let input_pc_col0 = input_tmp_490d_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1241.ap; + let input_ap_col1 = input_tmp_490d_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1241.fp; + let input_fp_col2 = input_tmp_490d_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_d2b4cd588a3e2a7b. + // DecodeInstruction_d2b4cd588a3e2a7b. - let memory_address_to_id_value_tmp_1242 = + let memoryaddresstoid_value_tmp_490d_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1243 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1242); - let offset0_tmp_1244 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1243.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1243.get_m31(1))) + let memoryidtobig_value_tmp_490d_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_490d_1); + let offset0_tmp_490d_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_490d_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_490d_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1244.as_m31(); + let offset0_col3 = offset0_tmp_490d_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let ap_update_add_1_tmp_1245 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1243.get_m31(5))) + let ap_update_add_1_tmp_490d_4 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_490d_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1243.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_490d_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col4 = ap_update_add_1_tmp_1245.as_m31(); + let ap_update_add_1_col4 = ap_update_add_1_tmp_490d_4.as_m31(); trace[4].data[row_index] = ap_update_add_1_col4; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -262,13 +262,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1247 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_490d_5 = memory_address_to_id_state .deduce_output(((input_ap_col1) + ((offset0_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_1248 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1247); - let dst_id_col5 = memory_address_to_id_value_tmp_1247; + let memoryidtobig_value_tmp_490d_6 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_490d_5); + let dst_id_col5 = memoryaddresstoid_value_tmp_490d_5; trace[5].data[row_index] = dst_id_col5; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_ap_col1) + ((offset0_col3) - (M31_32768))).unpack()); @@ -277,61 +277,61 @@ pub fn write_trace_simd( ((input_ap_col1) + ((offset0_col3) - (M31_32768))), dst_id_col5, ]); - let dst_limb_0_col6 = memory_id_to_big_value_tmp_1248.get_m31(0); + let dst_limb_0_col6 = memoryidtobig_value_tmp_490d_6.get_m31(0); trace[6].data[row_index] = dst_limb_0_col6; - let dst_limb_1_col7 = memory_id_to_big_value_tmp_1248.get_m31(1); + let dst_limb_1_col7 = memoryidtobig_value_tmp_490d_6.get_m31(1); trace[7].data[row_index] = dst_limb_1_col7; - let dst_limb_2_col8 = memory_id_to_big_value_tmp_1248.get_m31(2); + let dst_limb_2_col8 = memoryidtobig_value_tmp_490d_6.get_m31(2); trace[8].data[row_index] = dst_limb_2_col8; - let dst_limb_3_col9 = memory_id_to_big_value_tmp_1248.get_m31(3); + let dst_limb_3_col9 = memoryidtobig_value_tmp_490d_6.get_m31(3); trace[9].data[row_index] = dst_limb_3_col9; - let dst_limb_4_col10 = memory_id_to_big_value_tmp_1248.get_m31(4); + let dst_limb_4_col10 = memoryidtobig_value_tmp_490d_6.get_m31(4); trace[10].data[row_index] = dst_limb_4_col10; - let dst_limb_5_col11 = memory_id_to_big_value_tmp_1248.get_m31(5); + let dst_limb_5_col11 = memoryidtobig_value_tmp_490d_6.get_m31(5); trace[11].data[row_index] = dst_limb_5_col11; - let dst_limb_6_col12 = memory_id_to_big_value_tmp_1248.get_m31(6); + let dst_limb_6_col12 = memoryidtobig_value_tmp_490d_6.get_m31(6); trace[12].data[row_index] = dst_limb_6_col12; - let dst_limb_7_col13 = memory_id_to_big_value_tmp_1248.get_m31(7); + let dst_limb_7_col13 = memoryidtobig_value_tmp_490d_6.get_m31(7); trace[13].data[row_index] = dst_limb_7_col13; - let dst_limb_8_col14 = memory_id_to_big_value_tmp_1248.get_m31(8); + let dst_limb_8_col14 = memoryidtobig_value_tmp_490d_6.get_m31(8); trace[14].data[row_index] = dst_limb_8_col14; - let dst_limb_9_col15 = memory_id_to_big_value_tmp_1248.get_m31(9); + let dst_limb_9_col15 = memoryidtobig_value_tmp_490d_6.get_m31(9); trace[15].data[row_index] = dst_limb_9_col15; - let dst_limb_10_col16 = memory_id_to_big_value_tmp_1248.get_m31(10); + let dst_limb_10_col16 = memoryidtobig_value_tmp_490d_6.get_m31(10); trace[16].data[row_index] = dst_limb_10_col16; - let dst_limb_11_col17 = memory_id_to_big_value_tmp_1248.get_m31(11); + let dst_limb_11_col17 = memoryidtobig_value_tmp_490d_6.get_m31(11); trace[17].data[row_index] = dst_limb_11_col17; - let dst_limb_12_col18 = memory_id_to_big_value_tmp_1248.get_m31(12); + let dst_limb_12_col18 = memoryidtobig_value_tmp_490d_6.get_m31(12); trace[18].data[row_index] = dst_limb_12_col18; - let dst_limb_13_col19 = memory_id_to_big_value_tmp_1248.get_m31(13); + let dst_limb_13_col19 = memoryidtobig_value_tmp_490d_6.get_m31(13); trace[19].data[row_index] = dst_limb_13_col19; - let dst_limb_14_col20 = memory_id_to_big_value_tmp_1248.get_m31(14); + let dst_limb_14_col20 = memoryidtobig_value_tmp_490d_6.get_m31(14); trace[20].data[row_index] = dst_limb_14_col20; - let dst_limb_15_col21 = memory_id_to_big_value_tmp_1248.get_m31(15); + let dst_limb_15_col21 = memoryidtobig_value_tmp_490d_6.get_m31(15); trace[21].data[row_index] = dst_limb_15_col21; - let dst_limb_16_col22 = memory_id_to_big_value_tmp_1248.get_m31(16); + let dst_limb_16_col22 = memoryidtobig_value_tmp_490d_6.get_m31(16); trace[22].data[row_index] = dst_limb_16_col22; - let dst_limb_17_col23 = memory_id_to_big_value_tmp_1248.get_m31(17); + let dst_limb_17_col23 = memoryidtobig_value_tmp_490d_6.get_m31(17); trace[23].data[row_index] = dst_limb_17_col23; - let dst_limb_18_col24 = memory_id_to_big_value_tmp_1248.get_m31(18); + let dst_limb_18_col24 = memoryidtobig_value_tmp_490d_6.get_m31(18); trace[24].data[row_index] = dst_limb_18_col24; - let dst_limb_19_col25 = memory_id_to_big_value_tmp_1248.get_m31(19); + let dst_limb_19_col25 = memoryidtobig_value_tmp_490d_6.get_m31(19); trace[25].data[row_index] = dst_limb_19_col25; - let dst_limb_20_col26 = memory_id_to_big_value_tmp_1248.get_m31(20); + let dst_limb_20_col26 = memoryidtobig_value_tmp_490d_6.get_m31(20); trace[26].data[row_index] = dst_limb_20_col26; - let dst_limb_21_col27 = memory_id_to_big_value_tmp_1248.get_m31(21); + let dst_limb_21_col27 = memoryidtobig_value_tmp_490d_6.get_m31(21); trace[27].data[row_index] = dst_limb_21_col27; - let dst_limb_22_col28 = memory_id_to_big_value_tmp_1248.get_m31(22); + let dst_limb_22_col28 = memoryidtobig_value_tmp_490d_6.get_m31(22); trace[28].data[row_index] = dst_limb_22_col28; - let dst_limb_23_col29 = memory_id_to_big_value_tmp_1248.get_m31(23); + let dst_limb_23_col29 = memoryidtobig_value_tmp_490d_6.get_m31(23); trace[29].data[row_index] = dst_limb_23_col29; - let dst_limb_24_col30 = memory_id_to_big_value_tmp_1248.get_m31(24); + let dst_limb_24_col30 = memoryidtobig_value_tmp_490d_6.get_m31(24); trace[30].data[row_index] = dst_limb_24_col30; - let dst_limb_25_col31 = memory_id_to_big_value_tmp_1248.get_m31(25); + let dst_limb_25_col31 = memoryidtobig_value_tmp_490d_6.get_m31(25); trace[31].data[row_index] = dst_limb_25_col31; - let dst_limb_26_col32 = memory_id_to_big_value_tmp_1248.get_m31(26); + let dst_limb_26_col32 = memoryidtobig_value_tmp_490d_6.get_m31(26); trace[32].data[row_index] = dst_limb_26_col32; - let dst_limb_27_col33 = memory_id_to_big_value_tmp_1248.get_m31(27); + let dst_limb_27_col33 = memoryidtobig_value_tmp_490d_6.get_m31(27); trace[33].data[row_index] = dst_limb_27_col33; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col5.unpack()); @@ -398,12 +398,13 @@ pub fn write_trace_simd( + (dst_limb_27_col33)), )); trace[34].data[row_index] = res_col34; - let diff_from_p_tmp_1249 = ((dst_limb_0_col6) - (M31_1)); - let diff_from_p_tmp_1250 = ((dst_limb_21_col27) - (M31_136)); - let diff_from_p_tmp_1251 = ((dst_limb_27_col33) - (M31_256)); + let diff_from_p_tmp_490d_7 = ((dst_limb_0_col6) - (M31_1)); + let diff_from_p_tmp_490d_8 = ((dst_limb_21_col27) - (M31_136)); + let diff_from_p_tmp_490d_9 = ((dst_limb_27_col33) - (M31_256)); let res_squares_col35 = ((M31_1).div( (((((((((((((((((((((((((((((M31_0) - + ((diff_from_p_tmp_1249) * (diff_from_p_tmp_1249))) + + ((diff_from_p_tmp_490d_7) + * (diff_from_p_tmp_490d_7))) + (dst_limb_1_col7)) + (dst_limb_2_col8)) + (dst_limb_3_col9)) @@ -424,43 +425,43 @@ pub fn write_trace_simd( + (dst_limb_18_col24)) + (dst_limb_19_col25)) + (dst_limb_20_col26)) - + ((diff_from_p_tmp_1250) * (diff_from_p_tmp_1250))) + + ((diff_from_p_tmp_490d_8) * (diff_from_p_tmp_490d_8))) + (dst_limb_22_col28)) + (dst_limb_23_col29)) + (dst_limb_24_col30)) + (dst_limb_25_col31)) + (dst_limb_26_col32)) - + ((diff_from_p_tmp_1251) * (diff_from_p_tmp_1251))), + + ((diff_from_p_tmp_490d_9) * (diff_from_p_tmp_490d_9))), )); trace[35].data[row_index] = res_squares_col35; - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1252 = + let memoryaddresstoid_value_tmp_490d_10 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_1253 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1252); - let next_pc_id_col36 = memory_address_to_id_value_tmp_1252; + let memoryidtobig_value_tmp_490d_11 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_490d_10); + let next_pc_id_col36 = memoryaddresstoid_value_tmp_490d_10; trace[36].data[row_index] = next_pc_id_col36; sub_components_inputs.memory_address_to_id_inputs[1] .extend(((input_pc_col0) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[1].push([((input_pc_col0) + (M31_1)), next_pc_id_col36]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1254 = memory_id_to_big_value_tmp_1253.get_m31(27).eq(M31_256); - let msb_col37 = msb_tmp_1254.as_m31(); + let msb_tmp_490d_12 = memoryidtobig_value_tmp_490d_11.get_m31(27).eq(M31_256); + let msb_col37 = msb_tmp_490d_12.as_m31(); trace[37].data[row_index] = msb_col37; - let mid_limbs_set_tmp_1255 = memory_id_to_big_value_tmp_1253.get_m31(20).eq(M31_511); - let mid_limbs_set_col38 = mid_limbs_set_tmp_1255.as_m31(); + let mid_limbs_set_tmp_490d_13 = memoryidtobig_value_tmp_490d_11.get_m31(20).eq(M31_511); + let mid_limbs_set_col38 = mid_limbs_set_tmp_490d_13.as_m31(); trace[38].data[row_index] = mid_limbs_set_col38; - let next_pc_limb_0_col39 = memory_id_to_big_value_tmp_1253.get_m31(0); + let next_pc_limb_0_col39 = memoryidtobig_value_tmp_490d_11.get_m31(0); trace[39].data[row_index] = next_pc_limb_0_col39; - let next_pc_limb_1_col40 = memory_id_to_big_value_tmp_1253.get_m31(1); + let next_pc_limb_1_col40 = memoryidtobig_value_tmp_490d_11.get_m31(1); trace[40].data[row_index] = next_pc_limb_1_col40; - let next_pc_limb_2_col41 = memory_id_to_big_value_tmp_1253.get_m31(2); + let next_pc_limb_2_col41 = memoryidtobig_value_tmp_490d_11.get_m31(2); trace[41].data[row_index] = next_pc_limb_2_col41; sub_components_inputs.memory_id_to_big_inputs[1].extend(next_pc_id_col36.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/component.rs index 80e75b05..a8fbe610 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/component.rs @@ -129,9 +129,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col40 = eval.next_trace_mask(); let next_pc_limb_2_col41 = eval.next_trace_mask(); - // decode_instruction_113648125c3c3f56. + // DecodeInstruction_113648125c3c3f56. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -152,20 +152,20 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col4.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_fp_col2.clone() + (offset0_col3.clone() - M31_32768.clone())), dst_id_col5.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -199,7 +199,7 @@ impl FrameworkEval for Eval { dst_limb_26_col32.clone(), dst_limb_27_col33.clone(), ], - )]); + )); // dst doesn't equal 0. eval.add_constraint( @@ -235,14 +235,14 @@ impl FrameworkEval for Eval { * res_col34.clone()) - M31_1.clone()), ); - let diff_from_p_tmp_1221 = (dst_limb_0_col6.clone() - M31_1.clone()); - let diff_from_p_tmp_1222 = (dst_limb_21_col27.clone() - M31_136.clone()); - let diff_from_p_tmp_1223 = (dst_limb_27_col33.clone() - M31_256.clone()); + let diff_from_p_tmp_1078_7 = (dst_limb_0_col6.clone() - M31_1.clone()); + let diff_from_p_tmp_1078_8 = (dst_limb_21_col27.clone() - M31_136.clone()); + let diff_from_p_tmp_1078_9 = (dst_limb_27_col33.clone() - M31_256.clone()); // dst doesn't equal P. eval.add_constraint( ((((((((((((((((((((((((((((((M31_0.clone() - + (diff_from_p_tmp_1221.clone() - * diff_from_p_tmp_1221.clone())) + + (diff_from_p_tmp_1078_7.clone() + * diff_from_p_tmp_1078_7.clone())) + dst_limb_1_col7.clone()) + dst_limb_2_col8.clone()) + dst_limb_3_col9.clone()) @@ -263,29 +263,29 @@ impl FrameworkEval for Eval { + dst_limb_18_col24.clone()) + dst_limb_19_col25.clone()) + dst_limb_20_col26.clone()) - + (diff_from_p_tmp_1222.clone() * diff_from_p_tmp_1222.clone())) + + (diff_from_p_tmp_1078_8.clone() * diff_from_p_tmp_1078_8.clone())) + dst_limb_22_col28.clone()) + dst_limb_23_col29.clone()) + dst_limb_24_col30.clone()) + dst_limb_25_col31.clone()) + dst_limb_26_col32.clone()) - + (diff_from_p_tmp_1223.clone() * diff_from_p_tmp_1223.clone())) + + (diff_from_p_tmp_1078_9.clone() * diff_from_p_tmp_1078_9.clone())) * res_squares_col35.clone()) - M31_1.clone()), ); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_pc_col0.clone() + M31_1.clone()), next_pc_id_col36.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col37.clone() * (msb_col37.clone() - M31_1.clone()))); @@ -298,7 +298,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col38.clone()) * (msb_col37.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -332,9 +332,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col37.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -342,9 +342,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -357,7 +357,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col4.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/prover.rs index 0d3ea0c8..dfe83b06 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jnz_opcode_is_taken_t_dst_base_fp_t/prover.rs @@ -184,35 +184,35 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jnz_opcode_is_taken_t_dst_base_fp_t_input)| { - let input_tmp_1208 = jnz_opcode_is_taken_t_dst_base_fp_t_input; - let input_pc_col0 = input_tmp_1208.pc; + let input_tmp_1078_0 = jnz_opcode_is_taken_t_dst_base_fp_t_input; + let input_pc_col0 = input_tmp_1078_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1208.ap; + let input_ap_col1 = input_tmp_1078_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1208.fp; + let input_fp_col2 = input_tmp_1078_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_113648125c3c3f56. + // DecodeInstruction_113648125c3c3f56. - let memory_address_to_id_value_tmp_1214 = + let memoryaddresstoid_value_tmp_1078_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1215 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1214); - let offset0_tmp_1216 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1215.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1215.get_m31(1))) + let memoryidtobig_value_tmp_1078_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_1078_1); + let offset0_tmp_1078_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1078_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_1078_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1216.as_m31(); + let offset0_col3 = offset0_tmp_1078_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let ap_update_add_1_tmp_1217 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1215.get_m31(5))) + let ap_update_add_1_tmp_1078_4 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_1078_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1215.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1078_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col4 = ap_update_add_1_tmp_1217.as_m31(); + let ap_update_add_1_col4 = ap_update_add_1_tmp_1078_4.as_m31(); trace[4].data[row_index] = ap_update_add_1_col4; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -262,13 +262,13 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1219 = memory_address_to_id_state + let memoryaddresstoid_value_tmp_1078_5 = memory_address_to_id_state .deduce_output(((input_fp_col2) + ((offset0_col3) - (M31_32768)))); - let memory_id_to_big_value_tmp_1220 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1219); - let dst_id_col5 = memory_address_to_id_value_tmp_1219; + let memoryidtobig_value_tmp_1078_6 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_1078_5); + let dst_id_col5 = memoryaddresstoid_value_tmp_1078_5; trace[5].data[row_index] = dst_id_col5; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_fp_col2) + ((offset0_col3) - (M31_32768))).unpack()); @@ -277,61 +277,61 @@ pub fn write_trace_simd( ((input_fp_col2) + ((offset0_col3) - (M31_32768))), dst_id_col5, ]); - let dst_limb_0_col6 = memory_id_to_big_value_tmp_1220.get_m31(0); + let dst_limb_0_col6 = memoryidtobig_value_tmp_1078_6.get_m31(0); trace[6].data[row_index] = dst_limb_0_col6; - let dst_limb_1_col7 = memory_id_to_big_value_tmp_1220.get_m31(1); + let dst_limb_1_col7 = memoryidtobig_value_tmp_1078_6.get_m31(1); trace[7].data[row_index] = dst_limb_1_col7; - let dst_limb_2_col8 = memory_id_to_big_value_tmp_1220.get_m31(2); + let dst_limb_2_col8 = memoryidtobig_value_tmp_1078_6.get_m31(2); trace[8].data[row_index] = dst_limb_2_col8; - let dst_limb_3_col9 = memory_id_to_big_value_tmp_1220.get_m31(3); + let dst_limb_3_col9 = memoryidtobig_value_tmp_1078_6.get_m31(3); trace[9].data[row_index] = dst_limb_3_col9; - let dst_limb_4_col10 = memory_id_to_big_value_tmp_1220.get_m31(4); + let dst_limb_4_col10 = memoryidtobig_value_tmp_1078_6.get_m31(4); trace[10].data[row_index] = dst_limb_4_col10; - let dst_limb_5_col11 = memory_id_to_big_value_tmp_1220.get_m31(5); + let dst_limb_5_col11 = memoryidtobig_value_tmp_1078_6.get_m31(5); trace[11].data[row_index] = dst_limb_5_col11; - let dst_limb_6_col12 = memory_id_to_big_value_tmp_1220.get_m31(6); + let dst_limb_6_col12 = memoryidtobig_value_tmp_1078_6.get_m31(6); trace[12].data[row_index] = dst_limb_6_col12; - let dst_limb_7_col13 = memory_id_to_big_value_tmp_1220.get_m31(7); + let dst_limb_7_col13 = memoryidtobig_value_tmp_1078_6.get_m31(7); trace[13].data[row_index] = dst_limb_7_col13; - let dst_limb_8_col14 = memory_id_to_big_value_tmp_1220.get_m31(8); + let dst_limb_8_col14 = memoryidtobig_value_tmp_1078_6.get_m31(8); trace[14].data[row_index] = dst_limb_8_col14; - let dst_limb_9_col15 = memory_id_to_big_value_tmp_1220.get_m31(9); + let dst_limb_9_col15 = memoryidtobig_value_tmp_1078_6.get_m31(9); trace[15].data[row_index] = dst_limb_9_col15; - let dst_limb_10_col16 = memory_id_to_big_value_tmp_1220.get_m31(10); + let dst_limb_10_col16 = memoryidtobig_value_tmp_1078_6.get_m31(10); trace[16].data[row_index] = dst_limb_10_col16; - let dst_limb_11_col17 = memory_id_to_big_value_tmp_1220.get_m31(11); + let dst_limb_11_col17 = memoryidtobig_value_tmp_1078_6.get_m31(11); trace[17].data[row_index] = dst_limb_11_col17; - let dst_limb_12_col18 = memory_id_to_big_value_tmp_1220.get_m31(12); + let dst_limb_12_col18 = memoryidtobig_value_tmp_1078_6.get_m31(12); trace[18].data[row_index] = dst_limb_12_col18; - let dst_limb_13_col19 = memory_id_to_big_value_tmp_1220.get_m31(13); + let dst_limb_13_col19 = memoryidtobig_value_tmp_1078_6.get_m31(13); trace[19].data[row_index] = dst_limb_13_col19; - let dst_limb_14_col20 = memory_id_to_big_value_tmp_1220.get_m31(14); + let dst_limb_14_col20 = memoryidtobig_value_tmp_1078_6.get_m31(14); trace[20].data[row_index] = dst_limb_14_col20; - let dst_limb_15_col21 = memory_id_to_big_value_tmp_1220.get_m31(15); + let dst_limb_15_col21 = memoryidtobig_value_tmp_1078_6.get_m31(15); trace[21].data[row_index] = dst_limb_15_col21; - let dst_limb_16_col22 = memory_id_to_big_value_tmp_1220.get_m31(16); + let dst_limb_16_col22 = memoryidtobig_value_tmp_1078_6.get_m31(16); trace[22].data[row_index] = dst_limb_16_col22; - let dst_limb_17_col23 = memory_id_to_big_value_tmp_1220.get_m31(17); + let dst_limb_17_col23 = memoryidtobig_value_tmp_1078_6.get_m31(17); trace[23].data[row_index] = dst_limb_17_col23; - let dst_limb_18_col24 = memory_id_to_big_value_tmp_1220.get_m31(18); + let dst_limb_18_col24 = memoryidtobig_value_tmp_1078_6.get_m31(18); trace[24].data[row_index] = dst_limb_18_col24; - let dst_limb_19_col25 = memory_id_to_big_value_tmp_1220.get_m31(19); + let dst_limb_19_col25 = memoryidtobig_value_tmp_1078_6.get_m31(19); trace[25].data[row_index] = dst_limb_19_col25; - let dst_limb_20_col26 = memory_id_to_big_value_tmp_1220.get_m31(20); + let dst_limb_20_col26 = memoryidtobig_value_tmp_1078_6.get_m31(20); trace[26].data[row_index] = dst_limb_20_col26; - let dst_limb_21_col27 = memory_id_to_big_value_tmp_1220.get_m31(21); + let dst_limb_21_col27 = memoryidtobig_value_tmp_1078_6.get_m31(21); trace[27].data[row_index] = dst_limb_21_col27; - let dst_limb_22_col28 = memory_id_to_big_value_tmp_1220.get_m31(22); + let dst_limb_22_col28 = memoryidtobig_value_tmp_1078_6.get_m31(22); trace[28].data[row_index] = dst_limb_22_col28; - let dst_limb_23_col29 = memory_id_to_big_value_tmp_1220.get_m31(23); + let dst_limb_23_col29 = memoryidtobig_value_tmp_1078_6.get_m31(23); trace[29].data[row_index] = dst_limb_23_col29; - let dst_limb_24_col30 = memory_id_to_big_value_tmp_1220.get_m31(24); + let dst_limb_24_col30 = memoryidtobig_value_tmp_1078_6.get_m31(24); trace[30].data[row_index] = dst_limb_24_col30; - let dst_limb_25_col31 = memory_id_to_big_value_tmp_1220.get_m31(25); + let dst_limb_25_col31 = memoryidtobig_value_tmp_1078_6.get_m31(25); trace[31].data[row_index] = dst_limb_25_col31; - let dst_limb_26_col32 = memory_id_to_big_value_tmp_1220.get_m31(26); + let dst_limb_26_col32 = memoryidtobig_value_tmp_1078_6.get_m31(26); trace[32].data[row_index] = dst_limb_26_col32; - let dst_limb_27_col33 = memory_id_to_big_value_tmp_1220.get_m31(27); + let dst_limb_27_col33 = memoryidtobig_value_tmp_1078_6.get_m31(27); trace[33].data[row_index] = dst_limb_27_col33; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col5.unpack()); @@ -398,12 +398,13 @@ pub fn write_trace_simd( + (dst_limb_27_col33)), )); trace[34].data[row_index] = res_col34; - let diff_from_p_tmp_1221 = ((dst_limb_0_col6) - (M31_1)); - let diff_from_p_tmp_1222 = ((dst_limb_21_col27) - (M31_136)); - let diff_from_p_tmp_1223 = ((dst_limb_27_col33) - (M31_256)); + let diff_from_p_tmp_1078_7 = ((dst_limb_0_col6) - (M31_1)); + let diff_from_p_tmp_1078_8 = ((dst_limb_21_col27) - (M31_136)); + let diff_from_p_tmp_1078_9 = ((dst_limb_27_col33) - (M31_256)); let res_squares_col35 = ((M31_1).div( (((((((((((((((((((((((((((((M31_0) - + ((diff_from_p_tmp_1221) * (diff_from_p_tmp_1221))) + + ((diff_from_p_tmp_1078_7) + * (diff_from_p_tmp_1078_7))) + (dst_limb_1_col7)) + (dst_limb_2_col8)) + (dst_limb_3_col9)) @@ -424,43 +425,43 @@ pub fn write_trace_simd( + (dst_limb_18_col24)) + (dst_limb_19_col25)) + (dst_limb_20_col26)) - + ((diff_from_p_tmp_1222) * (diff_from_p_tmp_1222))) + + ((diff_from_p_tmp_1078_8) * (diff_from_p_tmp_1078_8))) + (dst_limb_22_col28)) + (dst_limb_23_col29)) + (dst_limb_24_col30)) + (dst_limb_25_col31)) + (dst_limb_26_col32)) - + ((diff_from_p_tmp_1223) * (diff_from_p_tmp_1223))), + + ((diff_from_p_tmp_1078_9) * (diff_from_p_tmp_1078_9))), )); trace[35].data[row_index] = res_squares_col35; - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1224 = + let memoryaddresstoid_value_tmp_1078_10 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_1225 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1224); - let next_pc_id_col36 = memory_address_to_id_value_tmp_1224; + let memoryidtobig_value_tmp_1078_11 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_1078_10); + let next_pc_id_col36 = memoryaddresstoid_value_tmp_1078_10; trace[36].data[row_index] = next_pc_id_col36; sub_components_inputs.memory_address_to_id_inputs[1] .extend(((input_pc_col0) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[1].push([((input_pc_col0) + (M31_1)), next_pc_id_col36]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1226 = memory_id_to_big_value_tmp_1225.get_m31(27).eq(M31_256); - let msb_col37 = msb_tmp_1226.as_m31(); + let msb_tmp_1078_12 = memoryidtobig_value_tmp_1078_11.get_m31(27).eq(M31_256); + let msb_col37 = msb_tmp_1078_12.as_m31(); trace[37].data[row_index] = msb_col37; - let mid_limbs_set_tmp_1227 = memory_id_to_big_value_tmp_1225.get_m31(20).eq(M31_511); - let mid_limbs_set_col38 = mid_limbs_set_tmp_1227.as_m31(); + let mid_limbs_set_tmp_1078_13 = memoryidtobig_value_tmp_1078_11.get_m31(20).eq(M31_511); + let mid_limbs_set_col38 = mid_limbs_set_tmp_1078_13.as_m31(); trace[38].data[row_index] = mid_limbs_set_col38; - let next_pc_limb_0_col39 = memory_id_to_big_value_tmp_1225.get_m31(0); + let next_pc_limb_0_col39 = memoryidtobig_value_tmp_1078_11.get_m31(0); trace[39].data[row_index] = next_pc_limb_0_col39; - let next_pc_limb_1_col40 = memory_id_to_big_value_tmp_1225.get_m31(1); + let next_pc_limb_1_col40 = memoryidtobig_value_tmp_1078_11.get_m31(1); trace[40].data[row_index] = next_pc_limb_1_col40; - let next_pc_limb_2_col41 = memory_id_to_big_value_tmp_1225.get_m31(2); + let next_pc_limb_2_col41 = memoryidtobig_value_tmp_1078_11.get_m31(2); trace[41].data[row_index] = next_pc_limb_2_col41; sub_components_inputs.memory_id_to_big_inputs[1].extend(next_pc_id_col36.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/component.rs index 66523983..80baed1d 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/component.rs @@ -93,9 +93,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col9 = eval.next_trace_mask(); let next_pc_limb_2_col10 = eval.next_trace_mask(); - // decode_instruction_ff344370bb4f7f54. + // DecodeInstruction_ff344370bb4f7f54. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -116,16 +116,16 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col6.clone(), ], - )]); + )); // Either flag op1_base_fp is on or flag op1_base_ap is on. eval.add_constraint( ((op1_base_fp_col4.clone() + op1_base_ap_col5.clone()) - M31_1.clone()), ); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -134,9 +134,9 @@ impl FrameworkEval for Eval { + (offset2_col3.clone() - M31_32768.clone())), next_pc_id_col7.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -145,9 +145,9 @@ impl FrameworkEval for Eval { next_pc_limb_1_col9.clone(), next_pc_limb_2_col10.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -155,9 +155,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -166,7 +166,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col6.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/prover.rs index 7a9406b6..526b46af 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_f/prover.rs @@ -178,56 +178,56 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jump_opcode_is_rel_f_is_imm_f_is_double_deref_f_input)| { - let input_tmp_1315 = jump_opcode_is_rel_f_is_imm_f_is_double_deref_f_input; - let input_pc_col0 = input_tmp_1315.pc; + let input_tmp_a5f5_0 = jump_opcode_is_rel_f_is_imm_f_is_double_deref_f_input; + let input_pc_col0 = input_tmp_a5f5_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1315.ap; + let input_ap_col1 = input_tmp_a5f5_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1315.fp; + let input_fp_col2 = input_tmp_a5f5_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_ff344370bb4f7f54. + // DecodeInstruction_ff344370bb4f7f54. - let memory_address_to_id_value_tmp_1323 = + let memoryaddresstoid_value_tmp_a5f5_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1324 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1323); - let offset2_tmp_1325 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(3))) + let memoryidtobig_value_tmp_a5f5_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_a5f5_1); + let offset2_tmp_a5f5_3 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col3 = offset2_tmp_1325.as_m31(); + let offset2_col3 = offset2_tmp_a5f5_3.as_m31(); trace[3].data[row_index] = offset2_col3; - let op1_base_fp_tmp_1326 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(5))) + let op1_base_fp_tmp_a5f5_4 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(6))) << (UInt16_6))) >> (UInt16_3)) & (UInt16_1)); - let op1_base_fp_col4 = op1_base_fp_tmp_1326.as_m31(); + let op1_base_fp_col4 = op1_base_fp_tmp_a5f5_4.as_m31(); trace[4].data[row_index] = op1_base_fp_col4; - let op1_base_ap_tmp_1327 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(5))) + let op1_base_ap_tmp_a5f5_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(6))) << (UInt16_6))) >> (UInt16_4)) & (UInt16_1)); - let op1_base_ap_col5 = op1_base_ap_tmp_1327.as_m31(); + let op1_base_ap_col5 = op1_base_ap_tmp_a5f5_5.as_m31(); trace[5].data[row_index] = op1_base_ap_col5; - let ap_update_add_1_tmp_1328 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(5))) + let ap_update_add_1_tmp_a5f5_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1324.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_a5f5_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col6 = ap_update_add_1_tmp_1328.as_m31(); + let ap_update_add_1_col6 = ap_update_add_1_tmp_a5f5_6.as_m31(); trace[6].data[row_index] = ap_update_add_1_col6; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -277,15 +277,15 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1330 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_a5f5_7 = memory_address_to_id_state.deduce_output( ((((op1_base_fp_col4) * (input_fp_col2)) + ((op1_base_ap_col5) * (input_ap_col1))) + ((offset2_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1331 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1330); - let next_pc_id_col7 = memory_address_to_id_value_tmp_1330; + let memoryidtobig_value_tmp_a5f5_8 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_a5f5_7); + let next_pc_id_col7 = memoryaddresstoid_value_tmp_a5f5_7; trace[7].data[row_index] = next_pc_id_col7; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((op1_base_fp_col4) * (input_fp_col2)) + ((op1_base_ap_col5) * (input_ap_col1))) @@ -298,11 +298,11 @@ pub fn write_trace_simd( + ((offset2_col3) - (M31_32768))), next_pc_id_col7, ]); - let next_pc_limb_0_col8 = memory_id_to_big_value_tmp_1331.get_m31(0); + let next_pc_limb_0_col8 = memoryidtobig_value_tmp_a5f5_8.get_m31(0); trace[8].data[row_index] = next_pc_limb_0_col8; - let next_pc_limb_1_col9 = memory_id_to_big_value_tmp_1331.get_m31(1); + let next_pc_limb_1_col9 = memoryidtobig_value_tmp_a5f5_8.get_m31(1); trace[9].data[row_index] = next_pc_limb_1_col9; - let next_pc_limb_2_col10 = memory_id_to_big_value_tmp_1331.get_m31(2); + let next_pc_limb_2_col10 = memoryidtobig_value_tmp_a5f5_8.get_m31(2); trace[10].data[row_index] = next_pc_limb_2_col10; sub_components_inputs.memory_id_to_big_inputs[0].extend(next_pc_id_col7.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/component.rs index 66325edd..c1278167 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/component.rs @@ -97,9 +97,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col13 = eval.next_trace_mask(); let next_pc_limb_2_col14 = eval.next_trace_mask(); - // decode_instruction_d5cc27a6f788af1d. + // DecodeInstruction_d5cc27a6f788af1d. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -120,11 +120,11 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col6.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -133,9 +133,9 @@ impl FrameworkEval for Eval { + (offset1_col3.clone() - M31_32768.clone())), mem1_base_id_col7.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -144,11 +144,11 @@ impl FrameworkEval for Eval { mem1_base_limb_1_col9.clone(), mem1_base_limb_2_col10.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -158,9 +158,9 @@ impl FrameworkEval for Eval { + (offset2_col4.clone() - M31_32768.clone())), next_pc_id_col11.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -169,9 +169,9 @@ impl FrameworkEval for Eval { next_pc_limb_1_col13.clone(), next_pc_limb_2_col14.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -179,9 +179,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -190,7 +190,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col6.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/prover.rs index 05e3bcb4..74b02821 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_f_is_imm_f_is_double_deref_t/prover.rs @@ -183,57 +183,57 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jump_opcode_is_rel_f_is_imm_f_is_double_deref_t_input)| { - let input_tmp_1296 = jump_opcode_is_rel_f_is_imm_f_is_double_deref_t_input; - let input_pc_col0 = input_tmp_1296.pc; + let input_tmp_3654_0 = jump_opcode_is_rel_f_is_imm_f_is_double_deref_t_input; + let input_pc_col0 = input_tmp_3654_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1296.ap; + let input_ap_col1 = input_tmp_3654_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1296.fp; + let input_fp_col2 = input_tmp_3654_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_d5cc27a6f788af1d. + // DecodeInstruction_d5cc27a6f788af1d. - let memory_address_to_id_value_tmp_1304 = + let memoryaddresstoid_value_tmp_3654_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1305 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1304); - let offset1_tmp_1306 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(1))) + let memoryidtobig_value_tmp_3654_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_3654_1); + let offset1_tmp_3654_3 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col3 = offset1_tmp_1306.as_m31(); + let offset1_col3 = offset1_tmp_3654_3.as_m31(); trace[3].data[row_index] = offset1_col3; - let offset2_tmp_1307 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(3))) + let offset2_tmp_3654_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col4 = offset2_tmp_1307.as_m31(); + let offset2_col4 = offset2_tmp_3654_4.as_m31(); trace[4].data[row_index] = offset2_col4; - let op0_base_fp_tmp_1308 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(5))) + let op0_base_fp_tmp_3654_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col5 = op0_base_fp_tmp_1308.as_m31(); + let op0_base_fp_col5 = op0_base_fp_tmp_3654_5.as_m31(); trace[5].data[row_index] = op0_base_fp_col5; - let ap_update_add_1_tmp_1309 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(5))) + let ap_update_add_1_tmp_3654_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1305.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_3654_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col6 = ap_update_add_1_tmp_1309.as_m31(); + let ap_update_add_1_col6 = ap_update_add_1_tmp_3654_6.as_m31(); trace[6].data[row_index] = ap_update_add_1_col6; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -283,16 +283,16 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1311 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_3654_7 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col5) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col5)) * (input_ap_col1))) + ((offset1_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1312 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1311); - let mem1_base_id_col7 = memory_address_to_id_value_tmp_1311; + let memoryidtobig_value_tmp_3654_8 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_3654_7); + let mem1_base_id_col7 = memoryaddresstoid_value_tmp_3654_7; trace[7].data[row_index] = mem1_base_id_col7; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((op0_base_fp_col5) * (input_fp_col2)) @@ -307,11 +307,11 @@ pub fn write_trace_simd( + ((offset1_col3) - (M31_32768))), mem1_base_id_col7, ]); - let mem1_base_limb_0_col8 = memory_id_to_big_value_tmp_1312.get_m31(0); + let mem1_base_limb_0_col8 = memoryidtobig_value_tmp_3654_8.get_m31(0); trace[8].data[row_index] = mem1_base_limb_0_col8; - let mem1_base_limb_1_col9 = memory_id_to_big_value_tmp_1312.get_m31(1); + let mem1_base_limb_1_col9 = memoryidtobig_value_tmp_3654_8.get_m31(1); trace[9].data[row_index] = mem1_base_limb_1_col9; - let mem1_base_limb_2_col10 = memory_id_to_big_value_tmp_1312.get_m31(2); + let mem1_base_limb_2_col10 = memoryidtobig_value_tmp_3654_8.get_m31(2); trace[10].data[row_index] = mem1_base_limb_2_col10; sub_components_inputs.memory_id_to_big_inputs[0].extend(mem1_base_id_col7.unpack()); @@ -347,16 +347,16 @@ pub fn write_trace_simd( M31_0, ]); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - let memory_address_to_id_value_tmp_1313 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_3654_9 = memory_address_to_id_state.deduce_output( ((((mem1_base_limb_0_col8) + ((mem1_base_limb_1_col9) * (M31_512))) + ((mem1_base_limb_2_col10) * (M31_262144))) + ((offset2_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1314 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1313); - let next_pc_id_col11 = memory_address_to_id_value_tmp_1313; + let memoryidtobig_value_tmp_3654_10 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_3654_9); + let next_pc_id_col11 = memoryaddresstoid_value_tmp_3654_9; trace[11].data[row_index] = next_pc_id_col11; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((mem1_base_limb_0_col8) + ((mem1_base_limb_1_col9) * (M31_512))) @@ -371,11 +371,11 @@ pub fn write_trace_simd( + ((offset2_col4) - (M31_32768))), next_pc_id_col11, ]); - let next_pc_limb_0_col12 = memory_id_to_big_value_tmp_1314.get_m31(0); + let next_pc_limb_0_col12 = memoryidtobig_value_tmp_3654_10.get_m31(0); trace[12].data[row_index] = next_pc_limb_0_col12; - let next_pc_limb_1_col13 = memory_id_to_big_value_tmp_1314.get_m31(1); + let next_pc_limb_1_col13 = memoryidtobig_value_tmp_3654_10.get_m31(1); trace[13].data[row_index] = next_pc_limb_1_col13; - let next_pc_limb_2_col14 = memory_id_to_big_value_tmp_1314.get_m31(2); + let next_pc_limb_2_col14 = memoryidtobig_value_tmp_3654_10.get_m31(2); trace[14].data[row_index] = next_pc_limb_2_col14; sub_components_inputs.memory_id_to_big_inputs[1].extend(next_pc_id_col11.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/component.rs index 5df263b9..fad95fd4 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/component.rs @@ -99,9 +99,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col11 = eval.next_trace_mask(); let next_pc_limb_2_col12 = eval.next_trace_mask(); - // decode_instruction_2cd1887fb89e83e3. + // DecodeInstruction_2cd1887fb89e83e3. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -122,16 +122,16 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col6.clone(), ], - )]); + )); // Either flag op1_base_fp is on or flag op1_base_ap is on. eval.add_constraint( ((op1_base_fp_col4.clone() + op1_base_ap_col5.clone()) - M31_1.clone()), ); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -140,9 +140,9 @@ impl FrameworkEval for Eval { + (offset2_col3.clone() - M31_32768.clone())), next_pc_id_col7.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col8.clone() * (msb_col8.clone() - M31_1.clone()))); @@ -155,7 +155,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col9.clone()) * (msb_col8.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -189,9 +189,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col8.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -199,9 +199,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -214,7 +214,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col6.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/prover.rs index efe09d6f..7fd67fa2 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_f_is_double_deref_f/prover.rs @@ -182,56 +182,56 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jump_opcode_is_rel_t_is_imm_f_is_double_deref_f_input)| { - let input_tmp_1277 = jump_opcode_is_rel_t_is_imm_f_is_double_deref_f_input; - let input_pc_col0 = input_tmp_1277.pc; + let input_tmp_1409_0 = jump_opcode_is_rel_t_is_imm_f_is_double_deref_f_input; + let input_pc_col0 = input_tmp_1409_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1277.ap; + let input_ap_col1 = input_tmp_1409_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1277.fp; + let input_fp_col2 = input_tmp_1409_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_2cd1887fb89e83e3. + // DecodeInstruction_2cd1887fb89e83e3. - let memory_address_to_id_value_tmp_1285 = + let memoryaddresstoid_value_tmp_1409_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1286 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1285); - let offset2_tmp_1287 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(3))) + let memoryidtobig_value_tmp_1409_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_1409_1); + let offset2_tmp_1409_3 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col3 = offset2_tmp_1287.as_m31(); + let offset2_col3 = offset2_tmp_1409_3.as_m31(); trace[3].data[row_index] = offset2_col3; - let op1_base_fp_tmp_1288 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(5))) + let op1_base_fp_tmp_1409_4 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(6))) << (UInt16_6))) >> (UInt16_3)) & (UInt16_1)); - let op1_base_fp_col4 = op1_base_fp_tmp_1288.as_m31(); + let op1_base_fp_col4 = op1_base_fp_tmp_1409_4.as_m31(); trace[4].data[row_index] = op1_base_fp_col4; - let op1_base_ap_tmp_1289 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(5))) + let op1_base_ap_tmp_1409_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(6))) << (UInt16_6))) >> (UInt16_4)) & (UInt16_1)); - let op1_base_ap_col5 = op1_base_ap_tmp_1289.as_m31(); + let op1_base_ap_col5 = op1_base_ap_tmp_1409_5.as_m31(); trace[5].data[row_index] = op1_base_ap_col5; - let ap_update_add_1_tmp_1290 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(5))) + let ap_update_add_1_tmp_1409_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1286.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_1409_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col6 = ap_update_add_1_tmp_1290.as_m31(); + let ap_update_add_1_col6 = ap_update_add_1_tmp_1409_6.as_m31(); trace[6].data[row_index] = ap_update_add_1_col6; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -281,15 +281,15 @@ pub fn write_trace_simd( M31_0, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1292 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_1409_7 = memory_address_to_id_state.deduce_output( ((((op1_base_fp_col4) * (input_fp_col2)) + ((op1_base_ap_col5) * (input_ap_col1))) + ((offset2_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1293 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1292); - let next_pc_id_col7 = memory_address_to_id_value_tmp_1292; + let memoryidtobig_value_tmp_1409_8 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_1409_7); + let next_pc_id_col7 = memoryaddresstoid_value_tmp_1409_7; trace[7].data[row_index] = next_pc_id_col7; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((op1_base_fp_col4) * (input_fp_col2)) + ((op1_base_ap_col5) * (input_ap_col1))) @@ -303,20 +303,20 @@ pub fn write_trace_simd( next_pc_id_col7, ]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1294 = memory_id_to_big_value_tmp_1293.get_m31(27).eq(M31_256); - let msb_col8 = msb_tmp_1294.as_m31(); + let msb_tmp_1409_9 = memoryidtobig_value_tmp_1409_8.get_m31(27).eq(M31_256); + let msb_col8 = msb_tmp_1409_9.as_m31(); trace[8].data[row_index] = msb_col8; - let mid_limbs_set_tmp_1295 = memory_id_to_big_value_tmp_1293.get_m31(20).eq(M31_511); - let mid_limbs_set_col9 = mid_limbs_set_tmp_1295.as_m31(); + let mid_limbs_set_tmp_1409_10 = memoryidtobig_value_tmp_1409_8.get_m31(20).eq(M31_511); + let mid_limbs_set_col9 = mid_limbs_set_tmp_1409_10.as_m31(); trace[9].data[row_index] = mid_limbs_set_col9; - let next_pc_limb_0_col10 = memory_id_to_big_value_tmp_1293.get_m31(0); + let next_pc_limb_0_col10 = memoryidtobig_value_tmp_1409_8.get_m31(0); trace[10].data[row_index] = next_pc_limb_0_col10; - let next_pc_limb_1_col11 = memory_id_to_big_value_tmp_1293.get_m31(1); + let next_pc_limb_1_col11 = memoryidtobig_value_tmp_1409_8.get_m31(1); trace[11].data[row_index] = next_pc_limb_1_col11; - let next_pc_limb_2_col12 = memory_id_to_big_value_tmp_1293.get_m31(2); + let next_pc_limb_2_col12 = memoryidtobig_value_tmp_1409_8.get_m31(2); trace[12].data[row_index] = next_pc_limb_2_col12; sub_components_inputs.memory_id_to_big_inputs[0].extend(next_pc_id_col7.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/component.rs index 0f443ab4..66f20089 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/component.rs @@ -96,9 +96,9 @@ impl FrameworkEval for Eval { let next_pc_limb_1_col8 = eval.next_trace_mask(); let next_pc_limb_2_col9 = eval.next_trace_mask(); - // decode_instruction_ccd4c4cd993af638. + // DecodeInstruction_ccd4c4cd993af638. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -119,20 +119,20 @@ impl FrameworkEval for Eval { M31_0.clone(), ap_update_add_1_col3.clone(), ], - )]); + )); - // read_small. + // ReadSmall. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_pc_col0.clone() + M31_1.clone()), next_pc_id_col4.clone(), ], - )]); + )); - // cond_decode_small_sign. + // CondDecodeSmallSign. // msb is a bit. eval.add_constraint((msb_col5.clone() * (msb_col5.clone() - M31_1.clone()))); @@ -145,7 +145,7 @@ impl FrameworkEval for Eval { ((M31_1.clone() * mid_limbs_set_col6.clone()) * (msb_col5.clone() - M31_1.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -179,9 +179,9 @@ impl FrameworkEval for Eval { M31_0.clone(), (msb_col5.clone() * M31_256.clone()), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -189,9 +189,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -204,7 +204,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col3.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/prover.rs index 20ff97e4..304207f7 100644 --- a/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/jump_opcode_is_rel_t_is_imm_t_is_double_deref_f/prover.rs @@ -178,28 +178,28 @@ pub fn write_trace_simd( inputs.into_iter().enumerate().for_each( |(row_index, jump_opcode_is_rel_t_is_imm_t_is_double_deref_f_input)| { - let input_tmp_1264 = jump_opcode_is_rel_t_is_imm_t_is_double_deref_f_input; - let input_pc_col0 = input_tmp_1264.pc; + let input_tmp_ad2c_0 = jump_opcode_is_rel_t_is_imm_t_is_double_deref_f_input; + let input_pc_col0 = input_tmp_ad2c_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1264.ap; + let input_ap_col1 = input_tmp_ad2c_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1264.fp; + let input_fp_col2 = input_tmp_ad2c_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_ccd4c4cd993af638. + // DecodeInstruction_ccd4c4cd993af638. - let memory_address_to_id_value_tmp_1269 = + let memoryaddresstoid_value_tmp_ad2c_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1270 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1269); - let ap_update_add_1_tmp_1271 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1270.get_m31(5))) + let memoryidtobig_value_tmp_ad2c_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_ad2c_1); + let ap_update_add_1_tmp_ad2c_3 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_ad2c_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1270.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_ad2c_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col3 = ap_update_add_1_tmp_1271.as_m31(); + let ap_update_add_1_col3 = ap_update_add_1_tmp_ad2c_3.as_m31(); trace[3].data[row_index] = ap_update_add_1_col3; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -249,33 +249,33 @@ pub fn write_trace_simd( M31_0, ]); - // read_small. + // ReadSmall. - let memory_address_to_id_value_tmp_1273 = + let memoryaddresstoid_value_tmp_ad2c_4 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_1274 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1273); - let next_pc_id_col4 = memory_address_to_id_value_tmp_1273; + let memoryidtobig_value_tmp_ad2c_5 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_ad2c_4); + let next_pc_id_col4 = memoryaddresstoid_value_tmp_ad2c_4; trace[4].data[row_index] = next_pc_id_col4; sub_components_inputs.memory_address_to_id_inputs[0] .extend(((input_pc_col0) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[0].push([((input_pc_col0) + (M31_1)), next_pc_id_col4]); - // cond_decode_small_sign. + // CondDecodeSmallSign. - let msb_tmp_1275 = memory_id_to_big_value_tmp_1274.get_m31(27).eq(M31_256); - let msb_col5 = msb_tmp_1275.as_m31(); + let msb_tmp_ad2c_6 = memoryidtobig_value_tmp_ad2c_5.get_m31(27).eq(M31_256); + let msb_col5 = msb_tmp_ad2c_6.as_m31(); trace[5].data[row_index] = msb_col5; - let mid_limbs_set_tmp_1276 = memory_id_to_big_value_tmp_1274.get_m31(20).eq(M31_511); - let mid_limbs_set_col6 = mid_limbs_set_tmp_1276.as_m31(); + let mid_limbs_set_tmp_ad2c_7 = memoryidtobig_value_tmp_ad2c_5.get_m31(20).eq(M31_511); + let mid_limbs_set_col6 = mid_limbs_set_tmp_ad2c_7.as_m31(); trace[6].data[row_index] = mid_limbs_set_col6; - let next_pc_limb_0_col7 = memory_id_to_big_value_tmp_1274.get_m31(0); + let next_pc_limb_0_col7 = memoryidtobig_value_tmp_ad2c_5.get_m31(0); trace[7].data[row_index] = next_pc_limb_0_col7; - let next_pc_limb_1_col8 = memory_id_to_big_value_tmp_1274.get_m31(1); + let next_pc_limb_1_col8 = memoryidtobig_value_tmp_ad2c_5.get_m31(1); trace[8].data[row_index] = next_pc_limb_1_col8; - let next_pc_limb_2_col9 = memory_id_to_big_value_tmp_1274.get_m31(2); + let next_pc_limb_2_col9 = memoryidtobig_value_tmp_ad2c_5.get_m31(2); trace[9].data[row_index] = next_pc_limb_2_col9; sub_components_inputs.memory_id_to_big_inputs[0].extend(next_pc_id_col4.unpack()); diff --git a/stwo_cairo_prover/crates/prover/src/components/memory/memory_address_to_id/component.rs b/stwo_cairo_prover/crates/prover/src/components/memory/memory_address_to_id/component.rs index 45c29c4e..f342c1a5 100644 --- a/stwo_cairo_prover/crates/prover/src/components/memory/memory_address_to_id/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/memory/memory_address_to_id/component.rs @@ -44,11 +44,11 @@ impl FrameworkEval for Eval { fn evaluate(&self, mut eval: E) -> E { let address_and_id: [E::F; 2] = std::array::from_fn(|_| eval.next_trace_mask()); let multiplicity = eval.next_trace_mask(); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.lookup_elements, E::EF::from(-multiplicity), &address_and_id, - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/memory/memory_id_to_big/component.rs b/stwo_cairo_prover/crates/prover/src/components/memory/memory_id_to_big/component.rs index e2d4ac8c..7520e10e 100644 --- a/stwo_cairo_prover/crates/prover/src/components/memory/memory_id_to_big/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/memory/memory_id_to_big/component.rs @@ -69,19 +69,19 @@ impl FrameworkEval for BigEval { let id_and_value: [E::F; MEMORY_ID_SIZE + N_M31_IN_FELT252] = std::array::from_fn(|_| eval.next_trace_mask()); let multiplicity = eval.next_trace_mask(); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.lookup_elements, E::EF::from(-multiplicity), &id_and_value, - )]); + )); // Range check elements. for (l, r) in id_and_value[MEMORY_ID_SIZE..].iter().tuples() { - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.range9_9_lookup_elements, E::EF::one(), &[l.clone(), r.clone()], - )]); + )); } eval.finalize_logup(); @@ -123,19 +123,19 @@ impl FrameworkEval for SmallEval { let id_and_value: [E::F; SMALL_N_ID_AND_VALUE_COLUMNS] = std::array::from_fn(|_| eval.next_trace_mask()); let multiplicity = eval.next_trace_mask(); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.lookup_elements, E::EF::from(-multiplicity), &id_and_value, - )]); + )); // Range check elements. for (l, r) in id_and_value[MEMORY_ID_SIZE..].iter().tuples() { - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.range_check_9_9_relation, E::EF::one(), &[l.clone(), r.clone()], - )]); + )); } eval.finalize_logup(); diff --git a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/component.rs b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/component.rs index 6283f26c..a583dc1e 100644 --- a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/component.rs @@ -216,9 +216,9 @@ impl FrameworkEval for Eval { let carry_25_col124 = eval.next_trace_mask(); let carry_26_col125 = eval.next_trace_mask(); - // decode_instruction_15f7159a39884cc. + // DecodeInstruction_15f7159a39884cc. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -242,16 +242,16 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); // Either flag op1_base_fp is on or flag op1_base_ap is on. eval.add_constraint( ((op1_base_fp_col8.clone() + op1_base_ap_col9.clone()) - M31_1.clone()), ); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -260,9 +260,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col11.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -296,11 +296,11 @@ impl FrameworkEval for Eval { dst_limb_26_col38.clone(), dst_limb_27_col39.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -309,9 +309,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), op0_id_col40.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -345,11 +345,11 @@ impl FrameworkEval for Eval { op0_limb_26_col67.clone(), op0_limb_27_col68.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -358,9 +358,9 @@ impl FrameworkEval for Eval { + (offset2_col5.clone() - M31_32768.clone())), op1_id_col69.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -394,38 +394,38 @@ impl FrameworkEval for Eval { op1_limb_26_col96.clone(), op1_limb_27_col97.clone(), ], - )]); + )); - // verify_mul252. + // VerifyMul252. - let conv_tmp_1416 = ((M31_0.clone() - dst_limb_0_col12.clone()) + let conv_tmp_5a14_17 = ((M31_0.clone() - dst_limb_0_col12.clone()) + (op0_limb_0_col41.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1417 = (((M31_0.clone() - dst_limb_1_col13.clone()) + let conv_tmp_5a14_18 = (((M31_0.clone() - dst_limb_1_col13.clone()) + (op0_limb_0_col41.clone() * op1_limb_1_col71.clone())) + (op0_limb_1_col42.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1418 = ((((M31_0.clone() - dst_limb_2_col14.clone()) + let conv_tmp_5a14_19 = ((((M31_0.clone() - dst_limb_2_col14.clone()) + (op0_limb_0_col41.clone() * op1_limb_2_col72.clone())) + (op0_limb_1_col42.clone() * op1_limb_1_col71.clone())) + (op0_limb_2_col43.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1419 = (((((M31_0.clone() - dst_limb_3_col15.clone()) + let conv_tmp_5a14_20 = (((((M31_0.clone() - dst_limb_3_col15.clone()) + (op0_limb_0_col41.clone() * op1_limb_3_col73.clone())) + (op0_limb_1_col42.clone() * op1_limb_2_col72.clone())) + (op0_limb_2_col43.clone() * op1_limb_1_col71.clone())) + (op0_limb_3_col44.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1420 = ((((((M31_0.clone() - dst_limb_4_col16.clone()) + let conv_tmp_5a14_21 = ((((((M31_0.clone() - dst_limb_4_col16.clone()) + (op0_limb_0_col41.clone() * op1_limb_4_col74.clone())) + (op0_limb_1_col42.clone() * op1_limb_3_col73.clone())) + (op0_limb_2_col43.clone() * op1_limb_2_col72.clone())) + (op0_limb_3_col44.clone() * op1_limb_1_col71.clone())) + (op0_limb_4_col45.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1421 = (((((((M31_0.clone() - dst_limb_5_col17.clone()) + let conv_tmp_5a14_22 = (((((((M31_0.clone() - dst_limb_5_col17.clone()) + (op0_limb_0_col41.clone() * op1_limb_5_col75.clone())) + (op0_limb_1_col42.clone() * op1_limb_4_col74.clone())) + (op0_limb_2_col43.clone() * op1_limb_3_col73.clone())) + (op0_limb_3_col44.clone() * op1_limb_2_col72.clone())) + (op0_limb_4_col45.clone() * op1_limb_1_col71.clone())) + (op0_limb_5_col46.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1422 = ((((((((M31_0.clone() - dst_limb_6_col18.clone()) + let conv_tmp_5a14_23 = ((((((((M31_0.clone() - dst_limb_6_col18.clone()) + (op0_limb_0_col41.clone() * op1_limb_6_col76.clone())) + (op0_limb_1_col42.clone() * op1_limb_5_col75.clone())) + (op0_limb_2_col43.clone() * op1_limb_4_col74.clone())) @@ -433,7 +433,7 @@ impl FrameworkEval for Eval { + (op0_limb_4_col45.clone() * op1_limb_2_col72.clone())) + (op0_limb_5_col46.clone() * op1_limb_1_col71.clone())) + (op0_limb_6_col47.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1423 = (((((((((M31_0.clone() - dst_limb_7_col19.clone()) + let conv_tmp_5a14_24 = (((((((((M31_0.clone() - dst_limb_7_col19.clone()) + (op0_limb_0_col41.clone() * op1_limb_7_col77.clone())) + (op0_limb_1_col42.clone() * op1_limb_6_col76.clone())) + (op0_limb_2_col43.clone() * op1_limb_5_col75.clone())) @@ -442,7 +442,7 @@ impl FrameworkEval for Eval { + (op0_limb_5_col46.clone() * op1_limb_2_col72.clone())) + (op0_limb_6_col47.clone() * op1_limb_1_col71.clone())) + (op0_limb_7_col48.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1424 = ((((((((((M31_0.clone() - dst_limb_8_col20.clone()) + let conv_tmp_5a14_25 = ((((((((((M31_0.clone() - dst_limb_8_col20.clone()) + (op0_limb_0_col41.clone() * op1_limb_8_col78.clone())) + (op0_limb_1_col42.clone() * op1_limb_7_col77.clone())) + (op0_limb_2_col43.clone() * op1_limb_6_col76.clone())) @@ -452,7 +452,7 @@ impl FrameworkEval for Eval { + (op0_limb_6_col47.clone() * op1_limb_2_col72.clone())) + (op0_limb_7_col48.clone() * op1_limb_1_col71.clone())) + (op0_limb_8_col49.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1425 = (((((((((((M31_0.clone() - dst_limb_9_col21.clone()) + let conv_tmp_5a14_26 = (((((((((((M31_0.clone() - dst_limb_9_col21.clone()) + (op0_limb_0_col41.clone() * op1_limb_9_col79.clone())) + (op0_limb_1_col42.clone() * op1_limb_8_col78.clone())) + (op0_limb_2_col43.clone() * op1_limb_7_col77.clone())) @@ -463,7 +463,7 @@ impl FrameworkEval for Eval { + (op0_limb_7_col48.clone() * op1_limb_2_col72.clone())) + (op0_limb_8_col49.clone() * op1_limb_1_col71.clone())) + (op0_limb_9_col50.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1426 = ((((((((((((M31_0.clone() - dst_limb_10_col22.clone()) + let conv_tmp_5a14_27 = ((((((((((((M31_0.clone() - dst_limb_10_col22.clone()) + (op0_limb_0_col41.clone() * op1_limb_10_col80.clone())) + (op0_limb_1_col42.clone() * op1_limb_9_col79.clone())) + (op0_limb_2_col43.clone() * op1_limb_8_col78.clone())) @@ -475,7 +475,7 @@ impl FrameworkEval for Eval { + (op0_limb_8_col49.clone() * op1_limb_2_col72.clone())) + (op0_limb_9_col50.clone() * op1_limb_1_col71.clone())) + (op0_limb_10_col51.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1427 = (((((((((((((M31_0.clone() - dst_limb_11_col23.clone()) + let conv_tmp_5a14_28 = (((((((((((((M31_0.clone() - dst_limb_11_col23.clone()) + (op0_limb_0_col41.clone() * op1_limb_11_col81.clone())) + (op0_limb_1_col42.clone() * op1_limb_10_col80.clone())) + (op0_limb_2_col43.clone() * op1_limb_9_col79.clone())) @@ -488,7 +488,8 @@ impl FrameworkEval for Eval { + (op0_limb_9_col50.clone() * op1_limb_2_col72.clone())) + (op0_limb_10_col51.clone() * op1_limb_1_col71.clone())) + (op0_limb_11_col52.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1428 = ((((((((((((((M31_0.clone() - dst_limb_12_col24.clone()) + let conv_tmp_5a14_29 = ((((((((((((((M31_0.clone() + - dst_limb_12_col24.clone()) + (op0_limb_0_col41.clone() * op1_limb_12_col82.clone())) + (op0_limb_1_col42.clone() * op1_limb_11_col81.clone())) + (op0_limb_2_col43.clone() * op1_limb_10_col80.clone())) @@ -502,7 +503,8 @@ impl FrameworkEval for Eval { + (op0_limb_10_col51.clone() * op1_limb_2_col72.clone())) + (op0_limb_11_col52.clone() * op1_limb_1_col71.clone())) + (op0_limb_12_col53.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1429 = (((((((((((((((M31_0.clone() - dst_limb_13_col25.clone()) + let conv_tmp_5a14_30 = (((((((((((((((M31_0.clone() + - dst_limb_13_col25.clone()) + (op0_limb_0_col41.clone() * op1_limb_13_col83.clone())) + (op0_limb_1_col42.clone() * op1_limb_12_col82.clone())) + (op0_limb_2_col43.clone() * op1_limb_11_col81.clone())) @@ -517,7 +519,7 @@ impl FrameworkEval for Eval { + (op0_limb_11_col52.clone() * op1_limb_2_col72.clone())) + (op0_limb_12_col53.clone() * op1_limb_1_col71.clone())) + (op0_limb_13_col54.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1430 = ((((((((((((((((M31_0.clone() + let conv_tmp_5a14_31 = ((((((((((((((((M31_0.clone() - dst_limb_14_col26.clone()) + (op0_limb_0_col41.clone() * op1_limb_14_col84.clone())) + (op0_limb_1_col42.clone() * op1_limb_13_col83.clone())) @@ -534,7 +536,7 @@ impl FrameworkEval for Eval { + (op0_limb_12_col53.clone() * op1_limb_2_col72.clone())) + (op0_limb_13_col54.clone() * op1_limb_1_col71.clone())) + (op0_limb_14_col55.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1431 = (((((((((((((((((M31_0.clone() + let conv_tmp_5a14_32 = (((((((((((((((((M31_0.clone() - dst_limb_15_col27.clone()) + (op0_limb_0_col41.clone() * op1_limb_15_col85.clone())) + (op0_limb_1_col42.clone() * op1_limb_14_col84.clone())) @@ -552,7 +554,7 @@ impl FrameworkEval for Eval { + (op0_limb_13_col54.clone() * op1_limb_2_col72.clone())) + (op0_limb_14_col55.clone() * op1_limb_1_col71.clone())) + (op0_limb_15_col56.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1432 = ((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_33 = ((((((((((((((((((M31_0.clone() - dst_limb_16_col28.clone()) + (op0_limb_0_col41.clone() * op1_limb_16_col86.clone())) + (op0_limb_1_col42.clone() * op1_limb_15_col85.clone())) @@ -571,7 +573,7 @@ impl FrameworkEval for Eval { + (op0_limb_14_col55.clone() * op1_limb_2_col72.clone())) + (op0_limb_15_col56.clone() * op1_limb_1_col71.clone())) + (op0_limb_16_col57.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1433 = (((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_34 = (((((((((((((((((((M31_0.clone() - dst_limb_17_col29.clone()) + (op0_limb_0_col41.clone() * op1_limb_17_col87.clone())) + (op0_limb_1_col42.clone() * op1_limb_16_col86.clone())) @@ -591,7 +593,7 @@ impl FrameworkEval for Eval { + (op0_limb_15_col56.clone() * op1_limb_2_col72.clone())) + (op0_limb_16_col57.clone() * op1_limb_1_col71.clone())) + (op0_limb_17_col58.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1434 = ((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_35 = ((((((((((((((((((((M31_0.clone() - dst_limb_18_col30.clone()) + (op0_limb_0_col41.clone() * op1_limb_18_col88.clone())) + (op0_limb_1_col42.clone() * op1_limb_17_col87.clone())) @@ -612,7 +614,7 @@ impl FrameworkEval for Eval { + (op0_limb_16_col57.clone() * op1_limb_2_col72.clone())) + (op0_limb_17_col58.clone() * op1_limb_1_col71.clone())) + (op0_limb_18_col59.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1435 = (((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_36 = (((((((((((((((((((((M31_0.clone() - dst_limb_19_col31.clone()) + (op0_limb_0_col41.clone() * op1_limb_19_col89.clone())) + (op0_limb_1_col42.clone() * op1_limb_18_col88.clone())) @@ -634,7 +636,7 @@ impl FrameworkEval for Eval { + (op0_limb_17_col58.clone() * op1_limb_2_col72.clone())) + (op0_limb_18_col59.clone() * op1_limb_1_col71.clone())) + (op0_limb_19_col60.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1436 = ((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_37 = ((((((((((((((((((((((M31_0.clone() - dst_limb_20_col32.clone()) + (op0_limb_0_col41.clone() * op1_limb_20_col90.clone())) + (op0_limb_1_col42.clone() * op1_limb_19_col89.clone())) @@ -657,7 +659,7 @@ impl FrameworkEval for Eval { + (op0_limb_18_col59.clone() * op1_limb_2_col72.clone())) + (op0_limb_19_col60.clone() * op1_limb_1_col71.clone())) + (op0_limb_20_col61.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1437 = (((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_38 = (((((((((((((((((((((((M31_0.clone() - dst_limb_21_col33.clone()) + (op0_limb_0_col41.clone() * op1_limb_21_col91.clone())) + (op0_limb_1_col42.clone() * op1_limb_20_col90.clone())) @@ -681,7 +683,7 @@ impl FrameworkEval for Eval { + (op0_limb_19_col60.clone() * op1_limb_2_col72.clone())) + (op0_limb_20_col61.clone() * op1_limb_1_col71.clone())) + (op0_limb_21_col62.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1438 = ((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_39 = ((((((((((((((((((((((((M31_0.clone() - dst_limb_22_col34.clone()) + (op0_limb_0_col41.clone() * op1_limb_22_col92.clone())) + (op0_limb_1_col42.clone() * op1_limb_21_col91.clone())) @@ -706,7 +708,7 @@ impl FrameworkEval for Eval { + (op0_limb_20_col61.clone() * op1_limb_2_col72.clone())) + (op0_limb_21_col62.clone() * op1_limb_1_col71.clone())) + (op0_limb_22_col63.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1439 = (((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_40 = (((((((((((((((((((((((((M31_0.clone() - dst_limb_23_col35.clone()) + (op0_limb_0_col41.clone() * op1_limb_23_col93.clone())) + (op0_limb_1_col42.clone() * op1_limb_22_col92.clone())) @@ -732,7 +734,7 @@ impl FrameworkEval for Eval { + (op0_limb_21_col62.clone() * op1_limb_2_col72.clone())) + (op0_limb_22_col63.clone() * op1_limb_1_col71.clone())) + (op0_limb_23_col64.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1440 = ((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_41 = ((((((((((((((((((((((((((M31_0.clone() - dst_limb_24_col36.clone()) + (op0_limb_0_col41.clone() * op1_limb_24_col94.clone())) + (op0_limb_1_col42.clone() * op1_limb_23_col93.clone())) @@ -759,7 +761,7 @@ impl FrameworkEval for Eval { + (op0_limb_22_col63.clone() * op1_limb_2_col72.clone())) + (op0_limb_23_col64.clone() * op1_limb_1_col71.clone())) + (op0_limb_24_col65.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1441 = (((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_42 = (((((((((((((((((((((((((((M31_0.clone() - dst_limb_25_col37.clone()) + (op0_limb_0_col41.clone() * op1_limb_25_col95.clone())) + (op0_limb_1_col42.clone() * op1_limb_24_col94.clone())) @@ -787,7 +789,8 @@ impl FrameworkEval for Eval { + (op0_limb_23_col64.clone() * op1_limb_2_col72.clone())) + (op0_limb_24_col65.clone() * op1_limb_1_col71.clone())) + (op0_limb_25_col66.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1442 = ((((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_43 = ((((((((((((((((((((((((((((M31_0 + .clone() - dst_limb_26_col38.clone()) + (op0_limb_0_col41.clone() * op1_limb_26_col96.clone())) + (op0_limb_1_col42.clone() * op1_limb_25_col95.clone())) @@ -816,7 +819,8 @@ impl FrameworkEval for Eval { + (op0_limb_24_col65.clone() * op1_limb_2_col72.clone())) + (op0_limb_25_col66.clone() * op1_limb_1_col71.clone())) + (op0_limb_26_col67.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1443 = (((((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_44 = (((((((((((((((((((((((((((((M31_0 + .clone() - dst_limb_27_col39.clone()) + (op0_limb_0_col41.clone() * op1_limb_27_col97.clone())) + (op0_limb_1_col42.clone() * op1_limb_26_col96.clone())) @@ -846,7 +850,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_2_col72.clone())) + (op0_limb_26_col67.clone() * op1_limb_1_col71.clone())) + (op0_limb_27_col68.clone() * op1_limb_0_col70.clone())); - let conv_tmp_1444 = (((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_45 = (((((((((((((((((((((((((((M31_0.clone() + (op0_limb_1_col42.clone() * op1_limb_27_col97.clone())) + (op0_limb_2_col43.clone() * op1_limb_26_col96.clone())) + (op0_limb_3_col44.clone() * op1_limb_25_col95.clone())) @@ -874,7 +878,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_3_col73.clone())) + (op0_limb_26_col67.clone() * op1_limb_2_col72.clone())) + (op0_limb_27_col68.clone() * op1_limb_1_col71.clone())); - let conv_tmp_1445 = ((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_46 = ((((((((((((((((((((((((((M31_0.clone() + (op0_limb_2_col43.clone() * op1_limb_27_col97.clone())) + (op0_limb_3_col44.clone() * op1_limb_26_col96.clone())) + (op0_limb_4_col45.clone() * op1_limb_25_col95.clone())) @@ -901,7 +905,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_4_col74.clone())) + (op0_limb_26_col67.clone() * op1_limb_3_col73.clone())) + (op0_limb_27_col68.clone() * op1_limb_2_col72.clone())); - let conv_tmp_1446 = (((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_47 = (((((((((((((((((((((((((M31_0.clone() + (op0_limb_3_col44.clone() * op1_limb_27_col97.clone())) + (op0_limb_4_col45.clone() * op1_limb_26_col96.clone())) + (op0_limb_5_col46.clone() * op1_limb_25_col95.clone())) @@ -927,7 +931,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_5_col75.clone())) + (op0_limb_26_col67.clone() * op1_limb_4_col74.clone())) + (op0_limb_27_col68.clone() * op1_limb_3_col73.clone())); - let conv_tmp_1447 = ((((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_48 = ((((((((((((((((((((((((M31_0.clone() + (op0_limb_4_col45.clone() * op1_limb_27_col97.clone())) + (op0_limb_5_col46.clone() * op1_limb_26_col96.clone())) + (op0_limb_6_col47.clone() * op1_limb_25_col95.clone())) @@ -952,7 +956,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_6_col76.clone())) + (op0_limb_26_col67.clone() * op1_limb_5_col75.clone())) + (op0_limb_27_col68.clone() * op1_limb_4_col74.clone())); - let conv_tmp_1448 = (((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_49 = (((((((((((((((((((((((M31_0.clone() + (op0_limb_5_col46.clone() * op1_limb_27_col97.clone())) + (op0_limb_6_col47.clone() * op1_limb_26_col96.clone())) + (op0_limb_7_col48.clone() * op1_limb_25_col95.clone())) @@ -976,7 +980,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_7_col77.clone())) + (op0_limb_26_col67.clone() * op1_limb_6_col76.clone())) + (op0_limb_27_col68.clone() * op1_limb_5_col75.clone())); - let conv_tmp_1449 = ((((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_50 = ((((((((((((((((((((((M31_0.clone() + (op0_limb_6_col47.clone() * op1_limb_27_col97.clone())) + (op0_limb_7_col48.clone() * op1_limb_26_col96.clone())) + (op0_limb_8_col49.clone() * op1_limb_25_col95.clone())) @@ -999,7 +1003,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_8_col78.clone())) + (op0_limb_26_col67.clone() * op1_limb_7_col77.clone())) + (op0_limb_27_col68.clone() * op1_limb_6_col76.clone())); - let conv_tmp_1450 = (((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_51 = (((((((((((((((((((((M31_0.clone() + (op0_limb_7_col48.clone() * op1_limb_27_col97.clone())) + (op0_limb_8_col49.clone() * op1_limb_26_col96.clone())) + (op0_limb_9_col50.clone() * op1_limb_25_col95.clone())) @@ -1021,7 +1025,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_9_col79.clone())) + (op0_limb_26_col67.clone() * op1_limb_8_col78.clone())) + (op0_limb_27_col68.clone() * op1_limb_7_col77.clone())); - let conv_tmp_1451 = ((((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_52 = ((((((((((((((((((((M31_0.clone() + (op0_limb_8_col49.clone() * op1_limb_27_col97.clone())) + (op0_limb_9_col50.clone() * op1_limb_26_col96.clone())) + (op0_limb_10_col51.clone() * op1_limb_25_col95.clone())) @@ -1042,7 +1046,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_10_col80.clone())) + (op0_limb_26_col67.clone() * op1_limb_9_col79.clone())) + (op0_limb_27_col68.clone() * op1_limb_8_col78.clone())); - let conv_tmp_1452 = (((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_53 = (((((((((((((((((((M31_0.clone() + (op0_limb_9_col50.clone() * op1_limb_27_col97.clone())) + (op0_limb_10_col51.clone() * op1_limb_26_col96.clone())) + (op0_limb_11_col52.clone() * op1_limb_25_col95.clone())) @@ -1062,7 +1066,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_11_col81.clone())) + (op0_limb_26_col67.clone() * op1_limb_10_col80.clone())) + (op0_limb_27_col68.clone() * op1_limb_9_col79.clone())); - let conv_tmp_1453 = ((((((((((((((((((M31_0.clone() + let conv_tmp_5a14_54 = ((((((((((((((((((M31_0.clone() + (op0_limb_10_col51.clone() * op1_limb_27_col97.clone())) + (op0_limb_11_col52.clone() * op1_limb_26_col96.clone())) + (op0_limb_12_col53.clone() * op1_limb_25_col95.clone())) @@ -1081,7 +1085,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_12_col82.clone())) + (op0_limb_26_col67.clone() * op1_limb_11_col81.clone())) + (op0_limb_27_col68.clone() * op1_limb_10_col80.clone())); - let conv_tmp_1454 = (((((((((((((((((M31_0.clone() + let conv_tmp_5a14_55 = (((((((((((((((((M31_0.clone() + (op0_limb_11_col52.clone() * op1_limb_27_col97.clone())) + (op0_limb_12_col53.clone() * op1_limb_26_col96.clone())) + (op0_limb_13_col54.clone() * op1_limb_25_col95.clone())) @@ -1099,7 +1103,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_13_col83.clone())) + (op0_limb_26_col67.clone() * op1_limb_12_col82.clone())) + (op0_limb_27_col68.clone() * op1_limb_11_col81.clone())); - let conv_tmp_1455 = ((((((((((((((((M31_0.clone() + let conv_tmp_5a14_56 = ((((((((((((((((M31_0.clone() + (op0_limb_12_col53.clone() * op1_limb_27_col97.clone())) + (op0_limb_13_col54.clone() * op1_limb_26_col96.clone())) + (op0_limb_14_col55.clone() * op1_limb_25_col95.clone())) @@ -1116,7 +1120,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_14_col84.clone())) + (op0_limb_26_col67.clone() * op1_limb_13_col83.clone())) + (op0_limb_27_col68.clone() * op1_limb_12_col82.clone())); - let conv_tmp_1456 = (((((((((((((((M31_0.clone() + let conv_tmp_5a14_57 = (((((((((((((((M31_0.clone() + (op0_limb_13_col54.clone() * op1_limb_27_col97.clone())) + (op0_limb_14_col55.clone() * op1_limb_26_col96.clone())) + (op0_limb_15_col56.clone() * op1_limb_25_col95.clone())) @@ -1132,7 +1136,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_15_col85.clone())) + (op0_limb_26_col67.clone() * op1_limb_14_col84.clone())) + (op0_limb_27_col68.clone() * op1_limb_13_col83.clone())); - let conv_tmp_1457 = ((((((((((((((M31_0.clone() + let conv_tmp_5a14_58 = ((((((((((((((M31_0.clone() + (op0_limb_14_col55.clone() * op1_limb_27_col97.clone())) + (op0_limb_15_col56.clone() * op1_limb_26_col96.clone())) + (op0_limb_16_col57.clone() * op1_limb_25_col95.clone())) @@ -1147,7 +1151,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_16_col86.clone())) + (op0_limb_26_col67.clone() * op1_limb_15_col85.clone())) + (op0_limb_27_col68.clone() * op1_limb_14_col84.clone())); - let conv_tmp_1458 = (((((((((((((M31_0.clone() + let conv_tmp_5a14_59 = (((((((((((((M31_0.clone() + (op0_limb_15_col56.clone() * op1_limb_27_col97.clone())) + (op0_limb_16_col57.clone() * op1_limb_26_col96.clone())) + (op0_limb_17_col58.clone() * op1_limb_25_col95.clone())) @@ -1161,7 +1165,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_17_col87.clone())) + (op0_limb_26_col67.clone() * op1_limb_16_col86.clone())) + (op0_limb_27_col68.clone() * op1_limb_15_col85.clone())); - let conv_tmp_1459 = ((((((((((((M31_0.clone() + let conv_tmp_5a14_60 = ((((((((((((M31_0.clone() + (op0_limb_16_col57.clone() * op1_limb_27_col97.clone())) + (op0_limb_17_col58.clone() * op1_limb_26_col96.clone())) + (op0_limb_18_col59.clone() * op1_limb_25_col95.clone())) @@ -1174,7 +1178,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_18_col88.clone())) + (op0_limb_26_col67.clone() * op1_limb_17_col87.clone())) + (op0_limb_27_col68.clone() * op1_limb_16_col86.clone())); - let conv_tmp_1460 = (((((((((((M31_0.clone() + let conv_tmp_5a14_61 = (((((((((((M31_0.clone() + (op0_limb_17_col58.clone() * op1_limb_27_col97.clone())) + (op0_limb_18_col59.clone() * op1_limb_26_col96.clone())) + (op0_limb_19_col60.clone() * op1_limb_25_col95.clone())) @@ -1186,7 +1190,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_19_col89.clone())) + (op0_limb_26_col67.clone() * op1_limb_18_col88.clone())) + (op0_limb_27_col68.clone() * op1_limb_17_col87.clone())); - let conv_tmp_1461 = ((((((((((M31_0.clone() + let conv_tmp_5a14_62 = ((((((((((M31_0.clone() + (op0_limb_18_col59.clone() * op1_limb_27_col97.clone())) + (op0_limb_19_col60.clone() * op1_limb_26_col96.clone())) + (op0_limb_20_col61.clone() * op1_limb_25_col95.clone())) @@ -1197,7 +1201,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_20_col90.clone())) + (op0_limb_26_col67.clone() * op1_limb_19_col89.clone())) + (op0_limb_27_col68.clone() * op1_limb_18_col88.clone())); - let conv_tmp_1462 = (((((((((M31_0.clone() + let conv_tmp_5a14_63 = (((((((((M31_0.clone() + (op0_limb_19_col60.clone() * op1_limb_27_col97.clone())) + (op0_limb_20_col61.clone() * op1_limb_26_col96.clone())) + (op0_limb_21_col62.clone() * op1_limb_25_col95.clone())) @@ -1207,7 +1211,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_21_col91.clone())) + (op0_limb_26_col67.clone() * op1_limb_20_col90.clone())) + (op0_limb_27_col68.clone() * op1_limb_19_col89.clone())); - let conv_tmp_1463 = ((((((((M31_0.clone() + let conv_tmp_5a14_64 = ((((((((M31_0.clone() + (op0_limb_20_col61.clone() * op1_limb_27_col97.clone())) + (op0_limb_21_col62.clone() * op1_limb_26_col96.clone())) + (op0_limb_22_col63.clone() * op1_limb_25_col95.clone())) @@ -1216,7 +1220,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_22_col92.clone())) + (op0_limb_26_col67.clone() * op1_limb_21_col91.clone())) + (op0_limb_27_col68.clone() * op1_limb_20_col90.clone())); - let conv_tmp_1464 = (((((((M31_0.clone() + let conv_tmp_5a14_65 = (((((((M31_0.clone() + (op0_limb_21_col62.clone() * op1_limb_27_col97.clone())) + (op0_limb_22_col63.clone() * op1_limb_26_col96.clone())) + (op0_limb_23_col64.clone() * op1_limb_25_col95.clone())) @@ -1224,426 +1228,452 @@ impl FrameworkEval for Eval { + (op0_limb_25_col66.clone() * op1_limb_23_col93.clone())) + (op0_limb_26_col67.clone() * op1_limb_22_col92.clone())) + (op0_limb_27_col68.clone() * op1_limb_21_col91.clone())); - let conv_tmp_1465 = ((((((M31_0.clone() + let conv_tmp_5a14_66 = ((((((M31_0.clone() + (op0_limb_22_col63.clone() * op1_limb_27_col97.clone())) + (op0_limb_23_col64.clone() * op1_limb_26_col96.clone())) + (op0_limb_24_col65.clone() * op1_limb_25_col95.clone())) + (op0_limb_25_col66.clone() * op1_limb_24_col94.clone())) + (op0_limb_26_col67.clone() * op1_limb_23_col93.clone())) + (op0_limb_27_col68.clone() * op1_limb_22_col92.clone())); - let conv_tmp_1466 = (((((M31_0.clone() + let conv_tmp_5a14_67 = (((((M31_0.clone() + (op0_limb_23_col64.clone() * op1_limb_27_col97.clone())) + (op0_limb_24_col65.clone() * op1_limb_26_col96.clone())) + (op0_limb_25_col66.clone() * op1_limb_25_col95.clone())) + (op0_limb_26_col67.clone() * op1_limb_24_col94.clone())) + (op0_limb_27_col68.clone() * op1_limb_23_col93.clone())); - let conv_tmp_1467 = ((((M31_0.clone() + let conv_tmp_5a14_68 = ((((M31_0.clone() + (op0_limb_24_col65.clone() * op1_limb_27_col97.clone())) + (op0_limb_25_col66.clone() * op1_limb_26_col96.clone())) + (op0_limb_26_col67.clone() * op1_limb_25_col95.clone())) + (op0_limb_27_col68.clone() * op1_limb_24_col94.clone())); - let conv_tmp_1468 = (((M31_0.clone() + let conv_tmp_5a14_69 = (((M31_0.clone() + (op0_limb_25_col66.clone() * op1_limb_27_col97.clone())) + (op0_limb_26_col67.clone() * op1_limb_26_col96.clone())) + (op0_limb_27_col68.clone() * op1_limb_25_col95.clone())); - let conv_tmp_1469 = ((M31_0.clone() + let conv_tmp_5a14_70 = ((M31_0.clone() + (op0_limb_26_col67.clone() * op1_limb_27_col97.clone())) + (op0_limb_27_col68.clone() * op1_limb_26_col96.clone())); - let conv_tmp_1470 = + let conv_tmp_5a14_71 = (M31_0.clone() + (op0_limb_27_col68.clone() * op1_limb_27_col97.clone())); - let conv_mod_tmp_1471 = (((M31_0.clone() + (M31_32.clone() * conv_tmp_1416.clone())) - - (M31_4.clone() * conv_tmp_1437.clone())) - + (M31_8.clone() * conv_tmp_1465.clone())); - let conv_mod_tmp_1472 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1416.clone())) - + (M31_32.clone() * conv_tmp_1417.clone())) - - (M31_4.clone() * conv_tmp_1438.clone())) - + (M31_8.clone() * conv_tmp_1466.clone())); - let conv_mod_tmp_1473 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1417.clone())) - + (M31_32.clone() * conv_tmp_1418.clone())) - - (M31_4.clone() * conv_tmp_1439.clone())) - + (M31_8.clone() * conv_tmp_1467.clone())); - let conv_mod_tmp_1474 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1418.clone())) - + (M31_32.clone() * conv_tmp_1419.clone())) - - (M31_4.clone() * conv_tmp_1440.clone())) - + (M31_8.clone() * conv_tmp_1468.clone())); - let conv_mod_tmp_1475 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1419.clone())) - + (M31_32.clone() * conv_tmp_1420.clone())) - - (M31_4.clone() * conv_tmp_1441.clone())) - + (M31_8.clone() * conv_tmp_1469.clone())); - let conv_mod_tmp_1476 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1420.clone())) - + (M31_32.clone() * conv_tmp_1421.clone())) - - (M31_4.clone() * conv_tmp_1442.clone())) - + (M31_8.clone() * conv_tmp_1470.clone())); - let conv_mod_tmp_1477 = (((M31_0.clone() + (M31_1.clone() * conv_tmp_1421.clone())) - + (M31_32.clone() * conv_tmp_1422.clone())) - - (M31_4.clone() * conv_tmp_1443.clone())); - let conv_mod_tmp_1478 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1416.clone())) - + (M31_1.clone() * conv_tmp_1422.clone())) - + (M31_32.clone() * conv_tmp_1423.clone())) - - (M31_4.clone() * conv_tmp_1444.clone())); - let conv_mod_tmp_1479 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1417.clone())) - + (M31_1.clone() * conv_tmp_1423.clone())) - + (M31_32.clone() * conv_tmp_1424.clone())) - - (M31_4.clone() * conv_tmp_1445.clone())); - let conv_mod_tmp_1480 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1418.clone())) - + (M31_1.clone() * conv_tmp_1424.clone())) - + (M31_32.clone() * conv_tmp_1425.clone())) - - (M31_4.clone() * conv_tmp_1446.clone())); - let conv_mod_tmp_1481 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1419.clone())) - + (M31_1.clone() * conv_tmp_1425.clone())) - + (M31_32.clone() * conv_tmp_1426.clone())) - - (M31_4.clone() * conv_tmp_1447.clone())); - let conv_mod_tmp_1482 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1420.clone())) - + (M31_1.clone() * conv_tmp_1426.clone())) - + (M31_32.clone() * conv_tmp_1427.clone())) - - (M31_4.clone() * conv_tmp_1448.clone())); - let conv_mod_tmp_1483 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1421.clone())) - + (M31_1.clone() * conv_tmp_1427.clone())) - + (M31_32.clone() * conv_tmp_1428.clone())) - - (M31_4.clone() * conv_tmp_1449.clone())); - let conv_mod_tmp_1484 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1422.clone())) - + (M31_1.clone() * conv_tmp_1428.clone())) - + (M31_32.clone() * conv_tmp_1429.clone())) - - (M31_4.clone() * conv_tmp_1450.clone())); - let conv_mod_tmp_1485 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1423.clone())) - + (M31_1.clone() * conv_tmp_1429.clone())) - + (M31_32.clone() * conv_tmp_1430.clone())) - - (M31_4.clone() * conv_tmp_1451.clone())); - let conv_mod_tmp_1486 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1424.clone())) - + (M31_1.clone() * conv_tmp_1430.clone())) - + (M31_32.clone() * conv_tmp_1431.clone())) - - (M31_4.clone() * conv_tmp_1452.clone())); - let conv_mod_tmp_1487 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1425.clone())) - + (M31_1.clone() * conv_tmp_1431.clone())) - + (M31_32.clone() * conv_tmp_1432.clone())) - - (M31_4.clone() * conv_tmp_1453.clone())); - let conv_mod_tmp_1488 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1426.clone())) - + (M31_1.clone() * conv_tmp_1432.clone())) - + (M31_32.clone() * conv_tmp_1433.clone())) - - (M31_4.clone() * conv_tmp_1454.clone())); - let conv_mod_tmp_1489 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1427.clone())) - + (M31_1.clone() * conv_tmp_1433.clone())) - + (M31_32.clone() * conv_tmp_1434.clone())) - - (M31_4.clone() * conv_tmp_1455.clone())); - let conv_mod_tmp_1490 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1428.clone())) - + (M31_1.clone() * conv_tmp_1434.clone())) - + (M31_32.clone() * conv_tmp_1435.clone())) - - (M31_4.clone() * conv_tmp_1456.clone())); - let conv_mod_tmp_1491 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1429.clone())) - + (M31_1.clone() * conv_tmp_1435.clone())) - + (M31_32.clone() * conv_tmp_1436.clone())) - - (M31_4.clone() * conv_tmp_1457.clone())); - let conv_mod_tmp_1492 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1430.clone())) - + (M31_1.clone() * conv_tmp_1436.clone())) - - (M31_4.clone() * conv_tmp_1458.clone())) - + (M31_64.clone() * conv_tmp_1465.clone())); - let conv_mod_tmp_1493 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1431.clone())) - - (M31_4.clone() * conv_tmp_1459.clone())) - + (M31_2.clone() * conv_tmp_1465.clone())) - + (M31_64.clone() * conv_tmp_1466.clone())); - let conv_mod_tmp_1494 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1432.clone())) - - (M31_4.clone() * conv_tmp_1460.clone())) - + (M31_2.clone() * conv_tmp_1466.clone())) - + (M31_64.clone() * conv_tmp_1467.clone())); - let conv_mod_tmp_1495 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1433.clone())) - - (M31_4.clone() * conv_tmp_1461.clone())) - + (M31_2.clone() * conv_tmp_1467.clone())) - + (M31_64.clone() * conv_tmp_1468.clone())); - let conv_mod_tmp_1496 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1434.clone())) - - (M31_4.clone() * conv_tmp_1462.clone())) - + (M31_2.clone() * conv_tmp_1468.clone())) - + (M31_64.clone() * conv_tmp_1469.clone())); - let conv_mod_tmp_1497 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1435.clone())) - - (M31_4.clone() * conv_tmp_1463.clone())) - + (M31_2.clone() * conv_tmp_1469.clone())) - + (M31_64.clone() * conv_tmp_1470.clone())); - let conv_mod_tmp_1498 = (((M31_0.clone() + (M31_2.clone() * conv_tmp_1436.clone())) - - (M31_4.clone() * conv_tmp_1464.clone())) - + (M31_2.clone() * conv_tmp_1470.clone())); - eval.add_to_relation(&[RelationEntry::new( + let conv_mod_tmp_5a14_72 = (((M31_0.clone() + + (M31_32.clone() * conv_tmp_5a14_17.clone())) + - (M31_4.clone() * conv_tmp_5a14_38.clone())) + + (M31_8.clone() * conv_tmp_5a14_66.clone())); + let conv_mod_tmp_5a14_73 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5a14_17.clone())) + + (M31_32.clone() * conv_tmp_5a14_18.clone())) + - (M31_4.clone() * conv_tmp_5a14_39.clone())) + + (M31_8.clone() * conv_tmp_5a14_67.clone())); + let conv_mod_tmp_5a14_74 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5a14_18.clone())) + + (M31_32.clone() * conv_tmp_5a14_19.clone())) + - (M31_4.clone() * conv_tmp_5a14_40.clone())) + + (M31_8.clone() * conv_tmp_5a14_68.clone())); + let conv_mod_tmp_5a14_75 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5a14_19.clone())) + + (M31_32.clone() * conv_tmp_5a14_20.clone())) + - (M31_4.clone() * conv_tmp_5a14_41.clone())) + + (M31_8.clone() * conv_tmp_5a14_69.clone())); + let conv_mod_tmp_5a14_76 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5a14_20.clone())) + + (M31_32.clone() * conv_tmp_5a14_21.clone())) + - (M31_4.clone() * conv_tmp_5a14_42.clone())) + + (M31_8.clone() * conv_tmp_5a14_70.clone())); + let conv_mod_tmp_5a14_77 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_5a14_21.clone())) + + (M31_32.clone() * conv_tmp_5a14_22.clone())) + - (M31_4.clone() * conv_tmp_5a14_43.clone())) + + (M31_8.clone() * conv_tmp_5a14_71.clone())); + let conv_mod_tmp_5a14_78 = (((M31_0.clone() + (M31_1.clone() * conv_tmp_5a14_22.clone())) + + (M31_32.clone() * conv_tmp_5a14_23.clone())) + - (M31_4.clone() * conv_tmp_5a14_44.clone())); + let conv_mod_tmp_5a14_79 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_17.clone())) + + (M31_1.clone() * conv_tmp_5a14_23.clone())) + + (M31_32.clone() * conv_tmp_5a14_24.clone())) + - (M31_4.clone() * conv_tmp_5a14_45.clone())); + let conv_mod_tmp_5a14_80 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_18.clone())) + + (M31_1.clone() * conv_tmp_5a14_24.clone())) + + (M31_32.clone() * conv_tmp_5a14_25.clone())) + - (M31_4.clone() * conv_tmp_5a14_46.clone())); + let conv_mod_tmp_5a14_81 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_19.clone())) + + (M31_1.clone() * conv_tmp_5a14_25.clone())) + + (M31_32.clone() * conv_tmp_5a14_26.clone())) + - (M31_4.clone() * conv_tmp_5a14_47.clone())); + let conv_mod_tmp_5a14_82 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_20.clone())) + + (M31_1.clone() * conv_tmp_5a14_26.clone())) + + (M31_32.clone() * conv_tmp_5a14_27.clone())) + - (M31_4.clone() * conv_tmp_5a14_48.clone())); + let conv_mod_tmp_5a14_83 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_21.clone())) + + (M31_1.clone() * conv_tmp_5a14_27.clone())) + + (M31_32.clone() * conv_tmp_5a14_28.clone())) + - (M31_4.clone() * conv_tmp_5a14_49.clone())); + let conv_mod_tmp_5a14_84 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_22.clone())) + + (M31_1.clone() * conv_tmp_5a14_28.clone())) + + (M31_32.clone() * conv_tmp_5a14_29.clone())) + - (M31_4.clone() * conv_tmp_5a14_50.clone())); + let conv_mod_tmp_5a14_85 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_23.clone())) + + (M31_1.clone() * conv_tmp_5a14_29.clone())) + + (M31_32.clone() * conv_tmp_5a14_30.clone())) + - (M31_4.clone() * conv_tmp_5a14_51.clone())); + let conv_mod_tmp_5a14_86 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_24.clone())) + + (M31_1.clone() * conv_tmp_5a14_30.clone())) + + (M31_32.clone() * conv_tmp_5a14_31.clone())) + - (M31_4.clone() * conv_tmp_5a14_52.clone())); + let conv_mod_tmp_5a14_87 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_25.clone())) + + (M31_1.clone() * conv_tmp_5a14_31.clone())) + + (M31_32.clone() * conv_tmp_5a14_32.clone())) + - (M31_4.clone() * conv_tmp_5a14_53.clone())); + let conv_mod_tmp_5a14_88 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_26.clone())) + + (M31_1.clone() * conv_tmp_5a14_32.clone())) + + (M31_32.clone() * conv_tmp_5a14_33.clone())) + - (M31_4.clone() * conv_tmp_5a14_54.clone())); + let conv_mod_tmp_5a14_89 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_27.clone())) + + (M31_1.clone() * conv_tmp_5a14_33.clone())) + + (M31_32.clone() * conv_tmp_5a14_34.clone())) + - (M31_4.clone() * conv_tmp_5a14_55.clone())); + let conv_mod_tmp_5a14_90 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_28.clone())) + + (M31_1.clone() * conv_tmp_5a14_34.clone())) + + (M31_32.clone() * conv_tmp_5a14_35.clone())) + - (M31_4.clone() * conv_tmp_5a14_56.clone())); + let conv_mod_tmp_5a14_91 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_29.clone())) + + (M31_1.clone() * conv_tmp_5a14_35.clone())) + + (M31_32.clone() * conv_tmp_5a14_36.clone())) + - (M31_4.clone() * conv_tmp_5a14_57.clone())); + let conv_mod_tmp_5a14_92 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_30.clone())) + + (M31_1.clone() * conv_tmp_5a14_36.clone())) + + (M31_32.clone() * conv_tmp_5a14_37.clone())) + - (M31_4.clone() * conv_tmp_5a14_58.clone())); + let conv_mod_tmp_5a14_93 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_31.clone())) + + (M31_1.clone() * conv_tmp_5a14_37.clone())) + - (M31_4.clone() * conv_tmp_5a14_59.clone())) + + (M31_64.clone() * conv_tmp_5a14_66.clone())); + let conv_mod_tmp_5a14_94 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_32.clone())) + - (M31_4.clone() * conv_tmp_5a14_60.clone())) + + (M31_2.clone() * conv_tmp_5a14_66.clone())) + + (M31_64.clone() * conv_tmp_5a14_67.clone())); + let conv_mod_tmp_5a14_95 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_33.clone())) + - (M31_4.clone() * conv_tmp_5a14_61.clone())) + + (M31_2.clone() * conv_tmp_5a14_67.clone())) + + (M31_64.clone() * conv_tmp_5a14_68.clone())); + let conv_mod_tmp_5a14_96 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_34.clone())) + - (M31_4.clone() * conv_tmp_5a14_62.clone())) + + (M31_2.clone() * conv_tmp_5a14_68.clone())) + + (M31_64.clone() * conv_tmp_5a14_69.clone())); + let conv_mod_tmp_5a14_97 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_35.clone())) + - (M31_4.clone() * conv_tmp_5a14_63.clone())) + + (M31_2.clone() * conv_tmp_5a14_69.clone())) + + (M31_64.clone() * conv_tmp_5a14_70.clone())); + let conv_mod_tmp_5a14_98 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_5a14_36.clone())) + - (M31_4.clone() * conv_tmp_5a14_64.clone())) + + (M31_2.clone() * conv_tmp_5a14_70.clone())) + + (M31_64.clone() * conv_tmp_5a14_71.clone())); + let conv_mod_tmp_5a14_99 = (((M31_0.clone() + (M31_2.clone() * conv_tmp_5a14_37.clone())) + - (M31_4.clone() * conv_tmp_5a14_65.clone())) + + (M31_2.clone() * conv_tmp_5a14_71.clone())); + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(k_col98.clone() + M31_262144.clone())], - )]); + )); eval.add_constraint( ((carry_0_col99.clone() * M31_512.clone()) - - ((conv_mod_tmp_1471.clone() - (M31_1.clone() * k_col98.clone())) + - ((conv_mod_tmp_5a14_72.clone() - (M31_1.clone() * k_col98.clone())) + M31_0.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_0_col99.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_1_col100.clone() * M31_512.clone()) - - (conv_mod_tmp_1472.clone() + carry_0_col99.clone())), + - (conv_mod_tmp_5a14_73.clone() + carry_0_col99.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_1_col100.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_2_col101.clone() * M31_512.clone()) - - (conv_mod_tmp_1473.clone() + carry_1_col100.clone())), + - (conv_mod_tmp_5a14_74.clone() + carry_1_col100.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_2_col101.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_3_col102.clone() * M31_512.clone()) - - (conv_mod_tmp_1474.clone() + carry_2_col101.clone())), + - (conv_mod_tmp_5a14_75.clone() + carry_2_col101.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_3_col102.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_4_col103.clone() * M31_512.clone()) - - (conv_mod_tmp_1475.clone() + carry_3_col102.clone())), + - (conv_mod_tmp_5a14_76.clone() + carry_3_col102.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_4_col103.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_5_col104.clone() * M31_512.clone()) - - (conv_mod_tmp_1476.clone() + carry_4_col103.clone())), + - (conv_mod_tmp_5a14_77.clone() + carry_4_col103.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_5_col104.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_6_col105.clone() * M31_512.clone()) - - (conv_mod_tmp_1477.clone() + carry_5_col104.clone())), + - (conv_mod_tmp_5a14_78.clone() + carry_5_col104.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_6_col105.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_7_col106.clone() * M31_512.clone()) - - (conv_mod_tmp_1478.clone() + carry_6_col105.clone())), + - (conv_mod_tmp_5a14_79.clone() + carry_6_col105.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_7_col106.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_8_col107.clone() * M31_512.clone()) - - (conv_mod_tmp_1479.clone() + carry_7_col106.clone())), + - (conv_mod_tmp_5a14_80.clone() + carry_7_col106.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_8_col107.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_9_col108.clone() * M31_512.clone()) - - (conv_mod_tmp_1480.clone() + carry_8_col107.clone())), + - (conv_mod_tmp_5a14_81.clone() + carry_8_col107.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_9_col108.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_10_col109.clone() * M31_512.clone()) - - (conv_mod_tmp_1481.clone() + carry_9_col108.clone())), + - (conv_mod_tmp_5a14_82.clone() + carry_9_col108.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_10_col109.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_11_col110.clone() * M31_512.clone()) - - (conv_mod_tmp_1482.clone() + carry_10_col109.clone())), + - (conv_mod_tmp_5a14_83.clone() + carry_10_col109.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_11_col110.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_12_col111.clone() * M31_512.clone()) - - (conv_mod_tmp_1483.clone() + carry_11_col110.clone())), + - (conv_mod_tmp_5a14_84.clone() + carry_11_col110.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_12_col111.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_13_col112.clone() * M31_512.clone()) - - (conv_mod_tmp_1484.clone() + carry_12_col111.clone())), + - (conv_mod_tmp_5a14_85.clone() + carry_12_col111.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_13_col112.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_14_col113.clone() * M31_512.clone()) - - (conv_mod_tmp_1485.clone() + carry_13_col112.clone())), + - (conv_mod_tmp_5a14_86.clone() + carry_13_col112.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_14_col113.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_15_col114.clone() * M31_512.clone()) - - (conv_mod_tmp_1486.clone() + carry_14_col113.clone())), + - (conv_mod_tmp_5a14_87.clone() + carry_14_col113.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_15_col114.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_16_col115.clone() * M31_512.clone()) - - (conv_mod_tmp_1487.clone() + carry_15_col114.clone())), + - (conv_mod_tmp_5a14_88.clone() + carry_15_col114.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_16_col115.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_17_col116.clone() * M31_512.clone()) - - (conv_mod_tmp_1488.clone() + carry_16_col115.clone())), + - (conv_mod_tmp_5a14_89.clone() + carry_16_col115.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_17_col116.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_18_col117.clone() * M31_512.clone()) - - (conv_mod_tmp_1489.clone() + carry_17_col116.clone())), + - (conv_mod_tmp_5a14_90.clone() + carry_17_col116.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_18_col117.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_19_col118.clone() * M31_512.clone()) - - (conv_mod_tmp_1490.clone() + carry_18_col117.clone())), + - (conv_mod_tmp_5a14_91.clone() + carry_18_col117.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_19_col118.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_20_col119.clone() * M31_512.clone()) - - (conv_mod_tmp_1491.clone() + carry_19_col118.clone())), + - (conv_mod_tmp_5a14_92.clone() + carry_19_col118.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_20_col119.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_21_col120.clone() * M31_512.clone()) - - ((conv_mod_tmp_1492.clone() - (M31_136.clone() * k_col98.clone())) + - ((conv_mod_tmp_5a14_93.clone() - (M31_136.clone() * k_col98.clone())) + carry_20_col119.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_21_col120.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_22_col121.clone() * M31_512.clone()) - - (conv_mod_tmp_1493.clone() + carry_21_col120.clone())), + - (conv_mod_tmp_5a14_94.clone() + carry_21_col120.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_22_col121.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_23_col122.clone() * M31_512.clone()) - - (conv_mod_tmp_1494.clone() + carry_22_col121.clone())), + - (conv_mod_tmp_5a14_95.clone() + carry_22_col121.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_23_col122.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_24_col123.clone() * M31_512.clone()) - - (conv_mod_tmp_1495.clone() + carry_23_col122.clone())), + - (conv_mod_tmp_5a14_96.clone() + carry_23_col122.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_24_col123.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_25_col124.clone() * M31_512.clone()) - - (conv_mod_tmp_1496.clone() + carry_24_col123.clone())), + - (conv_mod_tmp_5a14_97.clone() + carry_24_col123.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_25_col124.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_26_col125.clone() * M31_512.clone()) - - (conv_mod_tmp_1497.clone() + carry_25_col124.clone())), + - (conv_mod_tmp_5a14_98.clone() + carry_25_col124.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_26_col125.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( - ((conv_mod_tmp_1498.clone() - (M31_256.clone() * k_col98.clone())) + ((conv_mod_tmp_5a14_99.clone() - (M31_256.clone() * k_col98.clone())) + carry_26_col125.clone()), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -1651,9 +1681,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -1661,7 +1691,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col10.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/prover.rs b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/prover.rs index 8300d16e..99ee271b 100644 --- a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_f/prover.rs @@ -67,12 +67,6 @@ impl ClaimGenerator { if need_padding { sub_components_inputs.bit_reverse_coset_to_circle_domain_order(); } - sub_components_inputs - .range_check_19_inputs - .iter() - .for_each(|inputs| { - range_check_19_state.add_inputs(&inputs[..n_calls]); - }); sub_components_inputs .memory_address_to_id_inputs .iter() @@ -85,6 +79,12 @@ impl ClaimGenerator { .for_each(|inputs| { memory_id_to_big_state.add_inputs(&inputs[..n_calls]); }); + sub_components_inputs + .range_check_19_inputs + .iter() + .for_each(|inputs| { + range_check_19_state.add_inputs(&inputs[..n_calls]); + }); sub_components_inputs .verify_instruction_inputs .iter() @@ -122,22 +122,26 @@ impl ClaimGenerator { } pub struct SubComponentInputs { - pub range_check_19_inputs: [Vec; 28], pub memory_address_to_id_inputs: [Vec; 3], pub memory_id_to_big_inputs: [Vec; 3], + pub range_check_19_inputs: [Vec; 28], pub verify_instruction_inputs: [Vec; 1], } impl SubComponentInputs { #[allow(unused_variables)] fn with_capacity(capacity: usize) -> Self { Self { - range_check_19_inputs: [ + memory_address_to_id_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), + ], + memory_id_to_big_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), + ], + range_check_19_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), @@ -160,13 +164,9 @@ impl SubComponentInputs { Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), - ], - memory_address_to_id_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), - ], - memory_id_to_big_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), @@ -176,15 +176,15 @@ impl SubComponentInputs { } fn bit_reverse_coset_to_circle_domain_order(&mut self) { - self.range_check_19_inputs - .iter_mut() - .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); self.memory_address_to_id_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); self.memory_id_to_big_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); + self.range_check_19_inputs + .iter_mut() + .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); self.verify_instruction_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); @@ -248,91 +248,91 @@ pub fn write_trace_simd( .into_iter() .enumerate() .for_each(|(row_index, mul_opcode_is_small_f_is_imm_f_input)| { - let input_tmp_1398 = mul_opcode_is_small_f_is_imm_f_input; - let input_pc_col0 = input_tmp_1398.pc; + let input_tmp_5a14_0 = mul_opcode_is_small_f_is_imm_f_input; + let input_pc_col0 = input_tmp_5a14_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1398.ap; + let input_ap_col1 = input_tmp_5a14_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1398.fp; + let input_fp_col2 = input_tmp_5a14_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_15f7159a39884cc. + // DecodeInstruction_15f7159a39884cc. - let memory_address_to_id_value_tmp_1399 = + let memoryaddresstoid_value_tmp_5a14_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1400 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1399); - let offset0_tmp_1401 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(1))) + let memoryidtobig_value_tmp_5a14_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_5a14_1); + let offset0_tmp_5a14_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1401.as_m31(); + let offset0_col3 = offset0_tmp_5a14_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset1_tmp_1402 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(1))) + let offset1_tmp_5a14_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col4 = offset1_tmp_1402.as_m31(); + let offset1_col4 = offset1_tmp_5a14_4.as_m31(); trace[4].data[row_index] = offset1_col4; - let offset2_tmp_1403 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(3))) + let offset2_tmp_5a14_5 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(3))) >> (UInt16_5)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(4))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(4))) << (UInt16_4))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(5))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(5))) & (UInt16_7)) << (UInt16_13))); - let offset2_col5 = offset2_tmp_1403.as_m31(); + let offset2_col5 = offset2_tmp_5a14_5.as_m31(); trace[5].data[row_index] = offset2_col5; - let dst_base_fp_tmp_1404 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(5))) + let dst_base_fp_tmp_5a14_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col6 = dst_base_fp_tmp_1404.as_m31(); + let dst_base_fp_col6 = dst_base_fp_tmp_5a14_6.as_m31(); trace[6].data[row_index] = dst_base_fp_col6; - let op0_base_fp_tmp_1405 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(5))) + let op0_base_fp_tmp_5a14_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col7 = op0_base_fp_tmp_1405.as_m31(); + let op0_base_fp_col7 = op0_base_fp_tmp_5a14_7.as_m31(); trace[7].data[row_index] = op0_base_fp_col7; - let op1_base_fp_tmp_1406 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(5))) + let op1_base_fp_tmp_5a14_8 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(6))) << (UInt16_6))) >> (UInt16_3)) & (UInt16_1)); - let op1_base_fp_col8 = op1_base_fp_tmp_1406.as_m31(); + let op1_base_fp_col8 = op1_base_fp_tmp_5a14_8.as_m31(); trace[8].data[row_index] = op1_base_fp_col8; - let op1_base_ap_tmp_1407 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(5))) + let op1_base_ap_tmp_5a14_9 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(6))) << (UInt16_6))) >> (UInt16_4)) & (UInt16_1)); - let op1_base_ap_col9 = op1_base_ap_tmp_1407.as_m31(); + let op1_base_ap_col9 = op1_base_ap_tmp_5a14_9.as_m31(); trace[9].data[row_index] = op1_base_ap_col9; - let ap_update_add_1_tmp_1408 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(5))) + let ap_update_add_1_tmp_5a14_10 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1400.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_5a14_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col10 = ap_update_add_1_tmp_1408.as_m31(); + let ap_update_add_1_col10 = ap_update_add_1_tmp_5a14_10.as_m31(); trace[10].data[row_index] = ap_update_add_1_col10; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -382,16 +382,16 @@ pub fn write_trace_simd( M31_1, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1410 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_5a14_11 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col6) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col6)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1411 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1410); - let dst_id_col11 = memory_address_to_id_value_tmp_1410; + let memoryidtobig_value_tmp_5a14_12 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_5a14_11); + let dst_id_col11 = memoryaddresstoid_value_tmp_5a14_11; trace[11].data[row_index] = dst_id_col11; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col6) * (input_fp_col2)) @@ -406,61 +406,61 @@ pub fn write_trace_simd( + ((offset0_col3) - (M31_32768))), dst_id_col11, ]); - let dst_limb_0_col12 = memory_id_to_big_value_tmp_1411.get_m31(0); + let dst_limb_0_col12 = memoryidtobig_value_tmp_5a14_12.get_m31(0); trace[12].data[row_index] = dst_limb_0_col12; - let dst_limb_1_col13 = memory_id_to_big_value_tmp_1411.get_m31(1); + let dst_limb_1_col13 = memoryidtobig_value_tmp_5a14_12.get_m31(1); trace[13].data[row_index] = dst_limb_1_col13; - let dst_limb_2_col14 = memory_id_to_big_value_tmp_1411.get_m31(2); + let dst_limb_2_col14 = memoryidtobig_value_tmp_5a14_12.get_m31(2); trace[14].data[row_index] = dst_limb_2_col14; - let dst_limb_3_col15 = memory_id_to_big_value_tmp_1411.get_m31(3); + let dst_limb_3_col15 = memoryidtobig_value_tmp_5a14_12.get_m31(3); trace[15].data[row_index] = dst_limb_3_col15; - let dst_limb_4_col16 = memory_id_to_big_value_tmp_1411.get_m31(4); + let dst_limb_4_col16 = memoryidtobig_value_tmp_5a14_12.get_m31(4); trace[16].data[row_index] = dst_limb_4_col16; - let dst_limb_5_col17 = memory_id_to_big_value_tmp_1411.get_m31(5); + let dst_limb_5_col17 = memoryidtobig_value_tmp_5a14_12.get_m31(5); trace[17].data[row_index] = dst_limb_5_col17; - let dst_limb_6_col18 = memory_id_to_big_value_tmp_1411.get_m31(6); + let dst_limb_6_col18 = memoryidtobig_value_tmp_5a14_12.get_m31(6); trace[18].data[row_index] = dst_limb_6_col18; - let dst_limb_7_col19 = memory_id_to_big_value_tmp_1411.get_m31(7); + let dst_limb_7_col19 = memoryidtobig_value_tmp_5a14_12.get_m31(7); trace[19].data[row_index] = dst_limb_7_col19; - let dst_limb_8_col20 = memory_id_to_big_value_tmp_1411.get_m31(8); + let dst_limb_8_col20 = memoryidtobig_value_tmp_5a14_12.get_m31(8); trace[20].data[row_index] = dst_limb_8_col20; - let dst_limb_9_col21 = memory_id_to_big_value_tmp_1411.get_m31(9); + let dst_limb_9_col21 = memoryidtobig_value_tmp_5a14_12.get_m31(9); trace[21].data[row_index] = dst_limb_9_col21; - let dst_limb_10_col22 = memory_id_to_big_value_tmp_1411.get_m31(10); + let dst_limb_10_col22 = memoryidtobig_value_tmp_5a14_12.get_m31(10); trace[22].data[row_index] = dst_limb_10_col22; - let dst_limb_11_col23 = memory_id_to_big_value_tmp_1411.get_m31(11); + let dst_limb_11_col23 = memoryidtobig_value_tmp_5a14_12.get_m31(11); trace[23].data[row_index] = dst_limb_11_col23; - let dst_limb_12_col24 = memory_id_to_big_value_tmp_1411.get_m31(12); + let dst_limb_12_col24 = memoryidtobig_value_tmp_5a14_12.get_m31(12); trace[24].data[row_index] = dst_limb_12_col24; - let dst_limb_13_col25 = memory_id_to_big_value_tmp_1411.get_m31(13); + let dst_limb_13_col25 = memoryidtobig_value_tmp_5a14_12.get_m31(13); trace[25].data[row_index] = dst_limb_13_col25; - let dst_limb_14_col26 = memory_id_to_big_value_tmp_1411.get_m31(14); + let dst_limb_14_col26 = memoryidtobig_value_tmp_5a14_12.get_m31(14); trace[26].data[row_index] = dst_limb_14_col26; - let dst_limb_15_col27 = memory_id_to_big_value_tmp_1411.get_m31(15); + let dst_limb_15_col27 = memoryidtobig_value_tmp_5a14_12.get_m31(15); trace[27].data[row_index] = dst_limb_15_col27; - let dst_limb_16_col28 = memory_id_to_big_value_tmp_1411.get_m31(16); + let dst_limb_16_col28 = memoryidtobig_value_tmp_5a14_12.get_m31(16); trace[28].data[row_index] = dst_limb_16_col28; - let dst_limb_17_col29 = memory_id_to_big_value_tmp_1411.get_m31(17); + let dst_limb_17_col29 = memoryidtobig_value_tmp_5a14_12.get_m31(17); trace[29].data[row_index] = dst_limb_17_col29; - let dst_limb_18_col30 = memory_id_to_big_value_tmp_1411.get_m31(18); + let dst_limb_18_col30 = memoryidtobig_value_tmp_5a14_12.get_m31(18); trace[30].data[row_index] = dst_limb_18_col30; - let dst_limb_19_col31 = memory_id_to_big_value_tmp_1411.get_m31(19); + let dst_limb_19_col31 = memoryidtobig_value_tmp_5a14_12.get_m31(19); trace[31].data[row_index] = dst_limb_19_col31; - let dst_limb_20_col32 = memory_id_to_big_value_tmp_1411.get_m31(20); + let dst_limb_20_col32 = memoryidtobig_value_tmp_5a14_12.get_m31(20); trace[32].data[row_index] = dst_limb_20_col32; - let dst_limb_21_col33 = memory_id_to_big_value_tmp_1411.get_m31(21); + let dst_limb_21_col33 = memoryidtobig_value_tmp_5a14_12.get_m31(21); trace[33].data[row_index] = dst_limb_21_col33; - let dst_limb_22_col34 = memory_id_to_big_value_tmp_1411.get_m31(22); + let dst_limb_22_col34 = memoryidtobig_value_tmp_5a14_12.get_m31(22); trace[34].data[row_index] = dst_limb_22_col34; - let dst_limb_23_col35 = memory_id_to_big_value_tmp_1411.get_m31(23); + let dst_limb_23_col35 = memoryidtobig_value_tmp_5a14_12.get_m31(23); trace[35].data[row_index] = dst_limb_23_col35; - let dst_limb_24_col36 = memory_id_to_big_value_tmp_1411.get_m31(24); + let dst_limb_24_col36 = memoryidtobig_value_tmp_5a14_12.get_m31(24); trace[36].data[row_index] = dst_limb_24_col36; - let dst_limb_25_col37 = memory_id_to_big_value_tmp_1411.get_m31(25); + let dst_limb_25_col37 = memoryidtobig_value_tmp_5a14_12.get_m31(25); trace[37].data[row_index] = dst_limb_25_col37; - let dst_limb_26_col38 = memory_id_to_big_value_tmp_1411.get_m31(26); + let dst_limb_26_col38 = memoryidtobig_value_tmp_5a14_12.get_m31(26); trace[38].data[row_index] = dst_limb_26_col38; - let dst_limb_27_col39 = memory_id_to_big_value_tmp_1411.get_m31(27); + let dst_limb_27_col39 = memoryidtobig_value_tmp_5a14_12.get_m31(27); trace[39].data[row_index] = dst_limb_27_col39; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col11.unpack()); @@ -496,16 +496,16 @@ pub fn write_trace_simd( dst_limb_27_col39, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1412 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_5a14_13 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col7) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col7)) * (input_ap_col1))) + ((offset1_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1413 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1412); - let op0_id_col40 = memory_address_to_id_value_tmp_1412; + let memoryidtobig_value_tmp_5a14_14 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_5a14_13); + let op0_id_col40 = memoryaddresstoid_value_tmp_5a14_13; trace[40].data[row_index] = op0_id_col40; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((op0_base_fp_col7) * (input_fp_col2)) @@ -520,61 +520,61 @@ pub fn write_trace_simd( + ((offset1_col4) - (M31_32768))), op0_id_col40, ]); - let op0_limb_0_col41 = memory_id_to_big_value_tmp_1413.get_m31(0); + let op0_limb_0_col41 = memoryidtobig_value_tmp_5a14_14.get_m31(0); trace[41].data[row_index] = op0_limb_0_col41; - let op0_limb_1_col42 = memory_id_to_big_value_tmp_1413.get_m31(1); + let op0_limb_1_col42 = memoryidtobig_value_tmp_5a14_14.get_m31(1); trace[42].data[row_index] = op0_limb_1_col42; - let op0_limb_2_col43 = memory_id_to_big_value_tmp_1413.get_m31(2); + let op0_limb_2_col43 = memoryidtobig_value_tmp_5a14_14.get_m31(2); trace[43].data[row_index] = op0_limb_2_col43; - let op0_limb_3_col44 = memory_id_to_big_value_tmp_1413.get_m31(3); + let op0_limb_3_col44 = memoryidtobig_value_tmp_5a14_14.get_m31(3); trace[44].data[row_index] = op0_limb_3_col44; - let op0_limb_4_col45 = memory_id_to_big_value_tmp_1413.get_m31(4); + let op0_limb_4_col45 = memoryidtobig_value_tmp_5a14_14.get_m31(4); trace[45].data[row_index] = op0_limb_4_col45; - let op0_limb_5_col46 = memory_id_to_big_value_tmp_1413.get_m31(5); + let op0_limb_5_col46 = memoryidtobig_value_tmp_5a14_14.get_m31(5); trace[46].data[row_index] = op0_limb_5_col46; - let op0_limb_6_col47 = memory_id_to_big_value_tmp_1413.get_m31(6); + let op0_limb_6_col47 = memoryidtobig_value_tmp_5a14_14.get_m31(6); trace[47].data[row_index] = op0_limb_6_col47; - let op0_limb_7_col48 = memory_id_to_big_value_tmp_1413.get_m31(7); + let op0_limb_7_col48 = memoryidtobig_value_tmp_5a14_14.get_m31(7); trace[48].data[row_index] = op0_limb_7_col48; - let op0_limb_8_col49 = memory_id_to_big_value_tmp_1413.get_m31(8); + let op0_limb_8_col49 = memoryidtobig_value_tmp_5a14_14.get_m31(8); trace[49].data[row_index] = op0_limb_8_col49; - let op0_limb_9_col50 = memory_id_to_big_value_tmp_1413.get_m31(9); + let op0_limb_9_col50 = memoryidtobig_value_tmp_5a14_14.get_m31(9); trace[50].data[row_index] = op0_limb_9_col50; - let op0_limb_10_col51 = memory_id_to_big_value_tmp_1413.get_m31(10); + let op0_limb_10_col51 = memoryidtobig_value_tmp_5a14_14.get_m31(10); trace[51].data[row_index] = op0_limb_10_col51; - let op0_limb_11_col52 = memory_id_to_big_value_tmp_1413.get_m31(11); + let op0_limb_11_col52 = memoryidtobig_value_tmp_5a14_14.get_m31(11); trace[52].data[row_index] = op0_limb_11_col52; - let op0_limb_12_col53 = memory_id_to_big_value_tmp_1413.get_m31(12); + let op0_limb_12_col53 = memoryidtobig_value_tmp_5a14_14.get_m31(12); trace[53].data[row_index] = op0_limb_12_col53; - let op0_limb_13_col54 = memory_id_to_big_value_tmp_1413.get_m31(13); + let op0_limb_13_col54 = memoryidtobig_value_tmp_5a14_14.get_m31(13); trace[54].data[row_index] = op0_limb_13_col54; - let op0_limb_14_col55 = memory_id_to_big_value_tmp_1413.get_m31(14); + let op0_limb_14_col55 = memoryidtobig_value_tmp_5a14_14.get_m31(14); trace[55].data[row_index] = op0_limb_14_col55; - let op0_limb_15_col56 = memory_id_to_big_value_tmp_1413.get_m31(15); + let op0_limb_15_col56 = memoryidtobig_value_tmp_5a14_14.get_m31(15); trace[56].data[row_index] = op0_limb_15_col56; - let op0_limb_16_col57 = memory_id_to_big_value_tmp_1413.get_m31(16); + let op0_limb_16_col57 = memoryidtobig_value_tmp_5a14_14.get_m31(16); trace[57].data[row_index] = op0_limb_16_col57; - let op0_limb_17_col58 = memory_id_to_big_value_tmp_1413.get_m31(17); + let op0_limb_17_col58 = memoryidtobig_value_tmp_5a14_14.get_m31(17); trace[58].data[row_index] = op0_limb_17_col58; - let op0_limb_18_col59 = memory_id_to_big_value_tmp_1413.get_m31(18); + let op0_limb_18_col59 = memoryidtobig_value_tmp_5a14_14.get_m31(18); trace[59].data[row_index] = op0_limb_18_col59; - let op0_limb_19_col60 = memory_id_to_big_value_tmp_1413.get_m31(19); + let op0_limb_19_col60 = memoryidtobig_value_tmp_5a14_14.get_m31(19); trace[60].data[row_index] = op0_limb_19_col60; - let op0_limb_20_col61 = memory_id_to_big_value_tmp_1413.get_m31(20); + let op0_limb_20_col61 = memoryidtobig_value_tmp_5a14_14.get_m31(20); trace[61].data[row_index] = op0_limb_20_col61; - let op0_limb_21_col62 = memory_id_to_big_value_tmp_1413.get_m31(21); + let op0_limb_21_col62 = memoryidtobig_value_tmp_5a14_14.get_m31(21); trace[62].data[row_index] = op0_limb_21_col62; - let op0_limb_22_col63 = memory_id_to_big_value_tmp_1413.get_m31(22); + let op0_limb_22_col63 = memoryidtobig_value_tmp_5a14_14.get_m31(22); trace[63].data[row_index] = op0_limb_22_col63; - let op0_limb_23_col64 = memory_id_to_big_value_tmp_1413.get_m31(23); + let op0_limb_23_col64 = memoryidtobig_value_tmp_5a14_14.get_m31(23); trace[64].data[row_index] = op0_limb_23_col64; - let op0_limb_24_col65 = memory_id_to_big_value_tmp_1413.get_m31(24); + let op0_limb_24_col65 = memoryidtobig_value_tmp_5a14_14.get_m31(24); trace[65].data[row_index] = op0_limb_24_col65; - let op0_limb_25_col66 = memory_id_to_big_value_tmp_1413.get_m31(25); + let op0_limb_25_col66 = memoryidtobig_value_tmp_5a14_14.get_m31(25); trace[66].data[row_index] = op0_limb_25_col66; - let op0_limb_26_col67 = memory_id_to_big_value_tmp_1413.get_m31(26); + let op0_limb_26_col67 = memoryidtobig_value_tmp_5a14_14.get_m31(26); trace[67].data[row_index] = op0_limb_26_col67; - let op0_limb_27_col68 = memory_id_to_big_value_tmp_1413.get_m31(27); + let op0_limb_27_col68 = memoryidtobig_value_tmp_5a14_14.get_m31(27); trace[68].data[row_index] = op0_limb_27_col68; sub_components_inputs.memory_id_to_big_inputs[1].extend(op0_id_col40.unpack()); @@ -610,15 +610,15 @@ pub fn write_trace_simd( op0_limb_27_col68, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1414 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_5a14_15 = memory_address_to_id_state.deduce_output( ((((op1_base_fp_col8) * (input_fp_col2)) + ((op1_base_ap_col9) * (input_ap_col1))) + ((offset2_col5) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1415 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1414); - let op1_id_col69 = memory_address_to_id_value_tmp_1414; + let memoryidtobig_value_tmp_5a14_16 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_5a14_15); + let op1_id_col69 = memoryaddresstoid_value_tmp_5a14_15; trace[69].data[row_index] = op1_id_col69; sub_components_inputs.memory_address_to_id_inputs[2].extend( ((((op1_base_fp_col8) * (input_fp_col2)) + ((op1_base_ap_col9) * (input_ap_col1))) @@ -631,61 +631,61 @@ pub fn write_trace_simd( + ((offset2_col5) - (M31_32768))), op1_id_col69, ]); - let op1_limb_0_col70 = memory_id_to_big_value_tmp_1415.get_m31(0); + let op1_limb_0_col70 = memoryidtobig_value_tmp_5a14_16.get_m31(0); trace[70].data[row_index] = op1_limb_0_col70; - let op1_limb_1_col71 = memory_id_to_big_value_tmp_1415.get_m31(1); + let op1_limb_1_col71 = memoryidtobig_value_tmp_5a14_16.get_m31(1); trace[71].data[row_index] = op1_limb_1_col71; - let op1_limb_2_col72 = memory_id_to_big_value_tmp_1415.get_m31(2); + let op1_limb_2_col72 = memoryidtobig_value_tmp_5a14_16.get_m31(2); trace[72].data[row_index] = op1_limb_2_col72; - let op1_limb_3_col73 = memory_id_to_big_value_tmp_1415.get_m31(3); + let op1_limb_3_col73 = memoryidtobig_value_tmp_5a14_16.get_m31(3); trace[73].data[row_index] = op1_limb_3_col73; - let op1_limb_4_col74 = memory_id_to_big_value_tmp_1415.get_m31(4); + let op1_limb_4_col74 = memoryidtobig_value_tmp_5a14_16.get_m31(4); trace[74].data[row_index] = op1_limb_4_col74; - let op1_limb_5_col75 = memory_id_to_big_value_tmp_1415.get_m31(5); + let op1_limb_5_col75 = memoryidtobig_value_tmp_5a14_16.get_m31(5); trace[75].data[row_index] = op1_limb_5_col75; - let op1_limb_6_col76 = memory_id_to_big_value_tmp_1415.get_m31(6); + let op1_limb_6_col76 = memoryidtobig_value_tmp_5a14_16.get_m31(6); trace[76].data[row_index] = op1_limb_6_col76; - let op1_limb_7_col77 = memory_id_to_big_value_tmp_1415.get_m31(7); + let op1_limb_7_col77 = memoryidtobig_value_tmp_5a14_16.get_m31(7); trace[77].data[row_index] = op1_limb_7_col77; - let op1_limb_8_col78 = memory_id_to_big_value_tmp_1415.get_m31(8); + let op1_limb_8_col78 = memoryidtobig_value_tmp_5a14_16.get_m31(8); trace[78].data[row_index] = op1_limb_8_col78; - let op1_limb_9_col79 = memory_id_to_big_value_tmp_1415.get_m31(9); + let op1_limb_9_col79 = memoryidtobig_value_tmp_5a14_16.get_m31(9); trace[79].data[row_index] = op1_limb_9_col79; - let op1_limb_10_col80 = memory_id_to_big_value_tmp_1415.get_m31(10); + let op1_limb_10_col80 = memoryidtobig_value_tmp_5a14_16.get_m31(10); trace[80].data[row_index] = op1_limb_10_col80; - let op1_limb_11_col81 = memory_id_to_big_value_tmp_1415.get_m31(11); + let op1_limb_11_col81 = memoryidtobig_value_tmp_5a14_16.get_m31(11); trace[81].data[row_index] = op1_limb_11_col81; - let op1_limb_12_col82 = memory_id_to_big_value_tmp_1415.get_m31(12); + let op1_limb_12_col82 = memoryidtobig_value_tmp_5a14_16.get_m31(12); trace[82].data[row_index] = op1_limb_12_col82; - let op1_limb_13_col83 = memory_id_to_big_value_tmp_1415.get_m31(13); + let op1_limb_13_col83 = memoryidtobig_value_tmp_5a14_16.get_m31(13); trace[83].data[row_index] = op1_limb_13_col83; - let op1_limb_14_col84 = memory_id_to_big_value_tmp_1415.get_m31(14); + let op1_limb_14_col84 = memoryidtobig_value_tmp_5a14_16.get_m31(14); trace[84].data[row_index] = op1_limb_14_col84; - let op1_limb_15_col85 = memory_id_to_big_value_tmp_1415.get_m31(15); + let op1_limb_15_col85 = memoryidtobig_value_tmp_5a14_16.get_m31(15); trace[85].data[row_index] = op1_limb_15_col85; - let op1_limb_16_col86 = memory_id_to_big_value_tmp_1415.get_m31(16); + let op1_limb_16_col86 = memoryidtobig_value_tmp_5a14_16.get_m31(16); trace[86].data[row_index] = op1_limb_16_col86; - let op1_limb_17_col87 = memory_id_to_big_value_tmp_1415.get_m31(17); + let op1_limb_17_col87 = memoryidtobig_value_tmp_5a14_16.get_m31(17); trace[87].data[row_index] = op1_limb_17_col87; - let op1_limb_18_col88 = memory_id_to_big_value_tmp_1415.get_m31(18); + let op1_limb_18_col88 = memoryidtobig_value_tmp_5a14_16.get_m31(18); trace[88].data[row_index] = op1_limb_18_col88; - let op1_limb_19_col89 = memory_id_to_big_value_tmp_1415.get_m31(19); + let op1_limb_19_col89 = memoryidtobig_value_tmp_5a14_16.get_m31(19); trace[89].data[row_index] = op1_limb_19_col89; - let op1_limb_20_col90 = memory_id_to_big_value_tmp_1415.get_m31(20); + let op1_limb_20_col90 = memoryidtobig_value_tmp_5a14_16.get_m31(20); trace[90].data[row_index] = op1_limb_20_col90; - let op1_limb_21_col91 = memory_id_to_big_value_tmp_1415.get_m31(21); + let op1_limb_21_col91 = memoryidtobig_value_tmp_5a14_16.get_m31(21); trace[91].data[row_index] = op1_limb_21_col91; - let op1_limb_22_col92 = memory_id_to_big_value_tmp_1415.get_m31(22); + let op1_limb_22_col92 = memoryidtobig_value_tmp_5a14_16.get_m31(22); trace[92].data[row_index] = op1_limb_22_col92; - let op1_limb_23_col93 = memory_id_to_big_value_tmp_1415.get_m31(23); + let op1_limb_23_col93 = memoryidtobig_value_tmp_5a14_16.get_m31(23); trace[93].data[row_index] = op1_limb_23_col93; - let op1_limb_24_col94 = memory_id_to_big_value_tmp_1415.get_m31(24); + let op1_limb_24_col94 = memoryidtobig_value_tmp_5a14_16.get_m31(24); trace[94].data[row_index] = op1_limb_24_col94; - let op1_limb_25_col95 = memory_id_to_big_value_tmp_1415.get_m31(25); + let op1_limb_25_col95 = memoryidtobig_value_tmp_5a14_16.get_m31(25); trace[95].data[row_index] = op1_limb_25_col95; - let op1_limb_26_col96 = memory_id_to_big_value_tmp_1415.get_m31(26); + let op1_limb_26_col96 = memoryidtobig_value_tmp_5a14_16.get_m31(26); trace[96].data[row_index] = op1_limb_26_col96; - let op1_limb_27_col97 = memory_id_to_big_value_tmp_1415.get_m31(27); + let op1_limb_27_col97 = memoryidtobig_value_tmp_5a14_16.get_m31(27); trace[97].data[row_index] = op1_limb_27_col97; sub_components_inputs.memory_id_to_big_inputs[2].extend(op1_id_col69.unpack()); @@ -721,36 +721,36 @@ pub fn write_trace_simd( op1_limb_27_col97, ]); - // verify_mul252. + // VerifyMul252. - let conv_tmp_1416 = + let conv_tmp_5a14_17 = (((M31_0) - (dst_limb_0_col12)) + ((op0_limb_0_col41) * (op1_limb_0_col70))); - let conv_tmp_1417 = ((((M31_0) - (dst_limb_1_col13)) + let conv_tmp_5a14_18 = ((((M31_0) - (dst_limb_1_col13)) + ((op0_limb_0_col41) * (op1_limb_1_col71))) + ((op0_limb_1_col42) * (op1_limb_0_col70))); - let conv_tmp_1418 = (((((M31_0) - (dst_limb_2_col14)) + let conv_tmp_5a14_19 = (((((M31_0) - (dst_limb_2_col14)) + ((op0_limb_0_col41) * (op1_limb_2_col72))) + ((op0_limb_1_col42) * (op1_limb_1_col71))) + ((op0_limb_2_col43) * (op1_limb_0_col70))); - let conv_tmp_1419 = ((((((M31_0) - (dst_limb_3_col15)) + let conv_tmp_5a14_20 = ((((((M31_0) - (dst_limb_3_col15)) + ((op0_limb_0_col41) * (op1_limb_3_col73))) + ((op0_limb_1_col42) * (op1_limb_2_col72))) + ((op0_limb_2_col43) * (op1_limb_1_col71))) + ((op0_limb_3_col44) * (op1_limb_0_col70))); - let conv_tmp_1420 = (((((((M31_0) - (dst_limb_4_col16)) + let conv_tmp_5a14_21 = (((((((M31_0) - (dst_limb_4_col16)) + ((op0_limb_0_col41) * (op1_limb_4_col74))) + ((op0_limb_1_col42) * (op1_limb_3_col73))) + ((op0_limb_2_col43) * (op1_limb_2_col72))) + ((op0_limb_3_col44) * (op1_limb_1_col71))) + ((op0_limb_4_col45) * (op1_limb_0_col70))); - let conv_tmp_1421 = ((((((((M31_0) - (dst_limb_5_col17)) + let conv_tmp_5a14_22 = ((((((((M31_0) - (dst_limb_5_col17)) + ((op0_limb_0_col41) * (op1_limb_5_col75))) + ((op0_limb_1_col42) * (op1_limb_4_col74))) + ((op0_limb_2_col43) * (op1_limb_3_col73))) + ((op0_limb_3_col44) * (op1_limb_2_col72))) + ((op0_limb_4_col45) * (op1_limb_1_col71))) + ((op0_limb_5_col46) * (op1_limb_0_col70))); - let conv_tmp_1422 = (((((((((M31_0) - (dst_limb_6_col18)) + let conv_tmp_5a14_23 = (((((((((M31_0) - (dst_limb_6_col18)) + ((op0_limb_0_col41) * (op1_limb_6_col76))) + ((op0_limb_1_col42) * (op1_limb_5_col75))) + ((op0_limb_2_col43) * (op1_limb_4_col74))) @@ -758,7 +758,7 @@ pub fn write_trace_simd( + ((op0_limb_4_col45) * (op1_limb_2_col72))) + ((op0_limb_5_col46) * (op1_limb_1_col71))) + ((op0_limb_6_col47) * (op1_limb_0_col70))); - let conv_tmp_1423 = ((((((((((M31_0) - (dst_limb_7_col19)) + let conv_tmp_5a14_24 = ((((((((((M31_0) - (dst_limb_7_col19)) + ((op0_limb_0_col41) * (op1_limb_7_col77))) + ((op0_limb_1_col42) * (op1_limb_6_col76))) + ((op0_limb_2_col43) * (op1_limb_5_col75))) @@ -767,7 +767,7 @@ pub fn write_trace_simd( + ((op0_limb_5_col46) * (op1_limb_2_col72))) + ((op0_limb_6_col47) * (op1_limb_1_col71))) + ((op0_limb_7_col48) * (op1_limb_0_col70))); - let conv_tmp_1424 = (((((((((((M31_0) - (dst_limb_8_col20)) + let conv_tmp_5a14_25 = (((((((((((M31_0) - (dst_limb_8_col20)) + ((op0_limb_0_col41) * (op1_limb_8_col78))) + ((op0_limb_1_col42) * (op1_limb_7_col77))) + ((op0_limb_2_col43) * (op1_limb_6_col76))) @@ -777,7 +777,7 @@ pub fn write_trace_simd( + ((op0_limb_6_col47) * (op1_limb_2_col72))) + ((op0_limb_7_col48) * (op1_limb_1_col71))) + ((op0_limb_8_col49) * (op1_limb_0_col70))); - let conv_tmp_1425 = ((((((((((((M31_0) - (dst_limb_9_col21)) + let conv_tmp_5a14_26 = ((((((((((((M31_0) - (dst_limb_9_col21)) + ((op0_limb_0_col41) * (op1_limb_9_col79))) + ((op0_limb_1_col42) * (op1_limb_8_col78))) + ((op0_limb_2_col43) * (op1_limb_7_col77))) @@ -788,7 +788,7 @@ pub fn write_trace_simd( + ((op0_limb_7_col48) * (op1_limb_2_col72))) + ((op0_limb_8_col49) * (op1_limb_1_col71))) + ((op0_limb_9_col50) * (op1_limb_0_col70))); - let conv_tmp_1426 = (((((((((((((M31_0) - (dst_limb_10_col22)) + let conv_tmp_5a14_27 = (((((((((((((M31_0) - (dst_limb_10_col22)) + ((op0_limb_0_col41) * (op1_limb_10_col80))) + ((op0_limb_1_col42) * (op1_limb_9_col79))) + ((op0_limb_2_col43) * (op1_limb_8_col78))) @@ -800,7 +800,7 @@ pub fn write_trace_simd( + ((op0_limb_8_col49) * (op1_limb_2_col72))) + ((op0_limb_9_col50) * (op1_limb_1_col71))) + ((op0_limb_10_col51) * (op1_limb_0_col70))); - let conv_tmp_1427 = ((((((((((((((M31_0) - (dst_limb_11_col23)) + let conv_tmp_5a14_28 = ((((((((((((((M31_0) - (dst_limb_11_col23)) + ((op0_limb_0_col41) * (op1_limb_11_col81))) + ((op0_limb_1_col42) * (op1_limb_10_col80))) + ((op0_limb_2_col43) * (op1_limb_9_col79))) @@ -813,7 +813,7 @@ pub fn write_trace_simd( + ((op0_limb_9_col50) * (op1_limb_2_col72))) + ((op0_limb_10_col51) * (op1_limb_1_col71))) + ((op0_limb_11_col52) * (op1_limb_0_col70))); - let conv_tmp_1428 = (((((((((((((((M31_0) - (dst_limb_12_col24)) + let conv_tmp_5a14_29 = (((((((((((((((M31_0) - (dst_limb_12_col24)) + ((op0_limb_0_col41) * (op1_limb_12_col82))) + ((op0_limb_1_col42) * (op1_limb_11_col81))) + ((op0_limb_2_col43) * (op1_limb_10_col80))) @@ -827,7 +827,7 @@ pub fn write_trace_simd( + ((op0_limb_10_col51) * (op1_limb_2_col72))) + ((op0_limb_11_col52) * (op1_limb_1_col71))) + ((op0_limb_12_col53) * (op1_limb_0_col70))); - let conv_tmp_1429 = ((((((((((((((((M31_0) - (dst_limb_13_col25)) + let conv_tmp_5a14_30 = ((((((((((((((((M31_0) - (dst_limb_13_col25)) + ((op0_limb_0_col41) * (op1_limb_13_col83))) + ((op0_limb_1_col42) * (op1_limb_12_col82))) + ((op0_limb_2_col43) * (op1_limb_11_col81))) @@ -842,7 +842,7 @@ pub fn write_trace_simd( + ((op0_limb_11_col52) * (op1_limb_2_col72))) + ((op0_limb_12_col53) * (op1_limb_1_col71))) + ((op0_limb_13_col54) * (op1_limb_0_col70))); - let conv_tmp_1430 = (((((((((((((((((M31_0) - (dst_limb_14_col26)) + let conv_tmp_5a14_31 = (((((((((((((((((M31_0) - (dst_limb_14_col26)) + ((op0_limb_0_col41) * (op1_limb_14_col84))) + ((op0_limb_1_col42) * (op1_limb_13_col83))) + ((op0_limb_2_col43) * (op1_limb_12_col82))) @@ -858,7 +858,7 @@ pub fn write_trace_simd( + ((op0_limb_12_col53) * (op1_limb_2_col72))) + ((op0_limb_13_col54) * (op1_limb_1_col71))) + ((op0_limb_14_col55) * (op1_limb_0_col70))); - let conv_tmp_1431 = ((((((((((((((((((M31_0) - (dst_limb_15_col27)) + let conv_tmp_5a14_32 = ((((((((((((((((((M31_0) - (dst_limb_15_col27)) + ((op0_limb_0_col41) * (op1_limb_15_col85))) + ((op0_limb_1_col42) * (op1_limb_14_col84))) + ((op0_limb_2_col43) * (op1_limb_13_col83))) @@ -875,7 +875,8 @@ pub fn write_trace_simd( + ((op0_limb_13_col54) * (op1_limb_2_col72))) + ((op0_limb_14_col55) * (op1_limb_1_col71))) + ((op0_limb_15_col56) * (op1_limb_0_col70))); - let conv_tmp_1432 = (((((((((((((((((((M31_0) - (dst_limb_16_col28)) + let conv_tmp_5a14_33 = (((((((((((((((((((M31_0) + - (dst_limb_16_col28)) + ((op0_limb_0_col41) * (op1_limb_16_col86))) + ((op0_limb_1_col42) * (op1_limb_15_col85))) + ((op0_limb_2_col43) * (op1_limb_14_col84))) @@ -893,7 +894,8 @@ pub fn write_trace_simd( + ((op0_limb_14_col55) * (op1_limb_2_col72))) + ((op0_limb_15_col56) * (op1_limb_1_col71))) + ((op0_limb_16_col57) * (op1_limb_0_col70))); - let conv_tmp_1433 = ((((((((((((((((((((M31_0) - (dst_limb_17_col29)) + let conv_tmp_5a14_34 = ((((((((((((((((((((M31_0) + - (dst_limb_17_col29)) + ((op0_limb_0_col41) * (op1_limb_17_col87))) + ((op0_limb_1_col42) * (op1_limb_16_col86))) + ((op0_limb_2_col43) * (op1_limb_15_col85))) @@ -912,7 +914,7 @@ pub fn write_trace_simd( + ((op0_limb_15_col56) * (op1_limb_2_col72))) + ((op0_limb_16_col57) * (op1_limb_1_col71))) + ((op0_limb_17_col58) * (op1_limb_0_col70))); - let conv_tmp_1434 = (((((((((((((((((((((M31_0) + let conv_tmp_5a14_35 = (((((((((((((((((((((M31_0) - (dst_limb_18_col30)) + ((op0_limb_0_col41) * (op1_limb_18_col88))) + ((op0_limb_1_col42) * (op1_limb_17_col87))) @@ -933,7 +935,7 @@ pub fn write_trace_simd( + ((op0_limb_16_col57) * (op1_limb_2_col72))) + ((op0_limb_17_col58) * (op1_limb_1_col71))) + ((op0_limb_18_col59) * (op1_limb_0_col70))); - let conv_tmp_1435 = ((((((((((((((((((((((M31_0) + let conv_tmp_5a14_36 = ((((((((((((((((((((((M31_0) - (dst_limb_19_col31)) + ((op0_limb_0_col41) * (op1_limb_19_col89))) + ((op0_limb_1_col42) * (op1_limb_18_col88))) @@ -955,7 +957,7 @@ pub fn write_trace_simd( + ((op0_limb_17_col58) * (op1_limb_2_col72))) + ((op0_limb_18_col59) * (op1_limb_1_col71))) + ((op0_limb_19_col60) * (op1_limb_0_col70))); - let conv_tmp_1436 = (((((((((((((((((((((((M31_0) + let conv_tmp_5a14_37 = (((((((((((((((((((((((M31_0) - (dst_limb_20_col32)) + ((op0_limb_0_col41) * (op1_limb_20_col90))) + ((op0_limb_1_col42) * (op1_limb_19_col89))) @@ -978,7 +980,7 @@ pub fn write_trace_simd( + ((op0_limb_18_col59) * (op1_limb_2_col72))) + ((op0_limb_19_col60) * (op1_limb_1_col71))) + ((op0_limb_20_col61) * (op1_limb_0_col70))); - let conv_tmp_1437 = ((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_38 = ((((((((((((((((((((((((M31_0) - (dst_limb_21_col33)) + ((op0_limb_0_col41) * (op1_limb_21_col91))) + ((op0_limb_1_col42) * (op1_limb_20_col90))) @@ -1002,7 +1004,7 @@ pub fn write_trace_simd( + ((op0_limb_19_col60) * (op1_limb_2_col72))) + ((op0_limb_20_col61) * (op1_limb_1_col71))) + ((op0_limb_21_col62) * (op1_limb_0_col70))); - let conv_tmp_1438 = (((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_39 = (((((((((((((((((((((((((M31_0) - (dst_limb_22_col34)) + ((op0_limb_0_col41) * (op1_limb_22_col92))) + ((op0_limb_1_col42) * (op1_limb_21_col91))) @@ -1027,7 +1029,7 @@ pub fn write_trace_simd( + ((op0_limb_20_col61) * (op1_limb_2_col72))) + ((op0_limb_21_col62) * (op1_limb_1_col71))) + ((op0_limb_22_col63) * (op1_limb_0_col70))); - let conv_tmp_1439 = ((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_40 = ((((((((((((((((((((((((((M31_0) - (dst_limb_23_col35)) + ((op0_limb_0_col41) * (op1_limb_23_col93))) + ((op0_limb_1_col42) * (op1_limb_22_col92))) @@ -1053,7 +1055,7 @@ pub fn write_trace_simd( + ((op0_limb_21_col62) * (op1_limb_2_col72))) + ((op0_limb_22_col63) * (op1_limb_1_col71))) + ((op0_limb_23_col64) * (op1_limb_0_col70))); - let conv_tmp_1440 = (((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_41 = (((((((((((((((((((((((((((M31_0) - (dst_limb_24_col36)) + ((op0_limb_0_col41) * (op1_limb_24_col94))) + ((op0_limb_1_col42) * (op1_limb_23_col93))) @@ -1080,7 +1082,7 @@ pub fn write_trace_simd( + ((op0_limb_22_col63) * (op1_limb_2_col72))) + ((op0_limb_23_col64) * (op1_limb_1_col71))) + ((op0_limb_24_col65) * (op1_limb_0_col70))); - let conv_tmp_1441 = ((((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_42 = ((((((((((((((((((((((((((((M31_0) - (dst_limb_25_col37)) + ((op0_limb_0_col41) * (op1_limb_25_col95))) + ((op0_limb_1_col42) * (op1_limb_24_col94))) @@ -1108,7 +1110,7 @@ pub fn write_trace_simd( + ((op0_limb_23_col64) * (op1_limb_2_col72))) + ((op0_limb_24_col65) * (op1_limb_1_col71))) + ((op0_limb_25_col66) * (op1_limb_0_col70))); - let conv_tmp_1442 = (((((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_43 = (((((((((((((((((((((((((((((M31_0) - (dst_limb_26_col38)) + ((op0_limb_0_col41) * (op1_limb_26_col96))) + ((op0_limb_1_col42) * (op1_limb_25_col95))) @@ -1137,7 +1139,7 @@ pub fn write_trace_simd( + ((op0_limb_24_col65) * (op1_limb_2_col72))) + ((op0_limb_25_col66) * (op1_limb_1_col71))) + ((op0_limb_26_col67) * (op1_limb_0_col70))); - let conv_tmp_1443 = ((((((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_44 = ((((((((((((((((((((((((((((((M31_0) - (dst_limb_27_col39)) + ((op0_limb_0_col41) * (op1_limb_27_col97))) + ((op0_limb_1_col42) * (op1_limb_26_col96))) @@ -1167,7 +1169,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_2_col72))) + ((op0_limb_26_col67) * (op1_limb_1_col71))) + ((op0_limb_27_col68) * (op1_limb_0_col70))); - let conv_tmp_1444 = ((((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_45 = ((((((((((((((((((((((((((((M31_0) + ((op0_limb_1_col42) * (op1_limb_27_col97))) + ((op0_limb_2_col43) * (op1_limb_26_col96))) + ((op0_limb_3_col44) * (op1_limb_25_col95))) @@ -1195,7 +1197,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_3_col73))) + ((op0_limb_26_col67) * (op1_limb_2_col72))) + ((op0_limb_27_col68) * (op1_limb_1_col71))); - let conv_tmp_1445 = (((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_46 = (((((((((((((((((((((((((((M31_0) + ((op0_limb_2_col43) * (op1_limb_27_col97))) + ((op0_limb_3_col44) * (op1_limb_26_col96))) + ((op0_limb_4_col45) * (op1_limb_25_col95))) @@ -1222,7 +1224,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_4_col74))) + ((op0_limb_26_col67) * (op1_limb_3_col73))) + ((op0_limb_27_col68) * (op1_limb_2_col72))); - let conv_tmp_1446 = ((((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_47 = ((((((((((((((((((((((((((M31_0) + ((op0_limb_3_col44) * (op1_limb_27_col97))) + ((op0_limb_4_col45) * (op1_limb_26_col96))) + ((op0_limb_5_col46) * (op1_limb_25_col95))) @@ -1248,7 +1250,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_5_col75))) + ((op0_limb_26_col67) * (op1_limb_4_col74))) + ((op0_limb_27_col68) * (op1_limb_3_col73))); - let conv_tmp_1447 = (((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_48 = (((((((((((((((((((((((((M31_0) + ((op0_limb_4_col45) * (op1_limb_27_col97))) + ((op0_limb_5_col46) * (op1_limb_26_col96))) + ((op0_limb_6_col47) * (op1_limb_25_col95))) @@ -1273,7 +1275,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_6_col76))) + ((op0_limb_26_col67) * (op1_limb_5_col75))) + ((op0_limb_27_col68) * (op1_limb_4_col74))); - let conv_tmp_1448 = ((((((((((((((((((((((((M31_0) + let conv_tmp_5a14_49 = ((((((((((((((((((((((((M31_0) + ((op0_limb_5_col46) * (op1_limb_27_col97))) + ((op0_limb_6_col47) * (op1_limb_26_col96))) + ((op0_limb_7_col48) * (op1_limb_25_col95))) @@ -1297,7 +1299,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_7_col77))) + ((op0_limb_26_col67) * (op1_limb_6_col76))) + ((op0_limb_27_col68) * (op1_limb_5_col75))); - let conv_tmp_1449 = (((((((((((((((((((((((M31_0) + let conv_tmp_5a14_50 = (((((((((((((((((((((((M31_0) + ((op0_limb_6_col47) * (op1_limb_27_col97))) + ((op0_limb_7_col48) * (op1_limb_26_col96))) + ((op0_limb_8_col49) * (op1_limb_25_col95))) @@ -1320,7 +1322,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_8_col78))) + ((op0_limb_26_col67) * (op1_limb_7_col77))) + ((op0_limb_27_col68) * (op1_limb_6_col76))); - let conv_tmp_1450 = ((((((((((((((((((((((M31_0) + let conv_tmp_5a14_51 = ((((((((((((((((((((((M31_0) + ((op0_limb_7_col48) * (op1_limb_27_col97))) + ((op0_limb_8_col49) * (op1_limb_26_col96))) + ((op0_limb_9_col50) * (op1_limb_25_col95))) @@ -1342,7 +1344,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_9_col79))) + ((op0_limb_26_col67) * (op1_limb_8_col78))) + ((op0_limb_27_col68) * (op1_limb_7_col77))); - let conv_tmp_1451 = (((((((((((((((((((((M31_0) + let conv_tmp_5a14_52 = (((((((((((((((((((((M31_0) + ((op0_limb_8_col49) * (op1_limb_27_col97))) + ((op0_limb_9_col50) * (op1_limb_26_col96))) + ((op0_limb_10_col51) * (op1_limb_25_col95))) @@ -1363,7 +1365,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_10_col80))) + ((op0_limb_26_col67) * (op1_limb_9_col79))) + ((op0_limb_27_col68) * (op1_limb_8_col78))); - let conv_tmp_1452 = ((((((((((((((((((((M31_0) + let conv_tmp_5a14_53 = ((((((((((((((((((((M31_0) + ((op0_limb_9_col50) * (op1_limb_27_col97))) + ((op0_limb_10_col51) * (op1_limb_26_col96))) + ((op0_limb_11_col52) * (op1_limb_25_col95))) @@ -1383,7 +1385,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_11_col81))) + ((op0_limb_26_col67) * (op1_limb_10_col80))) + ((op0_limb_27_col68) * (op1_limb_9_col79))); - let conv_tmp_1453 = (((((((((((((((((((M31_0) + let conv_tmp_5a14_54 = (((((((((((((((((((M31_0) + ((op0_limb_10_col51) * (op1_limb_27_col97))) + ((op0_limb_11_col52) * (op1_limb_26_col96))) + ((op0_limb_12_col53) * (op1_limb_25_col95))) @@ -1402,7 +1404,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_12_col82))) + ((op0_limb_26_col67) * (op1_limb_11_col81))) + ((op0_limb_27_col68) * (op1_limb_10_col80))); - let conv_tmp_1454 = ((((((((((((((((((M31_0) + let conv_tmp_5a14_55 = ((((((((((((((((((M31_0) + ((op0_limb_11_col52) * (op1_limb_27_col97))) + ((op0_limb_12_col53) * (op1_limb_26_col96))) + ((op0_limb_13_col54) * (op1_limb_25_col95))) @@ -1420,7 +1422,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_13_col83))) + ((op0_limb_26_col67) * (op1_limb_12_col82))) + ((op0_limb_27_col68) * (op1_limb_11_col81))); - let conv_tmp_1455 = (((((((((((((((((M31_0) + let conv_tmp_5a14_56 = (((((((((((((((((M31_0) + ((op0_limb_12_col53) * (op1_limb_27_col97))) + ((op0_limb_13_col54) * (op1_limb_26_col96))) + ((op0_limb_14_col55) * (op1_limb_25_col95))) @@ -1437,7 +1439,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_14_col84))) + ((op0_limb_26_col67) * (op1_limb_13_col83))) + ((op0_limb_27_col68) * (op1_limb_12_col82))); - let conv_tmp_1456 = ((((((((((((((((M31_0) + let conv_tmp_5a14_57 = ((((((((((((((((M31_0) + ((op0_limb_13_col54) * (op1_limb_27_col97))) + ((op0_limb_14_col55) * (op1_limb_26_col96))) + ((op0_limb_15_col56) * (op1_limb_25_col95))) @@ -1453,7 +1455,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_15_col85))) + ((op0_limb_26_col67) * (op1_limb_14_col84))) + ((op0_limb_27_col68) * (op1_limb_13_col83))); - let conv_tmp_1457 = (((((((((((((((M31_0) + let conv_tmp_5a14_58 = (((((((((((((((M31_0) + ((op0_limb_14_col55) * (op1_limb_27_col97))) + ((op0_limb_15_col56) * (op1_limb_26_col96))) + ((op0_limb_16_col57) * (op1_limb_25_col95))) @@ -1468,7 +1470,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_16_col86))) + ((op0_limb_26_col67) * (op1_limb_15_col85))) + ((op0_limb_27_col68) * (op1_limb_14_col84))); - let conv_tmp_1458 = ((((((((((((((M31_0) + let conv_tmp_5a14_59 = ((((((((((((((M31_0) + ((op0_limb_15_col56) * (op1_limb_27_col97))) + ((op0_limb_16_col57) * (op1_limb_26_col96))) + ((op0_limb_17_col58) * (op1_limb_25_col95))) @@ -1482,7 +1484,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_17_col87))) + ((op0_limb_26_col67) * (op1_limb_16_col86))) + ((op0_limb_27_col68) * (op1_limb_15_col85))); - let conv_tmp_1459 = (((((((((((((M31_0) + let conv_tmp_5a14_60 = (((((((((((((M31_0) + ((op0_limb_16_col57) * (op1_limb_27_col97))) + ((op0_limb_17_col58) * (op1_limb_26_col96))) + ((op0_limb_18_col59) * (op1_limb_25_col95))) @@ -1495,7 +1497,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_18_col88))) + ((op0_limb_26_col67) * (op1_limb_17_col87))) + ((op0_limb_27_col68) * (op1_limb_16_col86))); - let conv_tmp_1460 = ((((((((((((M31_0) + let conv_tmp_5a14_61 = ((((((((((((M31_0) + ((op0_limb_17_col58) * (op1_limb_27_col97))) + ((op0_limb_18_col59) * (op1_limb_26_col96))) + ((op0_limb_19_col60) * (op1_limb_25_col95))) @@ -1507,7 +1509,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_19_col89))) + ((op0_limb_26_col67) * (op1_limb_18_col88))) + ((op0_limb_27_col68) * (op1_limb_17_col87))); - let conv_tmp_1461 = (((((((((((M31_0) + let conv_tmp_5a14_62 = (((((((((((M31_0) + ((op0_limb_18_col59) * (op1_limb_27_col97))) + ((op0_limb_19_col60) * (op1_limb_26_col96))) + ((op0_limb_20_col61) * (op1_limb_25_col95))) @@ -1518,7 +1520,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_20_col90))) + ((op0_limb_26_col67) * (op1_limb_19_col89))) + ((op0_limb_27_col68) * (op1_limb_18_col88))); - let conv_tmp_1462 = ((((((((((M31_0) + let conv_tmp_5a14_63 = ((((((((((M31_0) + ((op0_limb_19_col60) * (op1_limb_27_col97))) + ((op0_limb_20_col61) * (op1_limb_26_col96))) + ((op0_limb_21_col62) * (op1_limb_25_col95))) @@ -1528,7 +1530,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_21_col91))) + ((op0_limb_26_col67) * (op1_limb_20_col90))) + ((op0_limb_27_col68) * (op1_limb_19_col89))); - let conv_tmp_1463 = (((((((((M31_0) + let conv_tmp_5a14_64 = (((((((((M31_0) + ((op0_limb_20_col61) * (op1_limb_27_col97))) + ((op0_limb_21_col62) * (op1_limb_26_col96))) + ((op0_limb_22_col63) * (op1_limb_25_col95))) @@ -1537,152 +1539,154 @@ pub fn write_trace_simd( + ((op0_limb_25_col66) * (op1_limb_22_col92))) + ((op0_limb_26_col67) * (op1_limb_21_col91))) + ((op0_limb_27_col68) * (op1_limb_20_col90))); - let conv_tmp_1464 = ((((((((M31_0) + ((op0_limb_21_col62) * (op1_limb_27_col97))) + let conv_tmp_5a14_65 = ((((((((M31_0) + + ((op0_limb_21_col62) * (op1_limb_27_col97))) + ((op0_limb_22_col63) * (op1_limb_26_col96))) + ((op0_limb_23_col64) * (op1_limb_25_col95))) + ((op0_limb_24_col65) * (op1_limb_24_col94))) + ((op0_limb_25_col66) * (op1_limb_23_col93))) + ((op0_limb_26_col67) * (op1_limb_22_col92))) + ((op0_limb_27_col68) * (op1_limb_21_col91))); - let conv_tmp_1465 = (((((((M31_0) + ((op0_limb_22_col63) * (op1_limb_27_col97))) + let conv_tmp_5a14_66 = (((((((M31_0) + + ((op0_limb_22_col63) * (op1_limb_27_col97))) + ((op0_limb_23_col64) * (op1_limb_26_col96))) + ((op0_limb_24_col65) * (op1_limb_25_col95))) + ((op0_limb_25_col66) * (op1_limb_24_col94))) + ((op0_limb_26_col67) * (op1_limb_23_col93))) + ((op0_limb_27_col68) * (op1_limb_22_col92))); - let conv_tmp_1466 = ((((((M31_0) + ((op0_limb_23_col64) * (op1_limb_27_col97))) + let conv_tmp_5a14_67 = ((((((M31_0) + ((op0_limb_23_col64) * (op1_limb_27_col97))) + ((op0_limb_24_col65) * (op1_limb_26_col96))) + ((op0_limb_25_col66) * (op1_limb_25_col95))) + ((op0_limb_26_col67) * (op1_limb_24_col94))) + ((op0_limb_27_col68) * (op1_limb_23_col93))); - let conv_tmp_1467 = (((((M31_0) + ((op0_limb_24_col65) * (op1_limb_27_col97))) + let conv_tmp_5a14_68 = (((((M31_0) + ((op0_limb_24_col65) * (op1_limb_27_col97))) + ((op0_limb_25_col66) * (op1_limb_26_col96))) + ((op0_limb_26_col67) * (op1_limb_25_col95))) + ((op0_limb_27_col68) * (op1_limb_24_col94))); - let conv_tmp_1468 = ((((M31_0) + ((op0_limb_25_col66) * (op1_limb_27_col97))) + let conv_tmp_5a14_69 = ((((M31_0) + ((op0_limb_25_col66) * (op1_limb_27_col97))) + ((op0_limb_26_col67) * (op1_limb_26_col96))) + ((op0_limb_27_col68) * (op1_limb_25_col95))); - let conv_tmp_1469 = (((M31_0) + ((op0_limb_26_col67) * (op1_limb_27_col97))) + let conv_tmp_5a14_70 = (((M31_0) + ((op0_limb_26_col67) * (op1_limb_27_col97))) + ((op0_limb_27_col68) * (op1_limb_26_col96))); - let conv_tmp_1470 = ((M31_0) + ((op0_limb_27_col68) * (op1_limb_27_col97))); - let conv_mod_tmp_1471 = ((((M31_0) + ((M31_32) * (conv_tmp_1416))) - - ((M31_4) * (conv_tmp_1437))) - + ((M31_8) * (conv_tmp_1465))); - let conv_mod_tmp_1472 = (((((M31_0) + ((M31_1) * (conv_tmp_1416))) - + ((M31_32) * (conv_tmp_1417))) - - ((M31_4) * (conv_tmp_1438))) - + ((M31_8) * (conv_tmp_1466))); - let conv_mod_tmp_1473 = (((((M31_0) + ((M31_1) * (conv_tmp_1417))) - + ((M31_32) * (conv_tmp_1418))) - - ((M31_4) * (conv_tmp_1439))) - + ((M31_8) * (conv_tmp_1467))); - let conv_mod_tmp_1474 = (((((M31_0) + ((M31_1) * (conv_tmp_1418))) - + ((M31_32) * (conv_tmp_1419))) - - ((M31_4) * (conv_tmp_1440))) - + ((M31_8) * (conv_tmp_1468))); - let conv_mod_tmp_1475 = (((((M31_0) + ((M31_1) * (conv_tmp_1419))) - + ((M31_32) * (conv_tmp_1420))) - - ((M31_4) * (conv_tmp_1441))) - + ((M31_8) * (conv_tmp_1469))); - let conv_mod_tmp_1476 = (((((M31_0) + ((M31_1) * (conv_tmp_1420))) - + ((M31_32) * (conv_tmp_1421))) - - ((M31_4) * (conv_tmp_1442))) - + ((M31_8) * (conv_tmp_1470))); - let conv_mod_tmp_1477 = ((((M31_0) + ((M31_1) * (conv_tmp_1421))) - + ((M31_32) * (conv_tmp_1422))) - - ((M31_4) * (conv_tmp_1443))); - let conv_mod_tmp_1478 = (((((M31_0) + ((M31_2) * (conv_tmp_1416))) - + ((M31_1) * (conv_tmp_1422))) - + ((M31_32) * (conv_tmp_1423))) - - ((M31_4) * (conv_tmp_1444))); - let conv_mod_tmp_1479 = (((((M31_0) + ((M31_2) * (conv_tmp_1417))) - + ((M31_1) * (conv_tmp_1423))) - + ((M31_32) * (conv_tmp_1424))) - - ((M31_4) * (conv_tmp_1445))); - let conv_mod_tmp_1480 = (((((M31_0) + ((M31_2) * (conv_tmp_1418))) - + ((M31_1) * (conv_tmp_1424))) - + ((M31_32) * (conv_tmp_1425))) - - ((M31_4) * (conv_tmp_1446))); - let conv_mod_tmp_1481 = (((((M31_0) + ((M31_2) * (conv_tmp_1419))) - + ((M31_1) * (conv_tmp_1425))) - + ((M31_32) * (conv_tmp_1426))) - - ((M31_4) * (conv_tmp_1447))); - let conv_mod_tmp_1482 = (((((M31_0) + ((M31_2) * (conv_tmp_1420))) - + ((M31_1) * (conv_tmp_1426))) - + ((M31_32) * (conv_tmp_1427))) - - ((M31_4) * (conv_tmp_1448))); - let conv_mod_tmp_1483 = (((((M31_0) + ((M31_2) * (conv_tmp_1421))) - + ((M31_1) * (conv_tmp_1427))) - + ((M31_32) * (conv_tmp_1428))) - - ((M31_4) * (conv_tmp_1449))); - let conv_mod_tmp_1484 = (((((M31_0) + ((M31_2) * (conv_tmp_1422))) - + ((M31_1) * (conv_tmp_1428))) - + ((M31_32) * (conv_tmp_1429))) - - ((M31_4) * (conv_tmp_1450))); - let conv_mod_tmp_1485 = (((((M31_0) + ((M31_2) * (conv_tmp_1423))) - + ((M31_1) * (conv_tmp_1429))) - + ((M31_32) * (conv_tmp_1430))) - - ((M31_4) * (conv_tmp_1451))); - let conv_mod_tmp_1486 = (((((M31_0) + ((M31_2) * (conv_tmp_1424))) - + ((M31_1) * (conv_tmp_1430))) - + ((M31_32) * (conv_tmp_1431))) - - ((M31_4) * (conv_tmp_1452))); - let conv_mod_tmp_1487 = (((((M31_0) + ((M31_2) * (conv_tmp_1425))) - + ((M31_1) * (conv_tmp_1431))) - + ((M31_32) * (conv_tmp_1432))) - - ((M31_4) * (conv_tmp_1453))); - let conv_mod_tmp_1488 = (((((M31_0) + ((M31_2) * (conv_tmp_1426))) - + ((M31_1) * (conv_tmp_1432))) - + ((M31_32) * (conv_tmp_1433))) - - ((M31_4) * (conv_tmp_1454))); - let conv_mod_tmp_1489 = (((((M31_0) + ((M31_2) * (conv_tmp_1427))) - + ((M31_1) * (conv_tmp_1433))) - + ((M31_32) * (conv_tmp_1434))) - - ((M31_4) * (conv_tmp_1455))); - let conv_mod_tmp_1490 = (((((M31_0) + ((M31_2) * (conv_tmp_1428))) - + ((M31_1) * (conv_tmp_1434))) - + ((M31_32) * (conv_tmp_1435))) - - ((M31_4) * (conv_tmp_1456))); - let conv_mod_tmp_1491 = (((((M31_0) + ((M31_2) * (conv_tmp_1429))) - + ((M31_1) * (conv_tmp_1435))) - + ((M31_32) * (conv_tmp_1436))) - - ((M31_4) * (conv_tmp_1457))); - let conv_mod_tmp_1492 = (((((M31_0) + ((M31_2) * (conv_tmp_1430))) - + ((M31_1) * (conv_tmp_1436))) - - ((M31_4) * (conv_tmp_1458))) - + ((M31_64) * (conv_tmp_1465))); - let conv_mod_tmp_1493 = (((((M31_0) + ((M31_2) * (conv_tmp_1431))) - - ((M31_4) * (conv_tmp_1459))) - + ((M31_2) * (conv_tmp_1465))) - + ((M31_64) * (conv_tmp_1466))); - let conv_mod_tmp_1494 = (((((M31_0) + ((M31_2) * (conv_tmp_1432))) - - ((M31_4) * (conv_tmp_1460))) - + ((M31_2) * (conv_tmp_1466))) - + ((M31_64) * (conv_tmp_1467))); - let conv_mod_tmp_1495 = (((((M31_0) + ((M31_2) * (conv_tmp_1433))) - - ((M31_4) * (conv_tmp_1461))) - + ((M31_2) * (conv_tmp_1467))) - + ((M31_64) * (conv_tmp_1468))); - let conv_mod_tmp_1496 = (((((M31_0) + ((M31_2) * (conv_tmp_1434))) - - ((M31_4) * (conv_tmp_1462))) - + ((M31_2) * (conv_tmp_1468))) - + ((M31_64) * (conv_tmp_1469))); - let conv_mod_tmp_1497 = (((((M31_0) + ((M31_2) * (conv_tmp_1435))) - - ((M31_4) * (conv_tmp_1463))) - + ((M31_2) * (conv_tmp_1469))) - + ((M31_64) * (conv_tmp_1470))); - let conv_mod_tmp_1498 = ((((M31_0) + ((M31_2) * (conv_tmp_1436))) - - ((M31_4) * (conv_tmp_1464))) - + ((M31_2) * (conv_tmp_1470))); - let k_mod_2_18_biased_tmp_1499 = - ((((PackedUInt32::from_m31(((conv_mod_tmp_1471) + (M31_134217728)))) - + (((PackedUInt32::from_m31(((conv_mod_tmp_1472) + (M31_134217728)))) + let conv_tmp_5a14_71 = ((M31_0) + ((op0_limb_27_col68) * (op1_limb_27_col97))); + let conv_mod_tmp_5a14_72 = ((((M31_0) + ((M31_32) * (conv_tmp_5a14_17))) + - ((M31_4) * (conv_tmp_5a14_38))) + + ((M31_8) * (conv_tmp_5a14_66))); + let conv_mod_tmp_5a14_73 = (((((M31_0) + ((M31_1) * (conv_tmp_5a14_17))) + + ((M31_32) * (conv_tmp_5a14_18))) + - ((M31_4) * (conv_tmp_5a14_39))) + + ((M31_8) * (conv_tmp_5a14_67))); + let conv_mod_tmp_5a14_74 = (((((M31_0) + ((M31_1) * (conv_tmp_5a14_18))) + + ((M31_32) * (conv_tmp_5a14_19))) + - ((M31_4) * (conv_tmp_5a14_40))) + + ((M31_8) * (conv_tmp_5a14_68))); + let conv_mod_tmp_5a14_75 = (((((M31_0) + ((M31_1) * (conv_tmp_5a14_19))) + + ((M31_32) * (conv_tmp_5a14_20))) + - ((M31_4) * (conv_tmp_5a14_41))) + + ((M31_8) * (conv_tmp_5a14_69))); + let conv_mod_tmp_5a14_76 = (((((M31_0) + ((M31_1) * (conv_tmp_5a14_20))) + + ((M31_32) * (conv_tmp_5a14_21))) + - ((M31_4) * (conv_tmp_5a14_42))) + + ((M31_8) * (conv_tmp_5a14_70))); + let conv_mod_tmp_5a14_77 = (((((M31_0) + ((M31_1) * (conv_tmp_5a14_21))) + + ((M31_32) * (conv_tmp_5a14_22))) + - ((M31_4) * (conv_tmp_5a14_43))) + + ((M31_8) * (conv_tmp_5a14_71))); + let conv_mod_tmp_5a14_78 = ((((M31_0) + ((M31_1) * (conv_tmp_5a14_22))) + + ((M31_32) * (conv_tmp_5a14_23))) + - ((M31_4) * (conv_tmp_5a14_44))); + let conv_mod_tmp_5a14_79 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_17))) + + ((M31_1) * (conv_tmp_5a14_23))) + + ((M31_32) * (conv_tmp_5a14_24))) + - ((M31_4) * (conv_tmp_5a14_45))); + let conv_mod_tmp_5a14_80 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_18))) + + ((M31_1) * (conv_tmp_5a14_24))) + + ((M31_32) * (conv_tmp_5a14_25))) + - ((M31_4) * (conv_tmp_5a14_46))); + let conv_mod_tmp_5a14_81 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_19))) + + ((M31_1) * (conv_tmp_5a14_25))) + + ((M31_32) * (conv_tmp_5a14_26))) + - ((M31_4) * (conv_tmp_5a14_47))); + let conv_mod_tmp_5a14_82 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_20))) + + ((M31_1) * (conv_tmp_5a14_26))) + + ((M31_32) * (conv_tmp_5a14_27))) + - ((M31_4) * (conv_tmp_5a14_48))); + let conv_mod_tmp_5a14_83 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_21))) + + ((M31_1) * (conv_tmp_5a14_27))) + + ((M31_32) * (conv_tmp_5a14_28))) + - ((M31_4) * (conv_tmp_5a14_49))); + let conv_mod_tmp_5a14_84 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_22))) + + ((M31_1) * (conv_tmp_5a14_28))) + + ((M31_32) * (conv_tmp_5a14_29))) + - ((M31_4) * (conv_tmp_5a14_50))); + let conv_mod_tmp_5a14_85 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_23))) + + ((M31_1) * (conv_tmp_5a14_29))) + + ((M31_32) * (conv_tmp_5a14_30))) + - ((M31_4) * (conv_tmp_5a14_51))); + let conv_mod_tmp_5a14_86 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_24))) + + ((M31_1) * (conv_tmp_5a14_30))) + + ((M31_32) * (conv_tmp_5a14_31))) + - ((M31_4) * (conv_tmp_5a14_52))); + let conv_mod_tmp_5a14_87 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_25))) + + ((M31_1) * (conv_tmp_5a14_31))) + + ((M31_32) * (conv_tmp_5a14_32))) + - ((M31_4) * (conv_tmp_5a14_53))); + let conv_mod_tmp_5a14_88 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_26))) + + ((M31_1) * (conv_tmp_5a14_32))) + + ((M31_32) * (conv_tmp_5a14_33))) + - ((M31_4) * (conv_tmp_5a14_54))); + let conv_mod_tmp_5a14_89 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_27))) + + ((M31_1) * (conv_tmp_5a14_33))) + + ((M31_32) * (conv_tmp_5a14_34))) + - ((M31_4) * (conv_tmp_5a14_55))); + let conv_mod_tmp_5a14_90 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_28))) + + ((M31_1) * (conv_tmp_5a14_34))) + + ((M31_32) * (conv_tmp_5a14_35))) + - ((M31_4) * (conv_tmp_5a14_56))); + let conv_mod_tmp_5a14_91 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_29))) + + ((M31_1) * (conv_tmp_5a14_35))) + + ((M31_32) * (conv_tmp_5a14_36))) + - ((M31_4) * (conv_tmp_5a14_57))); + let conv_mod_tmp_5a14_92 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_30))) + + ((M31_1) * (conv_tmp_5a14_36))) + + ((M31_32) * (conv_tmp_5a14_37))) + - ((M31_4) * (conv_tmp_5a14_58))); + let conv_mod_tmp_5a14_93 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_31))) + + ((M31_1) * (conv_tmp_5a14_37))) + - ((M31_4) * (conv_tmp_5a14_59))) + + ((M31_64) * (conv_tmp_5a14_66))); + let conv_mod_tmp_5a14_94 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_32))) + - ((M31_4) * (conv_tmp_5a14_60))) + + ((M31_2) * (conv_tmp_5a14_66))) + + ((M31_64) * (conv_tmp_5a14_67))); + let conv_mod_tmp_5a14_95 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_33))) + - ((M31_4) * (conv_tmp_5a14_61))) + + ((M31_2) * (conv_tmp_5a14_67))) + + ((M31_64) * (conv_tmp_5a14_68))); + let conv_mod_tmp_5a14_96 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_34))) + - ((M31_4) * (conv_tmp_5a14_62))) + + ((M31_2) * (conv_tmp_5a14_68))) + + ((M31_64) * (conv_tmp_5a14_69))); + let conv_mod_tmp_5a14_97 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_35))) + - ((M31_4) * (conv_tmp_5a14_63))) + + ((M31_2) * (conv_tmp_5a14_69))) + + ((M31_64) * (conv_tmp_5a14_70))); + let conv_mod_tmp_5a14_98 = (((((M31_0) + ((M31_2) * (conv_tmp_5a14_36))) + - ((M31_4) * (conv_tmp_5a14_64))) + + ((M31_2) * (conv_tmp_5a14_70))) + + ((M31_64) * (conv_tmp_5a14_71))); + let conv_mod_tmp_5a14_99 = ((((M31_0) + ((M31_2) * (conv_tmp_5a14_37))) + - ((M31_4) * (conv_tmp_5a14_65))) + + ((M31_2) * (conv_tmp_5a14_71))); + let k_mod_2_18_biased_tmp_5a14_100 = + ((((PackedUInt32::from_m31(((conv_mod_tmp_5a14_72) + (M31_134217728)))) + + (((PackedUInt32::from_m31(((conv_mod_tmp_5a14_73) + (M31_134217728)))) & (UInt32_511)) << (UInt32_9))) + (UInt32_65536)) & (UInt32_262143)); - let k_col98 = ((k_mod_2_18_biased_tmp_1499.low().as_m31()) - + (((k_mod_2_18_biased_tmp_1499.high().as_m31()) - (M31_1)) * (M31_65536))); + let k_col98 = ((k_mod_2_18_biased_tmp_5a14_100.low().as_m31()) + + (((k_mod_2_18_biased_tmp_5a14_100.high().as_m31()) - (M31_1)) * (M31_65536))); trace[98].data[row_index] = k_col98; sub_components_inputs.range_check_19_inputs[0] @@ -1690,154 +1694,154 @@ pub fn write_trace_simd( lookup_data.rangecheck_19[0].push([((k_col98) + (M31_262144))]); let carry_0_col99 = - ((((conv_mod_tmp_1471) - ((M31_1) * (k_col98))) + (M31_0)) * (M31_4194304)); + ((((conv_mod_tmp_5a14_72) - ((M31_1) * (k_col98))) + (M31_0)) * (M31_4194304)); trace[99].data[row_index] = carry_0_col99; sub_components_inputs.range_check_19_inputs[1] .extend([((carry_0_col99) + (M31_131072))].unpack()); lookup_data.rangecheck_19[1].push([((carry_0_col99) + (M31_131072))]); - let carry_1_col100 = (((conv_mod_tmp_1472) + (carry_0_col99)) * (M31_4194304)); + let carry_1_col100 = (((conv_mod_tmp_5a14_73) + (carry_0_col99)) * (M31_4194304)); trace[100].data[row_index] = carry_1_col100; sub_components_inputs.range_check_19_inputs[2] .extend([((carry_1_col100) + (M31_131072))].unpack()); lookup_data.rangecheck_19[2].push([((carry_1_col100) + (M31_131072))]); - let carry_2_col101 = (((conv_mod_tmp_1473) + (carry_1_col100)) * (M31_4194304)); + let carry_2_col101 = (((conv_mod_tmp_5a14_74) + (carry_1_col100)) * (M31_4194304)); trace[101].data[row_index] = carry_2_col101; sub_components_inputs.range_check_19_inputs[3] .extend([((carry_2_col101) + (M31_131072))].unpack()); lookup_data.rangecheck_19[3].push([((carry_2_col101) + (M31_131072))]); - let carry_3_col102 = (((conv_mod_tmp_1474) + (carry_2_col101)) * (M31_4194304)); + let carry_3_col102 = (((conv_mod_tmp_5a14_75) + (carry_2_col101)) * (M31_4194304)); trace[102].data[row_index] = carry_3_col102; sub_components_inputs.range_check_19_inputs[4] .extend([((carry_3_col102) + (M31_131072))].unpack()); lookup_data.rangecheck_19[4].push([((carry_3_col102) + (M31_131072))]); - let carry_4_col103 = (((conv_mod_tmp_1475) + (carry_3_col102)) * (M31_4194304)); + let carry_4_col103 = (((conv_mod_tmp_5a14_76) + (carry_3_col102)) * (M31_4194304)); trace[103].data[row_index] = carry_4_col103; sub_components_inputs.range_check_19_inputs[5] .extend([((carry_4_col103) + (M31_131072))].unpack()); lookup_data.rangecheck_19[5].push([((carry_4_col103) + (M31_131072))]); - let carry_5_col104 = (((conv_mod_tmp_1476) + (carry_4_col103)) * (M31_4194304)); + let carry_5_col104 = (((conv_mod_tmp_5a14_77) + (carry_4_col103)) * (M31_4194304)); trace[104].data[row_index] = carry_5_col104; sub_components_inputs.range_check_19_inputs[6] .extend([((carry_5_col104) + (M31_131072))].unpack()); lookup_data.rangecheck_19[6].push([((carry_5_col104) + (M31_131072))]); - let carry_6_col105 = (((conv_mod_tmp_1477) + (carry_5_col104)) * (M31_4194304)); + let carry_6_col105 = (((conv_mod_tmp_5a14_78) + (carry_5_col104)) * (M31_4194304)); trace[105].data[row_index] = carry_6_col105; sub_components_inputs.range_check_19_inputs[7] .extend([((carry_6_col105) + (M31_131072))].unpack()); lookup_data.rangecheck_19[7].push([((carry_6_col105) + (M31_131072))]); - let carry_7_col106 = (((conv_mod_tmp_1478) + (carry_6_col105)) * (M31_4194304)); + let carry_7_col106 = (((conv_mod_tmp_5a14_79) + (carry_6_col105)) * (M31_4194304)); trace[106].data[row_index] = carry_7_col106; sub_components_inputs.range_check_19_inputs[8] .extend([((carry_7_col106) + (M31_131072))].unpack()); lookup_data.rangecheck_19[8].push([((carry_7_col106) + (M31_131072))]); - let carry_8_col107 = (((conv_mod_tmp_1479) + (carry_7_col106)) * (M31_4194304)); + let carry_8_col107 = (((conv_mod_tmp_5a14_80) + (carry_7_col106)) * (M31_4194304)); trace[107].data[row_index] = carry_8_col107; sub_components_inputs.range_check_19_inputs[9] .extend([((carry_8_col107) + (M31_131072))].unpack()); lookup_data.rangecheck_19[9].push([((carry_8_col107) + (M31_131072))]); - let carry_9_col108 = (((conv_mod_tmp_1480) + (carry_8_col107)) * (M31_4194304)); + let carry_9_col108 = (((conv_mod_tmp_5a14_81) + (carry_8_col107)) * (M31_4194304)); trace[108].data[row_index] = carry_9_col108; sub_components_inputs.range_check_19_inputs[10] .extend([((carry_9_col108) + (M31_131072))].unpack()); lookup_data.rangecheck_19[10].push([((carry_9_col108) + (M31_131072))]); - let carry_10_col109 = (((conv_mod_tmp_1481) + (carry_9_col108)) * (M31_4194304)); + let carry_10_col109 = (((conv_mod_tmp_5a14_82) + (carry_9_col108)) * (M31_4194304)); trace[109].data[row_index] = carry_10_col109; sub_components_inputs.range_check_19_inputs[11] .extend([((carry_10_col109) + (M31_131072))].unpack()); lookup_data.rangecheck_19[11].push([((carry_10_col109) + (M31_131072))]); - let carry_11_col110 = (((conv_mod_tmp_1482) + (carry_10_col109)) * (M31_4194304)); + let carry_11_col110 = (((conv_mod_tmp_5a14_83) + (carry_10_col109)) * (M31_4194304)); trace[110].data[row_index] = carry_11_col110; sub_components_inputs.range_check_19_inputs[12] .extend([((carry_11_col110) + (M31_131072))].unpack()); lookup_data.rangecheck_19[12].push([((carry_11_col110) + (M31_131072))]); - let carry_12_col111 = (((conv_mod_tmp_1483) + (carry_11_col110)) * (M31_4194304)); + let carry_12_col111 = (((conv_mod_tmp_5a14_84) + (carry_11_col110)) * (M31_4194304)); trace[111].data[row_index] = carry_12_col111; sub_components_inputs.range_check_19_inputs[13] .extend([((carry_12_col111) + (M31_131072))].unpack()); lookup_data.rangecheck_19[13].push([((carry_12_col111) + (M31_131072))]); - let carry_13_col112 = (((conv_mod_tmp_1484) + (carry_12_col111)) * (M31_4194304)); + let carry_13_col112 = (((conv_mod_tmp_5a14_85) + (carry_12_col111)) * (M31_4194304)); trace[112].data[row_index] = carry_13_col112; sub_components_inputs.range_check_19_inputs[14] .extend([((carry_13_col112) + (M31_131072))].unpack()); lookup_data.rangecheck_19[14].push([((carry_13_col112) + (M31_131072))]); - let carry_14_col113 = (((conv_mod_tmp_1485) + (carry_13_col112)) * (M31_4194304)); + let carry_14_col113 = (((conv_mod_tmp_5a14_86) + (carry_13_col112)) * (M31_4194304)); trace[113].data[row_index] = carry_14_col113; sub_components_inputs.range_check_19_inputs[15] .extend([((carry_14_col113) + (M31_131072))].unpack()); lookup_data.rangecheck_19[15].push([((carry_14_col113) + (M31_131072))]); - let carry_15_col114 = (((conv_mod_tmp_1486) + (carry_14_col113)) * (M31_4194304)); + let carry_15_col114 = (((conv_mod_tmp_5a14_87) + (carry_14_col113)) * (M31_4194304)); trace[114].data[row_index] = carry_15_col114; sub_components_inputs.range_check_19_inputs[16] .extend([((carry_15_col114) + (M31_131072))].unpack()); lookup_data.rangecheck_19[16].push([((carry_15_col114) + (M31_131072))]); - let carry_16_col115 = (((conv_mod_tmp_1487) + (carry_15_col114)) * (M31_4194304)); + let carry_16_col115 = (((conv_mod_tmp_5a14_88) + (carry_15_col114)) * (M31_4194304)); trace[115].data[row_index] = carry_16_col115; sub_components_inputs.range_check_19_inputs[17] .extend([((carry_16_col115) + (M31_131072))].unpack()); lookup_data.rangecheck_19[17].push([((carry_16_col115) + (M31_131072))]); - let carry_17_col116 = (((conv_mod_tmp_1488) + (carry_16_col115)) * (M31_4194304)); + let carry_17_col116 = (((conv_mod_tmp_5a14_89) + (carry_16_col115)) * (M31_4194304)); trace[116].data[row_index] = carry_17_col116; sub_components_inputs.range_check_19_inputs[18] .extend([((carry_17_col116) + (M31_131072))].unpack()); lookup_data.rangecheck_19[18].push([((carry_17_col116) + (M31_131072))]); - let carry_18_col117 = (((conv_mod_tmp_1489) + (carry_17_col116)) * (M31_4194304)); + let carry_18_col117 = (((conv_mod_tmp_5a14_90) + (carry_17_col116)) * (M31_4194304)); trace[117].data[row_index] = carry_18_col117; sub_components_inputs.range_check_19_inputs[19] .extend([((carry_18_col117) + (M31_131072))].unpack()); lookup_data.rangecheck_19[19].push([((carry_18_col117) + (M31_131072))]); - let carry_19_col118 = (((conv_mod_tmp_1490) + (carry_18_col117)) * (M31_4194304)); + let carry_19_col118 = (((conv_mod_tmp_5a14_91) + (carry_18_col117)) * (M31_4194304)); trace[118].data[row_index] = carry_19_col118; sub_components_inputs.range_check_19_inputs[20] .extend([((carry_19_col118) + (M31_131072))].unpack()); lookup_data.rangecheck_19[20].push([((carry_19_col118) + (M31_131072))]); - let carry_20_col119 = (((conv_mod_tmp_1491) + (carry_19_col118)) * (M31_4194304)); + let carry_20_col119 = (((conv_mod_tmp_5a14_92) + (carry_19_col118)) * (M31_4194304)); trace[119].data[row_index] = carry_20_col119; sub_components_inputs.range_check_19_inputs[21] .extend([((carry_20_col119) + (M31_131072))].unpack()); lookup_data.rangecheck_19[21].push([((carry_20_col119) + (M31_131072))]); - let carry_21_col120 = ((((conv_mod_tmp_1492) - ((M31_136) * (k_col98))) + let carry_21_col120 = ((((conv_mod_tmp_5a14_93) - ((M31_136) * (k_col98))) + (carry_20_col119)) * (M31_4194304)); trace[120].data[row_index] = carry_21_col120; @@ -1846,35 +1850,35 @@ pub fn write_trace_simd( .extend([((carry_21_col120) + (M31_131072))].unpack()); lookup_data.rangecheck_19[22].push([((carry_21_col120) + (M31_131072))]); - let carry_22_col121 = (((conv_mod_tmp_1493) + (carry_21_col120)) * (M31_4194304)); + let carry_22_col121 = (((conv_mod_tmp_5a14_94) + (carry_21_col120)) * (M31_4194304)); trace[121].data[row_index] = carry_22_col121; sub_components_inputs.range_check_19_inputs[23] .extend([((carry_22_col121) + (M31_131072))].unpack()); lookup_data.rangecheck_19[23].push([((carry_22_col121) + (M31_131072))]); - let carry_23_col122 = (((conv_mod_tmp_1494) + (carry_22_col121)) * (M31_4194304)); + let carry_23_col122 = (((conv_mod_tmp_5a14_95) + (carry_22_col121)) * (M31_4194304)); trace[122].data[row_index] = carry_23_col122; sub_components_inputs.range_check_19_inputs[24] .extend([((carry_23_col122) + (M31_131072))].unpack()); lookup_data.rangecheck_19[24].push([((carry_23_col122) + (M31_131072))]); - let carry_24_col123 = (((conv_mod_tmp_1495) + (carry_23_col122)) * (M31_4194304)); + let carry_24_col123 = (((conv_mod_tmp_5a14_96) + (carry_23_col122)) * (M31_4194304)); trace[123].data[row_index] = carry_24_col123; sub_components_inputs.range_check_19_inputs[25] .extend([((carry_24_col123) + (M31_131072))].unpack()); lookup_data.rangecheck_19[25].push([((carry_24_col123) + (M31_131072))]); - let carry_25_col124 = (((conv_mod_tmp_1496) + (carry_24_col123)) * (M31_4194304)); + let carry_25_col124 = (((conv_mod_tmp_5a14_97) + (carry_24_col123)) * (M31_4194304)); trace[124].data[row_index] = carry_25_col124; sub_components_inputs.range_check_19_inputs[26] .extend([((carry_25_col124) + (M31_131072))].unpack()); lookup_data.rangecheck_19[26].push([((carry_25_col124) + (M31_131072))]); - let carry_26_col125 = (((conv_mod_tmp_1497) + (carry_25_col124)) * (M31_4194304)); + let carry_26_col125 = (((conv_mod_tmp_5a14_98) + (carry_25_col124)) * (M31_4194304)); trace[125].data[row_index] = carry_26_col125; sub_components_inputs.range_check_19_inputs[27] diff --git a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/component.rs b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/component.rs index d1ef43e4..71647af4 100644 --- a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/component.rs @@ -214,9 +214,9 @@ impl FrameworkEval for Eval { let carry_25_col121 = eval.next_trace_mask(); let carry_26_col122 = eval.next_trace_mask(); - // decode_instruction_cea21b812a0ef1a0. + // DecodeInstruction_cea21b812a0ef1a0. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -240,11 +240,11 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -253,9 +253,9 @@ impl FrameworkEval for Eval { + (offset0_col3.clone() - M31_32768.clone())), dst_id_col8.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -289,11 +289,11 @@ impl FrameworkEval for Eval { dst_limb_26_col35.clone(), dst_limb_27_col36.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ @@ -302,9 +302,9 @@ impl FrameworkEval for Eval { + (offset1_col4.clone() - M31_32768.clone())), op0_id_col37.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -338,20 +338,20 @@ impl FrameworkEval for Eval { op0_limb_26_col64.clone(), op0_limb_27_col65.clone(), ], - )]); + )); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_pc_col0.clone() + M31_1.clone()), op1_id_col66.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -385,38 +385,38 @@ impl FrameworkEval for Eval { op1_limb_26_col93.clone(), op1_limb_27_col94.clone(), ], - )]); + )); - // verify_mul252. + // VerifyMul252. - let conv_tmp_1543 = ((M31_0.clone() - dst_limb_0_col9.clone()) + let conv_tmp_31b3_14 = ((M31_0.clone() - dst_limb_0_col9.clone()) + (op0_limb_0_col38.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1544 = (((M31_0.clone() - dst_limb_1_col10.clone()) + let conv_tmp_31b3_15 = (((M31_0.clone() - dst_limb_1_col10.clone()) + (op0_limb_0_col38.clone() * op1_limb_1_col68.clone())) + (op0_limb_1_col39.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1545 = ((((M31_0.clone() - dst_limb_2_col11.clone()) + let conv_tmp_31b3_16 = ((((M31_0.clone() - dst_limb_2_col11.clone()) + (op0_limb_0_col38.clone() * op1_limb_2_col69.clone())) + (op0_limb_1_col39.clone() * op1_limb_1_col68.clone())) + (op0_limb_2_col40.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1546 = (((((M31_0.clone() - dst_limb_3_col12.clone()) + let conv_tmp_31b3_17 = (((((M31_0.clone() - dst_limb_3_col12.clone()) + (op0_limb_0_col38.clone() * op1_limb_3_col70.clone())) + (op0_limb_1_col39.clone() * op1_limb_2_col69.clone())) + (op0_limb_2_col40.clone() * op1_limb_1_col68.clone())) + (op0_limb_3_col41.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1547 = ((((((M31_0.clone() - dst_limb_4_col13.clone()) + let conv_tmp_31b3_18 = ((((((M31_0.clone() - dst_limb_4_col13.clone()) + (op0_limb_0_col38.clone() * op1_limb_4_col71.clone())) + (op0_limb_1_col39.clone() * op1_limb_3_col70.clone())) + (op0_limb_2_col40.clone() * op1_limb_2_col69.clone())) + (op0_limb_3_col41.clone() * op1_limb_1_col68.clone())) + (op0_limb_4_col42.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1548 = (((((((M31_0.clone() - dst_limb_5_col14.clone()) + let conv_tmp_31b3_19 = (((((((M31_0.clone() - dst_limb_5_col14.clone()) + (op0_limb_0_col38.clone() * op1_limb_5_col72.clone())) + (op0_limb_1_col39.clone() * op1_limb_4_col71.clone())) + (op0_limb_2_col40.clone() * op1_limb_3_col70.clone())) + (op0_limb_3_col41.clone() * op1_limb_2_col69.clone())) + (op0_limb_4_col42.clone() * op1_limb_1_col68.clone())) + (op0_limb_5_col43.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1549 = ((((((((M31_0.clone() - dst_limb_6_col15.clone()) + let conv_tmp_31b3_20 = ((((((((M31_0.clone() - dst_limb_6_col15.clone()) + (op0_limb_0_col38.clone() * op1_limb_6_col73.clone())) + (op0_limb_1_col39.clone() * op1_limb_5_col72.clone())) + (op0_limb_2_col40.clone() * op1_limb_4_col71.clone())) @@ -424,7 +424,7 @@ impl FrameworkEval for Eval { + (op0_limb_4_col42.clone() * op1_limb_2_col69.clone())) + (op0_limb_5_col43.clone() * op1_limb_1_col68.clone())) + (op0_limb_6_col44.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1550 = (((((((((M31_0.clone() - dst_limb_7_col16.clone()) + let conv_tmp_31b3_21 = (((((((((M31_0.clone() - dst_limb_7_col16.clone()) + (op0_limb_0_col38.clone() * op1_limb_7_col74.clone())) + (op0_limb_1_col39.clone() * op1_limb_6_col73.clone())) + (op0_limb_2_col40.clone() * op1_limb_5_col72.clone())) @@ -433,7 +433,7 @@ impl FrameworkEval for Eval { + (op0_limb_5_col43.clone() * op1_limb_2_col69.clone())) + (op0_limb_6_col44.clone() * op1_limb_1_col68.clone())) + (op0_limb_7_col45.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1551 = ((((((((((M31_0.clone() - dst_limb_8_col17.clone()) + let conv_tmp_31b3_22 = ((((((((((M31_0.clone() - dst_limb_8_col17.clone()) + (op0_limb_0_col38.clone() * op1_limb_8_col75.clone())) + (op0_limb_1_col39.clone() * op1_limb_7_col74.clone())) + (op0_limb_2_col40.clone() * op1_limb_6_col73.clone())) @@ -443,7 +443,7 @@ impl FrameworkEval for Eval { + (op0_limb_6_col44.clone() * op1_limb_2_col69.clone())) + (op0_limb_7_col45.clone() * op1_limb_1_col68.clone())) + (op0_limb_8_col46.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1552 = (((((((((((M31_0.clone() - dst_limb_9_col18.clone()) + let conv_tmp_31b3_23 = (((((((((((M31_0.clone() - dst_limb_9_col18.clone()) + (op0_limb_0_col38.clone() * op1_limb_9_col76.clone())) + (op0_limb_1_col39.clone() * op1_limb_8_col75.clone())) + (op0_limb_2_col40.clone() * op1_limb_7_col74.clone())) @@ -454,7 +454,7 @@ impl FrameworkEval for Eval { + (op0_limb_7_col45.clone() * op1_limb_2_col69.clone())) + (op0_limb_8_col46.clone() * op1_limb_1_col68.clone())) + (op0_limb_9_col47.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1553 = ((((((((((((M31_0.clone() - dst_limb_10_col19.clone()) + let conv_tmp_31b3_24 = ((((((((((((M31_0.clone() - dst_limb_10_col19.clone()) + (op0_limb_0_col38.clone() * op1_limb_10_col77.clone())) + (op0_limb_1_col39.clone() * op1_limb_9_col76.clone())) + (op0_limb_2_col40.clone() * op1_limb_8_col75.clone())) @@ -466,7 +466,7 @@ impl FrameworkEval for Eval { + (op0_limb_8_col46.clone() * op1_limb_2_col69.clone())) + (op0_limb_9_col47.clone() * op1_limb_1_col68.clone())) + (op0_limb_10_col48.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1554 = (((((((((((((M31_0.clone() - dst_limb_11_col20.clone()) + let conv_tmp_31b3_25 = (((((((((((((M31_0.clone() - dst_limb_11_col20.clone()) + (op0_limb_0_col38.clone() * op1_limb_11_col78.clone())) + (op0_limb_1_col39.clone() * op1_limb_10_col77.clone())) + (op0_limb_2_col40.clone() * op1_limb_9_col76.clone())) @@ -479,7 +479,8 @@ impl FrameworkEval for Eval { + (op0_limb_9_col47.clone() * op1_limb_2_col69.clone())) + (op0_limb_10_col48.clone() * op1_limb_1_col68.clone())) + (op0_limb_11_col49.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1555 = ((((((((((((((M31_0.clone() - dst_limb_12_col21.clone()) + let conv_tmp_31b3_26 = ((((((((((((((M31_0.clone() + - dst_limb_12_col21.clone()) + (op0_limb_0_col38.clone() * op1_limb_12_col79.clone())) + (op0_limb_1_col39.clone() * op1_limb_11_col78.clone())) + (op0_limb_2_col40.clone() * op1_limb_10_col77.clone())) @@ -493,7 +494,8 @@ impl FrameworkEval for Eval { + (op0_limb_10_col48.clone() * op1_limb_2_col69.clone())) + (op0_limb_11_col49.clone() * op1_limb_1_col68.clone())) + (op0_limb_12_col50.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1556 = (((((((((((((((M31_0.clone() - dst_limb_13_col22.clone()) + let conv_tmp_31b3_27 = (((((((((((((((M31_0.clone() + - dst_limb_13_col22.clone()) + (op0_limb_0_col38.clone() * op1_limb_13_col80.clone())) + (op0_limb_1_col39.clone() * op1_limb_12_col79.clone())) + (op0_limb_2_col40.clone() * op1_limb_11_col78.clone())) @@ -508,7 +510,7 @@ impl FrameworkEval for Eval { + (op0_limb_11_col49.clone() * op1_limb_2_col69.clone())) + (op0_limb_12_col50.clone() * op1_limb_1_col68.clone())) + (op0_limb_13_col51.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1557 = ((((((((((((((((M31_0.clone() + let conv_tmp_31b3_28 = ((((((((((((((((M31_0.clone() - dst_limb_14_col23.clone()) + (op0_limb_0_col38.clone() * op1_limb_14_col81.clone())) + (op0_limb_1_col39.clone() * op1_limb_13_col80.clone())) @@ -525,7 +527,7 @@ impl FrameworkEval for Eval { + (op0_limb_12_col50.clone() * op1_limb_2_col69.clone())) + (op0_limb_13_col51.clone() * op1_limb_1_col68.clone())) + (op0_limb_14_col52.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1558 = (((((((((((((((((M31_0.clone() + let conv_tmp_31b3_29 = (((((((((((((((((M31_0.clone() - dst_limb_15_col24.clone()) + (op0_limb_0_col38.clone() * op1_limb_15_col82.clone())) + (op0_limb_1_col39.clone() * op1_limb_14_col81.clone())) @@ -543,7 +545,7 @@ impl FrameworkEval for Eval { + (op0_limb_13_col51.clone() * op1_limb_2_col69.clone())) + (op0_limb_14_col52.clone() * op1_limb_1_col68.clone())) + (op0_limb_15_col53.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1559 = ((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_30 = ((((((((((((((((((M31_0.clone() - dst_limb_16_col25.clone()) + (op0_limb_0_col38.clone() * op1_limb_16_col83.clone())) + (op0_limb_1_col39.clone() * op1_limb_15_col82.clone())) @@ -562,7 +564,7 @@ impl FrameworkEval for Eval { + (op0_limb_14_col52.clone() * op1_limb_2_col69.clone())) + (op0_limb_15_col53.clone() * op1_limb_1_col68.clone())) + (op0_limb_16_col54.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1560 = (((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_31 = (((((((((((((((((((M31_0.clone() - dst_limb_17_col26.clone()) + (op0_limb_0_col38.clone() * op1_limb_17_col84.clone())) + (op0_limb_1_col39.clone() * op1_limb_16_col83.clone())) @@ -582,7 +584,7 @@ impl FrameworkEval for Eval { + (op0_limb_15_col53.clone() * op1_limb_2_col69.clone())) + (op0_limb_16_col54.clone() * op1_limb_1_col68.clone())) + (op0_limb_17_col55.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1561 = ((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_32 = ((((((((((((((((((((M31_0.clone() - dst_limb_18_col27.clone()) + (op0_limb_0_col38.clone() * op1_limb_18_col85.clone())) + (op0_limb_1_col39.clone() * op1_limb_17_col84.clone())) @@ -603,7 +605,7 @@ impl FrameworkEval for Eval { + (op0_limb_16_col54.clone() * op1_limb_2_col69.clone())) + (op0_limb_17_col55.clone() * op1_limb_1_col68.clone())) + (op0_limb_18_col56.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1562 = (((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_33 = (((((((((((((((((((((M31_0.clone() - dst_limb_19_col28.clone()) + (op0_limb_0_col38.clone() * op1_limb_19_col86.clone())) + (op0_limb_1_col39.clone() * op1_limb_18_col85.clone())) @@ -625,7 +627,7 @@ impl FrameworkEval for Eval { + (op0_limb_17_col55.clone() * op1_limb_2_col69.clone())) + (op0_limb_18_col56.clone() * op1_limb_1_col68.clone())) + (op0_limb_19_col57.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1563 = ((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_34 = ((((((((((((((((((((((M31_0.clone() - dst_limb_20_col29.clone()) + (op0_limb_0_col38.clone() * op1_limb_20_col87.clone())) + (op0_limb_1_col39.clone() * op1_limb_19_col86.clone())) @@ -648,7 +650,7 @@ impl FrameworkEval for Eval { + (op0_limb_18_col56.clone() * op1_limb_2_col69.clone())) + (op0_limb_19_col57.clone() * op1_limb_1_col68.clone())) + (op0_limb_20_col58.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1564 = (((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_35 = (((((((((((((((((((((((M31_0.clone() - dst_limb_21_col30.clone()) + (op0_limb_0_col38.clone() * op1_limb_21_col88.clone())) + (op0_limb_1_col39.clone() * op1_limb_20_col87.clone())) @@ -672,7 +674,7 @@ impl FrameworkEval for Eval { + (op0_limb_19_col57.clone() * op1_limb_2_col69.clone())) + (op0_limb_20_col58.clone() * op1_limb_1_col68.clone())) + (op0_limb_21_col59.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1565 = ((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_36 = ((((((((((((((((((((((((M31_0.clone() - dst_limb_22_col31.clone()) + (op0_limb_0_col38.clone() * op1_limb_22_col89.clone())) + (op0_limb_1_col39.clone() * op1_limb_21_col88.clone())) @@ -697,7 +699,7 @@ impl FrameworkEval for Eval { + (op0_limb_20_col58.clone() * op1_limb_2_col69.clone())) + (op0_limb_21_col59.clone() * op1_limb_1_col68.clone())) + (op0_limb_22_col60.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1566 = (((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_37 = (((((((((((((((((((((((((M31_0.clone() - dst_limb_23_col32.clone()) + (op0_limb_0_col38.clone() * op1_limb_23_col90.clone())) + (op0_limb_1_col39.clone() * op1_limb_22_col89.clone())) @@ -723,7 +725,7 @@ impl FrameworkEval for Eval { + (op0_limb_21_col59.clone() * op1_limb_2_col69.clone())) + (op0_limb_22_col60.clone() * op1_limb_1_col68.clone())) + (op0_limb_23_col61.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1567 = ((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_38 = ((((((((((((((((((((((((((M31_0.clone() - dst_limb_24_col33.clone()) + (op0_limb_0_col38.clone() * op1_limb_24_col91.clone())) + (op0_limb_1_col39.clone() * op1_limb_23_col90.clone())) @@ -750,7 +752,7 @@ impl FrameworkEval for Eval { + (op0_limb_22_col60.clone() * op1_limb_2_col69.clone())) + (op0_limb_23_col61.clone() * op1_limb_1_col68.clone())) + (op0_limb_24_col62.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1568 = (((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_39 = (((((((((((((((((((((((((((M31_0.clone() - dst_limb_25_col34.clone()) + (op0_limb_0_col38.clone() * op1_limb_25_col92.clone())) + (op0_limb_1_col39.clone() * op1_limb_24_col91.clone())) @@ -778,7 +780,8 @@ impl FrameworkEval for Eval { + (op0_limb_23_col61.clone() * op1_limb_2_col69.clone())) + (op0_limb_24_col62.clone() * op1_limb_1_col68.clone())) + (op0_limb_25_col63.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1569 = ((((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_40 = ((((((((((((((((((((((((((((M31_0 + .clone() - dst_limb_26_col35.clone()) + (op0_limb_0_col38.clone() * op1_limb_26_col93.clone())) + (op0_limb_1_col39.clone() * op1_limb_25_col92.clone())) @@ -807,7 +810,8 @@ impl FrameworkEval for Eval { + (op0_limb_24_col62.clone() * op1_limb_2_col69.clone())) + (op0_limb_25_col63.clone() * op1_limb_1_col68.clone())) + (op0_limb_26_col64.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1570 = (((((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_41 = (((((((((((((((((((((((((((((M31_0 + .clone() - dst_limb_27_col36.clone()) + (op0_limb_0_col38.clone() * op1_limb_27_col94.clone())) + (op0_limb_1_col39.clone() * op1_limb_26_col93.clone())) @@ -837,7 +841,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_2_col69.clone())) + (op0_limb_26_col64.clone() * op1_limb_1_col68.clone())) + (op0_limb_27_col65.clone() * op1_limb_0_col67.clone())); - let conv_tmp_1571 = (((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_42 = (((((((((((((((((((((((((((M31_0.clone() + (op0_limb_1_col39.clone() * op1_limb_27_col94.clone())) + (op0_limb_2_col40.clone() * op1_limb_26_col93.clone())) + (op0_limb_3_col41.clone() * op1_limb_25_col92.clone())) @@ -865,7 +869,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_3_col70.clone())) + (op0_limb_26_col64.clone() * op1_limb_2_col69.clone())) + (op0_limb_27_col65.clone() * op1_limb_1_col68.clone())); - let conv_tmp_1572 = ((((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_43 = ((((((((((((((((((((((((((M31_0.clone() + (op0_limb_2_col40.clone() * op1_limb_27_col94.clone())) + (op0_limb_3_col41.clone() * op1_limb_26_col93.clone())) + (op0_limb_4_col42.clone() * op1_limb_25_col92.clone())) @@ -892,7 +896,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_4_col71.clone())) + (op0_limb_26_col64.clone() * op1_limb_3_col70.clone())) + (op0_limb_27_col65.clone() * op1_limb_2_col69.clone())); - let conv_tmp_1573 = (((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_44 = (((((((((((((((((((((((((M31_0.clone() + (op0_limb_3_col41.clone() * op1_limb_27_col94.clone())) + (op0_limb_4_col42.clone() * op1_limb_26_col93.clone())) + (op0_limb_5_col43.clone() * op1_limb_25_col92.clone())) @@ -918,7 +922,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_5_col72.clone())) + (op0_limb_26_col64.clone() * op1_limb_4_col71.clone())) + (op0_limb_27_col65.clone() * op1_limb_3_col70.clone())); - let conv_tmp_1574 = ((((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_45 = ((((((((((((((((((((((((M31_0.clone() + (op0_limb_4_col42.clone() * op1_limb_27_col94.clone())) + (op0_limb_5_col43.clone() * op1_limb_26_col93.clone())) + (op0_limb_6_col44.clone() * op1_limb_25_col92.clone())) @@ -943,7 +947,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_6_col73.clone())) + (op0_limb_26_col64.clone() * op1_limb_5_col72.clone())) + (op0_limb_27_col65.clone() * op1_limb_4_col71.clone())); - let conv_tmp_1575 = (((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_46 = (((((((((((((((((((((((M31_0.clone() + (op0_limb_5_col43.clone() * op1_limb_27_col94.clone())) + (op0_limb_6_col44.clone() * op1_limb_26_col93.clone())) + (op0_limb_7_col45.clone() * op1_limb_25_col92.clone())) @@ -967,7 +971,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_7_col74.clone())) + (op0_limb_26_col64.clone() * op1_limb_6_col73.clone())) + (op0_limb_27_col65.clone() * op1_limb_5_col72.clone())); - let conv_tmp_1576 = ((((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_47 = ((((((((((((((((((((((M31_0.clone() + (op0_limb_6_col44.clone() * op1_limb_27_col94.clone())) + (op0_limb_7_col45.clone() * op1_limb_26_col93.clone())) + (op0_limb_8_col46.clone() * op1_limb_25_col92.clone())) @@ -990,7 +994,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_8_col75.clone())) + (op0_limb_26_col64.clone() * op1_limb_7_col74.clone())) + (op0_limb_27_col65.clone() * op1_limb_6_col73.clone())); - let conv_tmp_1577 = (((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_48 = (((((((((((((((((((((M31_0.clone() + (op0_limb_7_col45.clone() * op1_limb_27_col94.clone())) + (op0_limb_8_col46.clone() * op1_limb_26_col93.clone())) + (op0_limb_9_col47.clone() * op1_limb_25_col92.clone())) @@ -1012,7 +1016,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_9_col76.clone())) + (op0_limb_26_col64.clone() * op1_limb_8_col75.clone())) + (op0_limb_27_col65.clone() * op1_limb_7_col74.clone())); - let conv_tmp_1578 = ((((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_49 = ((((((((((((((((((((M31_0.clone() + (op0_limb_8_col46.clone() * op1_limb_27_col94.clone())) + (op0_limb_9_col47.clone() * op1_limb_26_col93.clone())) + (op0_limb_10_col48.clone() * op1_limb_25_col92.clone())) @@ -1033,7 +1037,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_10_col77.clone())) + (op0_limb_26_col64.clone() * op1_limb_9_col76.clone())) + (op0_limb_27_col65.clone() * op1_limb_8_col75.clone())); - let conv_tmp_1579 = (((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_50 = (((((((((((((((((((M31_0.clone() + (op0_limb_9_col47.clone() * op1_limb_27_col94.clone())) + (op0_limb_10_col48.clone() * op1_limb_26_col93.clone())) + (op0_limb_11_col49.clone() * op1_limb_25_col92.clone())) @@ -1053,7 +1057,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_11_col78.clone())) + (op0_limb_26_col64.clone() * op1_limb_10_col77.clone())) + (op0_limb_27_col65.clone() * op1_limb_9_col76.clone())); - let conv_tmp_1580 = ((((((((((((((((((M31_0.clone() + let conv_tmp_31b3_51 = ((((((((((((((((((M31_0.clone() + (op0_limb_10_col48.clone() * op1_limb_27_col94.clone())) + (op0_limb_11_col49.clone() * op1_limb_26_col93.clone())) + (op0_limb_12_col50.clone() * op1_limb_25_col92.clone())) @@ -1072,7 +1076,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_12_col79.clone())) + (op0_limb_26_col64.clone() * op1_limb_11_col78.clone())) + (op0_limb_27_col65.clone() * op1_limb_10_col77.clone())); - let conv_tmp_1581 = (((((((((((((((((M31_0.clone() + let conv_tmp_31b3_52 = (((((((((((((((((M31_0.clone() + (op0_limb_11_col49.clone() * op1_limb_27_col94.clone())) + (op0_limb_12_col50.clone() * op1_limb_26_col93.clone())) + (op0_limb_13_col51.clone() * op1_limb_25_col92.clone())) @@ -1090,7 +1094,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_13_col80.clone())) + (op0_limb_26_col64.clone() * op1_limb_12_col79.clone())) + (op0_limb_27_col65.clone() * op1_limb_11_col78.clone())); - let conv_tmp_1582 = ((((((((((((((((M31_0.clone() + let conv_tmp_31b3_53 = ((((((((((((((((M31_0.clone() + (op0_limb_12_col50.clone() * op1_limb_27_col94.clone())) + (op0_limb_13_col51.clone() * op1_limb_26_col93.clone())) + (op0_limb_14_col52.clone() * op1_limb_25_col92.clone())) @@ -1107,7 +1111,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_14_col81.clone())) + (op0_limb_26_col64.clone() * op1_limb_13_col80.clone())) + (op0_limb_27_col65.clone() * op1_limb_12_col79.clone())); - let conv_tmp_1583 = (((((((((((((((M31_0.clone() + let conv_tmp_31b3_54 = (((((((((((((((M31_0.clone() + (op0_limb_13_col51.clone() * op1_limb_27_col94.clone())) + (op0_limb_14_col52.clone() * op1_limb_26_col93.clone())) + (op0_limb_15_col53.clone() * op1_limb_25_col92.clone())) @@ -1123,7 +1127,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_15_col82.clone())) + (op0_limb_26_col64.clone() * op1_limb_14_col81.clone())) + (op0_limb_27_col65.clone() * op1_limb_13_col80.clone())); - let conv_tmp_1584 = ((((((((((((((M31_0.clone() + let conv_tmp_31b3_55 = ((((((((((((((M31_0.clone() + (op0_limb_14_col52.clone() * op1_limb_27_col94.clone())) + (op0_limb_15_col53.clone() * op1_limb_26_col93.clone())) + (op0_limb_16_col54.clone() * op1_limb_25_col92.clone())) @@ -1138,7 +1142,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_16_col83.clone())) + (op0_limb_26_col64.clone() * op1_limb_15_col82.clone())) + (op0_limb_27_col65.clone() * op1_limb_14_col81.clone())); - let conv_tmp_1585 = (((((((((((((M31_0.clone() + let conv_tmp_31b3_56 = (((((((((((((M31_0.clone() + (op0_limb_15_col53.clone() * op1_limb_27_col94.clone())) + (op0_limb_16_col54.clone() * op1_limb_26_col93.clone())) + (op0_limb_17_col55.clone() * op1_limb_25_col92.clone())) @@ -1152,7 +1156,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_17_col84.clone())) + (op0_limb_26_col64.clone() * op1_limb_16_col83.clone())) + (op0_limb_27_col65.clone() * op1_limb_15_col82.clone())); - let conv_tmp_1586 = ((((((((((((M31_0.clone() + let conv_tmp_31b3_57 = ((((((((((((M31_0.clone() + (op0_limb_16_col54.clone() * op1_limb_27_col94.clone())) + (op0_limb_17_col55.clone() * op1_limb_26_col93.clone())) + (op0_limb_18_col56.clone() * op1_limb_25_col92.clone())) @@ -1165,7 +1169,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_18_col85.clone())) + (op0_limb_26_col64.clone() * op1_limb_17_col84.clone())) + (op0_limb_27_col65.clone() * op1_limb_16_col83.clone())); - let conv_tmp_1587 = (((((((((((M31_0.clone() + let conv_tmp_31b3_58 = (((((((((((M31_0.clone() + (op0_limb_17_col55.clone() * op1_limb_27_col94.clone())) + (op0_limb_18_col56.clone() * op1_limb_26_col93.clone())) + (op0_limb_19_col57.clone() * op1_limb_25_col92.clone())) @@ -1177,7 +1181,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_19_col86.clone())) + (op0_limb_26_col64.clone() * op1_limb_18_col85.clone())) + (op0_limb_27_col65.clone() * op1_limb_17_col84.clone())); - let conv_tmp_1588 = ((((((((((M31_0.clone() + let conv_tmp_31b3_59 = ((((((((((M31_0.clone() + (op0_limb_18_col56.clone() * op1_limb_27_col94.clone())) + (op0_limb_19_col57.clone() * op1_limb_26_col93.clone())) + (op0_limb_20_col58.clone() * op1_limb_25_col92.clone())) @@ -1188,7 +1192,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_20_col87.clone())) + (op0_limb_26_col64.clone() * op1_limb_19_col86.clone())) + (op0_limb_27_col65.clone() * op1_limb_18_col85.clone())); - let conv_tmp_1589 = (((((((((M31_0.clone() + let conv_tmp_31b3_60 = (((((((((M31_0.clone() + (op0_limb_19_col57.clone() * op1_limb_27_col94.clone())) + (op0_limb_20_col58.clone() * op1_limb_26_col93.clone())) + (op0_limb_21_col59.clone() * op1_limb_25_col92.clone())) @@ -1198,7 +1202,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_21_col88.clone())) + (op0_limb_26_col64.clone() * op1_limb_20_col87.clone())) + (op0_limb_27_col65.clone() * op1_limb_19_col86.clone())); - let conv_tmp_1590 = ((((((((M31_0.clone() + let conv_tmp_31b3_61 = ((((((((M31_0.clone() + (op0_limb_20_col58.clone() * op1_limb_27_col94.clone())) + (op0_limb_21_col59.clone() * op1_limb_26_col93.clone())) + (op0_limb_22_col60.clone() * op1_limb_25_col92.clone())) @@ -1207,7 +1211,7 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_22_col89.clone())) + (op0_limb_26_col64.clone() * op1_limb_21_col88.clone())) + (op0_limb_27_col65.clone() * op1_limb_20_col87.clone())); - let conv_tmp_1591 = (((((((M31_0.clone() + let conv_tmp_31b3_62 = (((((((M31_0.clone() + (op0_limb_21_col59.clone() * op1_limb_27_col94.clone())) + (op0_limb_22_col60.clone() * op1_limb_26_col93.clone())) + (op0_limb_23_col61.clone() * op1_limb_25_col92.clone())) @@ -1215,426 +1219,452 @@ impl FrameworkEval for Eval { + (op0_limb_25_col63.clone() * op1_limb_23_col90.clone())) + (op0_limb_26_col64.clone() * op1_limb_22_col89.clone())) + (op0_limb_27_col65.clone() * op1_limb_21_col88.clone())); - let conv_tmp_1592 = ((((((M31_0.clone() + let conv_tmp_31b3_63 = ((((((M31_0.clone() + (op0_limb_22_col60.clone() * op1_limb_27_col94.clone())) + (op0_limb_23_col61.clone() * op1_limb_26_col93.clone())) + (op0_limb_24_col62.clone() * op1_limb_25_col92.clone())) + (op0_limb_25_col63.clone() * op1_limb_24_col91.clone())) + (op0_limb_26_col64.clone() * op1_limb_23_col90.clone())) + (op0_limb_27_col65.clone() * op1_limb_22_col89.clone())); - let conv_tmp_1593 = (((((M31_0.clone() + let conv_tmp_31b3_64 = (((((M31_0.clone() + (op0_limb_23_col61.clone() * op1_limb_27_col94.clone())) + (op0_limb_24_col62.clone() * op1_limb_26_col93.clone())) + (op0_limb_25_col63.clone() * op1_limb_25_col92.clone())) + (op0_limb_26_col64.clone() * op1_limb_24_col91.clone())) + (op0_limb_27_col65.clone() * op1_limb_23_col90.clone())); - let conv_tmp_1594 = ((((M31_0.clone() + let conv_tmp_31b3_65 = ((((M31_0.clone() + (op0_limb_24_col62.clone() * op1_limb_27_col94.clone())) + (op0_limb_25_col63.clone() * op1_limb_26_col93.clone())) + (op0_limb_26_col64.clone() * op1_limb_25_col92.clone())) + (op0_limb_27_col65.clone() * op1_limb_24_col91.clone())); - let conv_tmp_1595 = (((M31_0.clone() + let conv_tmp_31b3_66 = (((M31_0.clone() + (op0_limb_25_col63.clone() * op1_limb_27_col94.clone())) + (op0_limb_26_col64.clone() * op1_limb_26_col93.clone())) + (op0_limb_27_col65.clone() * op1_limb_25_col92.clone())); - let conv_tmp_1596 = ((M31_0.clone() + let conv_tmp_31b3_67 = ((M31_0.clone() + (op0_limb_26_col64.clone() * op1_limb_27_col94.clone())) + (op0_limb_27_col65.clone() * op1_limb_26_col93.clone())); - let conv_tmp_1597 = + let conv_tmp_31b3_68 = (M31_0.clone() + (op0_limb_27_col65.clone() * op1_limb_27_col94.clone())); - let conv_mod_tmp_1598 = (((M31_0.clone() + (M31_32.clone() * conv_tmp_1543.clone())) - - (M31_4.clone() * conv_tmp_1564.clone())) - + (M31_8.clone() * conv_tmp_1592.clone())); - let conv_mod_tmp_1599 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1543.clone())) - + (M31_32.clone() * conv_tmp_1544.clone())) - - (M31_4.clone() * conv_tmp_1565.clone())) - + (M31_8.clone() * conv_tmp_1593.clone())); - let conv_mod_tmp_1600 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1544.clone())) - + (M31_32.clone() * conv_tmp_1545.clone())) - - (M31_4.clone() * conv_tmp_1566.clone())) - + (M31_8.clone() * conv_tmp_1594.clone())); - let conv_mod_tmp_1601 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1545.clone())) - + (M31_32.clone() * conv_tmp_1546.clone())) - - (M31_4.clone() * conv_tmp_1567.clone())) - + (M31_8.clone() * conv_tmp_1595.clone())); - let conv_mod_tmp_1602 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1546.clone())) - + (M31_32.clone() * conv_tmp_1547.clone())) - - (M31_4.clone() * conv_tmp_1568.clone())) - + (M31_8.clone() * conv_tmp_1596.clone())); - let conv_mod_tmp_1603 = ((((M31_0.clone() + (M31_1.clone() * conv_tmp_1547.clone())) - + (M31_32.clone() * conv_tmp_1548.clone())) - - (M31_4.clone() * conv_tmp_1569.clone())) - + (M31_8.clone() * conv_tmp_1597.clone())); - let conv_mod_tmp_1604 = (((M31_0.clone() + (M31_1.clone() * conv_tmp_1548.clone())) - + (M31_32.clone() * conv_tmp_1549.clone())) - - (M31_4.clone() * conv_tmp_1570.clone())); - let conv_mod_tmp_1605 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1543.clone())) - + (M31_1.clone() * conv_tmp_1549.clone())) - + (M31_32.clone() * conv_tmp_1550.clone())) - - (M31_4.clone() * conv_tmp_1571.clone())); - let conv_mod_tmp_1606 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1544.clone())) - + (M31_1.clone() * conv_tmp_1550.clone())) - + (M31_32.clone() * conv_tmp_1551.clone())) - - (M31_4.clone() * conv_tmp_1572.clone())); - let conv_mod_tmp_1607 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1545.clone())) - + (M31_1.clone() * conv_tmp_1551.clone())) - + (M31_32.clone() * conv_tmp_1552.clone())) - - (M31_4.clone() * conv_tmp_1573.clone())); - let conv_mod_tmp_1608 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1546.clone())) - + (M31_1.clone() * conv_tmp_1552.clone())) - + (M31_32.clone() * conv_tmp_1553.clone())) - - (M31_4.clone() * conv_tmp_1574.clone())); - let conv_mod_tmp_1609 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1547.clone())) - + (M31_1.clone() * conv_tmp_1553.clone())) - + (M31_32.clone() * conv_tmp_1554.clone())) - - (M31_4.clone() * conv_tmp_1575.clone())); - let conv_mod_tmp_1610 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1548.clone())) - + (M31_1.clone() * conv_tmp_1554.clone())) - + (M31_32.clone() * conv_tmp_1555.clone())) - - (M31_4.clone() * conv_tmp_1576.clone())); - let conv_mod_tmp_1611 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1549.clone())) - + (M31_1.clone() * conv_tmp_1555.clone())) - + (M31_32.clone() * conv_tmp_1556.clone())) - - (M31_4.clone() * conv_tmp_1577.clone())); - let conv_mod_tmp_1612 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1550.clone())) - + (M31_1.clone() * conv_tmp_1556.clone())) - + (M31_32.clone() * conv_tmp_1557.clone())) - - (M31_4.clone() * conv_tmp_1578.clone())); - let conv_mod_tmp_1613 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1551.clone())) - + (M31_1.clone() * conv_tmp_1557.clone())) - + (M31_32.clone() * conv_tmp_1558.clone())) - - (M31_4.clone() * conv_tmp_1579.clone())); - let conv_mod_tmp_1614 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1552.clone())) - + (M31_1.clone() * conv_tmp_1558.clone())) - + (M31_32.clone() * conv_tmp_1559.clone())) - - (M31_4.clone() * conv_tmp_1580.clone())); - let conv_mod_tmp_1615 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1553.clone())) - + (M31_1.clone() * conv_tmp_1559.clone())) - + (M31_32.clone() * conv_tmp_1560.clone())) - - (M31_4.clone() * conv_tmp_1581.clone())); - let conv_mod_tmp_1616 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1554.clone())) - + (M31_1.clone() * conv_tmp_1560.clone())) - + (M31_32.clone() * conv_tmp_1561.clone())) - - (M31_4.clone() * conv_tmp_1582.clone())); - let conv_mod_tmp_1617 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1555.clone())) - + (M31_1.clone() * conv_tmp_1561.clone())) - + (M31_32.clone() * conv_tmp_1562.clone())) - - (M31_4.clone() * conv_tmp_1583.clone())); - let conv_mod_tmp_1618 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1556.clone())) - + (M31_1.clone() * conv_tmp_1562.clone())) - + (M31_32.clone() * conv_tmp_1563.clone())) - - (M31_4.clone() * conv_tmp_1584.clone())); - let conv_mod_tmp_1619 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1557.clone())) - + (M31_1.clone() * conv_tmp_1563.clone())) - - (M31_4.clone() * conv_tmp_1585.clone())) - + (M31_64.clone() * conv_tmp_1592.clone())); - let conv_mod_tmp_1620 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1558.clone())) - - (M31_4.clone() * conv_tmp_1586.clone())) - + (M31_2.clone() * conv_tmp_1592.clone())) - + (M31_64.clone() * conv_tmp_1593.clone())); - let conv_mod_tmp_1621 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1559.clone())) - - (M31_4.clone() * conv_tmp_1587.clone())) - + (M31_2.clone() * conv_tmp_1593.clone())) - + (M31_64.clone() * conv_tmp_1594.clone())); - let conv_mod_tmp_1622 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1560.clone())) - - (M31_4.clone() * conv_tmp_1588.clone())) - + (M31_2.clone() * conv_tmp_1594.clone())) - + (M31_64.clone() * conv_tmp_1595.clone())); - let conv_mod_tmp_1623 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1561.clone())) - - (M31_4.clone() * conv_tmp_1589.clone())) - + (M31_2.clone() * conv_tmp_1595.clone())) - + (M31_64.clone() * conv_tmp_1596.clone())); - let conv_mod_tmp_1624 = ((((M31_0.clone() + (M31_2.clone() * conv_tmp_1562.clone())) - - (M31_4.clone() * conv_tmp_1590.clone())) - + (M31_2.clone() * conv_tmp_1596.clone())) - + (M31_64.clone() * conv_tmp_1597.clone())); - let conv_mod_tmp_1625 = (((M31_0.clone() + (M31_2.clone() * conv_tmp_1563.clone())) - - (M31_4.clone() * conv_tmp_1591.clone())) - + (M31_2.clone() * conv_tmp_1597.clone())); - eval.add_to_relation(&[RelationEntry::new( + let conv_mod_tmp_31b3_69 = (((M31_0.clone() + + (M31_32.clone() * conv_tmp_31b3_14.clone())) + - (M31_4.clone() * conv_tmp_31b3_35.clone())) + + (M31_8.clone() * conv_tmp_31b3_63.clone())); + let conv_mod_tmp_31b3_70 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_31b3_14.clone())) + + (M31_32.clone() * conv_tmp_31b3_15.clone())) + - (M31_4.clone() * conv_tmp_31b3_36.clone())) + + (M31_8.clone() * conv_tmp_31b3_64.clone())); + let conv_mod_tmp_31b3_71 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_31b3_15.clone())) + + (M31_32.clone() * conv_tmp_31b3_16.clone())) + - (M31_4.clone() * conv_tmp_31b3_37.clone())) + + (M31_8.clone() * conv_tmp_31b3_65.clone())); + let conv_mod_tmp_31b3_72 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_31b3_16.clone())) + + (M31_32.clone() * conv_tmp_31b3_17.clone())) + - (M31_4.clone() * conv_tmp_31b3_38.clone())) + + (M31_8.clone() * conv_tmp_31b3_66.clone())); + let conv_mod_tmp_31b3_73 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_31b3_17.clone())) + + (M31_32.clone() * conv_tmp_31b3_18.clone())) + - (M31_4.clone() * conv_tmp_31b3_39.clone())) + + (M31_8.clone() * conv_tmp_31b3_67.clone())); + let conv_mod_tmp_31b3_74 = ((((M31_0.clone() + + (M31_1.clone() * conv_tmp_31b3_18.clone())) + + (M31_32.clone() * conv_tmp_31b3_19.clone())) + - (M31_4.clone() * conv_tmp_31b3_40.clone())) + + (M31_8.clone() * conv_tmp_31b3_68.clone())); + let conv_mod_tmp_31b3_75 = (((M31_0.clone() + (M31_1.clone() * conv_tmp_31b3_19.clone())) + + (M31_32.clone() * conv_tmp_31b3_20.clone())) + - (M31_4.clone() * conv_tmp_31b3_41.clone())); + let conv_mod_tmp_31b3_76 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_14.clone())) + + (M31_1.clone() * conv_tmp_31b3_20.clone())) + + (M31_32.clone() * conv_tmp_31b3_21.clone())) + - (M31_4.clone() * conv_tmp_31b3_42.clone())); + let conv_mod_tmp_31b3_77 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_15.clone())) + + (M31_1.clone() * conv_tmp_31b3_21.clone())) + + (M31_32.clone() * conv_tmp_31b3_22.clone())) + - (M31_4.clone() * conv_tmp_31b3_43.clone())); + let conv_mod_tmp_31b3_78 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_16.clone())) + + (M31_1.clone() * conv_tmp_31b3_22.clone())) + + (M31_32.clone() * conv_tmp_31b3_23.clone())) + - (M31_4.clone() * conv_tmp_31b3_44.clone())); + let conv_mod_tmp_31b3_79 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_17.clone())) + + (M31_1.clone() * conv_tmp_31b3_23.clone())) + + (M31_32.clone() * conv_tmp_31b3_24.clone())) + - (M31_4.clone() * conv_tmp_31b3_45.clone())); + let conv_mod_tmp_31b3_80 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_18.clone())) + + (M31_1.clone() * conv_tmp_31b3_24.clone())) + + (M31_32.clone() * conv_tmp_31b3_25.clone())) + - (M31_4.clone() * conv_tmp_31b3_46.clone())); + let conv_mod_tmp_31b3_81 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_19.clone())) + + (M31_1.clone() * conv_tmp_31b3_25.clone())) + + (M31_32.clone() * conv_tmp_31b3_26.clone())) + - (M31_4.clone() * conv_tmp_31b3_47.clone())); + let conv_mod_tmp_31b3_82 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_20.clone())) + + (M31_1.clone() * conv_tmp_31b3_26.clone())) + + (M31_32.clone() * conv_tmp_31b3_27.clone())) + - (M31_4.clone() * conv_tmp_31b3_48.clone())); + let conv_mod_tmp_31b3_83 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_21.clone())) + + (M31_1.clone() * conv_tmp_31b3_27.clone())) + + (M31_32.clone() * conv_tmp_31b3_28.clone())) + - (M31_4.clone() * conv_tmp_31b3_49.clone())); + let conv_mod_tmp_31b3_84 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_22.clone())) + + (M31_1.clone() * conv_tmp_31b3_28.clone())) + + (M31_32.clone() * conv_tmp_31b3_29.clone())) + - (M31_4.clone() * conv_tmp_31b3_50.clone())); + let conv_mod_tmp_31b3_85 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_23.clone())) + + (M31_1.clone() * conv_tmp_31b3_29.clone())) + + (M31_32.clone() * conv_tmp_31b3_30.clone())) + - (M31_4.clone() * conv_tmp_31b3_51.clone())); + let conv_mod_tmp_31b3_86 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_24.clone())) + + (M31_1.clone() * conv_tmp_31b3_30.clone())) + + (M31_32.clone() * conv_tmp_31b3_31.clone())) + - (M31_4.clone() * conv_tmp_31b3_52.clone())); + let conv_mod_tmp_31b3_87 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_25.clone())) + + (M31_1.clone() * conv_tmp_31b3_31.clone())) + + (M31_32.clone() * conv_tmp_31b3_32.clone())) + - (M31_4.clone() * conv_tmp_31b3_53.clone())); + let conv_mod_tmp_31b3_88 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_26.clone())) + + (M31_1.clone() * conv_tmp_31b3_32.clone())) + + (M31_32.clone() * conv_tmp_31b3_33.clone())) + - (M31_4.clone() * conv_tmp_31b3_54.clone())); + let conv_mod_tmp_31b3_89 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_27.clone())) + + (M31_1.clone() * conv_tmp_31b3_33.clone())) + + (M31_32.clone() * conv_tmp_31b3_34.clone())) + - (M31_4.clone() * conv_tmp_31b3_55.clone())); + let conv_mod_tmp_31b3_90 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_28.clone())) + + (M31_1.clone() * conv_tmp_31b3_34.clone())) + - (M31_4.clone() * conv_tmp_31b3_56.clone())) + + (M31_64.clone() * conv_tmp_31b3_63.clone())); + let conv_mod_tmp_31b3_91 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_29.clone())) + - (M31_4.clone() * conv_tmp_31b3_57.clone())) + + (M31_2.clone() * conv_tmp_31b3_63.clone())) + + (M31_64.clone() * conv_tmp_31b3_64.clone())); + let conv_mod_tmp_31b3_92 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_30.clone())) + - (M31_4.clone() * conv_tmp_31b3_58.clone())) + + (M31_2.clone() * conv_tmp_31b3_64.clone())) + + (M31_64.clone() * conv_tmp_31b3_65.clone())); + let conv_mod_tmp_31b3_93 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_31.clone())) + - (M31_4.clone() * conv_tmp_31b3_59.clone())) + + (M31_2.clone() * conv_tmp_31b3_65.clone())) + + (M31_64.clone() * conv_tmp_31b3_66.clone())); + let conv_mod_tmp_31b3_94 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_32.clone())) + - (M31_4.clone() * conv_tmp_31b3_60.clone())) + + (M31_2.clone() * conv_tmp_31b3_66.clone())) + + (M31_64.clone() * conv_tmp_31b3_67.clone())); + let conv_mod_tmp_31b3_95 = ((((M31_0.clone() + + (M31_2.clone() * conv_tmp_31b3_33.clone())) + - (M31_4.clone() * conv_tmp_31b3_61.clone())) + + (M31_2.clone() * conv_tmp_31b3_67.clone())) + + (M31_64.clone() * conv_tmp_31b3_68.clone())); + let conv_mod_tmp_31b3_96 = (((M31_0.clone() + (M31_2.clone() * conv_tmp_31b3_34.clone())) + - (M31_4.clone() * conv_tmp_31b3_62.clone())) + + (M31_2.clone() * conv_tmp_31b3_68.clone())); + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(k_col95.clone() + M31_262144.clone())], - )]); + )); eval.add_constraint( ((carry_0_col96.clone() * M31_512.clone()) - - ((conv_mod_tmp_1598.clone() - (M31_1.clone() * k_col95.clone())) + - ((conv_mod_tmp_31b3_69.clone() - (M31_1.clone() * k_col95.clone())) + M31_0.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_0_col96.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_1_col97.clone() * M31_512.clone()) - - (conv_mod_tmp_1599.clone() + carry_0_col96.clone())), + - (conv_mod_tmp_31b3_70.clone() + carry_0_col96.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_1_col97.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_2_col98.clone() * M31_512.clone()) - - (conv_mod_tmp_1600.clone() + carry_1_col97.clone())), + - (conv_mod_tmp_31b3_71.clone() + carry_1_col97.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_2_col98.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_3_col99.clone() * M31_512.clone()) - - (conv_mod_tmp_1601.clone() + carry_2_col98.clone())), + - (conv_mod_tmp_31b3_72.clone() + carry_2_col98.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_3_col99.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_4_col100.clone() * M31_512.clone()) - - (conv_mod_tmp_1602.clone() + carry_3_col99.clone())), + - (conv_mod_tmp_31b3_73.clone() + carry_3_col99.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_4_col100.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_5_col101.clone() * M31_512.clone()) - - (conv_mod_tmp_1603.clone() + carry_4_col100.clone())), + - (conv_mod_tmp_31b3_74.clone() + carry_4_col100.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_5_col101.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_6_col102.clone() * M31_512.clone()) - - (conv_mod_tmp_1604.clone() + carry_5_col101.clone())), + - (conv_mod_tmp_31b3_75.clone() + carry_5_col101.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_6_col102.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_7_col103.clone() * M31_512.clone()) - - (conv_mod_tmp_1605.clone() + carry_6_col102.clone())), + - (conv_mod_tmp_31b3_76.clone() + carry_6_col102.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_7_col103.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_8_col104.clone() * M31_512.clone()) - - (conv_mod_tmp_1606.clone() + carry_7_col103.clone())), + - (conv_mod_tmp_31b3_77.clone() + carry_7_col103.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_8_col104.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_9_col105.clone() * M31_512.clone()) - - (conv_mod_tmp_1607.clone() + carry_8_col104.clone())), + - (conv_mod_tmp_31b3_78.clone() + carry_8_col104.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_9_col105.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_10_col106.clone() * M31_512.clone()) - - (conv_mod_tmp_1608.clone() + carry_9_col105.clone())), + - (conv_mod_tmp_31b3_79.clone() + carry_9_col105.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_10_col106.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_11_col107.clone() * M31_512.clone()) - - (conv_mod_tmp_1609.clone() + carry_10_col106.clone())), + - (conv_mod_tmp_31b3_80.clone() + carry_10_col106.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_11_col107.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_12_col108.clone() * M31_512.clone()) - - (conv_mod_tmp_1610.clone() + carry_11_col107.clone())), + - (conv_mod_tmp_31b3_81.clone() + carry_11_col107.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_12_col108.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_13_col109.clone() * M31_512.clone()) - - (conv_mod_tmp_1611.clone() + carry_12_col108.clone())), + - (conv_mod_tmp_31b3_82.clone() + carry_12_col108.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_13_col109.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_14_col110.clone() * M31_512.clone()) - - (conv_mod_tmp_1612.clone() + carry_13_col109.clone())), + - (conv_mod_tmp_31b3_83.clone() + carry_13_col109.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_14_col110.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_15_col111.clone() * M31_512.clone()) - - (conv_mod_tmp_1613.clone() + carry_14_col110.clone())), + - (conv_mod_tmp_31b3_84.clone() + carry_14_col110.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_15_col111.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_16_col112.clone() * M31_512.clone()) - - (conv_mod_tmp_1614.clone() + carry_15_col111.clone())), + - (conv_mod_tmp_31b3_85.clone() + carry_15_col111.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_16_col112.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_17_col113.clone() * M31_512.clone()) - - (conv_mod_tmp_1615.clone() + carry_16_col112.clone())), + - (conv_mod_tmp_31b3_86.clone() + carry_16_col112.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_17_col113.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_18_col114.clone() * M31_512.clone()) - - (conv_mod_tmp_1616.clone() + carry_17_col113.clone())), + - (conv_mod_tmp_31b3_87.clone() + carry_17_col113.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_18_col114.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_19_col115.clone() * M31_512.clone()) - - (conv_mod_tmp_1617.clone() + carry_18_col114.clone())), + - (conv_mod_tmp_31b3_88.clone() + carry_18_col114.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_19_col115.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_20_col116.clone() * M31_512.clone()) - - (conv_mod_tmp_1618.clone() + carry_19_col115.clone())), + - (conv_mod_tmp_31b3_89.clone() + carry_19_col115.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_20_col116.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_21_col117.clone() * M31_512.clone()) - - ((conv_mod_tmp_1619.clone() - (M31_136.clone() * k_col95.clone())) + - ((conv_mod_tmp_31b3_90.clone() - (M31_136.clone() * k_col95.clone())) + carry_20_col116.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_21_col117.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_22_col118.clone() * M31_512.clone()) - - (conv_mod_tmp_1620.clone() + carry_21_col117.clone())), + - (conv_mod_tmp_31b3_91.clone() + carry_21_col117.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_22_col118.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_23_col119.clone() * M31_512.clone()) - - (conv_mod_tmp_1621.clone() + carry_22_col118.clone())), + - (conv_mod_tmp_31b3_92.clone() + carry_22_col118.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_23_col119.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_24_col120.clone() * M31_512.clone()) - - (conv_mod_tmp_1622.clone() + carry_23_col119.clone())), + - (conv_mod_tmp_31b3_93.clone() + carry_23_col119.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_24_col120.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_25_col121.clone() * M31_512.clone()) - - (conv_mod_tmp_1623.clone() + carry_24_col120.clone())), + - (conv_mod_tmp_31b3_94.clone() + carry_24_col120.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_25_col121.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( ((carry_26_col122.clone() * M31_512.clone()) - - (conv_mod_tmp_1624.clone() + carry_25_col121.clone())), + - (conv_mod_tmp_31b3_95.clone() + carry_25_col121.clone())), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_19_lookup_elements, E::EF::one(), &[(carry_26_col122.clone() + M31_131072.clone())], - )]); + )); eval.add_constraint( - ((conv_mod_tmp_1625.clone() - (M31_256.clone() * k_col95.clone())) + ((conv_mod_tmp_31b3_96.clone() - (M31_256.clone() * k_col95.clone())) + carry_26_col122.clone()), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -1642,9 +1672,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -1652,7 +1682,7 @@ impl FrameworkEval for Eval { (input_ap_col1.clone() + ap_update_add_1_col7.clone()), input_fp_col2.clone(), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/prover.rs b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/prover.rs index 010e756e..7b4b494d 100644 --- a/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/prover.rs +++ b/stwo_cairo_prover/crates/prover/src/components/mul_opcode_is_small_f_is_imm_t/prover.rs @@ -67,12 +67,6 @@ impl ClaimGenerator { if need_padding { sub_components_inputs.bit_reverse_coset_to_circle_domain_order(); } - sub_components_inputs - .range_check_19_inputs - .iter() - .for_each(|inputs| { - range_check_19_state.add_inputs(&inputs[..n_calls]); - }); sub_components_inputs .memory_address_to_id_inputs .iter() @@ -85,6 +79,12 @@ impl ClaimGenerator { .for_each(|inputs| { memory_id_to_big_state.add_inputs(&inputs[..n_calls]); }); + sub_components_inputs + .range_check_19_inputs + .iter() + .for_each(|inputs| { + range_check_19_state.add_inputs(&inputs[..n_calls]); + }); sub_components_inputs .verify_instruction_inputs .iter() @@ -122,22 +122,26 @@ impl ClaimGenerator { } pub struct SubComponentInputs { - pub range_check_19_inputs: [Vec; 28], pub memory_address_to_id_inputs: [Vec; 3], pub memory_id_to_big_inputs: [Vec; 3], + pub range_check_19_inputs: [Vec; 28], pub verify_instruction_inputs: [Vec; 1], } impl SubComponentInputs { #[allow(unused_variables)] fn with_capacity(capacity: usize) -> Self { Self { - range_check_19_inputs: [ + memory_address_to_id_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), + ], + memory_id_to_big_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), + ], + range_check_19_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), @@ -160,13 +164,9 @@ impl SubComponentInputs { Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), - ], - memory_address_to_id_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), - ], - memory_id_to_big_inputs: [ Vec::with_capacity(capacity), Vec::with_capacity(capacity), Vec::with_capacity(capacity), @@ -176,15 +176,15 @@ impl SubComponentInputs { } fn bit_reverse_coset_to_circle_domain_order(&mut self) { - self.range_check_19_inputs - .iter_mut() - .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); self.memory_address_to_id_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); self.memory_id_to_big_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); + self.range_check_19_inputs + .iter_mut() + .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); self.verify_instruction_inputs .iter_mut() .for_each(|vec| bit_reverse_coset_to_circle_domain_order(vec)); @@ -246,63 +246,63 @@ pub fn write_trace_simd( .into_iter() .enumerate() .for_each(|(row_index, mul_opcode_is_small_f_is_imm_t_input)| { - let input_tmp_1528 = mul_opcode_is_small_f_is_imm_t_input; - let input_pc_col0 = input_tmp_1528.pc; + let input_tmp_31b3_0 = mul_opcode_is_small_f_is_imm_t_input; + let input_pc_col0 = input_tmp_31b3_0.pc; trace[0].data[row_index] = input_pc_col0; - let input_ap_col1 = input_tmp_1528.ap; + let input_ap_col1 = input_tmp_31b3_0.ap; trace[1].data[row_index] = input_ap_col1; - let input_fp_col2 = input_tmp_1528.fp; + let input_fp_col2 = input_tmp_31b3_0.fp; trace[2].data[row_index] = input_fp_col2; - // decode_instruction_cea21b812a0ef1a0. + // DecodeInstruction_cea21b812a0ef1a0. - let memory_address_to_id_value_tmp_1529 = + let memoryaddresstoid_value_tmp_31b3_1 = memory_address_to_id_state.deduce_output(input_pc_col0); - let memory_id_to_big_value_tmp_1530 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1529); - let offset0_tmp_1531 = - ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(0))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(1))) + let memoryidtobig_value_tmp_31b3_2 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_31b3_1); + let offset0_tmp_31b3_3 = + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(0))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(1))) & (UInt16_127)) << (UInt16_9))); - let offset0_col3 = offset0_tmp_1531.as_m31(); + let offset0_col3 = offset0_tmp_31b3_3.as_m31(); trace[3].data[row_index] = offset0_col3; - let offset1_tmp_1532 = - ((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(1))) + let offset1_tmp_31b3_4 = + ((((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(1))) >> (UInt16_7)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(2))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(2))) << (UInt16_2))) - + (((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(3))) + + (((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(3))) & (UInt16_31)) << (UInt16_11))); - let offset1_col4 = offset1_tmp_1532.as_m31(); + let offset1_col4 = offset1_tmp_31b3_4.as_m31(); trace[4].data[row_index] = offset1_col4; - let dst_base_fp_tmp_1533 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(5))) + let dst_base_fp_tmp_31b3_5 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(6))) << (UInt16_6))) >> (UInt16_0)) & (UInt16_1)); - let dst_base_fp_col5 = dst_base_fp_tmp_1533.as_m31(); + let dst_base_fp_col5 = dst_base_fp_tmp_31b3_5.as_m31(); trace[5].data[row_index] = dst_base_fp_col5; - let op0_base_fp_tmp_1534 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(5))) + let op0_base_fp_tmp_31b3_6 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(6))) << (UInt16_6))) >> (UInt16_1)) & (UInt16_1)); - let op0_base_fp_col6 = op0_base_fp_tmp_1534.as_m31(); + let op0_base_fp_col6 = op0_base_fp_tmp_31b3_6.as_m31(); trace[6].data[row_index] = op0_base_fp_col6; - let ap_update_add_1_tmp_1535 = - (((((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(5))) + let ap_update_add_1_tmp_31b3_7 = + (((((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(5))) >> (UInt16_3)) - + ((PackedUInt16::from_m31(memory_id_to_big_value_tmp_1530.get_m31(6))) + + ((PackedUInt16::from_m31(memoryidtobig_value_tmp_31b3_2.get_m31(6))) << (UInt16_6))) >> (UInt16_11)) & (UInt16_1)); - let ap_update_add_1_col7 = ap_update_add_1_tmp_1535.as_m31(); + let ap_update_add_1_col7 = ap_update_add_1_tmp_31b3_7.as_m31(); trace[7].data[row_index] = ap_update_add_1_col7; sub_components_inputs.verify_instruction_inputs[0].extend( @@ -352,16 +352,16 @@ pub fn write_trace_simd( M31_1, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1537 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_31b3_8 = memory_address_to_id_state.deduce_output( ((((dst_base_fp_col5) * (input_fp_col2)) + (((M31_1) - (dst_base_fp_col5)) * (input_ap_col1))) + ((offset0_col3) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1538 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1537); - let dst_id_col8 = memory_address_to_id_value_tmp_1537; + let memoryidtobig_value_tmp_31b3_9 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_31b3_8); + let dst_id_col8 = memoryaddresstoid_value_tmp_31b3_8; trace[8].data[row_index] = dst_id_col8; sub_components_inputs.memory_address_to_id_inputs[0].extend( ((((dst_base_fp_col5) * (input_fp_col2)) @@ -376,61 +376,61 @@ pub fn write_trace_simd( + ((offset0_col3) - (M31_32768))), dst_id_col8, ]); - let dst_limb_0_col9 = memory_id_to_big_value_tmp_1538.get_m31(0); + let dst_limb_0_col9 = memoryidtobig_value_tmp_31b3_9.get_m31(0); trace[9].data[row_index] = dst_limb_0_col9; - let dst_limb_1_col10 = memory_id_to_big_value_tmp_1538.get_m31(1); + let dst_limb_1_col10 = memoryidtobig_value_tmp_31b3_9.get_m31(1); trace[10].data[row_index] = dst_limb_1_col10; - let dst_limb_2_col11 = memory_id_to_big_value_tmp_1538.get_m31(2); + let dst_limb_2_col11 = memoryidtobig_value_tmp_31b3_9.get_m31(2); trace[11].data[row_index] = dst_limb_2_col11; - let dst_limb_3_col12 = memory_id_to_big_value_tmp_1538.get_m31(3); + let dst_limb_3_col12 = memoryidtobig_value_tmp_31b3_9.get_m31(3); trace[12].data[row_index] = dst_limb_3_col12; - let dst_limb_4_col13 = memory_id_to_big_value_tmp_1538.get_m31(4); + let dst_limb_4_col13 = memoryidtobig_value_tmp_31b3_9.get_m31(4); trace[13].data[row_index] = dst_limb_4_col13; - let dst_limb_5_col14 = memory_id_to_big_value_tmp_1538.get_m31(5); + let dst_limb_5_col14 = memoryidtobig_value_tmp_31b3_9.get_m31(5); trace[14].data[row_index] = dst_limb_5_col14; - let dst_limb_6_col15 = memory_id_to_big_value_tmp_1538.get_m31(6); + let dst_limb_6_col15 = memoryidtobig_value_tmp_31b3_9.get_m31(6); trace[15].data[row_index] = dst_limb_6_col15; - let dst_limb_7_col16 = memory_id_to_big_value_tmp_1538.get_m31(7); + let dst_limb_7_col16 = memoryidtobig_value_tmp_31b3_9.get_m31(7); trace[16].data[row_index] = dst_limb_7_col16; - let dst_limb_8_col17 = memory_id_to_big_value_tmp_1538.get_m31(8); + let dst_limb_8_col17 = memoryidtobig_value_tmp_31b3_9.get_m31(8); trace[17].data[row_index] = dst_limb_8_col17; - let dst_limb_9_col18 = memory_id_to_big_value_tmp_1538.get_m31(9); + let dst_limb_9_col18 = memoryidtobig_value_tmp_31b3_9.get_m31(9); trace[18].data[row_index] = dst_limb_9_col18; - let dst_limb_10_col19 = memory_id_to_big_value_tmp_1538.get_m31(10); + let dst_limb_10_col19 = memoryidtobig_value_tmp_31b3_9.get_m31(10); trace[19].data[row_index] = dst_limb_10_col19; - let dst_limb_11_col20 = memory_id_to_big_value_tmp_1538.get_m31(11); + let dst_limb_11_col20 = memoryidtobig_value_tmp_31b3_9.get_m31(11); trace[20].data[row_index] = dst_limb_11_col20; - let dst_limb_12_col21 = memory_id_to_big_value_tmp_1538.get_m31(12); + let dst_limb_12_col21 = memoryidtobig_value_tmp_31b3_9.get_m31(12); trace[21].data[row_index] = dst_limb_12_col21; - let dst_limb_13_col22 = memory_id_to_big_value_tmp_1538.get_m31(13); + let dst_limb_13_col22 = memoryidtobig_value_tmp_31b3_9.get_m31(13); trace[22].data[row_index] = dst_limb_13_col22; - let dst_limb_14_col23 = memory_id_to_big_value_tmp_1538.get_m31(14); + let dst_limb_14_col23 = memoryidtobig_value_tmp_31b3_9.get_m31(14); trace[23].data[row_index] = dst_limb_14_col23; - let dst_limb_15_col24 = memory_id_to_big_value_tmp_1538.get_m31(15); + let dst_limb_15_col24 = memoryidtobig_value_tmp_31b3_9.get_m31(15); trace[24].data[row_index] = dst_limb_15_col24; - let dst_limb_16_col25 = memory_id_to_big_value_tmp_1538.get_m31(16); + let dst_limb_16_col25 = memoryidtobig_value_tmp_31b3_9.get_m31(16); trace[25].data[row_index] = dst_limb_16_col25; - let dst_limb_17_col26 = memory_id_to_big_value_tmp_1538.get_m31(17); + let dst_limb_17_col26 = memoryidtobig_value_tmp_31b3_9.get_m31(17); trace[26].data[row_index] = dst_limb_17_col26; - let dst_limb_18_col27 = memory_id_to_big_value_tmp_1538.get_m31(18); + let dst_limb_18_col27 = memoryidtobig_value_tmp_31b3_9.get_m31(18); trace[27].data[row_index] = dst_limb_18_col27; - let dst_limb_19_col28 = memory_id_to_big_value_tmp_1538.get_m31(19); + let dst_limb_19_col28 = memoryidtobig_value_tmp_31b3_9.get_m31(19); trace[28].data[row_index] = dst_limb_19_col28; - let dst_limb_20_col29 = memory_id_to_big_value_tmp_1538.get_m31(20); + let dst_limb_20_col29 = memoryidtobig_value_tmp_31b3_9.get_m31(20); trace[29].data[row_index] = dst_limb_20_col29; - let dst_limb_21_col30 = memory_id_to_big_value_tmp_1538.get_m31(21); + let dst_limb_21_col30 = memoryidtobig_value_tmp_31b3_9.get_m31(21); trace[30].data[row_index] = dst_limb_21_col30; - let dst_limb_22_col31 = memory_id_to_big_value_tmp_1538.get_m31(22); + let dst_limb_22_col31 = memoryidtobig_value_tmp_31b3_9.get_m31(22); trace[31].data[row_index] = dst_limb_22_col31; - let dst_limb_23_col32 = memory_id_to_big_value_tmp_1538.get_m31(23); + let dst_limb_23_col32 = memoryidtobig_value_tmp_31b3_9.get_m31(23); trace[32].data[row_index] = dst_limb_23_col32; - let dst_limb_24_col33 = memory_id_to_big_value_tmp_1538.get_m31(24); + let dst_limb_24_col33 = memoryidtobig_value_tmp_31b3_9.get_m31(24); trace[33].data[row_index] = dst_limb_24_col33; - let dst_limb_25_col34 = memory_id_to_big_value_tmp_1538.get_m31(25); + let dst_limb_25_col34 = memoryidtobig_value_tmp_31b3_9.get_m31(25); trace[34].data[row_index] = dst_limb_25_col34; - let dst_limb_26_col35 = memory_id_to_big_value_tmp_1538.get_m31(26); + let dst_limb_26_col35 = memoryidtobig_value_tmp_31b3_9.get_m31(26); trace[35].data[row_index] = dst_limb_26_col35; - let dst_limb_27_col36 = memory_id_to_big_value_tmp_1538.get_m31(27); + let dst_limb_27_col36 = memoryidtobig_value_tmp_31b3_9.get_m31(27); trace[36].data[row_index] = dst_limb_27_col36; sub_components_inputs.memory_id_to_big_inputs[0].extend(dst_id_col8.unpack()); @@ -466,16 +466,16 @@ pub fn write_trace_simd( dst_limb_27_col36, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1539 = memory_address_to_id_state.deduce_output( + let memoryaddresstoid_value_tmp_31b3_10 = memory_address_to_id_state.deduce_output( ((((op0_base_fp_col6) * (input_fp_col2)) + (((M31_1) - (op0_base_fp_col6)) * (input_ap_col1))) + ((offset1_col4) - (M31_32768))), ); - let memory_id_to_big_value_tmp_1540 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1539); - let op0_id_col37 = memory_address_to_id_value_tmp_1539; + let memoryidtobig_value_tmp_31b3_11 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_31b3_10); + let op0_id_col37 = memoryaddresstoid_value_tmp_31b3_10; trace[37].data[row_index] = op0_id_col37; sub_components_inputs.memory_address_to_id_inputs[1].extend( ((((op0_base_fp_col6) * (input_fp_col2)) @@ -490,61 +490,61 @@ pub fn write_trace_simd( + ((offset1_col4) - (M31_32768))), op0_id_col37, ]); - let op0_limb_0_col38 = memory_id_to_big_value_tmp_1540.get_m31(0); + let op0_limb_0_col38 = memoryidtobig_value_tmp_31b3_11.get_m31(0); trace[38].data[row_index] = op0_limb_0_col38; - let op0_limb_1_col39 = memory_id_to_big_value_tmp_1540.get_m31(1); + let op0_limb_1_col39 = memoryidtobig_value_tmp_31b3_11.get_m31(1); trace[39].data[row_index] = op0_limb_1_col39; - let op0_limb_2_col40 = memory_id_to_big_value_tmp_1540.get_m31(2); + let op0_limb_2_col40 = memoryidtobig_value_tmp_31b3_11.get_m31(2); trace[40].data[row_index] = op0_limb_2_col40; - let op0_limb_3_col41 = memory_id_to_big_value_tmp_1540.get_m31(3); + let op0_limb_3_col41 = memoryidtobig_value_tmp_31b3_11.get_m31(3); trace[41].data[row_index] = op0_limb_3_col41; - let op0_limb_4_col42 = memory_id_to_big_value_tmp_1540.get_m31(4); + let op0_limb_4_col42 = memoryidtobig_value_tmp_31b3_11.get_m31(4); trace[42].data[row_index] = op0_limb_4_col42; - let op0_limb_5_col43 = memory_id_to_big_value_tmp_1540.get_m31(5); + let op0_limb_5_col43 = memoryidtobig_value_tmp_31b3_11.get_m31(5); trace[43].data[row_index] = op0_limb_5_col43; - let op0_limb_6_col44 = memory_id_to_big_value_tmp_1540.get_m31(6); + let op0_limb_6_col44 = memoryidtobig_value_tmp_31b3_11.get_m31(6); trace[44].data[row_index] = op0_limb_6_col44; - let op0_limb_7_col45 = memory_id_to_big_value_tmp_1540.get_m31(7); + let op0_limb_7_col45 = memoryidtobig_value_tmp_31b3_11.get_m31(7); trace[45].data[row_index] = op0_limb_7_col45; - let op0_limb_8_col46 = memory_id_to_big_value_tmp_1540.get_m31(8); + let op0_limb_8_col46 = memoryidtobig_value_tmp_31b3_11.get_m31(8); trace[46].data[row_index] = op0_limb_8_col46; - let op0_limb_9_col47 = memory_id_to_big_value_tmp_1540.get_m31(9); + let op0_limb_9_col47 = memoryidtobig_value_tmp_31b3_11.get_m31(9); trace[47].data[row_index] = op0_limb_9_col47; - let op0_limb_10_col48 = memory_id_to_big_value_tmp_1540.get_m31(10); + let op0_limb_10_col48 = memoryidtobig_value_tmp_31b3_11.get_m31(10); trace[48].data[row_index] = op0_limb_10_col48; - let op0_limb_11_col49 = memory_id_to_big_value_tmp_1540.get_m31(11); + let op0_limb_11_col49 = memoryidtobig_value_tmp_31b3_11.get_m31(11); trace[49].data[row_index] = op0_limb_11_col49; - let op0_limb_12_col50 = memory_id_to_big_value_tmp_1540.get_m31(12); + let op0_limb_12_col50 = memoryidtobig_value_tmp_31b3_11.get_m31(12); trace[50].data[row_index] = op0_limb_12_col50; - let op0_limb_13_col51 = memory_id_to_big_value_tmp_1540.get_m31(13); + let op0_limb_13_col51 = memoryidtobig_value_tmp_31b3_11.get_m31(13); trace[51].data[row_index] = op0_limb_13_col51; - let op0_limb_14_col52 = memory_id_to_big_value_tmp_1540.get_m31(14); + let op0_limb_14_col52 = memoryidtobig_value_tmp_31b3_11.get_m31(14); trace[52].data[row_index] = op0_limb_14_col52; - let op0_limb_15_col53 = memory_id_to_big_value_tmp_1540.get_m31(15); + let op0_limb_15_col53 = memoryidtobig_value_tmp_31b3_11.get_m31(15); trace[53].data[row_index] = op0_limb_15_col53; - let op0_limb_16_col54 = memory_id_to_big_value_tmp_1540.get_m31(16); + let op0_limb_16_col54 = memoryidtobig_value_tmp_31b3_11.get_m31(16); trace[54].data[row_index] = op0_limb_16_col54; - let op0_limb_17_col55 = memory_id_to_big_value_tmp_1540.get_m31(17); + let op0_limb_17_col55 = memoryidtobig_value_tmp_31b3_11.get_m31(17); trace[55].data[row_index] = op0_limb_17_col55; - let op0_limb_18_col56 = memory_id_to_big_value_tmp_1540.get_m31(18); + let op0_limb_18_col56 = memoryidtobig_value_tmp_31b3_11.get_m31(18); trace[56].data[row_index] = op0_limb_18_col56; - let op0_limb_19_col57 = memory_id_to_big_value_tmp_1540.get_m31(19); + let op0_limb_19_col57 = memoryidtobig_value_tmp_31b3_11.get_m31(19); trace[57].data[row_index] = op0_limb_19_col57; - let op0_limb_20_col58 = memory_id_to_big_value_tmp_1540.get_m31(20); + let op0_limb_20_col58 = memoryidtobig_value_tmp_31b3_11.get_m31(20); trace[58].data[row_index] = op0_limb_20_col58; - let op0_limb_21_col59 = memory_id_to_big_value_tmp_1540.get_m31(21); + let op0_limb_21_col59 = memoryidtobig_value_tmp_31b3_11.get_m31(21); trace[59].data[row_index] = op0_limb_21_col59; - let op0_limb_22_col60 = memory_id_to_big_value_tmp_1540.get_m31(22); + let op0_limb_22_col60 = memoryidtobig_value_tmp_31b3_11.get_m31(22); trace[60].data[row_index] = op0_limb_22_col60; - let op0_limb_23_col61 = memory_id_to_big_value_tmp_1540.get_m31(23); + let op0_limb_23_col61 = memoryidtobig_value_tmp_31b3_11.get_m31(23); trace[61].data[row_index] = op0_limb_23_col61; - let op0_limb_24_col62 = memory_id_to_big_value_tmp_1540.get_m31(24); + let op0_limb_24_col62 = memoryidtobig_value_tmp_31b3_11.get_m31(24); trace[62].data[row_index] = op0_limb_24_col62; - let op0_limb_25_col63 = memory_id_to_big_value_tmp_1540.get_m31(25); + let op0_limb_25_col63 = memoryidtobig_value_tmp_31b3_11.get_m31(25); trace[63].data[row_index] = op0_limb_25_col63; - let op0_limb_26_col64 = memory_id_to_big_value_tmp_1540.get_m31(26); + let op0_limb_26_col64 = memoryidtobig_value_tmp_31b3_11.get_m31(26); trace[64].data[row_index] = op0_limb_26_col64; - let op0_limb_27_col65 = memory_id_to_big_value_tmp_1540.get_m31(27); + let op0_limb_27_col65 = memoryidtobig_value_tmp_31b3_11.get_m31(27); trace[65].data[row_index] = op0_limb_27_col65; sub_components_inputs.memory_id_to_big_inputs[1].extend(op0_id_col37.unpack()); @@ -580,73 +580,73 @@ pub fn write_trace_simd( op0_limb_27_col65, ]); - // read_positive_num_bits_252. + // ReadPositive_num_bits_252. - let memory_address_to_id_value_tmp_1541 = + let memoryaddresstoid_value_tmp_31b3_12 = memory_address_to_id_state.deduce_output(((input_pc_col0) + (M31_1))); - let memory_id_to_big_value_tmp_1542 = - memory_id_to_big_state.deduce_output(memory_address_to_id_value_tmp_1541); - let op1_id_col66 = memory_address_to_id_value_tmp_1541; + let memoryidtobig_value_tmp_31b3_13 = + memory_id_to_big_state.deduce_output(memoryaddresstoid_value_tmp_31b3_12); + let op1_id_col66 = memoryaddresstoid_value_tmp_31b3_12; trace[66].data[row_index] = op1_id_col66; sub_components_inputs.memory_address_to_id_inputs[2] .extend(((input_pc_col0) + (M31_1)).unpack()); lookup_data.memoryaddresstoid[2].push([((input_pc_col0) + (M31_1)), op1_id_col66]); - let op1_limb_0_col67 = memory_id_to_big_value_tmp_1542.get_m31(0); + let op1_limb_0_col67 = memoryidtobig_value_tmp_31b3_13.get_m31(0); trace[67].data[row_index] = op1_limb_0_col67; - let op1_limb_1_col68 = memory_id_to_big_value_tmp_1542.get_m31(1); + let op1_limb_1_col68 = memoryidtobig_value_tmp_31b3_13.get_m31(1); trace[68].data[row_index] = op1_limb_1_col68; - let op1_limb_2_col69 = memory_id_to_big_value_tmp_1542.get_m31(2); + let op1_limb_2_col69 = memoryidtobig_value_tmp_31b3_13.get_m31(2); trace[69].data[row_index] = op1_limb_2_col69; - let op1_limb_3_col70 = memory_id_to_big_value_tmp_1542.get_m31(3); + let op1_limb_3_col70 = memoryidtobig_value_tmp_31b3_13.get_m31(3); trace[70].data[row_index] = op1_limb_3_col70; - let op1_limb_4_col71 = memory_id_to_big_value_tmp_1542.get_m31(4); + let op1_limb_4_col71 = memoryidtobig_value_tmp_31b3_13.get_m31(4); trace[71].data[row_index] = op1_limb_4_col71; - let op1_limb_5_col72 = memory_id_to_big_value_tmp_1542.get_m31(5); + let op1_limb_5_col72 = memoryidtobig_value_tmp_31b3_13.get_m31(5); trace[72].data[row_index] = op1_limb_5_col72; - let op1_limb_6_col73 = memory_id_to_big_value_tmp_1542.get_m31(6); + let op1_limb_6_col73 = memoryidtobig_value_tmp_31b3_13.get_m31(6); trace[73].data[row_index] = op1_limb_6_col73; - let op1_limb_7_col74 = memory_id_to_big_value_tmp_1542.get_m31(7); + let op1_limb_7_col74 = memoryidtobig_value_tmp_31b3_13.get_m31(7); trace[74].data[row_index] = op1_limb_7_col74; - let op1_limb_8_col75 = memory_id_to_big_value_tmp_1542.get_m31(8); + let op1_limb_8_col75 = memoryidtobig_value_tmp_31b3_13.get_m31(8); trace[75].data[row_index] = op1_limb_8_col75; - let op1_limb_9_col76 = memory_id_to_big_value_tmp_1542.get_m31(9); + let op1_limb_9_col76 = memoryidtobig_value_tmp_31b3_13.get_m31(9); trace[76].data[row_index] = op1_limb_9_col76; - let op1_limb_10_col77 = memory_id_to_big_value_tmp_1542.get_m31(10); + let op1_limb_10_col77 = memoryidtobig_value_tmp_31b3_13.get_m31(10); trace[77].data[row_index] = op1_limb_10_col77; - let op1_limb_11_col78 = memory_id_to_big_value_tmp_1542.get_m31(11); + let op1_limb_11_col78 = memoryidtobig_value_tmp_31b3_13.get_m31(11); trace[78].data[row_index] = op1_limb_11_col78; - let op1_limb_12_col79 = memory_id_to_big_value_tmp_1542.get_m31(12); + let op1_limb_12_col79 = memoryidtobig_value_tmp_31b3_13.get_m31(12); trace[79].data[row_index] = op1_limb_12_col79; - let op1_limb_13_col80 = memory_id_to_big_value_tmp_1542.get_m31(13); + let op1_limb_13_col80 = memoryidtobig_value_tmp_31b3_13.get_m31(13); trace[80].data[row_index] = op1_limb_13_col80; - let op1_limb_14_col81 = memory_id_to_big_value_tmp_1542.get_m31(14); + let op1_limb_14_col81 = memoryidtobig_value_tmp_31b3_13.get_m31(14); trace[81].data[row_index] = op1_limb_14_col81; - let op1_limb_15_col82 = memory_id_to_big_value_tmp_1542.get_m31(15); + let op1_limb_15_col82 = memoryidtobig_value_tmp_31b3_13.get_m31(15); trace[82].data[row_index] = op1_limb_15_col82; - let op1_limb_16_col83 = memory_id_to_big_value_tmp_1542.get_m31(16); + let op1_limb_16_col83 = memoryidtobig_value_tmp_31b3_13.get_m31(16); trace[83].data[row_index] = op1_limb_16_col83; - let op1_limb_17_col84 = memory_id_to_big_value_tmp_1542.get_m31(17); + let op1_limb_17_col84 = memoryidtobig_value_tmp_31b3_13.get_m31(17); trace[84].data[row_index] = op1_limb_17_col84; - let op1_limb_18_col85 = memory_id_to_big_value_tmp_1542.get_m31(18); + let op1_limb_18_col85 = memoryidtobig_value_tmp_31b3_13.get_m31(18); trace[85].data[row_index] = op1_limb_18_col85; - let op1_limb_19_col86 = memory_id_to_big_value_tmp_1542.get_m31(19); + let op1_limb_19_col86 = memoryidtobig_value_tmp_31b3_13.get_m31(19); trace[86].data[row_index] = op1_limb_19_col86; - let op1_limb_20_col87 = memory_id_to_big_value_tmp_1542.get_m31(20); + let op1_limb_20_col87 = memoryidtobig_value_tmp_31b3_13.get_m31(20); trace[87].data[row_index] = op1_limb_20_col87; - let op1_limb_21_col88 = memory_id_to_big_value_tmp_1542.get_m31(21); + let op1_limb_21_col88 = memoryidtobig_value_tmp_31b3_13.get_m31(21); trace[88].data[row_index] = op1_limb_21_col88; - let op1_limb_22_col89 = memory_id_to_big_value_tmp_1542.get_m31(22); + let op1_limb_22_col89 = memoryidtobig_value_tmp_31b3_13.get_m31(22); trace[89].data[row_index] = op1_limb_22_col89; - let op1_limb_23_col90 = memory_id_to_big_value_tmp_1542.get_m31(23); + let op1_limb_23_col90 = memoryidtobig_value_tmp_31b3_13.get_m31(23); trace[90].data[row_index] = op1_limb_23_col90; - let op1_limb_24_col91 = memory_id_to_big_value_tmp_1542.get_m31(24); + let op1_limb_24_col91 = memoryidtobig_value_tmp_31b3_13.get_m31(24); trace[91].data[row_index] = op1_limb_24_col91; - let op1_limb_25_col92 = memory_id_to_big_value_tmp_1542.get_m31(25); + let op1_limb_25_col92 = memoryidtobig_value_tmp_31b3_13.get_m31(25); trace[92].data[row_index] = op1_limb_25_col92; - let op1_limb_26_col93 = memory_id_to_big_value_tmp_1542.get_m31(26); + let op1_limb_26_col93 = memoryidtobig_value_tmp_31b3_13.get_m31(26); trace[93].data[row_index] = op1_limb_26_col93; - let op1_limb_27_col94 = memory_id_to_big_value_tmp_1542.get_m31(27); + let op1_limb_27_col94 = memoryidtobig_value_tmp_31b3_13.get_m31(27); trace[94].data[row_index] = op1_limb_27_col94; sub_components_inputs.memory_id_to_big_inputs[2].extend(op1_id_col66.unpack()); @@ -682,36 +682,36 @@ pub fn write_trace_simd( op1_limb_27_col94, ]); - // verify_mul252. + // VerifyMul252. - let conv_tmp_1543 = + let conv_tmp_31b3_14 = (((M31_0) - (dst_limb_0_col9)) + ((op0_limb_0_col38) * (op1_limb_0_col67))); - let conv_tmp_1544 = ((((M31_0) - (dst_limb_1_col10)) + let conv_tmp_31b3_15 = ((((M31_0) - (dst_limb_1_col10)) + ((op0_limb_0_col38) * (op1_limb_1_col68))) + ((op0_limb_1_col39) * (op1_limb_0_col67))); - let conv_tmp_1545 = (((((M31_0) - (dst_limb_2_col11)) + let conv_tmp_31b3_16 = (((((M31_0) - (dst_limb_2_col11)) + ((op0_limb_0_col38) * (op1_limb_2_col69))) + ((op0_limb_1_col39) * (op1_limb_1_col68))) + ((op0_limb_2_col40) * (op1_limb_0_col67))); - let conv_tmp_1546 = ((((((M31_0) - (dst_limb_3_col12)) + let conv_tmp_31b3_17 = ((((((M31_0) - (dst_limb_3_col12)) + ((op0_limb_0_col38) * (op1_limb_3_col70))) + ((op0_limb_1_col39) * (op1_limb_2_col69))) + ((op0_limb_2_col40) * (op1_limb_1_col68))) + ((op0_limb_3_col41) * (op1_limb_0_col67))); - let conv_tmp_1547 = (((((((M31_0) - (dst_limb_4_col13)) + let conv_tmp_31b3_18 = (((((((M31_0) - (dst_limb_4_col13)) + ((op0_limb_0_col38) * (op1_limb_4_col71))) + ((op0_limb_1_col39) * (op1_limb_3_col70))) + ((op0_limb_2_col40) * (op1_limb_2_col69))) + ((op0_limb_3_col41) * (op1_limb_1_col68))) + ((op0_limb_4_col42) * (op1_limb_0_col67))); - let conv_tmp_1548 = ((((((((M31_0) - (dst_limb_5_col14)) + let conv_tmp_31b3_19 = ((((((((M31_0) - (dst_limb_5_col14)) + ((op0_limb_0_col38) * (op1_limb_5_col72))) + ((op0_limb_1_col39) * (op1_limb_4_col71))) + ((op0_limb_2_col40) * (op1_limb_3_col70))) + ((op0_limb_3_col41) * (op1_limb_2_col69))) + ((op0_limb_4_col42) * (op1_limb_1_col68))) + ((op0_limb_5_col43) * (op1_limb_0_col67))); - let conv_tmp_1549 = (((((((((M31_0) - (dst_limb_6_col15)) + let conv_tmp_31b3_20 = (((((((((M31_0) - (dst_limb_6_col15)) + ((op0_limb_0_col38) * (op1_limb_6_col73))) + ((op0_limb_1_col39) * (op1_limb_5_col72))) + ((op0_limb_2_col40) * (op1_limb_4_col71))) @@ -719,7 +719,7 @@ pub fn write_trace_simd( + ((op0_limb_4_col42) * (op1_limb_2_col69))) + ((op0_limb_5_col43) * (op1_limb_1_col68))) + ((op0_limb_6_col44) * (op1_limb_0_col67))); - let conv_tmp_1550 = ((((((((((M31_0) - (dst_limb_7_col16)) + let conv_tmp_31b3_21 = ((((((((((M31_0) - (dst_limb_7_col16)) + ((op0_limb_0_col38) * (op1_limb_7_col74))) + ((op0_limb_1_col39) * (op1_limb_6_col73))) + ((op0_limb_2_col40) * (op1_limb_5_col72))) @@ -728,7 +728,7 @@ pub fn write_trace_simd( + ((op0_limb_5_col43) * (op1_limb_2_col69))) + ((op0_limb_6_col44) * (op1_limb_1_col68))) + ((op0_limb_7_col45) * (op1_limb_0_col67))); - let conv_tmp_1551 = (((((((((((M31_0) - (dst_limb_8_col17)) + let conv_tmp_31b3_22 = (((((((((((M31_0) - (dst_limb_8_col17)) + ((op0_limb_0_col38) * (op1_limb_8_col75))) + ((op0_limb_1_col39) * (op1_limb_7_col74))) + ((op0_limb_2_col40) * (op1_limb_6_col73))) @@ -738,7 +738,7 @@ pub fn write_trace_simd( + ((op0_limb_6_col44) * (op1_limb_2_col69))) + ((op0_limb_7_col45) * (op1_limb_1_col68))) + ((op0_limb_8_col46) * (op1_limb_0_col67))); - let conv_tmp_1552 = ((((((((((((M31_0) - (dst_limb_9_col18)) + let conv_tmp_31b3_23 = ((((((((((((M31_0) - (dst_limb_9_col18)) + ((op0_limb_0_col38) * (op1_limb_9_col76))) + ((op0_limb_1_col39) * (op1_limb_8_col75))) + ((op0_limb_2_col40) * (op1_limb_7_col74))) @@ -749,7 +749,7 @@ pub fn write_trace_simd( + ((op0_limb_7_col45) * (op1_limb_2_col69))) + ((op0_limb_8_col46) * (op1_limb_1_col68))) + ((op0_limb_9_col47) * (op1_limb_0_col67))); - let conv_tmp_1553 = (((((((((((((M31_0) - (dst_limb_10_col19)) + let conv_tmp_31b3_24 = (((((((((((((M31_0) - (dst_limb_10_col19)) + ((op0_limb_0_col38) * (op1_limb_10_col77))) + ((op0_limb_1_col39) * (op1_limb_9_col76))) + ((op0_limb_2_col40) * (op1_limb_8_col75))) @@ -761,7 +761,7 @@ pub fn write_trace_simd( + ((op0_limb_8_col46) * (op1_limb_2_col69))) + ((op0_limb_9_col47) * (op1_limb_1_col68))) + ((op0_limb_10_col48) * (op1_limb_0_col67))); - let conv_tmp_1554 = ((((((((((((((M31_0) - (dst_limb_11_col20)) + let conv_tmp_31b3_25 = ((((((((((((((M31_0) - (dst_limb_11_col20)) + ((op0_limb_0_col38) * (op1_limb_11_col78))) + ((op0_limb_1_col39) * (op1_limb_10_col77))) + ((op0_limb_2_col40) * (op1_limb_9_col76))) @@ -774,7 +774,7 @@ pub fn write_trace_simd( + ((op0_limb_9_col47) * (op1_limb_2_col69))) + ((op0_limb_10_col48) * (op1_limb_1_col68))) + ((op0_limb_11_col49) * (op1_limb_0_col67))); - let conv_tmp_1555 = (((((((((((((((M31_0) - (dst_limb_12_col21)) + let conv_tmp_31b3_26 = (((((((((((((((M31_0) - (dst_limb_12_col21)) + ((op0_limb_0_col38) * (op1_limb_12_col79))) + ((op0_limb_1_col39) * (op1_limb_11_col78))) + ((op0_limb_2_col40) * (op1_limb_10_col77))) @@ -788,7 +788,7 @@ pub fn write_trace_simd( + ((op0_limb_10_col48) * (op1_limb_2_col69))) + ((op0_limb_11_col49) * (op1_limb_1_col68))) + ((op0_limb_12_col50) * (op1_limb_0_col67))); - let conv_tmp_1556 = ((((((((((((((((M31_0) - (dst_limb_13_col22)) + let conv_tmp_31b3_27 = ((((((((((((((((M31_0) - (dst_limb_13_col22)) + ((op0_limb_0_col38) * (op1_limb_13_col80))) + ((op0_limb_1_col39) * (op1_limb_12_col79))) + ((op0_limb_2_col40) * (op1_limb_11_col78))) @@ -803,7 +803,7 @@ pub fn write_trace_simd( + ((op0_limb_11_col49) * (op1_limb_2_col69))) + ((op0_limb_12_col50) * (op1_limb_1_col68))) + ((op0_limb_13_col51) * (op1_limb_0_col67))); - let conv_tmp_1557 = (((((((((((((((((M31_0) - (dst_limb_14_col23)) + let conv_tmp_31b3_28 = (((((((((((((((((M31_0) - (dst_limb_14_col23)) + ((op0_limb_0_col38) * (op1_limb_14_col81))) + ((op0_limb_1_col39) * (op1_limb_13_col80))) + ((op0_limb_2_col40) * (op1_limb_12_col79))) @@ -819,7 +819,7 @@ pub fn write_trace_simd( + ((op0_limb_12_col50) * (op1_limb_2_col69))) + ((op0_limb_13_col51) * (op1_limb_1_col68))) + ((op0_limb_14_col52) * (op1_limb_0_col67))); - let conv_tmp_1558 = ((((((((((((((((((M31_0) - (dst_limb_15_col24)) + let conv_tmp_31b3_29 = ((((((((((((((((((M31_0) - (dst_limb_15_col24)) + ((op0_limb_0_col38) * (op1_limb_15_col82))) + ((op0_limb_1_col39) * (op1_limb_14_col81))) + ((op0_limb_2_col40) * (op1_limb_13_col80))) @@ -836,7 +836,8 @@ pub fn write_trace_simd( + ((op0_limb_13_col51) * (op1_limb_2_col69))) + ((op0_limb_14_col52) * (op1_limb_1_col68))) + ((op0_limb_15_col53) * (op1_limb_0_col67))); - let conv_tmp_1559 = (((((((((((((((((((M31_0) - (dst_limb_16_col25)) + let conv_tmp_31b3_30 = (((((((((((((((((((M31_0) + - (dst_limb_16_col25)) + ((op0_limb_0_col38) * (op1_limb_16_col83))) + ((op0_limb_1_col39) * (op1_limb_15_col82))) + ((op0_limb_2_col40) * (op1_limb_14_col81))) @@ -854,7 +855,8 @@ pub fn write_trace_simd( + ((op0_limb_14_col52) * (op1_limb_2_col69))) + ((op0_limb_15_col53) * (op1_limb_1_col68))) + ((op0_limb_16_col54) * (op1_limb_0_col67))); - let conv_tmp_1560 = ((((((((((((((((((((M31_0) - (dst_limb_17_col26)) + let conv_tmp_31b3_31 = ((((((((((((((((((((M31_0) + - (dst_limb_17_col26)) + ((op0_limb_0_col38) * (op1_limb_17_col84))) + ((op0_limb_1_col39) * (op1_limb_16_col83))) + ((op0_limb_2_col40) * (op1_limb_15_col82))) @@ -873,7 +875,7 @@ pub fn write_trace_simd( + ((op0_limb_15_col53) * (op1_limb_2_col69))) + ((op0_limb_16_col54) * (op1_limb_1_col68))) + ((op0_limb_17_col55) * (op1_limb_0_col67))); - let conv_tmp_1561 = (((((((((((((((((((((M31_0) + let conv_tmp_31b3_32 = (((((((((((((((((((((M31_0) - (dst_limb_18_col27)) + ((op0_limb_0_col38) * (op1_limb_18_col85))) + ((op0_limb_1_col39) * (op1_limb_17_col84))) @@ -894,7 +896,7 @@ pub fn write_trace_simd( + ((op0_limb_16_col54) * (op1_limb_2_col69))) + ((op0_limb_17_col55) * (op1_limb_1_col68))) + ((op0_limb_18_col56) * (op1_limb_0_col67))); - let conv_tmp_1562 = ((((((((((((((((((((((M31_0) + let conv_tmp_31b3_33 = ((((((((((((((((((((((M31_0) - (dst_limb_19_col28)) + ((op0_limb_0_col38) * (op1_limb_19_col86))) + ((op0_limb_1_col39) * (op1_limb_18_col85))) @@ -916,7 +918,7 @@ pub fn write_trace_simd( + ((op0_limb_17_col55) * (op1_limb_2_col69))) + ((op0_limb_18_col56) * (op1_limb_1_col68))) + ((op0_limb_19_col57) * (op1_limb_0_col67))); - let conv_tmp_1563 = (((((((((((((((((((((((M31_0) + let conv_tmp_31b3_34 = (((((((((((((((((((((((M31_0) - (dst_limb_20_col29)) + ((op0_limb_0_col38) * (op1_limb_20_col87))) + ((op0_limb_1_col39) * (op1_limb_19_col86))) @@ -939,7 +941,7 @@ pub fn write_trace_simd( + ((op0_limb_18_col56) * (op1_limb_2_col69))) + ((op0_limb_19_col57) * (op1_limb_1_col68))) + ((op0_limb_20_col58) * (op1_limb_0_col67))); - let conv_tmp_1564 = ((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_35 = ((((((((((((((((((((((((M31_0) - (dst_limb_21_col30)) + ((op0_limb_0_col38) * (op1_limb_21_col88))) + ((op0_limb_1_col39) * (op1_limb_20_col87))) @@ -963,7 +965,7 @@ pub fn write_trace_simd( + ((op0_limb_19_col57) * (op1_limb_2_col69))) + ((op0_limb_20_col58) * (op1_limb_1_col68))) + ((op0_limb_21_col59) * (op1_limb_0_col67))); - let conv_tmp_1565 = (((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_36 = (((((((((((((((((((((((((M31_0) - (dst_limb_22_col31)) + ((op0_limb_0_col38) * (op1_limb_22_col89))) + ((op0_limb_1_col39) * (op1_limb_21_col88))) @@ -988,7 +990,7 @@ pub fn write_trace_simd( + ((op0_limb_20_col58) * (op1_limb_2_col69))) + ((op0_limb_21_col59) * (op1_limb_1_col68))) + ((op0_limb_22_col60) * (op1_limb_0_col67))); - let conv_tmp_1566 = ((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_37 = ((((((((((((((((((((((((((M31_0) - (dst_limb_23_col32)) + ((op0_limb_0_col38) * (op1_limb_23_col90))) + ((op0_limb_1_col39) * (op1_limb_22_col89))) @@ -1014,7 +1016,7 @@ pub fn write_trace_simd( + ((op0_limb_21_col59) * (op1_limb_2_col69))) + ((op0_limb_22_col60) * (op1_limb_1_col68))) + ((op0_limb_23_col61) * (op1_limb_0_col67))); - let conv_tmp_1567 = (((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_38 = (((((((((((((((((((((((((((M31_0) - (dst_limb_24_col33)) + ((op0_limb_0_col38) * (op1_limb_24_col91))) + ((op0_limb_1_col39) * (op1_limb_23_col90))) @@ -1041,7 +1043,7 @@ pub fn write_trace_simd( + ((op0_limb_22_col60) * (op1_limb_2_col69))) + ((op0_limb_23_col61) * (op1_limb_1_col68))) + ((op0_limb_24_col62) * (op1_limb_0_col67))); - let conv_tmp_1568 = ((((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_39 = ((((((((((((((((((((((((((((M31_0) - (dst_limb_25_col34)) + ((op0_limb_0_col38) * (op1_limb_25_col92))) + ((op0_limb_1_col39) * (op1_limb_24_col91))) @@ -1069,7 +1071,7 @@ pub fn write_trace_simd( + ((op0_limb_23_col61) * (op1_limb_2_col69))) + ((op0_limb_24_col62) * (op1_limb_1_col68))) + ((op0_limb_25_col63) * (op1_limb_0_col67))); - let conv_tmp_1569 = (((((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_40 = (((((((((((((((((((((((((((((M31_0) - (dst_limb_26_col35)) + ((op0_limb_0_col38) * (op1_limb_26_col93))) + ((op0_limb_1_col39) * (op1_limb_25_col92))) @@ -1098,7 +1100,7 @@ pub fn write_trace_simd( + ((op0_limb_24_col62) * (op1_limb_2_col69))) + ((op0_limb_25_col63) * (op1_limb_1_col68))) + ((op0_limb_26_col64) * (op1_limb_0_col67))); - let conv_tmp_1570 = ((((((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_41 = ((((((((((((((((((((((((((((((M31_0) - (dst_limb_27_col36)) + ((op0_limb_0_col38) * (op1_limb_27_col94))) + ((op0_limb_1_col39) * (op1_limb_26_col93))) @@ -1128,7 +1130,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_2_col69))) + ((op0_limb_26_col64) * (op1_limb_1_col68))) + ((op0_limb_27_col65) * (op1_limb_0_col67))); - let conv_tmp_1571 = ((((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_42 = ((((((((((((((((((((((((((((M31_0) + ((op0_limb_1_col39) * (op1_limb_27_col94))) + ((op0_limb_2_col40) * (op1_limb_26_col93))) + ((op0_limb_3_col41) * (op1_limb_25_col92))) @@ -1156,7 +1158,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_3_col70))) + ((op0_limb_26_col64) * (op1_limb_2_col69))) + ((op0_limb_27_col65) * (op1_limb_1_col68))); - let conv_tmp_1572 = (((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_43 = (((((((((((((((((((((((((((M31_0) + ((op0_limb_2_col40) * (op1_limb_27_col94))) + ((op0_limb_3_col41) * (op1_limb_26_col93))) + ((op0_limb_4_col42) * (op1_limb_25_col92))) @@ -1183,7 +1185,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_4_col71))) + ((op0_limb_26_col64) * (op1_limb_3_col70))) + ((op0_limb_27_col65) * (op1_limb_2_col69))); - let conv_tmp_1573 = ((((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_44 = ((((((((((((((((((((((((((M31_0) + ((op0_limb_3_col41) * (op1_limb_27_col94))) + ((op0_limb_4_col42) * (op1_limb_26_col93))) + ((op0_limb_5_col43) * (op1_limb_25_col92))) @@ -1209,7 +1211,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_5_col72))) + ((op0_limb_26_col64) * (op1_limb_4_col71))) + ((op0_limb_27_col65) * (op1_limb_3_col70))); - let conv_tmp_1574 = (((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_45 = (((((((((((((((((((((((((M31_0) + ((op0_limb_4_col42) * (op1_limb_27_col94))) + ((op0_limb_5_col43) * (op1_limb_26_col93))) + ((op0_limb_6_col44) * (op1_limb_25_col92))) @@ -1234,7 +1236,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_6_col73))) + ((op0_limb_26_col64) * (op1_limb_5_col72))) + ((op0_limb_27_col65) * (op1_limb_4_col71))); - let conv_tmp_1575 = ((((((((((((((((((((((((M31_0) + let conv_tmp_31b3_46 = ((((((((((((((((((((((((M31_0) + ((op0_limb_5_col43) * (op1_limb_27_col94))) + ((op0_limb_6_col44) * (op1_limb_26_col93))) + ((op0_limb_7_col45) * (op1_limb_25_col92))) @@ -1258,7 +1260,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_7_col74))) + ((op0_limb_26_col64) * (op1_limb_6_col73))) + ((op0_limb_27_col65) * (op1_limb_5_col72))); - let conv_tmp_1576 = (((((((((((((((((((((((M31_0) + let conv_tmp_31b3_47 = (((((((((((((((((((((((M31_0) + ((op0_limb_6_col44) * (op1_limb_27_col94))) + ((op0_limb_7_col45) * (op1_limb_26_col93))) + ((op0_limb_8_col46) * (op1_limb_25_col92))) @@ -1281,7 +1283,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_8_col75))) + ((op0_limb_26_col64) * (op1_limb_7_col74))) + ((op0_limb_27_col65) * (op1_limb_6_col73))); - let conv_tmp_1577 = ((((((((((((((((((((((M31_0) + let conv_tmp_31b3_48 = ((((((((((((((((((((((M31_0) + ((op0_limb_7_col45) * (op1_limb_27_col94))) + ((op0_limb_8_col46) * (op1_limb_26_col93))) + ((op0_limb_9_col47) * (op1_limb_25_col92))) @@ -1303,7 +1305,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_9_col76))) + ((op0_limb_26_col64) * (op1_limb_8_col75))) + ((op0_limb_27_col65) * (op1_limb_7_col74))); - let conv_tmp_1578 = (((((((((((((((((((((M31_0) + let conv_tmp_31b3_49 = (((((((((((((((((((((M31_0) + ((op0_limb_8_col46) * (op1_limb_27_col94))) + ((op0_limb_9_col47) * (op1_limb_26_col93))) + ((op0_limb_10_col48) * (op1_limb_25_col92))) @@ -1324,7 +1326,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_10_col77))) + ((op0_limb_26_col64) * (op1_limb_9_col76))) + ((op0_limb_27_col65) * (op1_limb_8_col75))); - let conv_tmp_1579 = ((((((((((((((((((((M31_0) + let conv_tmp_31b3_50 = ((((((((((((((((((((M31_0) + ((op0_limb_9_col47) * (op1_limb_27_col94))) + ((op0_limb_10_col48) * (op1_limb_26_col93))) + ((op0_limb_11_col49) * (op1_limb_25_col92))) @@ -1344,7 +1346,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_11_col78))) + ((op0_limb_26_col64) * (op1_limb_10_col77))) + ((op0_limb_27_col65) * (op1_limb_9_col76))); - let conv_tmp_1580 = (((((((((((((((((((M31_0) + let conv_tmp_31b3_51 = (((((((((((((((((((M31_0) + ((op0_limb_10_col48) * (op1_limb_27_col94))) + ((op0_limb_11_col49) * (op1_limb_26_col93))) + ((op0_limb_12_col50) * (op1_limb_25_col92))) @@ -1363,7 +1365,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_12_col79))) + ((op0_limb_26_col64) * (op1_limb_11_col78))) + ((op0_limb_27_col65) * (op1_limb_10_col77))); - let conv_tmp_1581 = ((((((((((((((((((M31_0) + let conv_tmp_31b3_52 = ((((((((((((((((((M31_0) + ((op0_limb_11_col49) * (op1_limb_27_col94))) + ((op0_limb_12_col50) * (op1_limb_26_col93))) + ((op0_limb_13_col51) * (op1_limb_25_col92))) @@ -1381,7 +1383,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_13_col80))) + ((op0_limb_26_col64) * (op1_limb_12_col79))) + ((op0_limb_27_col65) * (op1_limb_11_col78))); - let conv_tmp_1582 = (((((((((((((((((M31_0) + let conv_tmp_31b3_53 = (((((((((((((((((M31_0) + ((op0_limb_12_col50) * (op1_limb_27_col94))) + ((op0_limb_13_col51) * (op1_limb_26_col93))) + ((op0_limb_14_col52) * (op1_limb_25_col92))) @@ -1398,7 +1400,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_14_col81))) + ((op0_limb_26_col64) * (op1_limb_13_col80))) + ((op0_limb_27_col65) * (op1_limb_12_col79))); - let conv_tmp_1583 = ((((((((((((((((M31_0) + let conv_tmp_31b3_54 = ((((((((((((((((M31_0) + ((op0_limb_13_col51) * (op1_limb_27_col94))) + ((op0_limb_14_col52) * (op1_limb_26_col93))) + ((op0_limb_15_col53) * (op1_limb_25_col92))) @@ -1414,7 +1416,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_15_col82))) + ((op0_limb_26_col64) * (op1_limb_14_col81))) + ((op0_limb_27_col65) * (op1_limb_13_col80))); - let conv_tmp_1584 = (((((((((((((((M31_0) + let conv_tmp_31b3_55 = (((((((((((((((M31_0) + ((op0_limb_14_col52) * (op1_limb_27_col94))) + ((op0_limb_15_col53) * (op1_limb_26_col93))) + ((op0_limb_16_col54) * (op1_limb_25_col92))) @@ -1429,7 +1431,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_16_col83))) + ((op0_limb_26_col64) * (op1_limb_15_col82))) + ((op0_limb_27_col65) * (op1_limb_14_col81))); - let conv_tmp_1585 = ((((((((((((((M31_0) + let conv_tmp_31b3_56 = ((((((((((((((M31_0) + ((op0_limb_15_col53) * (op1_limb_27_col94))) + ((op0_limb_16_col54) * (op1_limb_26_col93))) + ((op0_limb_17_col55) * (op1_limb_25_col92))) @@ -1443,7 +1445,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_17_col84))) + ((op0_limb_26_col64) * (op1_limb_16_col83))) + ((op0_limb_27_col65) * (op1_limb_15_col82))); - let conv_tmp_1586 = (((((((((((((M31_0) + let conv_tmp_31b3_57 = (((((((((((((M31_0) + ((op0_limb_16_col54) * (op1_limb_27_col94))) + ((op0_limb_17_col55) * (op1_limb_26_col93))) + ((op0_limb_18_col56) * (op1_limb_25_col92))) @@ -1456,7 +1458,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_18_col85))) + ((op0_limb_26_col64) * (op1_limb_17_col84))) + ((op0_limb_27_col65) * (op1_limb_16_col83))); - let conv_tmp_1587 = ((((((((((((M31_0) + let conv_tmp_31b3_58 = ((((((((((((M31_0) + ((op0_limb_17_col55) * (op1_limb_27_col94))) + ((op0_limb_18_col56) * (op1_limb_26_col93))) + ((op0_limb_19_col57) * (op1_limb_25_col92))) @@ -1468,7 +1470,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_19_col86))) + ((op0_limb_26_col64) * (op1_limb_18_col85))) + ((op0_limb_27_col65) * (op1_limb_17_col84))); - let conv_tmp_1588 = (((((((((((M31_0) + let conv_tmp_31b3_59 = (((((((((((M31_0) + ((op0_limb_18_col56) * (op1_limb_27_col94))) + ((op0_limb_19_col57) * (op1_limb_26_col93))) + ((op0_limb_20_col58) * (op1_limb_25_col92))) @@ -1479,7 +1481,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_20_col87))) + ((op0_limb_26_col64) * (op1_limb_19_col86))) + ((op0_limb_27_col65) * (op1_limb_18_col85))); - let conv_tmp_1589 = ((((((((((M31_0) + let conv_tmp_31b3_60 = ((((((((((M31_0) + ((op0_limb_19_col57) * (op1_limb_27_col94))) + ((op0_limb_20_col58) * (op1_limb_26_col93))) + ((op0_limb_21_col59) * (op1_limb_25_col92))) @@ -1489,7 +1491,7 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_21_col88))) + ((op0_limb_26_col64) * (op1_limb_20_col87))) + ((op0_limb_27_col65) * (op1_limb_19_col86))); - let conv_tmp_1590 = (((((((((M31_0) + let conv_tmp_31b3_61 = (((((((((M31_0) + ((op0_limb_20_col58) * (op1_limb_27_col94))) + ((op0_limb_21_col59) * (op1_limb_26_col93))) + ((op0_limb_22_col60) * (op1_limb_25_col92))) @@ -1498,152 +1500,154 @@ pub fn write_trace_simd( + ((op0_limb_25_col63) * (op1_limb_22_col89))) + ((op0_limb_26_col64) * (op1_limb_21_col88))) + ((op0_limb_27_col65) * (op1_limb_20_col87))); - let conv_tmp_1591 = ((((((((M31_0) + ((op0_limb_21_col59) * (op1_limb_27_col94))) + let conv_tmp_31b3_62 = ((((((((M31_0) + + ((op0_limb_21_col59) * (op1_limb_27_col94))) + ((op0_limb_22_col60) * (op1_limb_26_col93))) + ((op0_limb_23_col61) * (op1_limb_25_col92))) + ((op0_limb_24_col62) * (op1_limb_24_col91))) + ((op0_limb_25_col63) * (op1_limb_23_col90))) + ((op0_limb_26_col64) * (op1_limb_22_col89))) + ((op0_limb_27_col65) * (op1_limb_21_col88))); - let conv_tmp_1592 = (((((((M31_0) + ((op0_limb_22_col60) * (op1_limb_27_col94))) + let conv_tmp_31b3_63 = (((((((M31_0) + + ((op0_limb_22_col60) * (op1_limb_27_col94))) + ((op0_limb_23_col61) * (op1_limb_26_col93))) + ((op0_limb_24_col62) * (op1_limb_25_col92))) + ((op0_limb_25_col63) * (op1_limb_24_col91))) + ((op0_limb_26_col64) * (op1_limb_23_col90))) + ((op0_limb_27_col65) * (op1_limb_22_col89))); - let conv_tmp_1593 = ((((((M31_0) + ((op0_limb_23_col61) * (op1_limb_27_col94))) + let conv_tmp_31b3_64 = ((((((M31_0) + ((op0_limb_23_col61) * (op1_limb_27_col94))) + ((op0_limb_24_col62) * (op1_limb_26_col93))) + ((op0_limb_25_col63) * (op1_limb_25_col92))) + ((op0_limb_26_col64) * (op1_limb_24_col91))) + ((op0_limb_27_col65) * (op1_limb_23_col90))); - let conv_tmp_1594 = (((((M31_0) + ((op0_limb_24_col62) * (op1_limb_27_col94))) + let conv_tmp_31b3_65 = (((((M31_0) + ((op0_limb_24_col62) * (op1_limb_27_col94))) + ((op0_limb_25_col63) * (op1_limb_26_col93))) + ((op0_limb_26_col64) * (op1_limb_25_col92))) + ((op0_limb_27_col65) * (op1_limb_24_col91))); - let conv_tmp_1595 = ((((M31_0) + ((op0_limb_25_col63) * (op1_limb_27_col94))) + let conv_tmp_31b3_66 = ((((M31_0) + ((op0_limb_25_col63) * (op1_limb_27_col94))) + ((op0_limb_26_col64) * (op1_limb_26_col93))) + ((op0_limb_27_col65) * (op1_limb_25_col92))); - let conv_tmp_1596 = (((M31_0) + ((op0_limb_26_col64) * (op1_limb_27_col94))) + let conv_tmp_31b3_67 = (((M31_0) + ((op0_limb_26_col64) * (op1_limb_27_col94))) + ((op0_limb_27_col65) * (op1_limb_26_col93))); - let conv_tmp_1597 = ((M31_0) + ((op0_limb_27_col65) * (op1_limb_27_col94))); - let conv_mod_tmp_1598 = ((((M31_0) + ((M31_32) * (conv_tmp_1543))) - - ((M31_4) * (conv_tmp_1564))) - + ((M31_8) * (conv_tmp_1592))); - let conv_mod_tmp_1599 = (((((M31_0) + ((M31_1) * (conv_tmp_1543))) - + ((M31_32) * (conv_tmp_1544))) - - ((M31_4) * (conv_tmp_1565))) - + ((M31_8) * (conv_tmp_1593))); - let conv_mod_tmp_1600 = (((((M31_0) + ((M31_1) * (conv_tmp_1544))) - + ((M31_32) * (conv_tmp_1545))) - - ((M31_4) * (conv_tmp_1566))) - + ((M31_8) * (conv_tmp_1594))); - let conv_mod_tmp_1601 = (((((M31_0) + ((M31_1) * (conv_tmp_1545))) - + ((M31_32) * (conv_tmp_1546))) - - ((M31_4) * (conv_tmp_1567))) - + ((M31_8) * (conv_tmp_1595))); - let conv_mod_tmp_1602 = (((((M31_0) + ((M31_1) * (conv_tmp_1546))) - + ((M31_32) * (conv_tmp_1547))) - - ((M31_4) * (conv_tmp_1568))) - + ((M31_8) * (conv_tmp_1596))); - let conv_mod_tmp_1603 = (((((M31_0) + ((M31_1) * (conv_tmp_1547))) - + ((M31_32) * (conv_tmp_1548))) - - ((M31_4) * (conv_tmp_1569))) - + ((M31_8) * (conv_tmp_1597))); - let conv_mod_tmp_1604 = ((((M31_0) + ((M31_1) * (conv_tmp_1548))) - + ((M31_32) * (conv_tmp_1549))) - - ((M31_4) * (conv_tmp_1570))); - let conv_mod_tmp_1605 = (((((M31_0) + ((M31_2) * (conv_tmp_1543))) - + ((M31_1) * (conv_tmp_1549))) - + ((M31_32) * (conv_tmp_1550))) - - ((M31_4) * (conv_tmp_1571))); - let conv_mod_tmp_1606 = (((((M31_0) + ((M31_2) * (conv_tmp_1544))) - + ((M31_1) * (conv_tmp_1550))) - + ((M31_32) * (conv_tmp_1551))) - - ((M31_4) * (conv_tmp_1572))); - let conv_mod_tmp_1607 = (((((M31_0) + ((M31_2) * (conv_tmp_1545))) - + ((M31_1) * (conv_tmp_1551))) - + ((M31_32) * (conv_tmp_1552))) - - ((M31_4) * (conv_tmp_1573))); - let conv_mod_tmp_1608 = (((((M31_0) + ((M31_2) * (conv_tmp_1546))) - + ((M31_1) * (conv_tmp_1552))) - + ((M31_32) * (conv_tmp_1553))) - - ((M31_4) * (conv_tmp_1574))); - let conv_mod_tmp_1609 = (((((M31_0) + ((M31_2) * (conv_tmp_1547))) - + ((M31_1) * (conv_tmp_1553))) - + ((M31_32) * (conv_tmp_1554))) - - ((M31_4) * (conv_tmp_1575))); - let conv_mod_tmp_1610 = (((((M31_0) + ((M31_2) * (conv_tmp_1548))) - + ((M31_1) * (conv_tmp_1554))) - + ((M31_32) * (conv_tmp_1555))) - - ((M31_4) * (conv_tmp_1576))); - let conv_mod_tmp_1611 = (((((M31_0) + ((M31_2) * (conv_tmp_1549))) - + ((M31_1) * (conv_tmp_1555))) - + ((M31_32) * (conv_tmp_1556))) - - ((M31_4) * (conv_tmp_1577))); - let conv_mod_tmp_1612 = (((((M31_0) + ((M31_2) * (conv_tmp_1550))) - + ((M31_1) * (conv_tmp_1556))) - + ((M31_32) * (conv_tmp_1557))) - - ((M31_4) * (conv_tmp_1578))); - let conv_mod_tmp_1613 = (((((M31_0) + ((M31_2) * (conv_tmp_1551))) - + ((M31_1) * (conv_tmp_1557))) - + ((M31_32) * (conv_tmp_1558))) - - ((M31_4) * (conv_tmp_1579))); - let conv_mod_tmp_1614 = (((((M31_0) + ((M31_2) * (conv_tmp_1552))) - + ((M31_1) * (conv_tmp_1558))) - + ((M31_32) * (conv_tmp_1559))) - - ((M31_4) * (conv_tmp_1580))); - let conv_mod_tmp_1615 = (((((M31_0) + ((M31_2) * (conv_tmp_1553))) - + ((M31_1) * (conv_tmp_1559))) - + ((M31_32) * (conv_tmp_1560))) - - ((M31_4) * (conv_tmp_1581))); - let conv_mod_tmp_1616 = (((((M31_0) + ((M31_2) * (conv_tmp_1554))) - + ((M31_1) * (conv_tmp_1560))) - + ((M31_32) * (conv_tmp_1561))) - - ((M31_4) * (conv_tmp_1582))); - let conv_mod_tmp_1617 = (((((M31_0) + ((M31_2) * (conv_tmp_1555))) - + ((M31_1) * (conv_tmp_1561))) - + ((M31_32) * (conv_tmp_1562))) - - ((M31_4) * (conv_tmp_1583))); - let conv_mod_tmp_1618 = (((((M31_0) + ((M31_2) * (conv_tmp_1556))) - + ((M31_1) * (conv_tmp_1562))) - + ((M31_32) * (conv_tmp_1563))) - - ((M31_4) * (conv_tmp_1584))); - let conv_mod_tmp_1619 = (((((M31_0) + ((M31_2) * (conv_tmp_1557))) - + ((M31_1) * (conv_tmp_1563))) - - ((M31_4) * (conv_tmp_1585))) - + ((M31_64) * (conv_tmp_1592))); - let conv_mod_tmp_1620 = (((((M31_0) + ((M31_2) * (conv_tmp_1558))) - - ((M31_4) * (conv_tmp_1586))) - + ((M31_2) * (conv_tmp_1592))) - + ((M31_64) * (conv_tmp_1593))); - let conv_mod_tmp_1621 = (((((M31_0) + ((M31_2) * (conv_tmp_1559))) - - ((M31_4) * (conv_tmp_1587))) - + ((M31_2) * (conv_tmp_1593))) - + ((M31_64) * (conv_tmp_1594))); - let conv_mod_tmp_1622 = (((((M31_0) + ((M31_2) * (conv_tmp_1560))) - - ((M31_4) * (conv_tmp_1588))) - + ((M31_2) * (conv_tmp_1594))) - + ((M31_64) * (conv_tmp_1595))); - let conv_mod_tmp_1623 = (((((M31_0) + ((M31_2) * (conv_tmp_1561))) - - ((M31_4) * (conv_tmp_1589))) - + ((M31_2) * (conv_tmp_1595))) - + ((M31_64) * (conv_tmp_1596))); - let conv_mod_tmp_1624 = (((((M31_0) + ((M31_2) * (conv_tmp_1562))) - - ((M31_4) * (conv_tmp_1590))) - + ((M31_2) * (conv_tmp_1596))) - + ((M31_64) * (conv_tmp_1597))); - let conv_mod_tmp_1625 = ((((M31_0) + ((M31_2) * (conv_tmp_1563))) - - ((M31_4) * (conv_tmp_1591))) - + ((M31_2) * (conv_tmp_1597))); - let k_mod_2_18_biased_tmp_1626 = - ((((PackedUInt32::from_m31(((conv_mod_tmp_1598) + (M31_134217728)))) - + (((PackedUInt32::from_m31(((conv_mod_tmp_1599) + (M31_134217728)))) + let conv_tmp_31b3_68 = ((M31_0) + ((op0_limb_27_col65) * (op1_limb_27_col94))); + let conv_mod_tmp_31b3_69 = ((((M31_0) + ((M31_32) * (conv_tmp_31b3_14))) + - ((M31_4) * (conv_tmp_31b3_35))) + + ((M31_8) * (conv_tmp_31b3_63))); + let conv_mod_tmp_31b3_70 = (((((M31_0) + ((M31_1) * (conv_tmp_31b3_14))) + + ((M31_32) * (conv_tmp_31b3_15))) + - ((M31_4) * (conv_tmp_31b3_36))) + + ((M31_8) * (conv_tmp_31b3_64))); + let conv_mod_tmp_31b3_71 = (((((M31_0) + ((M31_1) * (conv_tmp_31b3_15))) + + ((M31_32) * (conv_tmp_31b3_16))) + - ((M31_4) * (conv_tmp_31b3_37))) + + ((M31_8) * (conv_tmp_31b3_65))); + let conv_mod_tmp_31b3_72 = (((((M31_0) + ((M31_1) * (conv_tmp_31b3_16))) + + ((M31_32) * (conv_tmp_31b3_17))) + - ((M31_4) * (conv_tmp_31b3_38))) + + ((M31_8) * (conv_tmp_31b3_66))); + let conv_mod_tmp_31b3_73 = (((((M31_0) + ((M31_1) * (conv_tmp_31b3_17))) + + ((M31_32) * (conv_tmp_31b3_18))) + - ((M31_4) * (conv_tmp_31b3_39))) + + ((M31_8) * (conv_tmp_31b3_67))); + let conv_mod_tmp_31b3_74 = (((((M31_0) + ((M31_1) * (conv_tmp_31b3_18))) + + ((M31_32) * (conv_tmp_31b3_19))) + - ((M31_4) * (conv_tmp_31b3_40))) + + ((M31_8) * (conv_tmp_31b3_68))); + let conv_mod_tmp_31b3_75 = ((((M31_0) + ((M31_1) * (conv_tmp_31b3_19))) + + ((M31_32) * (conv_tmp_31b3_20))) + - ((M31_4) * (conv_tmp_31b3_41))); + let conv_mod_tmp_31b3_76 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_14))) + + ((M31_1) * (conv_tmp_31b3_20))) + + ((M31_32) * (conv_tmp_31b3_21))) + - ((M31_4) * (conv_tmp_31b3_42))); + let conv_mod_tmp_31b3_77 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_15))) + + ((M31_1) * (conv_tmp_31b3_21))) + + ((M31_32) * (conv_tmp_31b3_22))) + - ((M31_4) * (conv_tmp_31b3_43))); + let conv_mod_tmp_31b3_78 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_16))) + + ((M31_1) * (conv_tmp_31b3_22))) + + ((M31_32) * (conv_tmp_31b3_23))) + - ((M31_4) * (conv_tmp_31b3_44))); + let conv_mod_tmp_31b3_79 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_17))) + + ((M31_1) * (conv_tmp_31b3_23))) + + ((M31_32) * (conv_tmp_31b3_24))) + - ((M31_4) * (conv_tmp_31b3_45))); + let conv_mod_tmp_31b3_80 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_18))) + + ((M31_1) * (conv_tmp_31b3_24))) + + ((M31_32) * (conv_tmp_31b3_25))) + - ((M31_4) * (conv_tmp_31b3_46))); + let conv_mod_tmp_31b3_81 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_19))) + + ((M31_1) * (conv_tmp_31b3_25))) + + ((M31_32) * (conv_tmp_31b3_26))) + - ((M31_4) * (conv_tmp_31b3_47))); + let conv_mod_tmp_31b3_82 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_20))) + + ((M31_1) * (conv_tmp_31b3_26))) + + ((M31_32) * (conv_tmp_31b3_27))) + - ((M31_4) * (conv_tmp_31b3_48))); + let conv_mod_tmp_31b3_83 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_21))) + + ((M31_1) * (conv_tmp_31b3_27))) + + ((M31_32) * (conv_tmp_31b3_28))) + - ((M31_4) * (conv_tmp_31b3_49))); + let conv_mod_tmp_31b3_84 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_22))) + + ((M31_1) * (conv_tmp_31b3_28))) + + ((M31_32) * (conv_tmp_31b3_29))) + - ((M31_4) * (conv_tmp_31b3_50))); + let conv_mod_tmp_31b3_85 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_23))) + + ((M31_1) * (conv_tmp_31b3_29))) + + ((M31_32) * (conv_tmp_31b3_30))) + - ((M31_4) * (conv_tmp_31b3_51))); + let conv_mod_tmp_31b3_86 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_24))) + + ((M31_1) * (conv_tmp_31b3_30))) + + ((M31_32) * (conv_tmp_31b3_31))) + - ((M31_4) * (conv_tmp_31b3_52))); + let conv_mod_tmp_31b3_87 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_25))) + + ((M31_1) * (conv_tmp_31b3_31))) + + ((M31_32) * (conv_tmp_31b3_32))) + - ((M31_4) * (conv_tmp_31b3_53))); + let conv_mod_tmp_31b3_88 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_26))) + + ((M31_1) * (conv_tmp_31b3_32))) + + ((M31_32) * (conv_tmp_31b3_33))) + - ((M31_4) * (conv_tmp_31b3_54))); + let conv_mod_tmp_31b3_89 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_27))) + + ((M31_1) * (conv_tmp_31b3_33))) + + ((M31_32) * (conv_tmp_31b3_34))) + - ((M31_4) * (conv_tmp_31b3_55))); + let conv_mod_tmp_31b3_90 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_28))) + + ((M31_1) * (conv_tmp_31b3_34))) + - ((M31_4) * (conv_tmp_31b3_56))) + + ((M31_64) * (conv_tmp_31b3_63))); + let conv_mod_tmp_31b3_91 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_29))) + - ((M31_4) * (conv_tmp_31b3_57))) + + ((M31_2) * (conv_tmp_31b3_63))) + + ((M31_64) * (conv_tmp_31b3_64))); + let conv_mod_tmp_31b3_92 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_30))) + - ((M31_4) * (conv_tmp_31b3_58))) + + ((M31_2) * (conv_tmp_31b3_64))) + + ((M31_64) * (conv_tmp_31b3_65))); + let conv_mod_tmp_31b3_93 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_31))) + - ((M31_4) * (conv_tmp_31b3_59))) + + ((M31_2) * (conv_tmp_31b3_65))) + + ((M31_64) * (conv_tmp_31b3_66))); + let conv_mod_tmp_31b3_94 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_32))) + - ((M31_4) * (conv_tmp_31b3_60))) + + ((M31_2) * (conv_tmp_31b3_66))) + + ((M31_64) * (conv_tmp_31b3_67))); + let conv_mod_tmp_31b3_95 = (((((M31_0) + ((M31_2) * (conv_tmp_31b3_33))) + - ((M31_4) * (conv_tmp_31b3_61))) + + ((M31_2) * (conv_tmp_31b3_67))) + + ((M31_64) * (conv_tmp_31b3_68))); + let conv_mod_tmp_31b3_96 = ((((M31_0) + ((M31_2) * (conv_tmp_31b3_34))) + - ((M31_4) * (conv_tmp_31b3_62))) + + ((M31_2) * (conv_tmp_31b3_68))); + let k_mod_2_18_biased_tmp_31b3_97 = + ((((PackedUInt32::from_m31(((conv_mod_tmp_31b3_69) + (M31_134217728)))) + + (((PackedUInt32::from_m31(((conv_mod_tmp_31b3_70) + (M31_134217728)))) & (UInt32_511)) << (UInt32_9))) + (UInt32_65536)) & (UInt32_262143)); - let k_col95 = ((k_mod_2_18_biased_tmp_1626.low().as_m31()) - + (((k_mod_2_18_biased_tmp_1626.high().as_m31()) - (M31_1)) * (M31_65536))); + let k_col95 = ((k_mod_2_18_biased_tmp_31b3_97.low().as_m31()) + + (((k_mod_2_18_biased_tmp_31b3_97.high().as_m31()) - (M31_1)) * (M31_65536))); trace[95].data[row_index] = k_col95; sub_components_inputs.range_check_19_inputs[0] @@ -1651,154 +1655,154 @@ pub fn write_trace_simd( lookup_data.rangecheck_19[0].push([((k_col95) + (M31_262144))]); let carry_0_col96 = - ((((conv_mod_tmp_1598) - ((M31_1) * (k_col95))) + (M31_0)) * (M31_4194304)); + ((((conv_mod_tmp_31b3_69) - ((M31_1) * (k_col95))) + (M31_0)) * (M31_4194304)); trace[96].data[row_index] = carry_0_col96; sub_components_inputs.range_check_19_inputs[1] .extend([((carry_0_col96) + (M31_131072))].unpack()); lookup_data.rangecheck_19[1].push([((carry_0_col96) + (M31_131072))]); - let carry_1_col97 = (((conv_mod_tmp_1599) + (carry_0_col96)) * (M31_4194304)); + let carry_1_col97 = (((conv_mod_tmp_31b3_70) + (carry_0_col96)) * (M31_4194304)); trace[97].data[row_index] = carry_1_col97; sub_components_inputs.range_check_19_inputs[2] .extend([((carry_1_col97) + (M31_131072))].unpack()); lookup_data.rangecheck_19[2].push([((carry_1_col97) + (M31_131072))]); - let carry_2_col98 = (((conv_mod_tmp_1600) + (carry_1_col97)) * (M31_4194304)); + let carry_2_col98 = (((conv_mod_tmp_31b3_71) + (carry_1_col97)) * (M31_4194304)); trace[98].data[row_index] = carry_2_col98; sub_components_inputs.range_check_19_inputs[3] .extend([((carry_2_col98) + (M31_131072))].unpack()); lookup_data.rangecheck_19[3].push([((carry_2_col98) + (M31_131072))]); - let carry_3_col99 = (((conv_mod_tmp_1601) + (carry_2_col98)) * (M31_4194304)); + let carry_3_col99 = (((conv_mod_tmp_31b3_72) + (carry_2_col98)) * (M31_4194304)); trace[99].data[row_index] = carry_3_col99; sub_components_inputs.range_check_19_inputs[4] .extend([((carry_3_col99) + (M31_131072))].unpack()); lookup_data.rangecheck_19[4].push([((carry_3_col99) + (M31_131072))]); - let carry_4_col100 = (((conv_mod_tmp_1602) + (carry_3_col99)) * (M31_4194304)); + let carry_4_col100 = (((conv_mod_tmp_31b3_73) + (carry_3_col99)) * (M31_4194304)); trace[100].data[row_index] = carry_4_col100; sub_components_inputs.range_check_19_inputs[5] .extend([((carry_4_col100) + (M31_131072))].unpack()); lookup_data.rangecheck_19[5].push([((carry_4_col100) + (M31_131072))]); - let carry_5_col101 = (((conv_mod_tmp_1603) + (carry_4_col100)) * (M31_4194304)); + let carry_5_col101 = (((conv_mod_tmp_31b3_74) + (carry_4_col100)) * (M31_4194304)); trace[101].data[row_index] = carry_5_col101; sub_components_inputs.range_check_19_inputs[6] .extend([((carry_5_col101) + (M31_131072))].unpack()); lookup_data.rangecheck_19[6].push([((carry_5_col101) + (M31_131072))]); - let carry_6_col102 = (((conv_mod_tmp_1604) + (carry_5_col101)) * (M31_4194304)); + let carry_6_col102 = (((conv_mod_tmp_31b3_75) + (carry_5_col101)) * (M31_4194304)); trace[102].data[row_index] = carry_6_col102; sub_components_inputs.range_check_19_inputs[7] .extend([((carry_6_col102) + (M31_131072))].unpack()); lookup_data.rangecheck_19[7].push([((carry_6_col102) + (M31_131072))]); - let carry_7_col103 = (((conv_mod_tmp_1605) + (carry_6_col102)) * (M31_4194304)); + let carry_7_col103 = (((conv_mod_tmp_31b3_76) + (carry_6_col102)) * (M31_4194304)); trace[103].data[row_index] = carry_7_col103; sub_components_inputs.range_check_19_inputs[8] .extend([((carry_7_col103) + (M31_131072))].unpack()); lookup_data.rangecheck_19[8].push([((carry_7_col103) + (M31_131072))]); - let carry_8_col104 = (((conv_mod_tmp_1606) + (carry_7_col103)) * (M31_4194304)); + let carry_8_col104 = (((conv_mod_tmp_31b3_77) + (carry_7_col103)) * (M31_4194304)); trace[104].data[row_index] = carry_8_col104; sub_components_inputs.range_check_19_inputs[9] .extend([((carry_8_col104) + (M31_131072))].unpack()); lookup_data.rangecheck_19[9].push([((carry_8_col104) + (M31_131072))]); - let carry_9_col105 = (((conv_mod_tmp_1607) + (carry_8_col104)) * (M31_4194304)); + let carry_9_col105 = (((conv_mod_tmp_31b3_78) + (carry_8_col104)) * (M31_4194304)); trace[105].data[row_index] = carry_9_col105; sub_components_inputs.range_check_19_inputs[10] .extend([((carry_9_col105) + (M31_131072))].unpack()); lookup_data.rangecheck_19[10].push([((carry_9_col105) + (M31_131072))]); - let carry_10_col106 = (((conv_mod_tmp_1608) + (carry_9_col105)) * (M31_4194304)); + let carry_10_col106 = (((conv_mod_tmp_31b3_79) + (carry_9_col105)) * (M31_4194304)); trace[106].data[row_index] = carry_10_col106; sub_components_inputs.range_check_19_inputs[11] .extend([((carry_10_col106) + (M31_131072))].unpack()); lookup_data.rangecheck_19[11].push([((carry_10_col106) + (M31_131072))]); - let carry_11_col107 = (((conv_mod_tmp_1609) + (carry_10_col106)) * (M31_4194304)); + let carry_11_col107 = (((conv_mod_tmp_31b3_80) + (carry_10_col106)) * (M31_4194304)); trace[107].data[row_index] = carry_11_col107; sub_components_inputs.range_check_19_inputs[12] .extend([((carry_11_col107) + (M31_131072))].unpack()); lookup_data.rangecheck_19[12].push([((carry_11_col107) + (M31_131072))]); - let carry_12_col108 = (((conv_mod_tmp_1610) + (carry_11_col107)) * (M31_4194304)); + let carry_12_col108 = (((conv_mod_tmp_31b3_81) + (carry_11_col107)) * (M31_4194304)); trace[108].data[row_index] = carry_12_col108; sub_components_inputs.range_check_19_inputs[13] .extend([((carry_12_col108) + (M31_131072))].unpack()); lookup_data.rangecheck_19[13].push([((carry_12_col108) + (M31_131072))]); - let carry_13_col109 = (((conv_mod_tmp_1611) + (carry_12_col108)) * (M31_4194304)); + let carry_13_col109 = (((conv_mod_tmp_31b3_82) + (carry_12_col108)) * (M31_4194304)); trace[109].data[row_index] = carry_13_col109; sub_components_inputs.range_check_19_inputs[14] .extend([((carry_13_col109) + (M31_131072))].unpack()); lookup_data.rangecheck_19[14].push([((carry_13_col109) + (M31_131072))]); - let carry_14_col110 = (((conv_mod_tmp_1612) + (carry_13_col109)) * (M31_4194304)); + let carry_14_col110 = (((conv_mod_tmp_31b3_83) + (carry_13_col109)) * (M31_4194304)); trace[110].data[row_index] = carry_14_col110; sub_components_inputs.range_check_19_inputs[15] .extend([((carry_14_col110) + (M31_131072))].unpack()); lookup_data.rangecheck_19[15].push([((carry_14_col110) + (M31_131072))]); - let carry_15_col111 = (((conv_mod_tmp_1613) + (carry_14_col110)) * (M31_4194304)); + let carry_15_col111 = (((conv_mod_tmp_31b3_84) + (carry_14_col110)) * (M31_4194304)); trace[111].data[row_index] = carry_15_col111; sub_components_inputs.range_check_19_inputs[16] .extend([((carry_15_col111) + (M31_131072))].unpack()); lookup_data.rangecheck_19[16].push([((carry_15_col111) + (M31_131072))]); - let carry_16_col112 = (((conv_mod_tmp_1614) + (carry_15_col111)) * (M31_4194304)); + let carry_16_col112 = (((conv_mod_tmp_31b3_85) + (carry_15_col111)) * (M31_4194304)); trace[112].data[row_index] = carry_16_col112; sub_components_inputs.range_check_19_inputs[17] .extend([((carry_16_col112) + (M31_131072))].unpack()); lookup_data.rangecheck_19[17].push([((carry_16_col112) + (M31_131072))]); - let carry_17_col113 = (((conv_mod_tmp_1615) + (carry_16_col112)) * (M31_4194304)); + let carry_17_col113 = (((conv_mod_tmp_31b3_86) + (carry_16_col112)) * (M31_4194304)); trace[113].data[row_index] = carry_17_col113; sub_components_inputs.range_check_19_inputs[18] .extend([((carry_17_col113) + (M31_131072))].unpack()); lookup_data.rangecheck_19[18].push([((carry_17_col113) + (M31_131072))]); - let carry_18_col114 = (((conv_mod_tmp_1616) + (carry_17_col113)) * (M31_4194304)); + let carry_18_col114 = (((conv_mod_tmp_31b3_87) + (carry_17_col113)) * (M31_4194304)); trace[114].data[row_index] = carry_18_col114; sub_components_inputs.range_check_19_inputs[19] .extend([((carry_18_col114) + (M31_131072))].unpack()); lookup_data.rangecheck_19[19].push([((carry_18_col114) + (M31_131072))]); - let carry_19_col115 = (((conv_mod_tmp_1617) + (carry_18_col114)) * (M31_4194304)); + let carry_19_col115 = (((conv_mod_tmp_31b3_88) + (carry_18_col114)) * (M31_4194304)); trace[115].data[row_index] = carry_19_col115; sub_components_inputs.range_check_19_inputs[20] .extend([((carry_19_col115) + (M31_131072))].unpack()); lookup_data.rangecheck_19[20].push([((carry_19_col115) + (M31_131072))]); - let carry_20_col116 = (((conv_mod_tmp_1618) + (carry_19_col115)) * (M31_4194304)); + let carry_20_col116 = (((conv_mod_tmp_31b3_89) + (carry_19_col115)) * (M31_4194304)); trace[116].data[row_index] = carry_20_col116; sub_components_inputs.range_check_19_inputs[21] .extend([((carry_20_col116) + (M31_131072))].unpack()); lookup_data.rangecheck_19[21].push([((carry_20_col116) + (M31_131072))]); - let carry_21_col117 = ((((conv_mod_tmp_1619) - ((M31_136) * (k_col95))) + let carry_21_col117 = ((((conv_mod_tmp_31b3_90) - ((M31_136) * (k_col95))) + (carry_20_col116)) * (M31_4194304)); trace[117].data[row_index] = carry_21_col117; @@ -1807,35 +1811,35 @@ pub fn write_trace_simd( .extend([((carry_21_col117) + (M31_131072))].unpack()); lookup_data.rangecheck_19[22].push([((carry_21_col117) + (M31_131072))]); - let carry_22_col118 = (((conv_mod_tmp_1620) + (carry_21_col117)) * (M31_4194304)); + let carry_22_col118 = (((conv_mod_tmp_31b3_91) + (carry_21_col117)) * (M31_4194304)); trace[118].data[row_index] = carry_22_col118; sub_components_inputs.range_check_19_inputs[23] .extend([((carry_22_col118) + (M31_131072))].unpack()); lookup_data.rangecheck_19[23].push([((carry_22_col118) + (M31_131072))]); - let carry_23_col119 = (((conv_mod_tmp_1621) + (carry_22_col118)) * (M31_4194304)); + let carry_23_col119 = (((conv_mod_tmp_31b3_92) + (carry_22_col118)) * (M31_4194304)); trace[119].data[row_index] = carry_23_col119; sub_components_inputs.range_check_19_inputs[24] .extend([((carry_23_col119) + (M31_131072))].unpack()); lookup_data.rangecheck_19[24].push([((carry_23_col119) + (M31_131072))]); - let carry_24_col120 = (((conv_mod_tmp_1622) + (carry_23_col119)) * (M31_4194304)); + let carry_24_col120 = (((conv_mod_tmp_31b3_93) + (carry_23_col119)) * (M31_4194304)); trace[120].data[row_index] = carry_24_col120; sub_components_inputs.range_check_19_inputs[25] .extend([((carry_24_col120) + (M31_131072))].unpack()); lookup_data.rangecheck_19[25].push([((carry_24_col120) + (M31_131072))]); - let carry_25_col121 = (((conv_mod_tmp_1623) + (carry_24_col120)) * (M31_4194304)); + let carry_25_col121 = (((conv_mod_tmp_31b3_94) + (carry_24_col120)) * (M31_4194304)); trace[121].data[row_index] = carry_25_col121; sub_components_inputs.range_check_19_inputs[26] .extend([((carry_25_col121) + (M31_131072))].unpack()); lookup_data.rangecheck_19[26].push([((carry_25_col121) + (M31_131072))]); - let carry_26_col122 = (((conv_mod_tmp_1624) + (carry_25_col121)) * (M31_4194304)); + let carry_26_col122 = (((conv_mod_tmp_31b3_95) + (carry_25_col121)) * (M31_4194304)); trace[122].data[row_index] = carry_26_col122; sub_components_inputs.range_check_19_inputs[27] diff --git a/stwo_cairo_prover/crates/prover/src/components/range_check_vector/component.rs b/stwo_cairo_prover/crates/prover/src/components/range_check_vector/component.rs index 22b10013..97c5943e 100644 --- a/stwo_cairo_prover/crates/prover/src/components/range_check_vector/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/range_check_vector/component.rs @@ -75,9 +75,9 @@ macro_rules! range_check_eval{ eval.next_trace_mask() ); let multiplicity = eval.next_trace_mask(); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.lookup_elements, E::EF::from(-multiplicity), &rc_values - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/ret_opcode/component.rs b/stwo_cairo_prover/crates/prover/src/components/ret_opcode/component.rs index a739ed46..85d53fd1 100644 --- a/stwo_cairo_prover/crates/prover/src/components/ret_opcode/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/ret_opcode/component.rs @@ -94,9 +94,9 @@ impl FrameworkEval for Eval { let next_fp_limb_1_col9 = eval.next_trace_mask(); let next_fp_limb_2_col10 = eval.next_trace_mask(); - // decode_instruction_c94bba24192ecf68. + // DecodeInstruction_c94bba24192ecf68. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::one(), &[ @@ -119,20 +119,20 @@ impl FrameworkEval for Eval { M31_0.clone(), M31_1.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_fp_col2.clone() - M31_1.clone()), next_pc_id_col3.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -141,20 +141,20 @@ impl FrameworkEval for Eval { next_pc_limb_1_col5.clone(), next_pc_limb_2_col6.clone(), ], - )]); + )); - // read_positive_num_bits_27. + // ReadPositive_num_bits_27. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[ (input_fp_col2.clone() - M31_2.clone()), next_fp_id_col7.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -163,9 +163,9 @@ impl FrameworkEval for Eval { next_fp_limb_1_col9.clone(), next_fp_limb_2_col10.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, E::EF::one(), &[ @@ -173,9 +173,9 @@ impl FrameworkEval for Eval { input_ap_col1.clone(), input_fp_col2.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.opcodes_lookup_elements, -E::EF::one(), &[ @@ -185,7 +185,7 @@ impl FrameworkEval for Eval { ((next_fp_limb_0_col8.clone() + (next_fp_limb_1_col9.clone() * M31_512.clone())) + (next_fp_limb_2_col10.clone() * M31_262144.clone())), ], - )]); + )); eval.finalize_logup(); eval diff --git a/stwo_cairo_prover/crates/prover/src/components/verify_instruction/component.rs b/stwo_cairo_prover/crates/prover/src/components/verify_instruction/component.rs index 7ddb24ef..df9471f3 100644 --- a/stwo_cairo_prover/crates/prover/src/components/verify_instruction/component.rs +++ b/stwo_cairo_prover/crates/prover/src/components/verify_instruction/component.rs @@ -137,7 +137,7 @@ impl FrameworkEval for Eval { + (offset2_high_col26.clone() * M31_8192.clone())) - input_col3.clone()), ); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_7_2_5_lookup_elements, E::EF::one(), &[ @@ -145,13 +145,13 @@ impl FrameworkEval for Eval { offset1_low_col21.clone(), offset1_high_col23.clone(), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.rangecheck_4_3_lookup_elements, E::EF::one(), &[offset2_low_col24.clone(), offset2_high_col26.clone()], - )]); + )); // encode_flags. @@ -188,13 +188,13 @@ impl FrameworkEval for Eval { // mem_verify. - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryaddresstoid_lookup_elements, E::EF::one(), &[input_col0.clone(), instruction_id_col27.clone()], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.memoryidtobig_lookup_elements, E::EF::one(), &[ @@ -221,9 +221,9 @@ impl FrameworkEval for Eval { + (input_col17.clone() * M31_128.clone())) + (input_col18.clone() * M31_256.clone())), ], - )]); + )); - eval.add_to_relation(&[RelationEntry::new( + eval.add_to_relation(RelationEntry::new( &self.verifyinstruction_lookup_elements, E::EF::from(-mult), &[ @@ -247,7 +247,7 @@ impl FrameworkEval for Eval { input_col17.clone(), input_col18.clone(), ], - )]); + )); eval.finalize_logup(); eval From 8dda0bf5320d3dd957b8babff11593c89a26ac2e Mon Sep 17 00:00:00 2001 From: Ohad Agadi Date: Mon, 9 Dec 2024 10:36:56 +0200 Subject: [PATCH 5/8] fmt for cairo --- .../crates/adapted_prover/src/main.rs | 4 +- .../crates/prover/src/cairo_air/air.rs | 49 ++++++++++++++++ .../cairo_air/{debug.rs => debug_tools.rs} | 21 ++++++- .../crates/prover/src/cairo_air/mod.rs | 15 +++-- .../prover/src/cairo_air/opcodes_air.rs | 57 +++++++++++++++++++ 5 files changed, 140 insertions(+), 6 deletions(-) rename stwo_cairo_prover/crates/prover/src/cairo_air/{debug.rs => debug_tools.rs} (97%) diff --git a/stwo_cairo_prover/crates/adapted_prover/src/main.rs b/stwo_cairo_prover/crates/adapted_prover/src/main.rs index 9a5695e9..9051e565 100644 --- a/stwo_cairo_prover/crates/adapted_prover/src/main.rs +++ b/stwo_cairo_prover/crates/adapted_prover/src/main.rs @@ -28,6 +28,8 @@ struct Args { proof_path: PathBuf, #[structopt(long = "debug_lookup")] debug_lookup: bool, + #[structopt(long = "display_components")] + display_components: bool, } #[derive(Debug, Error)] @@ -69,7 +71,7 @@ fn run(args: impl Iterator) -> Result) -> std::fmt::Result { + writeln!(f, "CairoComponents")?; + writeln!(f, "Opcodes: {}", self.opcodes)?; + writeln!( + f, + "VerifyInstruction: {}", + indented_component_display(&self.verify_instruction) + )?; + writeln!( + f, + "MemoryAddressToId: {}", + indented_component_display(&self.memory_address_to_id) + )?; + writeln!( + f, + "MemoryIdToValue: {}", + indented_component_display(&self.memory_id_to_value.0) + )?; + writeln!( + f, + "SmallMemoryIdToValue: {}", + indented_component_display(&self.memory_id_to_value.1) + )?; + writeln!( + f, + "RangeCheck19: {}", + indented_component_display(&self.range_check_19) + )?; + writeln!( + f, + "RangeCheck9_9: {}", + indented_component_display(&self.range_check9_9) + )?; + writeln!( + f, + "RangeCheck7_2_5: {}", + indented_component_display(&self.range_check7_2_5) + )?; + writeln!( + f, + "RangeCheck4_3: {}", + indented_component_display(&self.range_check4_3) + )?; + Ok(()) + } +} diff --git a/stwo_cairo_prover/crates/prover/src/cairo_air/debug.rs b/stwo_cairo_prover/crates/prover/src/cairo_air/debug_tools.rs similarity index 97% rename from stwo_cairo_prover/crates/prover/src/cairo_air/debug.rs rename to stwo_cairo_prover/crates/prover/src/cairo_air/debug_tools.rs index 70066dfc..bb8d7c98 100644 --- a/stwo_cairo_prover/crates/prover/src/cairo_air/debug.rs +++ b/stwo_cairo_prover/crates/prover/src/cairo_air/debug_tools.rs @@ -3,7 +3,9 @@ use num_traits::One; use stwo_prover::constraint_framework::relation_tracker::{ RelationTrackerComponent, RelationTrackerEntry, }; -use stwo_prover::constraint_framework::TraceLocationAllocator; +use stwo_prover::constraint_framework::{ + FrameworkComponent, FrameworkEval, TraceLocationAllocator, +}; use stwo_prover::core::backend::simd::SimdBackend; use stwo_prover::core::fields::m31::M31; use stwo_prover::core::pcs::CommitmentSchemeProver; @@ -583,3 +585,20 @@ pub fn track_cairo_relations( entries } + +pub(super) fn indented_component_display( + component: &FrameworkComponent, +) -> String { + let component_display = &format!("\n{}", component); + component_display + .lines() + .map(|line| format!("\t{}", line)) + .join("\n") +} + +pub(super) fn display_components(components: &[FrameworkComponent]) -> String { + components + .iter() + .map(|component| indented_component_display(component)) + .join("\n") +} diff --git a/stwo_cairo_prover/crates/prover/src/cairo_air/mod.rs b/stwo_cairo_prover/crates/prover/src/cairo_air/mod.rs index 4f6f7422..267ce535 100644 --- a/stwo_cairo_prover/crates/prover/src/cairo_air/mod.rs +++ b/stwo_cairo_prover/crates/prover/src/cairo_air/mod.rs @@ -1,9 +1,9 @@ pub mod air; -mod debug; +mod debug_tools; pub mod opcodes_air; use air::{lookup_sum, CairoClaimGenerator, CairoComponents, CairoInteractionElements, CairoProof}; -use debug::track_cairo_relations; +use debug_tools::track_cairo_relations; use num_traits::Zero; use stwo_prover::constraint_framework::preprocessed_columns::gen_is_first; use stwo_prover::constraint_framework::relation_tracker::RelationSummary; @@ -24,9 +24,12 @@ const LOG_MAX_ROWS: u32 = 22; const IS_FIRST_LOG_SIZES: [u32; 19] = [ 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, ]; + pub fn prove_cairo( input: CairoInput, + // TODO(Ohad): wrap these flags in a struct. track_relations: bool, + display_components: bool, ) -> Result, ProvingError> { let _span = span!(Level::INFO, "prove_cairo").entered(); let config = PcsConfig::default(); @@ -94,6 +97,10 @@ pub fn prove_cairo( // Prove stark. let proof = prove::(&components, channel, commitment_scheme)?; + if display_components { + println!("{}", component_builder); + } + Ok(CairoProof { claim, interaction_claim, @@ -183,14 +190,14 @@ mod tests { #[test] fn test_basic_cairo_air() { - let cairo_proof = prove_cairo(test_input(), true).unwrap(); + let cairo_proof = prove_cairo(test_input(), true, true).unwrap(); verify_cairo(cairo_proof).unwrap(); } #[ignore] #[test] fn test_full_cairo_air() { - let cairo_proof = prove_cairo(small_cairo_input(), true).unwrap(); + let cairo_proof = prove_cairo(small_cairo_input(), true, true).unwrap(); verify_cairo(cairo_proof).unwrap(); } } diff --git a/stwo_cairo_prover/crates/prover/src/cairo_air/opcodes_air.rs b/stwo_cairo_prover/crates/prover/src/cairo_air/opcodes_air.rs index 0118909e..61fa733c 100644 --- a/stwo_cairo_prover/crates/prover/src/cairo_air/opcodes_air.rs +++ b/stwo_cairo_prover/crates/prover/src/cairo_air/opcodes_air.rs @@ -10,6 +10,7 @@ use stwo_prover::core::pcs::{TreeBuilder, TreeVec}; use stwo_prover::core::vcs::blake2_merkle::Blake2sMerkleChannel; use super::air::CairoInteractionElements; +use super::debug_tools::display_components; use crate::components::{ add_ap_opcode_is_imm_f_op1_base_fp_f, add_ap_opcode_is_imm_f_op1_base_fp_t, add_ap_opcode_is_imm_t_op1_base_fp_f, add_opcode_is_small_f_is_imm_f, @@ -2260,3 +2261,59 @@ impl OpcodeComponents { vec } } + +impl std::fmt::Display for OpcodeComponents { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + writeln!(f, "add_f_f:")?; + writeln!(f, "{}", display_components(&self.add_f_f))?; + writeln!(f, "add_f_t:")?; + writeln!(f, "{}", display_components(&self.add_f_t))?; + writeln!(f, "add_t_f:")?; + writeln!(f, "{}", display_components(&self.add_t_f))?; + writeln!(f, "add_t_t:")?; + writeln!(f, "{}", display_components(&self.add_t_t))?; + writeln!(f, "add_ap_f_f:")?; + writeln!(f, "{}", display_components(&self.add_ap_f_f))?; + writeln!(f, "add_ap_f_t:")?; + writeln!(f, "{}", display_components(&self.add_ap_f_t))?; + writeln!(f, "add_ap_t_f:")?; + writeln!(f, "{}", display_components(&self.add_ap_t_f))?; + writeln!(f, "assert_eq_f_f:")?; + writeln!(f, "{}", display_components(&self.assert_eq_f_f))?; + writeln!(f, "assert_eq_f_t:")?; + writeln!(f, "{}", display_components(&self.assert_eq_f_t))?; + writeln!(f, "assert_eq_t_f:")?; + writeln!(f, "{}", display_components(&self.assert_eq_t_f))?; + writeln!(f, "call_f_f:")?; + writeln!(f, "{}", display_components(&self.call_f_f))?; + writeln!(f, "call_f_t:")?; + writeln!(f, "{}", display_components(&self.call_f_t))?; + writeln!(f, "call_t_f:")?; + writeln!(f, "{}", display_components(&self.call_t_f))?; + writeln!(f, "generic:")?; + writeln!(f, "{}", display_components(&self.generic))?; + writeln!(f, "jnz_f_f:")?; + writeln!(f, "{}", display_components(&self.jnz_f_f))?; + writeln!(f, "jnz_f_t:")?; + writeln!(f, "{}", display_components(&self.jnz_f_t))?; + writeln!(f, "jnz_t_f:")?; + writeln!(f, "{}", display_components(&self.jnz_t_f))?; + writeln!(f, "jnz_t_t:")?; + writeln!(f, "{}", display_components(&self.jnz_t_t))?; + writeln!(f, "jump_f_f_f:")?; + writeln!(f, "{}", display_components(&self.jump_f_f_f))?; + writeln!(f, "jump_f_f_t:")?; + writeln!(f, "{}", display_components(&self.jump_f_f_t))?; + writeln!(f, "jump_t_f_f:")?; + writeln!(f, "{}", display_components(&self.jump_t_f_f))?; + writeln!(f, "jump_t_t_f:")?; + writeln!(f, "{}", display_components(&self.jump_t_t_f))?; + writeln!(f, "mul_f_f:")?; + writeln!(f, "{}", display_components(&self.mul_f_f))?; + writeln!(f, "mul_f_t:")?; + writeln!(f, "{}", display_components(&self.mul_f_t))?; + writeln!(f, "ret:")?; + writeln!(f, "{}", display_components(&self.ret))?; + Ok(()) + } +} From 2376df69ccc0884c9665f1185fdd619f738d63de Mon Sep 17 00:00:00 2001 From: ilyalesokhin-starkware Date: Sun, 15 Dec 2024 16:16:54 +0200 Subject: [PATCH 6/8] small refactor. (#247) --- stwo_cairo_verifier/src/pcs/quotients.cairo | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stwo_cairo_verifier/src/pcs/quotients.cairo b/stwo_cairo_verifier/src/pcs/quotients.cairo index 215cfff5..046a2815 100644 --- a/stwo_cairo_verifier/src/pcs/quotients.cairo +++ b/stwo_cairo_verifier/src/pcs/quotients.cairo @@ -178,7 +178,8 @@ pub fn fri_answers( let mut answers = array![]; let mut log_size = M31_CIRCLE_LOG_ORDER; - assert_eq!(n_columns_per_tree.len(), 3); + let one_per_tree = [1, 1, 1].span(); + assert_eq!(n_columns_per_tree.len(), one_per_tree.len()); loop { let columns = match columns_per_log_size_rev.next() { Option::Some(columns) => columns, @@ -186,7 +187,7 @@ pub fn fri_answers( }; log_size -= 1; - let n_columns = tree_take_n(ref n_columns_per_tree, [1, 1, 1].span()); + let n_columns = tree_take_n(ref n_columns_per_tree, one_per_tree); if columns.is_empty() { continue; From 9d11ef8e94837e6d259d7b1782e0997809696706 Mon Sep 17 00:00:00 2001 From: Stavbe Date: Mon, 9 Dec 2024 13:23:33 +0200 Subject: [PATCH 7/8] tmp --- .github/workflows/cairo-ci.yaml | 1 + README.md | 20 +- .../crates/prover/src/input/vm_import/mod.rs | 10 +- .../test_data/large_cairo_input/fact.json | 3 - .../prover/test_data/large_cairo_input/mem | 3 - .../test_data/large_cairo_input/priv.json | 3 - .../test_data/large_cairo_input/pub.json | 3 - .../prover/test_data/large_cairo_input/trace | 3 - .../prover/test_data/small_cairo_input/mem | Bin 131 -> 258680 bytes .../test_data/small_cairo_input/priv.json | 2631 +++++++++++++++- .../test_data/small_cairo_input/pub.json | 2721 ++++++++++++++++- .../prover/test_data/small_cairo_input/trace | Bin 132 -> 3145728 bytes stwo_cairo_prover/scripts/run_large_test.sh | 33 + 13 files changed, 5397 insertions(+), 34 deletions(-) delete mode 100644 stwo_cairo_prover/crates/prover/test_data/large_cairo_input/fact.json delete mode 100644 stwo_cairo_prover/crates/prover/test_data/large_cairo_input/mem delete mode 100644 stwo_cairo_prover/crates/prover/test_data/large_cairo_input/priv.json delete mode 100644 stwo_cairo_prover/crates/prover/test_data/large_cairo_input/pub.json delete mode 100644 stwo_cairo_prover/crates/prover/test_data/large_cairo_input/trace create mode 100755 stwo_cairo_prover/scripts/run_large_test.sh diff --git a/.github/workflows/cairo-ci.yaml b/.github/workflows/cairo-ci.yaml index 336727d8..7393da3b 100644 --- a/.github/workflows/cairo-ci.yaml +++ b/.github/workflows/cairo-ci.yaml @@ -39,6 +39,7 @@ jobs: - uses: actions/checkout@v3 with: lfs: false + - run: ./scripts/run_large_test.sh - uses: dtolnay/rust-toolchain@master with: components: rustfmt diff --git a/README.md b/README.md index cc5ab447..364d8665 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,15 @@ # stwo-cairo-air - -This repo is using Git LFS ``` -https://packagecloud.io/github/git-lfs/install -sudo apt-get update -sudo apt-get install git-lfs -git lfs install -git lfs fetch --all -git lfs pull +This repo utilizes Google Cloud Storage for test artifacts. The test artifacts can be found and modified at the following URL: +https://console.cloud.google.com/storage/browser/stwo-cairo-testing-artifacts?project=starkware-thirdparties + +To run the test: "test_read_from_large_files", use the run_large_test.sh script. + +This script will: +Download the required input files from Google Cloud Storage. +Execute the test. +Delete the downloaded files after the test is complete. + +This test is configured to run automatically in the CI pipeline and will be ignored unless the --features "ci-test" flag is specified in the cargo test command." + ``` diff --git a/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs b/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs index 08f61600..e8ead83b 100644 --- a/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs +++ b/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs @@ -131,7 +131,7 @@ pub mod tests { pub fn large_cairo_input() -> CairoInput { let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - d.push("test_data/large_cairo_input"); + d.push("test_data/test_read_from_large_files"); import_from_vm_output(d.join("pub.json").as_path(), d.join("priv.json").as_path()).expect( " @@ -207,10 +207,10 @@ pub mod tests { .len(), 0 ); - assert_eq!(components.mul_opcode_is_small_t_is_imm_t.len(), 8996); - assert_eq!(components.mul_opcode_is_small_t_is_imm_f.len(), 6563); - assert_eq!(components.mul_opcode_is_small_f_is_imm_f.len(), 4583); - assert_eq!(components.mul_opcode_is_small_f_is_imm_t.len(), 9047); + assert_eq!(components.mul_opcode_is_small_t_is_imm_t.len(), 0); + assert_eq!(components.mul_opcode_is_small_t_is_imm_f.len(), 0); + assert_eq!(components.mul_opcode_is_small_f_is_imm_f.len(), 11146); + assert_eq!(components.mul_opcode_is_small_f_is_imm_t.len(), 18043); assert_eq!(components.ret_opcode.len(), 49472); } diff --git a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/fact.json b/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/fact.json deleted file mode 100644 index d1bcae2f..00000000 --- a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/fact.json +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5d5f82af5dcee0c8ca35e78d0736bb7853983ae419be77a73612812a42dc179 -size 72 diff --git a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/mem b/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/mem deleted file mode 100644 index 662b422a..00000000 --- a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/mem +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a44a8436ae665b4a036fdec303c08d0c62b75d6ba7d029c8d0cea921746b676 -size 90049080 diff --git a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/priv.json b/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/priv.json deleted file mode 100644 index 1605de16..00000000 --- a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/priv.json +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:446250961d452ccccd9bab08cd2400fd26c76ce4a9e8fae7618ecc14922f559a -size 29278724 diff --git a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/pub.json b/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/pub.json deleted file mode 100644 index b632c7cf..00000000 --- a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/pub.json +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a59ecb57bb03f1382a37184be61b6eafeddb3c683c35ac4505c02f2b896d9ca -size 57085 diff --git a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/trace b/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/trace deleted file mode 100644 index b3ce597a..00000000 --- a/stwo_cairo_prover/crates/prover/test_data/large_cairo_input/trace +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6330415e78b9b0d98bea3ad1b22a5311eeba8fd596bfd08467ccec358ca27a44 -size 805306368 diff --git a/stwo_cairo_prover/crates/prover/test_data/small_cairo_input/mem b/stwo_cairo_prover/crates/prover/test_data/small_cairo_input/mem index 52e3f6bf79aa4d8fd1b22247b477ef168200dfb7..6b4ca6a0696206ee81078b1cf2168acc661bd11f 100644 GIT binary patch literal 258680 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 NtYmzvX0$HQs(#m(CNKa1 diff --git a/stwo_cairo_prover/scripts/run_large_test.sh b/stwo_cairo_prover/scripts/run_large_test.sh new file mode 100755 index 00000000..f1f15c20 --- /dev/null +++ b/stwo_cairo_prover/scripts/run_large_test.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +BUCKET_URL="https://storage.googleapis.com/stwo-cairo-testing-artifacts" +DEST_DIR="crates/prover/test_data" +TEST_NAME="test_read_from_large_files" + +# Create the destination directory +mkdir -p "${DEST_DIR}/${TEST_NAME}" + +# Fetch the list of files and download them +curl -s "${BUCKET_URL}" | grep -oP '(?<=).*?(?=)' | while read -r FILE; do + echo "Downloading ${FILE}..." + curl -Lo "${DEST_DIR}/${FILE}" "${BUCKET_URL}/${FILE}" || { + echo "Failed to download ${FILE}" + } +done + +# Run the test +echo "Running the test: ${TEST_NAME}..." +cargo test ${TEST_NAME} -- --ignored|| { + echo "Test failed" + + # Delete the downloaded files + echo "Cleaning up downloaded files..." + rm -rf "${DEST_DIR}/${TEST_NAME}"/* + exit 1 +} + +# Delete the downloaded files +echo "Cleaning up downloaded files..." +rm -rf "${DEST_DIR}/${TEST_NAME}"* + +echo "Done!" From 0559dad190b544b1f6c37ad87d1ac76f2baeb78d Mon Sep 17 00:00:00 2001 From: Stav Beno Date: Mon, 16 Dec 2024 17:08:58 +0200 Subject: [PATCH 8/8] store small cairo input files on git and add to cargo run --- .../crates/prover/src/input/vm_import/mod.rs | 1 - .../test_data/test_read_from_small_files/mem | Bin 0 -> 320166 bytes .../test_read_from_small_files/priv.json | 2628 ++++++++++++++++ .../test_read_from_small_files/pub.json | 2718 +++++++++++++++++ .../test_read_from_small_files/trace | Bin 0 -> 3145728 bytes 5 files changed, 5346 insertions(+), 1 deletion(-) create mode 100644 stwo_cairo_prover/crates/prover/test_data/test_read_from_small_files/mem create mode 100644 stwo_cairo_prover/crates/prover/test_data/test_read_from_small_files/priv.json create mode 100644 stwo_cairo_prover/crates/prover/test_data/test_read_from_small_files/pub.json create mode 100644 stwo_cairo_prover/crates/prover/test_data/test_read_from_small_files/trace diff --git a/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs b/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs index e8ead83b..54e5082f 100644 --- a/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs +++ b/stwo_cairo_prover/crates/prover/src/input/vm_import/mod.rs @@ -215,7 +215,6 @@ pub mod tests { } // When not ignored, the test passes only with dev_mod = false. - #[ignore] #[test] fn test_read_from_small_files() { let input = small_cairo_input(); diff --git a/stwo_cairo_prover/crates/prover/test_data/test_read_from_small_files/mem b/stwo_cairo_prover/crates/prover/test_data/test_read_from_small_files/mem new file mode 100644 index 0000000000000000000000000000000000000000..f613f74fc71a33329d31926d928d05adaa189198 GIT binary patch literal 320166 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