use crate::{ hal::{ api::{ZnxInfos, ZnxSliceSize, ZnxView}, layouts::{Data, DataRef, VecZnxBig, VecZnxBigBytesOf}, oep::VecZnxBigAllocBytesImpl, }, implementation::cpu_spqlios::module_ntt120::NTT120, }; const VEC_ZNX_BIG_NTT120_WORDSIZE: usize = 4; impl ZnxView for VecZnxBig { type Scalar = i128; } impl VecZnxBigBytesOf for VecZnxBig { fn bytes_of(n: usize, cols: usize, size: usize) -> usize { VEC_ZNX_BIG_NTT120_WORDSIZE * n * cols * size * size_of::() } } impl ZnxSliceSize for VecZnxBig { fn sl(&self) -> usize { VEC_ZNX_BIG_NTT120_WORDSIZE * self.n() * self.cols() } } unsafe impl VecZnxBigAllocBytesImpl for NTT120 { fn vec_znx_big_alloc_bytes_impl(n: usize, cols: usize, size: usize) -> usize { VecZnxBig::, NTT120>::bytes_of(n, cols, size) } }