diff --git a/poulpy-backend/src/cpu_spqlios/fft64/vmp_pmat.rs b/poulpy-backend/src/cpu_spqlios/fft64/vmp_pmat.rs index 11551f8..e1a405f 100644 --- a/poulpy-backend/src/cpu_spqlios/fft64/vmp_pmat.rs +++ b/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 VmpPMatPrepareImpl for FFT64 { } } -unsafe impl VmpApplyTmpBytesImpl for FFT64 { - fn vmp_apply_tmp_bytes_impl( +unsafe impl VmpApplyDftToDftTmpBytesImpl for FFT64 { + fn vmp_apply_dft_to_dft_tmp_bytes_impl( module: &Module, res_size: usize, a_size: usize, @@ -131,8 +131,8 @@ unsafe impl VmpApplyTmpBytesImpl for FFT64 { } } -unsafe impl VmpApplyImpl for FFT64 { - fn vmp_apply_impl(module: &Module, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) +unsafe impl VmpApplyDftToDftImpl for FFT64 { + fn vmp_apply_dft_to_dft_impl(module: &Module, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) where R: VecZnxDftToMut, A: VecZnxDftToRef, @@ -162,7 +162,7 @@ unsafe impl VmpApplyImpl for FFT64 { ); } - 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 VmpApplyImpl for FFT64 { } } -unsafe impl VmpApplyAddTmpBytesImpl for FFT64 { - fn vmp_apply_add_tmp_bytes_impl( +unsafe impl VmpApplyDftToDftAddTmpBytesImpl for FFT64 { + fn vmp_apply_dft_to_dft_add_tmp_bytes_impl( module: &Module, res_size: usize, a_size: usize, @@ -208,9 +208,15 @@ unsafe impl VmpApplyAddTmpBytesImpl for FFT64 { } } -unsafe impl VmpApplyAddImpl for FFT64 { - fn vmp_apply_add_impl(module: &Module, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch) - where +unsafe impl VmpApplyDftToDftAddImpl for FFT64 { + fn vmp_apply_dft_to_dft_add_impl( + module: &Module, + res: &mut R, + a: &A, + b: &C, + scale: usize, + scratch: &mut Scratch, + ) where R: VecZnxDftToMut, A: VecZnxDftToRef, C: VmpPMatToRef, @@ -239,7 +245,7 @@ unsafe impl VmpApplyAddImpl for FFT64 { ); } - 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(), diff --git a/poulpy-core/src/automorphism/gglwe_atk.rs b/poulpy-core/src/automorphism/gglwe_atk.rs index fb5dbfd..4c3ed3f 100644 --- a/poulpy-core/src/automorphism/gglwe_atk.rs +++ b/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 @@ impl GGLWEAutomorphismKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank, rank) } @@ -35,7 +35,7 @@ impl GGLWEAutomorphismKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GGLWEAutomorphismKey::automorphism_scratch_space(module, basek, k_out, k_out, k_ksk, digits, rank) } @@ -50,10 +50,10 @@ impl GGLWEAutomorphismKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -134,10 +134,10 @@ impl GGLWEAutomorphismKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/automorphism/ggsw_ct.rs b/poulpy-core/src/automorphism/ggsw_ct.rs index f049a38..a67be34 100644 --- a/poulpy-core/src/automorphism/ggsw_ct.rs +++ b/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 @@ impl GGSWCiphertext> { rank: usize, ) -> usize where - Module: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: 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 @@ impl GGSWCiphertext> { rank: usize, ) -> usize where - Module: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: 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 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -138,10 +145,10 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -168,10 +175,10 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/automorphism/glwe_ct.rs b/poulpy-core/src/automorphism/glwe_ct.rs index a86c0c3..dd9484b 100644 --- a/poulpy-core/src/automorphism/glwe_ct.rs +++ b/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 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank, rank) } @@ -35,7 +35,7 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::keyswitch_inplace_scratch_space(module, basek, k_out, k_ksk, digits, rank) } @@ -50,10 +50,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -74,10 +74,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -99,10 +99,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -130,10 +130,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -155,10 +155,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -187,10 +187,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -213,10 +213,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -245,10 +245,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/conversion/glwe_to_lwe.rs b/poulpy-core/src/conversion/glwe_to_lwe.rs index ba49a0e..244035d 100644 --- a/poulpy-core/src/conversion/glwe_to_lwe.rs +++ b/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 @@ impl LWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: 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 @@ impl LWECiphertext { DGlwe: DataRef, DKs: DataRef, Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/conversion/lwe_to_glwe.rs b/poulpy-core/src/conversion/lwe_to_glwe.rs index 9cffef9..1a723cf 100644 --- a/poulpy-core/src/conversion/lwe_to_glwe.rs +++ b/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 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: 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 @@ impl GLWECiphertext { DLwe: DataRef, DKsk: DataRef, Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/external_product/gglwe_atk.rs b/poulpy-core/src/external_product/gglwe_atk.rs index e20396d..058eb65 100644 --- a/poulpy-core/src/external_product/gglwe_atk.rs +++ b/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 @@ impl GGLWEAutomorphismKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GGLWESwitchingKey::external_product_scratch_space(module, basek, k_out, k_in, ggsw_k, digits, rank) } @@ -34,7 +34,7 @@ impl GGLWEAutomorphismKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GGLWESwitchingKey::external_product_inplace_scratch_space(module, basek, k_out, ggsw_k, digits, rank) } @@ -49,11 +49,11 @@ impl GGLWEAutomorphismKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, @@ -68,11 +68,11 @@ impl GGLWEAutomorphismKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, diff --git a/poulpy-core/src/external_product/gglwe_ksk.rs b/poulpy-core/src/external_product/gglwe_ksk.rs index 1936daa..30f202a 100644 --- a/poulpy-core/src/external_product/gglwe_ksk.rs +++ b/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 @@ impl GGLWESwitchingKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_scratch_space(module, basek, k_out, k_in, k_ggsw, digits, rank) } @@ -34,7 +34,7 @@ impl GGLWESwitchingKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_inplace_scratch_space(module, basek, k_out, k_ggsw, digits, rank) } @@ -49,11 +49,11 @@ impl GGLWESwitchingKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, @@ -104,11 +104,11 @@ impl GGLWESwitchingKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, diff --git a/poulpy-core/src/external_product/ggsw_ct.rs b/poulpy-core/src/external_product/ggsw_ct.rs index b0aaa84..f28c7aa 100644 --- a/poulpy-core/src/external_product/ggsw_ct.rs +++ b/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 @@ impl GGSWCiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_scratch_space(module, basek, k_out, k_in, k_ggsw, digits, rank) } @@ -34,7 +34,7 @@ impl GGSWCiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { GLWECiphertext::external_product_inplace_scratch_space(module, basek, k_out, k_ggsw, digits, rank) } @@ -49,11 +49,11 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, @@ -114,11 +114,11 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, diff --git a/poulpy-core/src/external_product/glwe_ct.rs b/poulpy-core/src/external_product/glwe_ct.rs index e961dd1..8290e2e 100644 --- a/poulpy-core/src/external_product/glwe_ct.rs +++ b/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 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: 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 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes, { Self::external_product_scratch_space(module, basek, k_out, k_out, k_ggsw, digits, rank) } @@ -63,11 +63,11 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, @@ -125,9 +125,9 @@ impl GLWECiphertext { }); 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 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + DFT - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, diff --git a/poulpy-core/src/glwe_packing.rs b/poulpy-core/src/glwe_packing.rs index e75ef29..0c63b71 100644 --- a/poulpy-core/src/glwe_packing.rs +++ b/poulpy-core/src/glwe_packing.rs @@ -5,7 +5,8 @@ use poulpy_hal::{ 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 @@ impl GLWEPacker { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { pack_core_scratch_space(module, basek, ct_k, k_ksk, digits, rank) } @@ -121,10 +122,10 @@ impl GLWEPacker { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -185,7 +186,7 @@ fn pack_core_scratch_space( rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { combine_scratch_space(module, basek, ct_k, k_ksk, digits, rank) } @@ -199,10 +200,10 @@ fn pack_core( scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -279,7 +280,7 @@ fn combine_scratch_space( rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::bytes_of(module.n(), basek, ct_k, rank) + (GLWECiphertext::rsh_scratch_space(module.n()) @@ -296,10 +297,10 @@ fn combine( scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/glwe_trace.rs b/poulpy-core/src/glwe_trace.rs index 9f4fb82..4baf115 100644 --- a/poulpy-core/src/glwe_trace.rs +++ b/poulpy-core/src/glwe_trace.rs @@ -3,8 +3,8 @@ use std::collections::HashMap; 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 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::automorphism_inplace_scratch_space(module, basek, out_k.min(in_k), ksk_k, digits, rank) } @@ -52,7 +52,7 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::automorphism_inplace_scratch_space(module, basek, out_k, ksk_k, digits, rank) } @@ -69,10 +69,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -95,10 +95,10 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/keyswitching/gglwe_ct.rs b/poulpy-core/src/keyswitching/gglwe_ct.rs index b56d396..8f1890e 100644 --- a/poulpy-core/src/keyswitching/gglwe_ct.rs +++ b/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 @@ impl GGLWEAutomorphismKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GGLWESwitchingKey::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank, rank) } @@ -37,7 +37,7 @@ impl GGLWEAutomorphismKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GGLWESwitchingKey::keyswitch_inplace_scratch_space(module, basek, k_out, k_ksk, digits, rank) } @@ -52,10 +52,10 @@ impl GGLWEAutomorphismKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -72,10 +72,10 @@ impl GGLWEAutomorphismKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -99,7 +99,7 @@ impl GGLWESwitchingKey> { rank_out: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::keyswitch_scratch_space(module, basek, k_out, k_in, k_ksk, digits, rank_in, rank_out) } @@ -113,7 +113,7 @@ impl GGLWESwitchingKey> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { GLWECiphertext::keyswitch_inplace_scratch_space(module, basek, k_out, k_ksk, digits, rank) } @@ -128,10 +128,10 @@ impl GGLWESwitchingKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -184,10 +184,10 @@ impl GGLWESwitchingKey { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/keyswitching/ggsw_ct.rs b/poulpy-core/src/keyswitching/ggsw_ct.rs index ac6a29b..5fcd1b2 100644 --- a/poulpy-core/src/keyswitching/ggsw_ct.rs +++ b/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 @@ impl GGSWCiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes, + Module: 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 @@ impl GGSWCiphertext> { 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 @@ impl GGSWCiphertext> { rank: usize, ) -> usize where - Module: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: 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 @@ impl GGSWCiphertext> { rank: usize, ) -> usize where - Module: - VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: 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 @@ impl GGSWCiphertext { DataTsk: DataRef, Module: VecZnxCopy + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + DFT + VecZnxDftCopy - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxDftAddInplace + VecZnxBigNormalize + IDFTTmpA, @@ -139,10 +146,10 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -167,10 +174,10 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -196,13 +203,13 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes + DFT + VecZnxDftCopy - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxDftAddInplace + VecZnxBigNormalize + IDFTTmpA, @@ -288,9 +295,9 @@ impl GGSWCiphertext { 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 @@ impl GGSWCiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/keyswitching/glwe_ct.rs b/poulpy-core/src/keyswitching/glwe_ct.rs index 5c3057c..e7e1ecd 100644 --- a/poulpy-core/src/keyswitching/glwe_ct.rs +++ b/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 @@ impl GLWECiphertext> { rank_out: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: 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 @@ impl GLWECiphertext> { rank: usize, ) -> usize where - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, { Self::keyswitch_scratch_space(module, basek, k_out, k_out, k_ksk, digits, rank, rank) } @@ -60,7 +60,7 @@ impl GLWECiphertext { ) where DataLhs: DataRef, DataRhs: DataRef, - Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes, + Module: VecZnxDftAllocBytes + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes, Scratch: ScratchAvailable, { let basek: usize = self.basek(); @@ -128,11 +128,11 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -157,11 +157,11 @@ impl GLWECiphertext { scratch: &mut Scratch, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -187,11 +187,11 @@ impl GLWECiphertext { DataRes: DataMut, DataKey: DataRef, Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -224,7 +224,7 @@ where DataRes: DataMut, DataIn: DataRef, DataVmp: DataRef, - Module: VecZnxDftAllocBytes + DFT + VmpApply + IDFTConsume + VecZnxBigAddSmallInplace, + Module: VecZnxDftAllocBytes + DFT + VmpApplyDftToDft + IDFTConsume + VecZnxBigAddSmallInplace, Scratch: TakeVecZnxDft, { let cols: usize = a.cols(); @@ -232,7 +232,7 @@ where (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 = 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: VecZnxDftAllocBytes + DFT + VmpApply + VmpApplyAdd + IDFTConsume + VecZnxBigAddSmallInplace, + Module: VecZnxDftAllocBytes + + DFT + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + + IDFTConsume + + VecZnxBigAddSmallInplace, Scratch: TakeVecZnxDft, { let cols: usize = a.cols(); @@ -276,9 +281,9 @@ where }); 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); } }); diff --git a/poulpy-core/src/keyswitching/lwe_ct.rs b/poulpy-core/src/keyswitching/lwe_ct.rs index b7c4f89..7802e66 100644 --- a/poulpy-core/src/keyswitching/lwe_ct.rs +++ b/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 @@ impl LWECiphertext> { ) -> usize where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -47,10 +47,10 @@ impl LWECiphertext { A: DataRef, DKs: DataRef, Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs b/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs index 27b08d5..5e9d245 100644 --- a/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs +++ b/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs @@ -4,8 +4,8 @@ use poulpy_hal::{ 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 @@ pub fn test_gglwe_automorphism_key_automorphism( rank: usize, ) where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -214,11 +214,11 @@ pub fn test_gglwe_automorphism_key_automorphism_inplace( + SvpPPolAllocBytes + SvpPPolAlloc + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs b/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs index f5831f5..9aab7b3 100644 --- a/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs +++ b/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs @@ -5,7 +5,8 @@ use poulpy_hal::{ 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 @@ pub fn test_ggsw_automorphism( + VecZnxSubABInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxDftCopy + VecZnxDftAddInplace + VecZnxFillUniform @@ -211,9 +212,9 @@ pub fn test_ggsw_automorphism_inplace( + VecZnxSubABInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigAddSmallInplace + VecZnxDftCopy + VecZnxDftAddInplace diff --git a/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs b/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs index c3142ff..5565947 100644 --- a/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs +++ b/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs @@ -4,7 +4,8 @@ use poulpy_hal::{ 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 @@ pub fn test_glwe_automorphism( + VecZnxBigAllocBytes + VecZnxBigAddInplace + VecZnxBigAddSmallInplace - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxAutomorphism + VecZnxSwithcDegree + VecZnxAddScalarInplace @@ -177,10 +178,10 @@ pub fn test_glwe_automorphism_inplace( + VecZnxBigAllocBytes + VecZnxBigAddInplace + VecZnxBigAddSmallInplace - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxAutomorphism + VecZnxSwithcDegree + VecZnxAddScalarInplace diff --git a/poulpy-core/src/tests/generics/conversion.rs b/poulpy-core/src/tests/generics/conversion.rs index 7b6ed01..44c935c 100644 --- a/poulpy-core/src/tests/generics/conversion.rs +++ b/poulpy-core/src/tests/generics/conversion.rs @@ -4,8 +4,8 @@ use poulpy_hal::{ 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 @@ where + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace @@ -150,9 +150,9 @@ where + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace diff --git a/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs b/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs index aef3c26..40e9658 100644 --- a/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs +++ b/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs @@ -4,8 +4,8 @@ use poulpy_hal::{ 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 @@ where + SvpPrepare + SvpPPolAllocBytes + SvpPPolAlloc - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigAddSmallInplace + VecZnxAutomorphism + VecZnxSwithcDegree @@ -134,10 +134,10 @@ pub fn test_gglwe_automorphisk_key_compressed_encrypt_sk( + SvpPrepare + SvpPPolAllocBytes + SvpPPolAlloc - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigAddSmallInplace + VecZnxAutomorphism + VecZnxSwithcDegree diff --git a/poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs b/poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs index 993fa29..655258e 100644 --- a/poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs +++ b/poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs @@ -4,7 +4,8 @@ use poulpy_hal::{ 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 @@ pub fn test_gglwe_switching_key_external_product( + VecZnxCopy + VmpPMatAlloc + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VmpPrepare, B: Backend + TakeVecZnxDftImpl @@ -199,9 +200,9 @@ pub fn test_gglwe_switching_key_external_product_inplace( + VecZnxCopy + VmpPMatAlloc + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VmpPrepare, B: Backend + TakeVecZnxDftImpl diff --git a/poulpy-core/src/tests/generics/external_product/ggsw_ct.rs b/poulpy-core/src/tests/generics/external_product/ggsw_ct.rs index 17acf94..a957aef 100644 --- a/poulpy-core/src/tests/generics/external_product/ggsw_ct.rs +++ b/poulpy-core/src/tests/generics/external_product/ggsw_ct.rs @@ -4,7 +4,8 @@ use poulpy_hal::{ 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 @@ pub fn test_ggsw_external_product( + VecZnxCopy + VmpPMatAlloc + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VmpPrepare + VecZnxBigAlloc + VecZnxDftAlloc @@ -188,9 +189,9 @@ pub fn test_ggsw_external_product_inplace( + VecZnxCopy + VmpPMatAlloc + VecZnxRotateInplace - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VmpPrepare + VecZnxBigAlloc + VecZnxDftAlloc diff --git a/poulpy-core/src/tests/generics/external_product/glwe_ct.rs b/poulpy-core/src/tests/generics/external_product/glwe_ct.rs index 937b89a..cdfcbf4 100644 --- a/poulpy-core/src/tests/generics/external_product/glwe_ct.rs +++ b/poulpy-core/src/tests/generics/external_product/glwe_ct.rs @@ -3,8 +3,8 @@ use poulpy_hal::{ 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 @@ pub fn test_glwe_external_product( + VecZnxRotateInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd, + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl @@ -189,9 +189,9 @@ pub fn test_glwe_external_product_inplace( + VecZnxRotateInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd, + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl diff --git a/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs b/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs index bc42f50..57cd36f 100644 --- a/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs @@ -4,7 +4,7 @@ use poulpy_hal::{ 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 @@ pub fn test_gglwe_switching_key_keyswitch( + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxSubScalarInplace, @@ -204,9 +204,9 @@ pub fn test_gglwe_switching_key_keyswitch_inplace( + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxSubScalarInplace, diff --git a/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs b/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs index 6048a2c..c6d700e 100644 --- a/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs @@ -4,8 +4,8 @@ use poulpy_hal::{ 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 @@ pub fn test_ggsw_keyswitch( + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + SvpApply @@ -201,9 +201,9 @@ pub fn test_ggsw_keyswitch_inplace( + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + SvpApply diff --git a/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs b/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs index 1b9d35e..f80e7c7 100644 --- a/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs @@ -4,7 +4,7 @@ use poulpy_hal::{ 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 @@ pub fn test_glwe_keyswitch( + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree, B: Backend @@ -170,9 +170,9 @@ where + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree, B: Backend diff --git a/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs b/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs index 7d79870..bc86cc1 100644 --- a/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs @@ -4,8 +4,8 @@ use poulpy_hal::{ 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 @@ where + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace diff --git a/poulpy-core/src/tests/generics/packing.rs b/poulpy-core/src/tests/generics/packing.rs index 0ca8091..9f93326 100644 --- a/poulpy-core/src/tests/generics/packing.rs +++ b/poulpy-core/src/tests/generics/packing.rs @@ -7,8 +7,8 @@ use poulpy_hal::{ 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 @@ where + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxAutomorphismInplace diff --git a/poulpy-core/src/tests/generics/trace.rs b/poulpy-core/src/tests/generics/trace.rs index 5a93383..e94d997 100644 --- a/poulpy-core/src/tests/generics/trace.rs +++ b/poulpy-core/src/tests/generics/trace.rs @@ -7,7 +7,8 @@ use poulpy_hal::{ 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 @@ where + VecZnxAddScalarInplace + VmpPMatAlloc + VmpPrepare - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + VecZnxCopy, diff --git a/poulpy-hal/src/api/vmp_pmat.rs b/poulpy-hal/src/api/vmp_pmat.rs index 088b773..972ceb1 100644 --- a/poulpy-hal/src/api/vmp_pmat.rs +++ b/poulpy-hal/src/api/vmp_pmat.rs @@ -24,8 +24,8 @@ pub trait VmpPrepare { } #[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 @@ pub trait VmpApplyTmpBytes { ) -> usize; } -pub trait VmpApply { +pub trait VmpApplyDftToDft { /// 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 @@ pub trait VmpApply { /// * `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(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) + fn vmp_apply_dft_to_dft(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) where R: VecZnxDftToMut, A: VecZnxDftToRef, @@ -69,8 +69,8 @@ pub trait VmpApply { } #[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 @@ pub trait VmpApplyAddTmpBytes { ) -> usize; } -pub trait VmpApplyAdd { - fn vmp_apply_add(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch) +pub trait VmpApplyDftToDftAdd { + fn vmp_apply_dft_to_dft_add(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch) where R: VecZnxDftToMut, A: VecZnxDftToRef, diff --git a/poulpy-hal/src/delegates/vmp_pmat.rs b/poulpy-hal/src/delegates/vmp_pmat.rs index a34e412..33cbc15 100644 --- a/poulpy-hal/src/delegates/vmp_pmat.rs +++ b/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 @@ where } } -impl VmpApplyTmpBytes for Module +impl VmpApplyDftToDftTmpBytes for Module where - B: Backend + VmpApplyTmpBytesImpl, + B: Backend + VmpApplyDftToDftTmpBytesImpl, { - fn vmp_apply_tmp_bytes( + fn vmp_apply_dft_to_dft_tmp_bytes( &self, res_size: usize, a_size: usize, @@ -72,31 +72,31 @@ where 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 VmpApply for Module +impl VmpApplyDftToDft for Module where - B: Backend + VmpApplyImpl, + B: Backend + VmpApplyDftToDftImpl, { - fn vmp_apply(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) + fn vmp_apply_dft_to_dft(&self, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) where R: VecZnxDftToMut, A: VecZnxDftToRef, C: VmpPMatToRef, { - B::vmp_apply_impl(self, res, a, b, scratch); + B::vmp_apply_dft_to_dft_impl(self, res, a, b, scratch); } } -impl VmpApplyAddTmpBytes for Module +impl VmpApplyDftToDftAddTmpBytes for Module where - B: Backend + VmpApplyAddTmpBytesImpl, + B: Backend + VmpApplyDftToDftAddTmpBytesImpl, { - 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 @@ where 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 VmpApplyAdd for Module +impl VmpApplyDftToDftAdd for Module where - B: Backend + VmpApplyAddImpl, + B: Backend + VmpApplyDftToDftAddImpl, { - fn vmp_apply_add(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch) + fn vmp_apply_dft_to_dft_add(&self, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch) where R: VecZnxDftToMut, A: VecZnxDftToRef, C: VmpPMatToRef, { - 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); } } diff --git a/poulpy-hal/src/oep/vmp_pmat.rs b/poulpy-hal/src/oep/vmp_pmat.rs index 5781ce1..a81671b 100644 --- a/poulpy-hal/src/oep/vmp_pmat.rs +++ b/poulpy-hal/src/oep/vmp_pmat.rs @@ -57,8 +57,8 @@ pub unsafe trait VmpPMatPrepareImpl { /// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyTmpBytesImpl { - fn vmp_apply_tmp_bytes_impl( +pub unsafe trait VmpApplyDftToDftTmpBytesImpl { + fn vmp_apply_dft_to_dft_tmp_bytes_impl( module: &Module, res_size: usize, a_size: usize, @@ -73,8 +73,8 @@ pub unsafe trait VmpApplyTmpBytesImpl { /// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyImpl { - fn vmp_apply_impl(module: &Module, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) +pub unsafe trait VmpApplyDftToDftImpl { + fn vmp_apply_dft_to_dft_impl(module: &Module, res: &mut R, a: &A, b: &C, scratch: &mut Scratch) where R: VecZnxDftToMut, A: VecZnxDftToRef, @@ -86,8 +86,8 @@ pub unsafe trait VmpApplyImpl { /// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyAddTmpBytesImpl { - fn vmp_apply_add_tmp_bytes_impl( +pub unsafe trait VmpApplyDftToDftAddTmpBytesImpl { + fn vmp_apply_dft_to_dft_add_tmp_bytes_impl( module: &Module, res_size: usize, a_size: usize, @@ -102,10 +102,16 @@ pub unsafe trait VmpApplyAddTmpBytesImpl { /// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VmpApplyAddImpl { +pub unsafe trait VmpApplyDftToDftAddImpl { // Same as [MatZnxDftOps::vmp_apply] except result is added on R instead of overwritting R. - fn vmp_apply_add_impl(module: &Module, res: &mut R, a: &A, b: &C, scale: usize, scratch: &mut Scratch) - where + fn vmp_apply_dft_to_dft_add_impl( + module: &Module, + res: &mut R, + a: &A, + b: &C, + scale: usize, + scratch: &mut Scratch, + ) where R: VecZnxDftToMut, A: VecZnxDftToRef, C: VmpPMatToRef; diff --git a/poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs b/poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs index 98a4d9e..ad6511a 100644 --- a/poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs +++ b/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() where B: Backend + ModuleNewImpl - + VmpApplyTmpBytesImpl + + VmpApplyDftToDftTmpBytesImpl + VecZnxBigNormalizeTmpBytesImpl + VmpPMatAllocImpl + VecZnxDftAllocImpl + VecZnxBigAllocImpl + VmpPMatPrepareImpl + DFTImpl - + VmpApplyImpl + + VmpApplyDftToDftImpl + IDFTTmpAImpl + ScratchOwnedAllocImpl + ScratchOwnedBorrowImpl @@ -49,7 +49,7 @@ where 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 @@ where 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 = vec![i64::default(); n]; diff --git a/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs b/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs index fc5f69a..65633c2 100644 --- a/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs +++ b/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs @@ -5,7 +5,8 @@ use poulpy_hal::{ 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 @@ pub fn cggi_blind_rotate_scratch_space( ) -> usize where Module: VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxNormalizeTmpBytes + VecZnxBigAllocBytes + VecZnxIDFTTmpBytes @@ -47,7 +48,7 @@ where 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: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT @@ -88,8 +89,8 @@ where + VecZnxNormalizeInplace + VecZnxCopy + VecZnxMulXpMinusOneInplace - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize + VecZnxNormalizeTmpBytes, @@ -132,7 +133,7 @@ fn execute_block_binary_extended( Module: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT @@ -151,7 +152,7 @@ fn execute_block_binary_extended( + VecZnxCopy + VecZnxMulXpMinusOneInplace + VecZnxBigNormalize - + VmpApply, + + VmpApplyDftToDft, Scratch: TakeVecZnxDftSlice + TakeVecZnxDft + TakeVecZnxBig + TakeVecZnxSlice + ScratchAvailable + TakeVecZnx, { let n_glwe: usize = brk.n(); @@ -220,7 +221,7 @@ fn execute_block_binary_extended( // 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 @@ fn execute_block_binary( Module: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT @@ -317,7 +318,7 @@ fn execute_block_binary( + VecZnxNormalizeInplace + VecZnxCopy + VecZnxMulXpMinusOneInplace - + VmpApply + + VmpApplyDftToDft + VecZnxBigNormalize, Scratch: TakeVecZnxDftSlice + TakeVecZnxDft + TakeVecZnxBig + TakeVecZnxSlice + ScratchAvailable + TakeVecZnx, { @@ -377,7 +378,7 @@ fn execute_block_binary( 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 @@ fn execute_standard( Module: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT @@ -431,8 +432,8 @@ fn execute_standard( + VecZnxNormalizeInplace + VecZnxCopy + VecZnxMulXpMinusOneInplace - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + IDFTConsume + VecZnxBigNormalize + VecZnxNormalizeTmpBytes, diff --git a/poulpy-schemes/src/tfhe/blind_rotation/tests/generic_blind_rotation.rs b/poulpy-schemes/src/tfhe/blind_rotation/tests/generic_blind_rotation.rs index 8f83ded..e522462 100644 --- a/poulpy-schemes/src/tfhe/blind_rotation/tests/generic_blind_rotation.rs +++ b/poulpy-schemes/src/tfhe/blind_rotation/tests/generic_blind_rotation.rs @@ -5,8 +5,8 @@ use poulpy_hal::{ 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: VecZnxBigAllocBytes + VecZnxDftAllocBytes + SvpPPolAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes + VecZnxIDFTTmpBytes + IDFT @@ -64,8 +64,8 @@ where + VecZnxSub + VmpPMatAlloc + VmpPrepare - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + ZnFillUniform + ZnAddNormal + ZnNormalizeInplace, diff --git a/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs b/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs index d489636..2e01fc6 100644 --- a/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs +++ b/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs @@ -7,7 +7,7 @@ use poulpy_hal::{ 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 @@ where + VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -138,10 +138,10 @@ pub fn circuit_bootstrap_core( + VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -263,10 +263,10 @@ fn post_process( + VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -335,10 +335,10 @@ pub fn pack( + VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace @@ -414,10 +414,10 @@ fn combine( + VecZnxCopy + VecZnxSubABInplace + VecZnxDftAllocBytes - + VmpApplyTmpBytes + + VmpApplyDftToDftTmpBytes + VecZnxBigNormalizeTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + DFT + IDFTConsume + VecZnxBigAddSmallInplace diff --git a/poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs b/poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs index 403fc5b..03cd21f 100644 --- a/poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs +++ b/poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs @@ -8,8 +8,8 @@ use poulpy_hal::{ 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 @@ where + VmpPrepare + SvpPrepare + SvpPPolAlloc - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + SvpPPolAllocBytes + VecZnxRotateInplace + VecZnxBigAutomorphismInplace @@ -247,9 +247,9 @@ where + VmpPrepare + SvpPrepare + SvpPPolAlloc - + VmpApplyTmpBytes - + VmpApply - + VmpApplyAdd + + VmpApplyDftToDftTmpBytes + + VmpApplyDftToDft + + VmpApplyDftToDftAdd + SvpPPolAllocBytes + VecZnxRotateInplace + VecZnxBigAutomorphismInplace