arnaucube
arnaucube/poulpyPublic Self-hosted repository
renamed vmp API closer to spqlios
Pro7ech jeanphilippe.bossuat@gmail.com
Mon, 25 Aug 2025 11:58:51 +0200
commit

a1b865709d0746528ccc31305804e8927a6c9f60

parent

1551f7a6f0f72d052b1ec345a3ce3e0e0225cb91

38 files changed, 431 insertions(+), 393 deletions(-)

jump to
M poulpy-backend/src/cpu_spqlios/fft64/vmp_pmat.rs → poulpy-backend/src/cpu_spqlios/fft64/vmp_pmat.rs

@@ -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(),
M poulpy-core/src/automorphism/gglwe_atk.rs → poulpy-core/src/automorphism/gglwe_atk.rs

@@ -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>
M poulpy-core/src/automorphism/ggsw_ct.rs → poulpy-core/src/automorphism/ggsw_ct.rs

@@ -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>
M poulpy-core/src/automorphism/glwe_ct.rs → poulpy-core/src/automorphism/glwe_ct.rs

@@ -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>
M poulpy-core/src/conversion/glwe_to_lwe.rs → poulpy-core/src/conversion/glwe_to_lwe.rs

@@ -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>
M poulpy-core/src/conversion/lwe_to_glwe.rs → poulpy-core/src/conversion/lwe_to_glwe.rs

@@ -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>
M poulpy-core/src/external_product/gglwe_atk.rs → poulpy-core/src/external_product/gglwe_atk.rs

@@ -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,
M poulpy-core/src/external_product/gglwe_ksk.rs → poulpy-core/src/external_product/gglwe_ksk.rs

@@ -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,
M poulpy-core/src/external_product/ggsw_ct.rs → poulpy-core/src/external_product/ggsw_ct.rs

@@ -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,
M poulpy-core/src/external_product/glwe_ct.rs → poulpy-core/src/external_product/glwe_ct.rs

@@ -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,
M poulpy-core/src/glwe_packing.rs → poulpy-core/src/glwe_packing.rs

@@ -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>
M poulpy-core/src/glwe_trace.rs → poulpy-core/src/glwe_trace.rs

@@ -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>
M poulpy-core/src/keyswitching/gglwe_ct.rs → poulpy-core/src/keyswitching/gglwe_ct.rs

@@ -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>
M poulpy-core/src/keyswitching/ggsw_ct.rs → poulpy-core/src/keyswitching/ggsw_ct.rs

@@ -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>
M poulpy-core/src/keyswitching/glwe_ct.rs → poulpy-core/src/keyswitching/glwe_ct.rs

@@ -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); } });
M poulpy-core/src/keyswitching/lwe_ct.rs → poulpy-core/src/keyswitching/lwe_ct.rs

@@ -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>
M poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs → poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs

@@ -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>
M poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs → poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs

@@ -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>
M poulpy-core/src/tests/generics/automorphism/glwe_ct.rs → poulpy-core/src/tests/generics/automorphism/glwe_ct.rs

@@ -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
M poulpy-core/src/tests/generics/conversion.rs → poulpy-core/src/tests/generics/conversion.rs

@@ -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
M poulpy-core/src/tests/generics/encryption/gglwe_atk.rs → poulpy-core/src/tests/generics/encryption/gglwe_atk.rs

@@ -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
M poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs → poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs

@@ -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>
M poulpy-core/src/tests/generics/external_product/ggsw_ct.rs → poulpy-core/src/tests/generics/external_product/ggsw_ct.rs

@@ -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>
M poulpy-core/src/tests/generics/external_product/glwe_ct.rs → poulpy-core/src/tests/generics/external_product/glwe_ct.rs

@@ -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>
M poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs → poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs

@@ -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,
M poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs → poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs

@@ -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>
M poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs → poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs

@@ -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
M poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs → poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs

@@ -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
M poulpy-core/src/tests/generics/packing.rs → poulpy-core/src/tests/generics/packing.rs

@@ -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
M poulpy-core/src/tests/generics/trace.rs → poulpy-core/src/tests/generics/trace.rs

@@ -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,
M poulpy-hal/src/api/vmp_pmat.rs → poulpy-hal/src/api/vmp_pmat.rs

@@ -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>,
M poulpy-hal/src/delegates/vmp_pmat.rs → poulpy-hal/src/delegates/vmp_pmat.rs

@@ -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); } }
M poulpy-hal/src/oep/vmp_pmat.rs → poulpy-hal/src/oep/vmp_pmat.rs

@@ -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>;
M poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs → poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs

@@ -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];
M poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs → poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs

@@ -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,
M poulpy-schemes/src/tfhe/blind_rotation/tests/generic_blind_rotation.rs → poulpy-schemes/src/tfhe/blind_rotation/tests/generic_blind_rotation.rs

@@ -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>,
M poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs → poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs

@@ -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>
M poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs → poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs

@@ -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>