diff --git a/stwo_cairo_prover/crates/prover_types/src/simd.rs b/stwo_cairo_prover/crates/prover_types/src/simd.rs index 7bd2f6791..fc9f5f8ec 100644 --- a/stwo_cairo_prover/crates/prover_types/src/simd.rs +++ b/stwo_cairo_prover/crates/prover_types/src/simd.rs @@ -10,7 +10,7 @@ use stwo_prover::core::backend::simd::m31::PackedM31; use stwo_prover::core::fields::FieldExpOps; use super::cpu::{UInt16, UInt32, UInt64, PRIME}; -use crate::cpu::{CasmState, Felt252}; +use crate::cpu::{BigUInt, CasmState, Felt252}; pub const LOG_N_LANES: u32 = 4; @@ -446,6 +446,23 @@ impl DivExtend for PackedM31 { } } +// TODO(Gali): Change to an efficient implementation. +#[derive(Copy, Clone, Debug)] +pub struct PackedBigUInt { + value: [BigUInt; N_LANES], +} +impl PackedBigUInt { + pub fn to_array(&self) -> [BigUInt; N_LANES] { + self.value + } + + pub fn broadcast(value: BigUInt) -> Self { + Self { + value: [value; N_LANES], + } + } +} + #[derive(Copy, Clone, Debug)] pub struct PackedCasmState { pub pc: PackedM31,