renamed vmp API closer to spqlios
jump to
@@ -1,12 +1,12 @@
use poulpy_hal::{ - api::{TakeSlice, VmpApplyTmpBytes, VmpPrepareTmpBytes}, + api::{TakeSlice, VmpApplyDftToDftTmpBytes, VmpPrepareTmpBytes}, layouts::{ Backend, MatZnx, MatZnxToRef, Module, Scratch, VecZnxDft, VecZnxDftToMut, VecZnxDftToRef, VmpPMat, VmpPMatOwned, VmpPMatToMut, VmpPMatToRef, ZnxInfos, ZnxView, ZnxViewMut, }, oep::{ - VmpApplyAddImpl, VmpApplyAddTmpBytesImpl, VmpApplyImpl, VmpApplyTmpBytesImpl, VmpPMatAllocBytesImpl, VmpPMatAllocImpl, - VmpPMatFromBytesImpl, VmpPMatPrepareImpl, VmpPrepareTmpBytesImpl, + VmpApplyDftToDftAddImpl, VmpApplyDftToDftAddTmpBytesImpl, VmpApplyDftToDftImpl, VmpApplyDftToDftTmpBytesImpl, + VmpPMatAllocBytesImpl, VmpPMatAllocImpl, VmpPMatFromBytesImpl, VmpPMatPrepareImpl, VmpPrepareTmpBytesImpl, }, };@@ -109,8 +109,8 @@ }
} } -unsafe impl VmpApplyTmpBytesImpl<FFT64> for FFT64 { - fn vmp_apply_tmp_bytes_impl( +unsafe impl VmpApplyDftToDftTmpBytesImpl<FFT64> for FFT64 { + fn vmp_apply_dft_to_dft_tmp_bytes_impl( module: &Module<FFT64>, res_size: usize, a_size: usize,@@ -131,8 +131,8 @@ }
} } -unsafe impl VmpApplyImpl<FFT64> for FFT64 { - fn vmp_apply_impl<R, A, C>(module: &Module<FFT64>, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<FFT64>) +unsafe impl VmpApplyDftToDftImpl<FFT64> for FFT64 { + fn vmp_apply_dft_to_dft_impl<R, A, C>(module: &Module<FFT64>, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<FFT64>) where R: VecZnxDftToMut<FFT64>, A: VecZnxDftToRef<FFT64>,@@ -162,7 +162,7 @@ b.cols_in()
); } - let (tmp_bytes, _) = scratch.take_slice(module.vmp_apply_tmp_bytes( + let (tmp_bytes, _) = scratch.take_slice(module.vmp_apply_dft_to_dft_tmp_bytes( res.size(), a.size(), b.rows(),@@ -186,8 +186,8 @@ }
} } -unsafe impl VmpApplyAddTmpBytesImpl<FFT64> for FFT64 { - fn vmp_apply_add_tmp_bytes_impl( +unsafe impl VmpApplyDftToDftAddTmpBytesImpl<FFT64> for FFT64 { + fn vmp_apply_dft_to_dft_add_tmp_bytes_impl( module: &Module<FFT64>, res_size: usize, a_size: usize,@@ -208,9 +208,15 @@ }
} } -unsafe impl VmpApplyAddImpl<FFT64> for FFT64 { - fn vmp_apply_add_impl<R, A, C>(module: &Module<FFT64>, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch<FFT64>) - where +unsafe impl VmpApplyDftToDftAddImpl<FFT64> for FFT64 { + fn vmp_apply_dft_to_dft_add_impl<R, A, C>( + module: &Module<FFT64>, + res: &mut R, + a: &A, + b: &C, + scale: usize, + scratch: &mut Scratch<FFT64>, + ) where R: VecZnxDftToMut<FFT64>, A: VecZnxDftToRef<FFT64>, C: VmpPMatToRef<FFT64>,@@ -239,7 +245,7 @@ b.cols_in()
); } - let (tmp_bytes, _) = scratch.take_slice(module.vmp_apply_tmp_bytes( + let (tmp_bytes, _) = scratch.take_slice(module.vmp_apply_dft_to_dft_tmp_bytes( res.size(), a.size(), b.rows(),
@@ -1,8 +1,8 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxAutomorphism, VecZnxAutomorphismInplace, - VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, - VmpApplyTmpBytes, + VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApplyDftToDft, + VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, };@@ -21,7 +21,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank, rank) }@@ -35,7 +35,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GGLWEAutomorphismKey::automorphism_scratch_space(module, basek, k_out, k_out, k_ksk, digits, rank) }@@ -50,10 +50,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -134,10 +134,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -2,7 +2,8 @@ use poulpy_hal::{
api::{ DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, TakeVecZnxBig, TakeVecZnxDft, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAddInplace, - VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxNormalizeTmpBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, };@@ -26,8 +27,11 @@ digits_tsk: usize,
rank: usize, ) -> usize where - Module<B>: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + + VmpApplyDftToDftTmpBytes + + VecZnxBigAllocBytes + + VecZnxNormalizeTmpBytes + + VecZnxBigNormalizeTmpBytes, { let out_size: usize = k_out.div_ceil(basek); let ci_dft: usize = module.vec_znx_dft_alloc_bytes(rank + 1, out_size);@@ -49,8 +53,11 @@ digits_tsk: usize,
rank: usize, ) -> usize where - Module<B>: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + + VmpApplyDftToDftTmpBytes + + VecZnxBigAllocBytes + + VecZnxNormalizeTmpBytes + + VecZnxBigNormalizeTmpBytes, { GGSWCiphertext::automorphism_scratch_space( module, basek, k_out, k_out, k_ksk, digits_ksk, k_tsk, digits_tsk, rank,@@ -68,10 +75,10 @@ tensor_key: &GGLWETensorKeyPrepared<DataTsk, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -138,10 +145,10 @@ tensor_key: &GGLWETensorKeyPrepared<DataTsk, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -168,10 +175,10 @@ auto_key: &GGLWEAutomorphismKeyPrepared<DataAk, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -2,7 +2,7 @@ use poulpy_hal::{
api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallAInplace, - VecZnxBigSubSmallBInplace, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxBigSubSmallBInplace, VecZnxDftAllocBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, VecZnxBig}, };@@ -21,7 +21,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank, rank) }@@ -35,7 +35,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::keyswitch_inplace_scratch_space(module, basek, k_out, k_ksk, digits, rank) }@@ -50,10 +50,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -74,10 +74,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -99,10 +99,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -130,10 +130,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -155,10 +155,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -187,10 +187,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -213,10 +213,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -245,10 +245,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut, ZnxZero}, };@@ -21,7 +21,7 @@ k_ksk: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::bytes_of(module.n(), basek, k_lwe, 1) + GLWECiphertext::keyswitch_scratch_space(module, basek, k_lwe, k_glwe, k_ksk, 1, rank, 1)@@ -56,10 +56,10 @@ ) where
DGlwe: DataRef, DKs: DataRef, Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut, ZnxZero}, };@@ -21,7 +21,7 @@ k_ksk: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::keyswitch_scratch_space(module, basek, k_glwe, k_lwe, k_ksk, 1, 1, rank) + GLWECiphertext::bytes_of(module.n(), basek, k_lwe, 1)@@ -39,10 +39,10 @@ ) where
DLwe: DataRef, DKsk: DataRef, Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, - VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, };@@ -20,7 +20,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GGLWESwitchingKey::external_product_scratch_space(module, basek, k_out, k_in, ggsw_k, digits, rank) }@@ -34,7 +34,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GGLWESwitchingKey::external_product_inplace_scratch_space(module, basek, k_out, ggsw_k, digits, rank) }@@ -49,11 +49,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,@@ -68,11 +68,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, - VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, };@@ -20,7 +20,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_scratch_space(module, basek, k_out, k_in, k_ggsw, digits, rank) }@@ -34,7 +34,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_inplace_scratch_space(module, basek, k_out, k_ggsw, digits, rank) }@@ -49,11 +49,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,@@ -104,11 +104,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, - VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, };@@ -20,7 +20,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_scratch_space(module, basek, k_out, k_in, k_ggsw, digits, rank) }@@ -34,7 +34,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_inplace_scratch_space(module, basek, k_out, k_ggsw, digits, rank) }@@ -49,11 +49,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,@@ -114,11 +114,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, - VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, DataViewMut, Module, Scratch, VecZnxBig}, };@@ -20,14 +20,14 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { let in_size: usize = k_in.div_ceil(basek).div_ceil(digits); let out_size: usize = k_out.div_ceil(basek); let ggsw_size: usize = k_ggsw.div_ceil(basek); let res_dft: usize = module.vec_znx_dft_alloc_bytes(rank + 1, ggsw_size); let a_dft: usize = module.vec_znx_dft_alloc_bytes(rank + 1, in_size); - let vmp: usize = module.vmp_apply_tmp_bytes( + let vmp: usize = module.vmp_apply_dft_to_dft_tmp_bytes( out_size, in_size, in_size, // rows@@ -48,7 +48,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { Self::external_product_scratch_space(module, basek, k_out, k_out, k_ggsw, digits, rank) }@@ -63,11 +63,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,@@ -125,9 +125,9 @@ module.dft(digits, digits - 1 - di, &mut a_dft, col_i, &lhs.data, col_i);
}); if di == 0 { - module.vmp_apply(&mut res_dft, &a_dft, &rhs.data, scratch2); + module.vmp_apply_dft_to_dft(&mut res_dft, &a_dft, &rhs.data, scratch2); } else { - module.vmp_apply_add(&mut res_dft, &a_dft, &rhs.data, di, scratch2); + module.vmp_apply_dft_to_dft_add(&mut res_dft, &a_dft, &rhs.data, di, scratch2); } }); }@@ -146,11 +146,11 @@ rhs: &GGSWCiphertextPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDft<B> + ScratchAvailable,
@@ -5,7 +5,8 @@ api::{
DFT, IDFTConsume, ScratchAvailable, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAllocBytes, VecZnxNegateInplace, VecZnxNormalizeInplace, VecZnxRotate, - VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, };@@ -95,7 +96,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { pack_core_scratch_space(module, basek, ct_k, k_ksk, digits, rank) }@@ -121,10 +122,10 @@ auto_keys: &HashMap<i64, GGLWEAutomorphismKeyPrepared<DataAK, B>>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -185,7 +186,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { combine_scratch_space(module, basek, ct_k, k_ksk, digits, rank) }@@ -199,10 +200,10 @@ auto_keys: &HashMap<i64, GGLWEAutomorphismKeyPrepared<DataAK, B>>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -279,7 +280,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::bytes_of(module.n(), basek, ct_k, rank) + (GLWECiphertext::rsh_scratch_space(module.n())@@ -296,10 +297,10 @@ auto_keys: &HashMap<i64, GGLWEAutomorphismKeyPrepared<DataAK, B>>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -3,8 +3,8 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigAutomorphismInplace, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAllocBytes, VecZnxRshInplace, VmpApply, VmpApplyAdd, - VmpApplyTmpBytes, + VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAllocBytes, VecZnxRshInplace, VmpApplyDftToDft, + VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, };@@ -38,7 +38,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::automorphism_inplace_scratch_space(module, basek, out_k.min(in_k), ksk_k, digits, rank) }@@ -52,7 +52,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::automorphism_inplace_scratch_space(module, basek, out_k, ksk_k, digits, rank) }@@ -69,10 +69,10 @@ auto_keys: &HashMap<i64, GGLWEAutomorphismKeyPrepared<DataAK, B>>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -95,10 +95,10 @@ auto_keys: &HashMap<i64, GGLWEAutomorphismKeyPrepared<DataAK, B>>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, };@@ -23,7 +23,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GGLWESwitchingKey::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank, rank) }@@ -37,7 +37,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GGLWESwitchingKey::keyswitch_inplace_scratch_space(module, basek, k_out, k_ksk, digits, rank) }@@ -52,10 +52,10 @@ rhs: &GGLWESwitchingKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -72,10 +72,10 @@ rhs: &GGLWEAutomorphismKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -99,7 +99,7 @@ rank_in: usize,
rank_out: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank_in, rank_out) }@@ -113,7 +113,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::keyswitch_inplace_scratch_space(module, basek, k_out, k_ksk, digits, rank) }@@ -128,10 +128,10 @@ rhs: &GGLWESwitchingKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -184,10 +184,10 @@ rhs: &GGLWESwitchingKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -2,7 +2,8 @@ use poulpy_hal::{
api::{ DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, TakeVecZnxBig, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAddInplace, - VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxNormalizeTmpBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, VecZnx, VmpPMat, ZnxInfos}, };@@ -25,7 +26,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes, { let tsk_size: usize = k_tsk.div_ceil(basek); let self_size_out: usize = self_k.div_ceil(basek);@@ -33,7 +34,7 @@ let self_size_in: usize = self_size_out.div_ceil(digits);
let tmp_dft_i: usize = module.vec_znx_dft_alloc_bytes(rank + 1, tsk_size); let tmp_a: usize = module.vec_znx_dft_alloc_bytes(1, self_size_in); - let vmp: usize = module.vmp_apply_tmp_bytes( + let vmp: usize = module.vmp_apply_dft_to_dft_tmp_bytes( self_size_out, self_size_in, self_size_in,@@ -59,8 +60,11 @@ digits_tsk: usize,
rank: usize, ) -> usize where - Module<B>: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + + VmpApplyDftToDftTmpBytes + + VecZnxBigAllocBytes + + VecZnxNormalizeTmpBytes + + VecZnxBigNormalizeTmpBytes, { let out_size: usize = k_out.div_ceil(basek); let res_znx: usize = VecZnx::alloc_bytes(module.n(), rank + 1, out_size);@@ -83,8 +87,11 @@ digits_tsk: usize,
rank: usize, ) -> usize where - Module<B>: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + + VmpApplyDftToDftTmpBytes + + VecZnxBigAllocBytes + + VecZnxNormalizeTmpBytes + + VecZnxBigNormalizeTmpBytes, { GGSWCiphertext::keyswitch_scratch_space( module, basek, k_out, k_out, k_ksk, digits_ksk, k_tsk, digits_tsk, rank,@@ -104,13 +111,13 @@ DataA: DataRef,
DataTsk: DataRef, Module<B>: VecZnxCopy + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + DFT<B> + VecZnxDftCopy<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxDftAddInplace<B> + VecZnxBigNormalize<B> + IDFTTmpA<B>,@@ -139,10 +146,10 @@ tsk: &GGLWETensorKeyPrepared<DataTsk, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -167,10 +174,10 @@ tsk: &GGLWETensorKeyPrepared<DataTsk, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -196,13 +203,13 @@ tsk: &GGLWETensorKeyPrepared<DataTsk, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + DFT<B> + VecZnxDftCopy<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxDftAddInplace<B> + VecZnxBigNormalize<B> + IDFTTmpA<B>,@@ -288,9 +295,9 @@ tmp_dft_i.set_size(tsk.size() - ((digits - di) as isize - 2).max(0) as usize);
module.vec_znx_dft_copy(digits, digits - 1 - di, &mut tmp_a, 0, &ci_dft, col_i); if di == 0 && col_i == 1 { - module.vmp_apply(&mut tmp_dft_i, &tmp_a, pmat, scratch3); + module.vmp_apply_dft_to_dft(&mut tmp_dft_i, &tmp_a, pmat, scratch3); } else { - module.vmp_apply_add(&mut tmp_dft_i, &tmp_a, pmat, di, scratch3); + module.vmp_apply_dft_to_dft_add(&mut tmp_dft_i, &tmp_a, pmat, di, scratch3); } }); });@@ -330,10 +337,10 @@ ksk: &GGLWESwitchingKeyPrepared<DataKsk, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, DataViewMut, Module, Scratch, VecZnx, VecZnxBig, VecZnxDft, VmpPMat, ZnxInfos}, };@@ -21,14 +21,14 @@ rank_in: usize,
rank_out: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { let in_size: usize = k_in.div_ceil(basek).div_ceil(digits); let out_size: usize = k_out.div_ceil(basek); let ksk_size: usize = k_ksk.div_ceil(basek); let res_dft: usize = module.vec_znx_dft_alloc_bytes(rank_out + 1, ksk_size); // TODO OPTIMIZE let ai_dft: usize = module.vec_znx_dft_alloc_bytes(rank_in, in_size); - let vmp: usize = module.vmp_apply_tmp_bytes(out_size, in_size, in_size, rank_in, rank_out + 1, ksk_size) + let vmp: usize = module.vmp_apply_dft_to_dft_tmp_bytes(out_size, in_size, in_size, rank_in, rank_out + 1, ksk_size) + module.vec_znx_dft_alloc_bytes(rank_in, in_size); let normalize: usize = module.vec_znx_big_normalize_tmp_bytes(); res_dft + ((ai_dft + vmp) | normalize)@@ -43,7 +43,7 @@ digits: usize,
rank: usize, ) -> usize where - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::keyswitch_scratch_space(module, basek, k_out, k_out, k_ksk, digits, rank, rank) }@@ -60,7 +60,7 @@ scratch: &Scratch<B>,
) where DataLhs: DataRef, DataRhs: DataRef, - Module<B>: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module<B>: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, Scratch<B>: ScratchAvailable, { let basek: usize = self.basek();@@ -128,11 +128,11 @@ rhs: &GGLWESwitchingKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -157,11 +157,11 @@ rhs: &GGLWESwitchingKeyPrepared<DataRhs, B>,
scratch: &mut Scratch<B>, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -187,11 +187,11 @@ where
DataRes: DataMut, DataKey: DataRef, Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -224,7 +224,7 @@ where
DataRes: DataMut, DataIn: DataRef, DataVmp: DataRef, - Module<B>: VecZnxDftAllocBytes + DFT<B> + VmpApply<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>, + Module<B>: VecZnxDftAllocBytes + DFT<B> + VmpApplyDftToDft<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>, Scratch<B>: TakeVecZnxDft<B>, { let cols: usize = a.cols();@@ -232,7 +232,7 @@ let (mut ai_dft, scratch1) = scratch.take_vec_znx_dft(a.n(), cols - 1, a.size());
(0..cols - 1).for_each(|col_i| { module.dft(1, 0, &mut ai_dft, col_i, a, col_i + 1); }); - module.vmp_apply(&mut res_dft, &ai_dft, mat, scratch1); + module.vmp_apply_dft_to_dft(&mut res_dft, &ai_dft, mat, scratch1); let mut res_big: VecZnxBig<DataRes, B> = module.vec_znx_idft_consume(res_dft); module.vec_znx_big_add_small_inplace(&mut res_big, 0, a, 0); res_big@@ -250,7 +250,12 @@ where
DataRes: DataMut, DataIn: DataRef, DataVmp: DataRef, - Module<B>: VecZnxDftAllocBytes + DFT<B> + VmpApply<B> + VmpApplyAdd<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>, + Module<B>: VecZnxDftAllocBytes + + DFT<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + + IDFTConsume<B> + + VecZnxBigAddSmallInplace<B>, Scratch<B>: TakeVecZnxDft<B>, { let cols: usize = a.cols();@@ -276,9 +281,9 @@ module.dft(digits, digits - di - 1, &mut ai_dft, col_i, a, col_i + 1);
}); if di == 0 { - module.vmp_apply(&mut res_dft, &ai_dft, mat, scratch1); + module.vmp_apply_dft_to_dft(&mut res_dft, &ai_dft, mat, scratch1); } else { - module.vmp_apply_add(&mut res_dft, &ai_dft, mat, di, scratch1); + module.vmp_apply_dft_to_dft_add(&mut res_dft, &ai_dft, mat, di, scratch1); } });
@@ -1,7 +1,7 @@
use poulpy_hal::{ api::{ DFT, IDFTConsume, ScratchAvailable, TakeVecZnx, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut, ZnxZero}, };@@ -21,11 +21,11 @@ k_ksk: usize,
) -> usize where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -47,10 +47,10 @@ ) where
A: DataRef, DKs: DataRef, Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -4,8 +4,8 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, - VmpPMatAlloc, VmpPrepare, + VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScratchOwned}, oep::{@@ -37,10 +37,10 @@ k_apply: usize,
rank: usize, ) where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -214,11 +214,11 @@ + SvpPrepare<B>
+ SvpPPolAllocBytes + SvpPPolAlloc<B> + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -5,7 +5,8 @@ SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism,
VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAddInplace, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, - VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxSubABInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, + VmpPrepare, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned}, oep::{@@ -57,9 +58,9 @@ + VecZnxCopy
+ VecZnxSubABInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxDftCopy<B> + VecZnxDftAddInplace<B> + VecZnxFillUniform@@ -211,9 +212,9 @@ + VecZnxCopy
+ VecZnxSubABInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigAddSmallInplace<B> + VecZnxDftCopy<B> + VecZnxDftAddInplace<B>
@@ -4,7 +4,8 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, - VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxSubABInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, + VmpPrepare, }, layouts::{Backend, Module, ScratchOwned}, oep::{@@ -53,10 +54,10 @@ + SvpPPolAlloc<B>
+ VecZnxBigAllocBytes + VecZnxBigAddInplace<B> + VecZnxBigAddSmallInplace<B> - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxAutomorphism + VecZnxSwithcDegree + VecZnxAddScalarInplace@@ -177,10 +178,10 @@ + SvpPPolAlloc<B>
+ VecZnxBigAllocBytes + VecZnxBigAddInplace<B> + VecZnxBigAddSmallInplace<B> - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxAutomorphism + VecZnxSwithcDegree + VecZnxAddScalarInplace
@@ -4,8 +4,8 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, ZnAddNormal, ZnFillUniform, - ZnNormalizeInplace, + VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, + ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, }, layouts::{Backend, Module, ScratchOwned, ZnxView}, oep::{@@ -45,9 +45,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace@@ -150,9 +150,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace
@@ -4,8 +4,8 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, - VmpPMatAlloc, VmpPrepare, + VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScratchOwned}, oep::{@@ -42,10 +42,10 @@ + VecZnxSub
+ SvpPrepare<B> + SvpPPolAllocBytes + SvpPPolAlloc<B> - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigAddSmallInplace<B> + VecZnxAutomorphism + VecZnxSwithcDegree@@ -134,10 +134,10 @@ + VecZnxSub
+ SvpPrepare<B> + SvpPPolAllocBytes + SvpPPolAlloc<B> - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigAddSmallInplace<B> + VecZnxAutomorphism + VecZnxSwithcDegree
@@ -4,7 +4,8 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, - VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, + VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScalarZnx, ScalarZnxToMut, ScratchOwned, ZnxViewMut}, oep::{@@ -59,9 +60,9 @@ + VecZnxSubScalarInplace
+ VecZnxCopy + VmpPMatAlloc<B> + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VmpPrepare<B>, B: Backend + TakeVecZnxDftImpl<B>@@ -199,9 +200,9 @@ + VecZnxSubScalarInplace
+ VecZnxCopy + VmpPMatAlloc<B> + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VmpPrepare<B>, B: Backend + TakeVecZnxDftImpl<B>
@@ -4,7 +4,8 @@ DFT, IDFTConsume, IDFTTmpA, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes,
SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, + VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScalarZnx, ScalarZnxToMut, ScratchOwned, ZnxViewMut}, oep::{@@ -56,9 +57,9 @@ + VecZnxAddScalarInplace
+ VecZnxCopy + VmpPMatAlloc<B> + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VmpPrepare<B> + VecZnxBigAlloc<B> + VecZnxDftAlloc<B>@@ -188,9 +189,9 @@ + VecZnxAddScalarInplace
+ VecZnxCopy + VmpPMatAlloc<B> + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VmpPrepare<B> + VecZnxBigAlloc<B> + VecZnxDftAlloc<B>
@@ -3,8 +3,8 @@ api::{
DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, - VmpPMatAlloc, VmpPrepare, + VecZnxNormalizeTmpBytes, VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned, ZnxViewMut}, oep::{@@ -56,9 +56,9 @@ + VecZnxAddScalarInplace
+ VecZnxRotateInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B>, + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B>, B: Backend + TakeVecZnxDftImpl<B> + TakeVecZnxBigImpl<B>@@ -189,9 +189,9 @@ + VecZnxAddScalarInplace
+ VecZnxRotateInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B>, + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B>, B: Backend + TakeVecZnxDftImpl<B> + TakeVecZnxBigImpl<B>
@@ -4,7 +4,7 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScratchOwned}, oep::{@@ -57,9 +57,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxSubScalarInplace,@@ -204,9 +204,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxSubScalarInplace,
@@ -4,8 +4,8 @@ DFT, IDFTConsume, IDFTTmpA, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc,
SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAddInplace, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, - VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApplyDftToDft, + VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned}, oep::{@@ -57,9 +57,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + SvpApply<B>@@ -201,9 +201,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + SvpApply<B>
@@ -4,7 +4,7 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, - VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScratchOwned}, oep::{@@ -56,9 +56,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree, B: Backend@@ -170,9 +170,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree, B: Backend
@@ -4,8 +4,8 @@ DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare,
VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, ZnAddNormal, ZnFillUniform, - ZnNormalizeInplace, + VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, + ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, }, layouts::{Backend, Module, ScratchOwned, ZnxView}, oep::{@@ -44,9 +44,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace
@@ -7,8 +7,8 @@ VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace,
VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNegateInplace, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxRotateInplace, - VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, - VmpPMatAlloc, VmpPrepare, + VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScratchOwned}, oep::{@@ -57,9 +57,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace
@@ -7,7 +7,8 @@ VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxBigAddInplace,
VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, - VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxSubABInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, + VmpPrepare, }, layouts::{Backend, Module, ScratchOwned, ZnxView, ZnxViewMut}, oep::{@@ -55,9 +56,9 @@ + VecZnxNormalizeTmpBytes
+ VecZnxAddScalarInplace + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxCopy,
@@ -24,8 +24,8 @@ A: MatZnxToRef;
} #[allow(clippy::too_many_arguments)] -pub trait VmpApplyTmpBytes { - fn vmp_apply_tmp_bytes( +pub trait VmpApplyDftToDftTmpBytes { + fn vmp_apply_dft_to_dft_tmp_bytes( &self, res_size: usize, a_size: usize,@@ -36,7 +36,7 @@ b_size: usize,
) -> usize; } -pub trait VmpApply<B: Backend> { +pub trait VmpApplyDftToDft<B: Backend> { /// Applies the vector matrix product [crate::layouts::VecZnxDft] x [crate::layouts::VmpPMat]. /// /// A vector matrix product numerically equivalent to a sum of [crate::api::SvpApply],@@ -61,7 +61,7 @@ /// * `c`: the output of the vector matrix product, as a [crate::layouts::VecZnxDft].
/// * `a`: the left operand [crate::layouts::VecZnxDft] of the vector matrix product. /// * `b`: the right operand [crate::layouts::VmpPMat] of the vector matrix product. /// * `buf`: scratch space, the size can be obtained with [VmpApplyTmpBytes::vmp_apply_tmp_bytes]. - fn vmp_apply<R, A, C>(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<B>) + fn vmp_apply_dft_to_dft<R, A, C>(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<B>) where R: VecZnxDftToMut<B>, A: VecZnxDftToRef<B>,@@ -69,8 +69,8 @@ C: VmpPMatToRef<B>;
} #[allow(clippy::too_many_arguments)] -pub trait VmpApplyAddTmpBytes { - fn vmp_apply_add_tmp_bytes( +pub trait VmpApplyDftToDftAddTmpBytes { + fn vmp_apply_dft_to_dft_add_tmp_bytes( &self, res_size: usize, a_size: usize,@@ -81,8 +81,8 @@ b_size: usize,
) -> usize; } -pub trait VmpApplyAdd<B: Backend> { - fn vmp_apply_add<R, A, C>(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch<B>) +pub trait VmpApplyDftToDftAdd<B: Backend> { + fn vmp_apply_dft_to_dft_add<R, A, C>(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch<B>) where R: VecZnxDftToMut<B>, A: VecZnxDftToRef<B>,
@@ -1,12 +1,12 @@
use crate::{ api::{ - VmpApply, VmpApplyAdd, VmpApplyAddTmpBytes, VmpApplyTmpBytes, VmpPMatAlloc, VmpPMatAllocBytes, VmpPMatFromBytes, - VmpPrepare, VmpPrepareTmpBytes, + VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftAddTmpBytes, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, + VmpPMatAllocBytes, VmpPMatFromBytes, VmpPrepare, VmpPrepareTmpBytes, }, layouts::{Backend, MatZnxToRef, Module, Scratch, VecZnxDftToMut, VecZnxDftToRef, VmpPMatOwned, VmpPMatToMut, VmpPMatToRef}, oep::{ - VmpApplyAddImpl, VmpApplyAddTmpBytesImpl, VmpApplyImpl, VmpApplyTmpBytesImpl, VmpPMatAllocBytesImpl, VmpPMatAllocImpl, - VmpPMatFromBytesImpl, VmpPMatPrepareImpl, VmpPrepareTmpBytesImpl, + VmpApplyDftToDftAddImpl, VmpApplyDftToDftAddTmpBytesImpl, VmpApplyDftToDftImpl, VmpApplyDftToDftTmpBytesImpl, + VmpPMatAllocBytesImpl, VmpPMatAllocImpl, VmpPMatFromBytesImpl, VmpPMatPrepareImpl, VmpPrepareTmpBytesImpl, }, };@@ -59,11 +59,11 @@ B::vmp_prepare_impl(self, res, a, scratch)
} } -impl<B> VmpApplyTmpBytes for Module<B> +impl<B> VmpApplyDftToDftTmpBytes for Module<B> where - B: Backend + VmpApplyTmpBytesImpl<B>, + B: Backend + VmpApplyDftToDftTmpBytesImpl<B>, { - fn vmp_apply_tmp_bytes( + fn vmp_apply_dft_to_dft_tmp_bytes( &self, res_size: usize, a_size: usize,@@ -72,31 +72,31 @@ b_cols_in: usize,
b_cols_out: usize, b_size: usize, ) -> usize { - B::vmp_apply_tmp_bytes_impl( + B::vmp_apply_dft_to_dft_tmp_bytes_impl( self, res_size, a_size, b_rows, b_cols_in, b_cols_out, b_size, ) } } -impl<B> VmpApply<B> for Module<B> +impl<B> VmpApplyDftToDft<B> for Module<B> where - B: Backend + VmpApplyImpl<B>, + B: Backend + VmpApplyDftToDftImpl<B>, { - fn vmp_apply<R, A, C>(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<B>) + fn vmp_apply_dft_to_dft<R, A, C>(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<B>) where R: VecZnxDftToMut<B>, A: VecZnxDftToRef<B>, C: VmpPMatToRef<B>, { - B::vmp_apply_impl(self, res, a, b, scratch); + B::vmp_apply_dft_to_dft_impl(self, res, a, b, scratch); } } -impl<B> VmpApplyAddTmpBytes for Module<B> +impl<B> VmpApplyDftToDftAddTmpBytes for Module<B> where - B: Backend + VmpApplyAddTmpBytesImpl<B>, + B: Backend + VmpApplyDftToDftAddTmpBytesImpl<B>, { - fn vmp_apply_add_tmp_bytes( + fn vmp_apply_dft_to_dft_add_tmp_bytes( &self, res_size: usize, a_size: usize,@@ -105,22 +105,22 @@ b_cols_in: usize,
b_cols_out: usize, b_size: usize, ) -> usize { - B::vmp_apply_add_tmp_bytes_impl( + B::vmp_apply_dft_to_dft_add_tmp_bytes_impl( self, res_size, a_size, b_rows, b_cols_in, b_cols_out, b_size, ) } } -impl<B> VmpApplyAdd<B> for Module<B> +impl<B> VmpApplyDftToDftAdd<B> for Module<B> where - B: Backend + VmpApplyAddImpl<B>, + B: Backend + VmpApplyDftToDftAddImpl<B>, { - fn vmp_apply_add<R, A, C>(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch<B>) + fn vmp_apply_dft_to_dft_add<R, A, C>(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch<B>) where R: VecZnxDftToMut<B>, A: VecZnxDftToRef<B>, C: VmpPMatToRef<B>, { - B::vmp_apply_add_impl(self, res, a, b, scale, scratch); + B::vmp_apply_dft_to_dft_add_impl(self, res, a, b, scale, scratch); } }
@@ -57,8 +57,8 @@ /// # THIS TRAIT IS AN OPEN EXTENSION POINT (unsafe)
/// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyTmpBytesImpl<B: Backend> { - fn vmp_apply_tmp_bytes_impl( +pub unsafe trait VmpApplyDftToDftTmpBytesImpl<B: Backend> { + fn vmp_apply_dft_to_dft_tmp_bytes_impl( module: &Module<B>, res_size: usize, a_size: usize,@@ -73,8 +73,8 @@ /// # THIS TRAIT IS AN OPEN EXTENSION POINT (unsafe)
/// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyImpl<B: Backend> { - fn vmp_apply_impl<R, A, C>(module: &Module<B>, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<B>) +pub unsafe trait VmpApplyDftToDftImpl<B: Backend> { + fn vmp_apply_dft_to_dft_impl<R, A, C>(module: &Module<B>, res: &mut R, a: &A, b: &C, scratch: &mut Scratch<B>) where R: VecZnxDftToMut<B>, A: VecZnxDftToRef<B>,@@ -86,8 +86,8 @@ /// # THIS TRAIT IS AN OPEN EXTENSION POINT (unsafe)
/// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyAddTmpBytesImpl<B: Backend> { - fn vmp_apply_add_tmp_bytes_impl( +pub unsafe trait VmpApplyDftToDftAddTmpBytesImpl<B: Backend> { + fn vmp_apply_dft_to_dft_add_tmp_bytes_impl( module: &Module<B>, res_size: usize, a_size: usize,@@ -102,10 +102,16 @@ /// # THIS TRAIT IS AN OPEN EXTENSION POINT (unsafe)
/// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyAddImpl<B: Backend> { +pub unsafe trait VmpApplyDftToDftAddImpl<B: Backend> { // Same as [MatZnxDftOps::vmp_apply] except result is added on R instead of overwritting R. - fn vmp_apply_add_impl<R, A, C>(module: &Module<B>, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch<B>) - where + fn vmp_apply_dft_to_dft_add_impl<R, A, C>( + module: &Module<B>, + res: &mut R, + a: &A, + b: &C, + scale: usize, + scratch: &mut Scratch<B>, + ) where R: VecZnxDftToMut<B>, A: VecZnxDftToRef<B>, C: VmpPMatToRef<B>;
@@ -1,13 +1,13 @@
use crate::{ api::{ DFT, IDFTTmpA, ModuleNew, ScratchOwnedAlloc, ScratchOwnedBorrow, VecZnxBigAlloc, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxDftAlloc, VmpApply, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + VecZnxBigNormalizeTmpBytes, VecZnxDftAlloc, VmpApplyDftToDft, VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{MatZnx, Module, ScratchOwned, VecZnx, VecZnxBig, VecZnxDft, VmpPMat, ZnxInfos, ZnxViewMut}, oep::{ DFTImpl, IDFTTmpAImpl, ModuleNewImpl, ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl, VecZnxBigAllocImpl, - VecZnxBigNormalizeImpl, VecZnxBigNormalizeTmpBytesImpl, VecZnxDftAllocImpl, VmpApplyImpl, VmpApplyTmpBytesImpl, - VmpPMatAllocImpl, VmpPMatPrepareImpl, + VecZnxBigNormalizeImpl, VecZnxBigNormalizeTmpBytesImpl, VecZnxDftAllocImpl, VmpApplyDftToDftImpl, + VmpApplyDftToDftTmpBytesImpl, VmpPMatAllocImpl, VmpPMatPrepareImpl, }, };@@ -17,14 +17,14 @@ pub fn test_vmp_apply<B>()
where B: Backend + ModuleNewImpl<B> - + VmpApplyTmpBytesImpl<B> + + VmpApplyDftToDftTmpBytesImpl<B> + VecZnxBigNormalizeTmpBytesImpl<B> + VmpPMatAllocImpl<B> + VecZnxDftAllocImpl<B> + VecZnxBigAllocImpl<B> + VmpPMatPrepareImpl<B> + DFTImpl<B> - + VmpApplyImpl<B> + + VmpApplyDftToDftImpl<B> + IDFTTmpAImpl<B> + ScratchOwnedAllocImpl<B> + ScratchOwnedBorrowImpl<B>@@ -49,7 +49,7 @@ let mat_cols_in: usize = a_cols;
let mat_cols_out: usize = res_cols; let mut scratch = ScratchOwned::alloc( - module.vmp_apply_tmp_bytes( + module.vmp_apply_dft_to_dft_tmp_bytes( res_size, a_size, mat_rows,@@ -89,7 +89,7 @@ (0..a_cols).for_each(|i| {
module.dft(1, 0, &mut a_dft, i, &a, i); }); - module.vmp_apply(&mut c_dft, &a_dft, &vmp, scratch.borrow()); + module.vmp_apply_dft_to_dft(&mut c_dft, &a_dft, &vmp, scratch.borrow()); let mut res_have_vi64: Vec<i64> = vec![i64::default(); n];
@@ -5,7 +5,8 @@ DFT, IDFT, IDFTConsume, ScratchAvailable, SvpApply, SvpPPolAllocBytes, TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft,
TakeVecZnxDftSlice, TakeVecZnxSlice, VecZnxAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAdd, VecZnxDftAddInplace, VecZnxDftAllocBytes, VecZnxDftSubABInplace, VecZnxDftZero, VecZnxIDFTTmpBytes, VecZnxMulXpMinusOneInplace, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxSubABInplace, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxSubABInplace, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, SvpPPol, VecZnx, ZnxView, ZnxZero}, };@@ -32,7 +33,7 @@ rank: usize,
) -> usize where Module<B>: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + VecZnxBigAllocBytes + VecZnxIDFTTmpBytes@@ -47,7 +48,7 @@ let acc_big: usize = module.vec_znx_big_alloc_bytes(1, brk_size);
let vmp_res: usize = module.vec_znx_dft_alloc_bytes(cols, brk_size) * extension_factor; let vmp_xai: usize = module.vec_znx_dft_alloc_bytes(1, brk_size); let acc_dft_add: usize = vmp_res; - let vmp: usize = module.vmp_apply_tmp_bytes(brk_size, rows, rows, 2, 2, brk_size); // GGSW product: (1 x 2) x (2 x 2) + let vmp: usize = module.vmp_apply_dft_to_dft_tmp_bytes(brk_size, rows, rows, 2, 2, brk_size); // GGSW product: (1 x 2) x (2 x 2) let acc: usize = if extension_factor > 1 { VecZnx::alloc_bytes(module.n(), cols, k_res.div_ceil(basek)) * extension_factor } else {@@ -70,7 +71,7 @@ where
Module<B>: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT<B>@@ -88,8 +89,8 @@ + VecZnxNormalize<B>
+ VecZnxNormalizeInplace<B> + VecZnxCopy + VecZnxMulXpMinusOneInplace - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B> + VecZnxNormalizeTmpBytes,@@ -132,7 +133,7 @@ DataBrk: DataRef,
Module<B>: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT<B>@@ -151,7 +152,7 @@ + VecZnxNormalizeInplace<B>
+ VecZnxCopy + VecZnxMulXpMinusOneInplace + VecZnxBigNormalize<B> - + VmpApply<B>, + + VmpApplyDftToDft<B>, Scratch<B>: TakeVecZnxDftSlice<B> + TakeVecZnxDft<B> + TakeVecZnxBig<B> + TakeVecZnxSlice + ScratchAvailable + TakeVecZnx, { let n_glwe: usize = brk.n();@@ -220,7 +221,7 @@ let ai_lo: usize = ai_pos & (extension_factor - 1);
// vmp_res = DFT(acc) * BRK[i] (0..extension_factor).for_each(|i| { - module.vmp_apply(&mut vmp_res[i], &acc_dft[i], skii.data(), scratch5); + module.vmp_apply_dft_to_dft(&mut vmp_res[i], &acc_dft[i], skii.data(), scratch5); }); // Trivial case: no rotation between polynomials, we can directly multiply with (X^{-ai} - 1)@@ -299,7 +300,7 @@ DataBrk: DataRef,
Module<B>: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT<B>@@ -317,7 +318,7 @@ + VecZnxNormalize<B>
+ VecZnxNormalizeInplace<B> + VecZnxCopy + VecZnxMulXpMinusOneInplace - + VmpApply<B> + + VmpApplyDftToDft<B> + VecZnxBigNormalize<B>, Scratch<B>: TakeVecZnxDftSlice<B> + TakeVecZnxDft<B> + TakeVecZnxBig<B> + TakeVecZnxSlice + ScratchAvailable + TakeVecZnx, {@@ -377,7 +378,7 @@ izip!(ai.iter(), ski.iter()).for_each(|(aii, skii)| {
let ai_pos: usize = ((aii + two_n as i64) & (two_n - 1) as i64) as usize; // vmp_res = DFT(acc) * BRK[i] - module.vmp_apply(&mut vmp_res, &acc_dft, skii.data(), scratch4); + module.vmp_apply_dft_to_dft(&mut vmp_res, &acc_dft, skii.data(), scratch4); // DFT(X^ai -1) * (DFT(acc) * BRK[i]) (0..cols).for_each(|i| {@@ -413,7 +414,7 @@ DataBrk: DataRef,
Module<B>: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT<B>@@ -431,8 +432,8 @@ + VecZnxNormalize<B>
+ VecZnxNormalizeInplace<B> + VecZnxCopy + VecZnxMulXpMinusOneInplace - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + IDFTConsume<B> + VecZnxBigNormalize<B> + VecZnxNormalizeTmpBytes,
@@ -5,8 +5,8 @@ SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace,
VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAdd, VecZnxDftAddInplace, VecZnxDftAllocBytes, VecZnxDftSubABInplace, VecZnxDftZero, VecZnxFillUniform, VecZnxIDFTTmpBytes, VecZnxMulXpMinusOneInplace, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotate, - VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, - VmpPMatAlloc, VmpPrepare, ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, + VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, + VmpApplyDftToDftTmpBytes, VmpPMatAlloc, VmpPrepare, ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, }, layouts::{Backend, Module, ScratchOwned, ZnxView}, oep::{@@ -31,7 +31,7 @@ where
Module<B>: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT<B>@@ -64,8 +64,8 @@ + VecZnxSwithcDegree
+ VecZnxSub + VmpPMatAlloc<B> + VmpPrepare<B> - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + ZnFillUniform + ZnAddNormal + ZnNormalizeInplace<B>,
@@ -7,7 +7,7 @@ TakeVecZnxSlice, VecZnxAddInplace, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes,
VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAddInplace, VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxNegateInplace, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ToOwnedDeep}, oep::{ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl},@@ -40,10 +40,10 @@ + VecZnxNegateInplace
+ VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -138,10 +138,10 @@ + VecZnxNegateInplace
+ VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -263,10 +263,10 @@ + VecZnxNegateInplace
+ VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -335,10 +335,10 @@ + VecZnxNegateInplace
+ VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>@@ -414,10 +414,10 @@ + VecZnxNegateInplace
+ VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + DFT<B> + IDFTConsume<B> + VecZnxBigAddSmallInplace<B>
@@ -8,8 +8,8 @@ VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes,
VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAddInplace, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxFillUniform, VecZnxNegateInplace, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxRotateInplace, VecZnxRshInplace, - VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, - ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, + VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApplyDftToDft, VmpApplyDftToDftAdd, VmpApplyDftToDftTmpBytes, + VmpPMatAlloc, VmpPrepare, ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned, ZnxView, ZnxViewMut}, oep::{@@ -66,9 +66,9 @@ + VmpPMatAlloc<B>
+ VmpPrepare<B> + SvpPrepare<B> + SvpPPolAlloc<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + SvpPPolAllocBytes + VecZnxRotateInplace + VecZnxBigAutomorphismInplace<B>@@ -247,9 +247,9 @@ + VmpPMatAlloc<B>
+ VmpPrepare<B> + SvpPrepare<B> + SvpPPolAlloc<B> - + VmpApplyTmpBytes - + VmpApply<B> - + VmpApplyAdd<B> + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft<B> + + VmpApplyDftToDftAdd<B> + SvpPPolAllocBytes + VecZnxRotateInplace + VecZnxBigAutomorphismInplace<B>