From 1551f7a6f0f72d052b1ec345a3ce3e0e0225cb91 Mon Sep 17 00:00:00 2001 From: Pro7ech Date: Mon, 25 Aug 2025 09:08:27 +0200 Subject: [PATCH] rename raw dft ops --- poulpy-backend/examples/rlwe_encrypt.rs | 14 ++--- .../src/cpu_spqlios/fft64/vec_znx_dft.rs | 48 ++++++----------- poulpy-core/src/automorphism/gglwe_atk.rs | 14 ++--- poulpy-core/src/automorphism/ggsw_ct.rs | 23 ++++---- poulpy-core/src/automorphism/glwe_ct.rs | 38 ++++++------- poulpy-core/src/conversion/glwe_to_lwe.rs | 8 +-- poulpy-core/src/conversion/lwe_to_glwe.rs | 8 +-- poulpy-core/src/decryption/glwe_ct.rs | 12 ++--- .../src/encryption/compressed/gglwe_atk.rs | 12 ++--- .../src/encryption/compressed/gglwe_ct.rs | 10 ++-- .../src/encryption/compressed/gglwe_ksk.rs | 12 ++--- .../src/encryption/compressed/gglwe_tsk.rs | 19 ++++--- .../src/encryption/compressed/ggsw_ct.rs | 10 ++-- .../src/encryption/compressed/glwe_ct.rs | 14 ++--- poulpy-core/src/encryption/gglwe_atk.rs | 12 ++--- poulpy-core/src/encryption/gglwe_ct.rs | 10 ++-- poulpy-core/src/encryption/gglwe_ksk.rs | 12 ++--- poulpy-core/src/encryption/gglwe_tsk.rs | 18 +++---- poulpy-core/src/encryption/ggsw_ct.rs | 10 ++-- poulpy-core/src/encryption/glwe_ct.rs | 40 +++++++------- poulpy-core/src/encryption/glwe_pk.rs | 10 ++-- poulpy-core/src/encryption/glwe_to_lwe_ksk.rs | 12 ++--- poulpy-core/src/encryption/lwe_ksk.rs | 12 ++--- poulpy-core/src/encryption/lwe_to_glwe_ksk.rs | 12 ++--- poulpy-core/src/external_product/gglwe_atk.rs | 12 ++--- poulpy-core/src/external_product/gglwe_ksk.rs | 12 ++--- poulpy-core/src/external_product/ggsw_ct.rs | 12 ++--- poulpy-core/src/external_product/glwe_ct.rs | 16 +++--- poulpy-core/src/glwe_packing.rs | 21 ++++---- poulpy-core/src/glwe_trace.rs | 14 ++--- poulpy-core/src/keyswitching/gglwe_ct.rs | 20 +++---- poulpy-core/src/keyswitching/ggsw_ct.rs | 34 ++++++------ poulpy-core/src/keyswitching/glwe_ct.rs | 34 +++++------- poulpy-core/src/keyswitching/lwe_ct.rs | 12 ++--- .../src/layouts/compressed/glwe_to_lwe_ksk.rs | 10 ++-- poulpy-core/src/layouts/compressed/lwe_ksk.rs | 10 ++-- .../src/layouts/compressed/lwe_to_glwe_ksk.rs | 10 ++-- poulpy-core/src/layouts/prepared/glwe_pk.rs | 8 +-- poulpy-core/src/noise/gglwe_ct.rs | 9 ++-- poulpy-core/src/noise/ggsw_ct.rs | 27 +++++----- poulpy-core/src/noise/glwe_ct.rs | 10 ++-- .../tests/generics/automorphism/gglwe_atk.rs | 28 +++++----- .../tests/generics/automorphism/ggsw_ct.rs | 25 +++++---- .../tests/generics/automorphism/glwe_ct.rs | 19 ++++--- poulpy-core/src/tests/generics/conversion.rs | 20 +++---- .../tests/generics/encryption/gglwe_atk.rs | 20 +++---- .../src/tests/generics/encryption/gglwe_ct.rs | 16 +++--- .../src/tests/generics/encryption/ggsw_ct.rs | 22 ++++---- .../src/tests/generics/encryption/glwe_ct.rs | 43 ++++++++------- .../src/tests/generics/encryption/glwe_tsk.rs | 30 +++++------ .../generics/external_product/gglwe_ksk.rs | 16 +++--- .../generics/external_product/ggsw_ct.rs | 23 ++++---- .../generics/external_product/glwe_ct.rs | 18 +++---- .../src/tests/generics/keyswitch/gglwe_ct.rs | 18 +++---- .../src/tests/generics/keyswitch/ggsw_ct.rs | 24 ++++----- .../src/tests/generics/keyswitch/glwe_ct.rs | 18 +++---- .../src/tests/generics/keyswitch/lwe_ct.rs | 16 +++--- poulpy-core/src/tests/generics/packing.rs | 18 +++---- poulpy-core/src/tests/generics/trace.rs | 17 +++--- poulpy-hal/src/api/vec_znx_dft.rs | 30 +++++------ poulpy-hal/src/delegates/vec_znx_dft.rs | 52 +++++++++--------- poulpy-hal/src/oep/vec_znx_dft.rs | 53 +++++++------------ poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs | 18 +++---- .../src/tfhe/blind_rotation/cggi_algo.rs | 51 +++++++++--------- .../src/tfhe/blind_rotation/cggi_key.rs | 15 +++--- .../tests/generic_blind_rotation.rs | 23 ++++---- .../src/tfhe/circuit_bootstrapping/circuit.rs | 42 +++++++-------- .../src/tfhe/circuit_bootstrapping/key.rs | 16 +++--- .../tests/circuit_bootstrapping.rs | 29 +++++----- 69 files changed, 666 insertions(+), 715 deletions(-) diff --git a/poulpy-backend/examples/rlwe_encrypt.rs b/poulpy-backend/examples/rlwe_encrypt.rs index 0ec846d..ec9b066 100644 --- a/poulpy-backend/examples/rlwe_encrypt.rs +++ b/poulpy-backend/examples/rlwe_encrypt.rs @@ -2,9 +2,9 @@ use itertools::izip; use poulpy_backend::cpu_spqlios::FFT64; use poulpy_hal::{ api::{ - ModuleNew, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPrepare, VecZnxAddNormal, - VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, - VecZnxDftAlloc, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigTmpA, VecZnxFillUniform, VecZnxNormalizeInplace, + DFT, IDFTTmpA, ModuleNew, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPrepare, + VecZnxAddNormal, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, + VecZnxBigSubSmallBInplace, VecZnxDftAlloc, VecZnxFillUniform, VecZnxNormalizeInplace, }, layouts::{Module, ScalarZnx, ScratchOwned, SvpPPol, VecZnx, VecZnxBig, VecZnxDft, ZnxInfos}, source::Source, @@ -45,7 +45,7 @@ fn main() { let mut buf_dft: VecZnxDft, FFT64> = module.vec_znx_dft_alloc(1, ct_size); - module.vec_znx_dft_from_vec_znx(1, 0, &mut buf_dft, 0, &ct, 1); + module.dft(1, 0, &mut buf_dft, 0, &ct, 1); // Applies DFT(ct[1]) * DFT(s) module.svp_apply_inplace( @@ -59,7 +59,7 @@ fn main() { // BIG(ct[1] * s) <- IDFT(DFT(ct[1] * s)) (not normalized) let mut buf_big: VecZnxBig, FFT64> = module.vec_znx_big_alloc(1, ct_size); - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut buf_big, 0, &mut buf_dft, 0); + module.idft_tmp_a(&mut buf_big, 0, &mut buf_dft, 0); // Creates a plaintext: VecZnx with 1 column let mut m = VecZnx::alloc( @@ -109,7 +109,7 @@ fn main() { // Decryption // DFT(ct[1] * s) - module.vec_znx_dft_from_vec_znx(1, 0, &mut buf_dft, 0, &ct, 1); + module.dft(1, 0, &mut buf_dft, 0, &ct, 1); module.svp_apply_inplace( &mut buf_dft, 0, // Selects the first column of res. @@ -118,7 +118,7 @@ fn main() { ); // BIG(c1 * s) = IDFT(DFT(c1 * s)) - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut buf_big, 0, &mut buf_dft, 0); + module.idft_tmp_a(&mut buf_big, 0, &mut buf_dft, 0); // BIG(c1 * s) + ct[0] module.vec_znx_big_add_small_inplace(&mut buf_big, 0, &ct, 0); diff --git a/poulpy-backend/src/cpu_spqlios/fft64/vec_znx_dft.rs b/poulpy-backend/src/cpu_spqlios/fft64/vec_znx_dft.rs index f3e5391..3fe9a60 100644 --- a/poulpy-backend/src/cpu_spqlios/fft64/vec_znx_dft.rs +++ b/poulpy-backend/src/cpu_spqlios/fft64/vec_znx_dft.rs @@ -1,14 +1,13 @@ use poulpy_hal::{ - api::{TakeSlice, VecZnxDftToVecZnxBigTmpBytes}, + api::{TakeSlice, VecZnxIDFTTmpBytes}, layouts::{ Backend, Data, Module, Scratch, VecZnx, VecZnxBig, VecZnxBigToMut, VecZnxDft, VecZnxDftOwned, VecZnxDftToMut, VecZnxDftToRef, VecZnxToRef, ZnxInfos, ZnxSliceSize, ZnxView, ZnxViewMut, ZnxZero, }, oep::{ - VecZnxDftAddImpl, VecZnxDftAddInplaceImpl, VecZnxDftAllocBytesImpl, VecZnxDftAllocImpl, VecZnxDftCopyImpl, - VecZnxDftFromBytesImpl, VecZnxDftFromVecZnxImpl, VecZnxDftSubABInplaceImpl, VecZnxDftSubBAInplaceImpl, VecZnxDftSubImpl, - VecZnxDftToVecZnxBigConsumeImpl, VecZnxDftToVecZnxBigImpl, VecZnxDftToVecZnxBigTmpAImpl, - VecZnxDftToVecZnxBigTmpBytesImpl, VecZnxDftZeroImpl, + DFTImpl, IDFTConsumeImpl, IDFTImpl, IDFTTmpAImpl, VecZnxDftAddImpl, VecZnxDftAddInplaceImpl, VecZnxDftAllocBytesImpl, + VecZnxDftAllocImpl, VecZnxDftCopyImpl, VecZnxDftFromBytesImpl, VecZnxDftSubABInplaceImpl, VecZnxDftSubBAInplaceImpl, + VecZnxDftSubImpl, VecZnxDftZeroImpl, VecZnxIDFTTmpBytesImpl, }, }; @@ -35,21 +34,15 @@ unsafe impl VecZnxDftAllocImpl for FFT64 { } } -unsafe impl VecZnxDftToVecZnxBigTmpBytesImpl for FFT64 { - fn vec_znx_dft_to_vec_znx_big_tmp_bytes_impl(module: &Module) -> usize { +unsafe impl VecZnxIDFTTmpBytesImpl for FFT64 { + fn vec_znx_idft_tmp_bytes_impl(module: &Module) -> usize { unsafe { vec_znx_dft::vec_znx_idft_tmp_bytes(module.ptr()) as usize } } } -unsafe impl VecZnxDftToVecZnxBigImpl for FFT64 { - fn vec_znx_dft_to_vec_znx_big_impl( - module: &Module, - res: &mut R, - res_col: usize, - a: &A, - a_col: usize, - scratch: &mut Scratch, - ) where +unsafe impl IDFTImpl for FFT64 { + fn idft_impl(module: &Module, res: &mut R, res_col: usize, a: &A, a_col: usize, scratch: &mut Scratch) + where R: VecZnxBigToMut, A: VecZnxDftToRef, { @@ -61,7 +54,7 @@ unsafe impl VecZnxDftToVecZnxBigImpl for FFT64 { assert_eq!(res.n(), a.n()) } - let (tmp_bytes, _) = scratch.take_slice(module.vec_znx_dft_to_vec_znx_big_tmp_bytes()); + let (tmp_bytes, _) = scratch.take_slice(module.vec_znx_idft_tmp_bytes()); let min_size: usize = res.size().min(a.size()); @@ -83,8 +76,8 @@ unsafe impl VecZnxDftToVecZnxBigImpl for FFT64 { } } -unsafe impl VecZnxDftToVecZnxBigTmpAImpl for FFT64 { - fn vec_znx_dft_to_vec_znx_big_tmp_a_impl(module: &Module, res: &mut R, res_col: usize, a: &mut A, a_col: usize) +unsafe impl IDFTTmpAImpl for FFT64 { + fn idft_tmp_a_impl(module: &Module, res: &mut R, res_col: usize, a: &mut A, a_col: usize) where R: VecZnxBigToMut, A: VecZnxDftToMut, @@ -111,8 +104,8 @@ unsafe impl VecZnxDftToVecZnxBigTmpAImpl for FFT64 { } } -unsafe impl VecZnxDftToVecZnxBigConsumeImpl for FFT64 { - fn vec_znx_dft_to_vec_znx_big_consume_impl(module: &Module, mut a: VecZnxDft) -> VecZnxBig +unsafe impl IDFTConsumeImpl for FFT64 { + fn idft_consume_impl(module: &Module, mut a: VecZnxDft) -> VecZnxBig where VecZnxDft: VecZnxDftToMut, { @@ -137,16 +130,9 @@ unsafe impl VecZnxDftToVecZnxBigConsumeImpl for FFT64 { } } -unsafe impl VecZnxDftFromVecZnxImpl for FFT64 { - fn vec_znx_dft_from_vec_znx_impl( - module: &Module, - step: usize, - offset: usize, - res: &mut R, - res_col: usize, - a: &A, - a_col: usize, - ) where +unsafe impl DFTImpl for FFT64 { + fn dft_impl(module: &Module, step: usize, offset: usize, res: &mut R, res_col: usize, a: &A, a_col: usize) + where R: VecZnxDftToMut, A: VecZnxToRef, { diff --git a/poulpy-core/src/automorphism/gglwe_atk.rs b/poulpy-core/src/automorphism/gglwe_atk.rs index 8995659..fb5dbfd 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxAutomorphism, VecZnxAutomorphismInplace, + VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, + VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, }; @@ -54,8 +54,8 @@ impl GGLWEAutomorphismKey { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphism @@ -138,8 +138,8 @@ impl GGLWEAutomorphismKey { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphism diff --git a/poulpy-core/src/automorphism/ggsw_ct.rs b/poulpy-core/src/automorphism/ggsw_ct.rs index e85fe14..f049a38 100644 --- a/poulpy-core/src/automorphism/ggsw_ct.rs +++ b/poulpy-core/src/automorphism/ggsw_ct.rs @@ -1,9 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, TakeVecZnxBig, TakeVecZnxDft, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAddInplace, VecZnxDftAllocBytes, VecZnxDftCopy, - VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxNormalizeTmpBytes, VmpApply, - VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, TakeVecZnxBig, TakeVecZnxDft, VecZnxAutomorphismInplace, + VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAddInplace, + VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, }; @@ -73,8 +72,8 @@ impl GGSWCiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace @@ -82,7 +81,7 @@ impl GGSWCiphertext { + VecZnxNormalizeTmpBytes + VecZnxDftCopy + VecZnxDftAddInplace - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, Scratch: TakeVecZnxDft + ScratchAvailable + TakeVecZnxBig, { #[cfg(debug_assertions)] @@ -143,8 +142,8 @@ impl GGSWCiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace @@ -152,7 +151,7 @@ impl GGSWCiphertext { + VecZnxNormalizeTmpBytes + VecZnxDftCopy + VecZnxDftAddInplace - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, Scratch: TakeVecZnxDft + ScratchAvailable + TakeVecZnxBig, { unsafe { @@ -173,8 +172,8 @@ impl GGSWCiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace, diff --git a/poulpy-core/src/automorphism/glwe_ct.rs b/poulpy-core/src/automorphism/glwe_ct.rs index cc94083..a86c0c3 100644 --- a/poulpy-core/src/automorphism/glwe_ct.rs +++ b/poulpy-core/src/automorphism/glwe_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, TakeVecZnxDft, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, VecZnxBigAutomorphismInplace, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallAInplace, VecZnxBigSubSmallBInplace, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, + VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallAInplace, + VecZnxBigSubSmallBInplace, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, VecZnxBig}, }; @@ -54,8 +54,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace, @@ -78,8 +78,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace, @@ -103,8 +103,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace, @@ -134,8 +134,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace, @@ -159,8 +159,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace @@ -191,8 +191,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace @@ -217,8 +217,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace @@ -249,8 +249,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace diff --git a/poulpy-core/src/conversion/glwe_to_lwe.rs b/poulpy-core/src/conversion/glwe_to_lwe.rs index de74d14..ba49a0e 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut, ZnxZero}, }; @@ -60,8 +60,8 @@ impl LWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: ScratchAvailable + TakeVecZnxDft + TakeGLWECt, diff --git a/poulpy-core/src/conversion/lwe_to_glwe.rs b/poulpy-core/src/conversion/lwe_to_glwe.rs index 07d44b6..9cffef9 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut, ZnxZero}, }; @@ -43,8 +43,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: ScratchAvailable + TakeVecZnxDft + TakeGLWECt, diff --git a/poulpy-core/src/decryption/glwe_ct.rs b/poulpy-core/src/decryption/glwe_ct.rs index 4018604..9dca49d 100644 --- a/poulpy-core/src/decryption/glwe_ct.rs +++ b/poulpy-core/src/decryption/glwe_ct.rs @@ -1,7 +1,7 @@ use poulpy_hal::{ api::{ - SvpApplyInplace, TakeVecZnxBig, TakeVecZnxDft, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxNormalizeTmpBytes, + DFT, IDFTConsume, SvpApplyInplace, TakeVecZnxBig, TakeVecZnxDft, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, + VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, }, layouts::{Backend, DataMut, DataRef, DataViewMut, Module, Scratch}, }; @@ -26,9 +26,9 @@ impl GLWECiphertext { sk: &GLWESecretPrepared, scratch: &mut Scratch, ) where - Module: VecZnxDftFromVecZnx + Module: DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize, @@ -50,9 +50,9 @@ impl GLWECiphertext { (1..cols).for_each(|i| { // ci_dft = DFT(a[i]) * DFT(s[i]) let (mut ci_dft, _) = scratch_1.take_vec_znx_dft(self.n(), 1, self.size()); // TODO optimize size when pt << ct - module.vec_znx_dft_from_vec_znx(1, 0, &mut ci_dft, 0, &self.data, i); + module.dft(1, 0, &mut ci_dft, 0, &self.data, i); module.svp_apply_inplace(&mut ci_dft, 0, &sk.data, i - 1); - let ci_big = module.vec_znx_dft_to_vec_znx_big_consume(ci_dft); + let ci_big = module.vec_znx_idft_consume(ci_dft); // c0_big += a[i] * s[i] module.vec_znx_big_add_inplace(&mut c0_big, 0, &ci_big, 0); diff --git a/poulpy-core/src/encryption/compressed/gglwe_atk.rs b/poulpy-core/src/encryption/compressed/gglwe_atk.rs index 414dbd1..4336030 100644 --- a/poulpy-core/src/encryption/compressed/gglwe_atk.rs +++ b/poulpy-core/src/encryption/compressed/gglwe_atk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxDft, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxBigNormalize, VecZnxDftAllocBytes, - VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, + TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxBigNormalize, + VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, + VecZnxSubABInplace, VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, source::Source, @@ -44,9 +44,9 @@ impl GGLWEAutomorphismKeyCompressed { + VecZnxSwithcDegree + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/compressed/gglwe_ct.rs b/poulpy-core/src/encryption/compressed/gglwe_ct.rs index d51191b..fd71478 100644 --- a/poulpy-core/src/encryption/compressed/gglwe_ct.rs +++ b/poulpy-core/src/encryption/compressed/gglwe_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, + VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, Scratch, ZnxZero}, source::Source, @@ -37,9 +37,9 @@ impl GGLWECiphertextCompressed { Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/compressed/gglwe_ksk.rs b/poulpy-core/src/encryption/compressed/gglwe_ksk.rs index 3bc93da..ce2a9a7 100644 --- a/poulpy-core/src/encryption/compressed/gglwe_ksk.rs +++ b/poulpy-core/src/encryption/compressed/gglwe_ksk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxDft, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, + TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, + VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, Scratch}, source::Source, @@ -47,9 +47,9 @@ impl GGLWESwitchingKeyCompressed { + VecZnxSwithcDegree + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/compressed/gglwe_tsk.rs b/poulpy-core/src/encryption/compressed/gglwe_tsk.rs index e7d4f08..5c38271 100644 --- a/poulpy-core/src/encryption/compressed/gglwe_tsk.rs +++ b/poulpy-core/src/encryption/compressed/gglwe_tsk.rs @@ -1,10 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, - TakeVecZnxBig, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, - VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, + DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, + TakeScalarZnx, TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, + VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, source::Source, @@ -35,12 +34,12 @@ impl GGLWETensorKeyCompressed { scratch: &mut Scratch, ) where Module: SvpApply - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -77,7 +76,7 @@ impl GGLWETensorKeyCompressed { let (mut sk_dft, scratch2) = scratch1.take_vec_znx_dft(n, rank, 1); (0..rank).for_each(|i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); + module.dft(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); }); let (mut sk_ij_big, scratch3) = scratch2.take_vec_znx_big(n, 1, 1); @@ -90,7 +89,7 @@ impl GGLWETensorKeyCompressed { (i..rank).for_each(|j| { module.svp_apply(&mut sk_ij_dft, 0, &sk_dft_prep.data, j, &sk_dft, i); - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); + module.idft_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); module.vec_znx_big_normalize( self.basek(), &mut sk_ij.data.as_vec_znx_mut(), diff --git a/poulpy-core/src/encryption/compressed/ggsw_ct.rs b/poulpy-core/src/encryption/compressed/ggsw_ct.rs index 27d2447..d398b52 100644 --- a/poulpy-core/src/encryption/compressed/ggsw_ct.rs +++ b/poulpy-core/src/encryption/compressed/ggsw_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, + VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, Scratch, ZnxZero}, source::Source, @@ -37,9 +37,9 @@ impl GGSWCiphertextCompressed { Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/compressed/glwe_ct.rs b/poulpy-core/src/encryption/compressed/glwe_ct.rs index 1db80e9..dbec125 100644 --- a/poulpy-core/src/encryption/compressed/glwe_ct.rs +++ b/poulpy-core/src/encryption/compressed/glwe_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, + VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, source::Source, @@ -35,9 +35,9 @@ impl GLWECiphertextCompressed { ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -63,9 +63,9 @@ impl GLWECiphertextCompressed { ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/gglwe_atk.rs b/poulpy-core/src/encryption/gglwe_atk.rs index 9a4e7a7..b31234c 100644 --- a/poulpy-core/src/encryption/gglwe_atk.rs +++ b/poulpy-core/src/encryption/gglwe_atk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxDft, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxBigNormalize, VecZnxDftAllocBytes, - VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, + TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxBigNormalize, + VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, + VecZnxSubABInplace, VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, source::Source, @@ -41,9 +41,9 @@ impl GGLWEAutomorphismKey { Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/gglwe_ct.rs b/poulpy-core/src/encryption/gglwe_ct.rs index cc5a59c..7d8781a 100644 --- a/poulpy-core/src/encryption/gglwe_ct.rs +++ b/poulpy-core/src/encryption/gglwe_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, + VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, Scratch, ZnxZero}, source::Source, @@ -41,9 +41,9 @@ impl GGLWECiphertext { Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/gglwe_ksk.rs b/poulpy-core/src/encryption/gglwe_ksk.rs index f199e0a..0f9e3f1 100644 --- a/poulpy-core/src/encryption/gglwe_ksk.rs +++ b/poulpy-core/src/encryption/gglwe_ksk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxDft, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, + TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, + VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, Scratch}, source::Source, @@ -55,9 +55,9 @@ impl GGLWESwitchingKey { Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/gglwe_tsk.rs b/poulpy-core/src/encryption/gglwe_tsk.rs index 871c4fc..6b288f6 100644 --- a/poulpy-core/src/encryption/gglwe_tsk.rs +++ b/poulpy-core/src/encryption/gglwe_tsk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxBig, - TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, + TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAllocBytes, + VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, source::Source, @@ -42,13 +42,13 @@ impl GGLWETensorKey { scratch: &mut Scratch, ) where Module: SvpApply - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -79,7 +79,7 @@ impl GGLWETensorKey { let (mut sk_dft, scratch2) = scratch1.take_vec_znx_dft(n, rank, 1); (0..rank).for_each(|i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); + module.dft(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); }); let (mut sk_ij_big, scratch3) = scratch2.take_vec_znx_big(n, 1, 1); @@ -90,7 +90,7 @@ impl GGLWETensorKey { (i..rank).for_each(|j| { module.svp_apply(&mut sk_ij_dft, 0, &sk_dft_prep.data, j, &sk_dft, i); - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); + module.idft_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); module.vec_znx_big_normalize( self.basek(), &mut sk_ij.data.as_vec_znx_mut(), diff --git a/poulpy-core/src/encryption/ggsw_ct.rs b/poulpy-core/src/encryption/ggsw_ct.rs index 71d5685..6b8484c 100644 --- a/poulpy-core/src/encryption/ggsw_ct.rs +++ b/poulpy-core/src/encryption/ggsw_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, + VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, Scratch, VecZnx, ZnxZero}, source::Source, @@ -40,9 +40,9 @@ impl GGSWCiphertext { Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/glwe_ct.rs b/poulpy-core/src/encryption/glwe_ct.rs index 93f5c40..7d47785 100644 --- a/poulpy-core/src/encryption/glwe_ct.rs +++ b/poulpy-core/src/encryption/glwe_ct.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeSvpPPol, TakeVecZnx, - TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigAddNormal, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeSvpPPol, + TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigAddNormal, VecZnxBigAddSmallInplace, + VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, Scratch, VecZnx, VecZnxBig, ZnxInfos, ZnxZero}, source::Source, @@ -53,9 +53,9 @@ impl GLWECiphertext { ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -92,9 +92,9 @@ impl GLWECiphertext { ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -138,9 +138,9 @@ impl GLWECiphertext { ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -180,7 +180,7 @@ impl GLWECiphertext { ) where Module: SvpPrepare + SvpApply - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddNormal + VecZnxBigAddSmallInplace + VecZnxBigNormalize, @@ -199,7 +199,7 @@ impl GLWECiphertext { ) where Module: SvpPrepare + SvpApply - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddNormal + VecZnxBigAddSmallInplace + VecZnxBigNormalize, @@ -227,7 +227,7 @@ impl GLWECiphertext { ) where Module: SvpPrepare + SvpApply - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddNormal + VecZnxBigAddSmallInplace + VecZnxBigNormalize, @@ -276,7 +276,7 @@ impl GLWECiphertext { module.svp_apply(&mut ci_dft, 0, &u_dft, 0, &pk.data, i); // ci_big = u * p[i] - let mut ci_big = module.vec_znx_dft_to_vec_znx_big_consume(ci_dft); + let mut ci_big = module.vec_znx_idft_consume(ci_dft); // ci_big = u * pk[i] + e module.vec_znx_big_add_normal(basek, &mut ci_big, 0, pk.k(), source_xe, SIGMA, SIGMA_BOUND); @@ -311,9 +311,9 @@ pub(crate) fn glwe_encrypt_sk_internal: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -361,16 +361,16 @@ pub(crate) fn glwe_encrypt_sk_internal = module.vec_znx_dft_to_vec_znx_big_consume(ci_dft); + let ci_big: VecZnxBig<&mut [u8], B> = module.vec_znx_idft_consume(ci_dft); // use c[0] as buffer, which is overwritten later by the normalization step module.vec_znx_big_normalize(basek, &mut ci, 0, &ci_big, 0, scratch_3); diff --git a/poulpy-core/src/encryption/glwe_pk.rs b/poulpy-core/src/encryption/glwe_pk.rs index 8129a27..d2cfc15 100644 --- a/poulpy-core/src/encryption/glwe_pk.rs +++ b/poulpy-core/src/encryption/glwe_pk.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxAddInplace, VecZnxAddNormal, + VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, DataMut, DataRef, Module, ScratchOwned}, oep::{ScratchAvailableImpl, ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl, TakeVecZnxDftImpl, TakeVecZnxImpl}, @@ -22,9 +22,9 @@ impl GLWEPublicKey { Module:, Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/glwe_to_lwe_ksk.rs b/poulpy-core/src/encryption/glwe_to_lwe_ksk.rs index a563f9f..7aee17b 100644 --- a/poulpy-core/src/encryption/glwe_to_lwe_ksk.rs +++ b/poulpy-core/src/encryption/glwe_to_lwe_ksk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxDft, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, + TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigNormalize, + VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, + VecZnxSubABInplace, VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut, ZnxZero}, source::Source, @@ -42,9 +42,9 @@ impl GLWEToLWESwitchingKey { + VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/lwe_ksk.rs b/poulpy-core/src/encryption/lwe_ksk.rs index 57972d2..e6b24db 100644 --- a/poulpy-core/src/encryption/lwe_ksk.rs +++ b/poulpy-core/src/encryption/lwe_ksk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxDft, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, + TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigNormalize, + VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, + VecZnxSubABInplace, VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut}, source::Source, @@ -42,9 +42,9 @@ impl LWESwitchingKey { + VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/encryption/lwe_to_glwe_ksk.rs b/poulpy-core/src/encryption/lwe_to_glwe_ksk.rs index 17bb302..ac661e2 100644 --- a/poulpy-core/src/encryption/lwe_to_glwe_ksk.rs +++ b/poulpy-core/src/encryption/lwe_to_glwe_ksk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, TakeVecZnxDft, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeVecZnx, + TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigNormalize, + VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, + VecZnxSubABInplace, VecZnxSwithcDegree, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut}, source::Source, @@ -40,9 +40,9 @@ impl LWEToGLWESwitchingKey { + VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/external_product/gglwe_atk.rs b/poulpy-core/src/external_product/gglwe_atk.rs index 8e5e4f5..e20396d 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, + VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, }; @@ -51,10 +51,10 @@ impl GGLWEAutomorphismKey { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, { @@ -70,10 +70,10 @@ impl GGLWEAutomorphismKey { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + 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 f1ddf2a..1936daa 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, + VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, }; @@ -51,10 +51,10 @@ impl GGLWESwitchingKey { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, { @@ -106,10 +106,10 @@ impl GGLWESwitchingKey { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + 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 a203c00..b0aaa84 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, + VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, }; @@ -51,10 +51,10 @@ impl GGSWCiphertext { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, { @@ -116,10 +116,10 @@ impl GGSWCiphertext { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + 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 7115364..e961dd1 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, + VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, DataViewMut, Module, Scratch, VecZnxBig}, }; @@ -65,10 +65,10 @@ impl GLWECiphertext { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, { @@ -121,7 +121,7 @@ impl GLWECiphertext { res_dft.set_size(rhs.size() - ((digits - di) as isize - 2).max(0) as usize); (0..cols).for_each(|col_i| { - module.vec_znx_dft_from_vec_znx(digits, digits - 1 - di, &mut a_dft, col_i, &lhs.data, col_i); + module.dft(digits, digits - 1 - di, &mut a_dft, col_i, &lhs.data, col_i); }); if di == 0 { @@ -132,7 +132,7 @@ impl GLWECiphertext { }); } - let res_big: VecZnxBig<&mut [u8], B> = module.vec_znx_dft_to_vec_znx_big_consume(res_dft); + let res_big: VecZnxBig<&mut [u8], B> = module.vec_znx_idft_consume(res_dft); (0..cols).for_each(|i| { module.vec_znx_big_normalize(basek, &mut self.data, i, &res_big, i, scratch1); @@ -148,10 +148,10 @@ impl GLWECiphertext { Module: VecZnxDftAllocBytes + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, { diff --git a/poulpy-core/src/glwe_packing.rs b/poulpy-core/src/glwe_packing.rs index 30ad712..e75ef29 100644 --- a/poulpy-core/src/glwe_packing.rs +++ b/poulpy-core/src/glwe_packing.rs @@ -2,11 +2,10 @@ use std::collections::HashMap; use poulpy_hal::{ api::{ - ScratchAvailable, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, - VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxNegateInplace, VecZnxNormalizeInplace, - VecZnxRotate, VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VmpApply, VmpApplyAdd, - VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAutomorphismInplace, + VecZnxBigAddSmallInplace, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, + VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAllocBytes, VecZnxNegateInplace, VecZnxNormalizeInplace, VecZnxRotate, + VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, }; @@ -126,8 +125,8 @@ impl GLWEPacker { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxCopy @@ -204,8 +203,8 @@ fn pack_core( + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxCopy @@ -301,8 +300,8 @@ fn combine( + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxCopy diff --git a/poulpy-core/src/glwe_trace.rs b/poulpy-core/src/glwe_trace.rs index 4ab0116..9f4fb82 100644 --- a/poulpy-core/src/glwe_trace.rs +++ b/poulpy-core/src/glwe_trace.rs @@ -2,9 +2,9 @@ use std::collections::HashMap; use poulpy_hal::{ api::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VecZnxRshInplace, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigAutomorphismInplace, + VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAllocBytes, VecZnxRshInplace, VmpApply, VmpApplyAdd, + VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch}, }; @@ -73,8 +73,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace @@ -99,8 +99,8 @@ impl GLWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxBigAutomorphismInplace diff --git a/poulpy-core/src/keyswitching/gglwe_ct.rs b/poulpy-core/src/keyswitching/gglwe_ct.rs index bcccd74..b56d396 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxZero}, }; @@ -56,8 +56,8 @@ impl GGLWEAutomorphismKey { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, @@ -76,8 +76,8 @@ impl GGLWEAutomorphismKey { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable, @@ -132,8 +132,8 @@ impl GGLWESwitchingKey { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: ScratchAvailable + TakeVecZnxDft, @@ -188,8 +188,8 @@ impl GGLWESwitchingKey { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: ScratchAvailable + TakeVecZnxDft, diff --git a/poulpy-core/src/keyswitching/ggsw_ct.rs b/poulpy-core/src/keyswitching/ggsw_ct.rs index 12d7ff7..ac6a29b 100644 --- a/poulpy-core/src/keyswitching/ggsw_ct.rs +++ b/poulpy-core/src/keyswitching/ggsw_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, TakeVecZnxBig, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAddInplace, VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, TakeVecZnxBig, TakeVecZnxDft, VecZnxBigAddSmallInplace, + VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAddInplace, + VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxNormalizeTmpBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, VecZnx, VmpPMat, ZnxInfos}, }; @@ -107,13 +107,13 @@ impl GGSWCiphertext { + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VecZnxDftCopy + VmpApply + VmpApplyAdd + VecZnxDftAddInplace + VecZnxBigNormalize - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, Scratch: ScratchAvailable + TakeVecZnxDft + TakeVecZnxBig, { #[cfg(debug_assertions)] @@ -143,8 +143,8 @@ impl GGSWCiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxDftAllocBytes @@ -152,7 +152,7 @@ impl GGSWCiphertext { + VecZnxNormalizeTmpBytes + VecZnxDftCopy + VecZnxDftAddInplace - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, Scratch: ScratchAvailable + TakeVecZnxDft + TakeVecZnxBig, { self.keyswitch_internal(module, lhs, ksk, scratch); @@ -171,8 +171,8 @@ impl GGSWCiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxDftAllocBytes @@ -180,7 +180,7 @@ impl GGSWCiphertext { + VecZnxNormalizeTmpBytes + VecZnxDftCopy + VecZnxDftAddInplace - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, Scratch: ScratchAvailable + TakeVecZnxDft + TakeVecZnxBig, { unsafe { @@ -199,13 +199,13 @@ impl GGSWCiphertext { + VmpApplyTmpBytes + VecZnxBigAllocBytes + VecZnxNormalizeTmpBytes - + VecZnxDftFromVecZnx + + DFT + VecZnxDftCopy + VmpApply + VmpApplyAdd + VecZnxDftAddInplace + VecZnxBigNormalize - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, Scratch: ScratchAvailable + TakeVecZnxDft + TakeVecZnxBig, { assert!( @@ -229,7 +229,7 @@ impl GGSWCiphertext { // Pre-compute DFT of (a0, a1, a2) let (mut ci_dft, scratch1) = scratch.take_vec_znx_dft(n, cols, self.size()); (0..cols).for_each(|i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut ci_dft, i, &self.at(row_i, 0).data, i); + module.dft(1, 0, &mut ci_dft, i, &self.at(row_i, 0).data, i); }); (1..cols).for_each(|col_j| { @@ -308,7 +308,7 @@ impl GGSWCiphertext { module.vec_znx_dft_add_inplace(&mut tmp_dft_i, col_j, &ci_dft, 0); let (mut tmp_idft, scratch3) = scratch2.take_vec_znx_big(n, 1, tsk.size()); (0..cols).for_each(|i| { - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut tmp_idft, 0, &mut tmp_dft_i, i); + module.idft_tmp_a(&mut tmp_idft, 0, &mut tmp_dft_i, i); module.vec_znx_big_normalize( self.basek(), &mut self.at_mut(row_i, col_j).data, @@ -334,8 +334,8 @@ impl GGSWCiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: ScratchAvailable + TakeVecZnxDft, diff --git a/poulpy-core/src/keyswitching/glwe_ct.rs b/poulpy-core/src/keyswitching/glwe_ct.rs index 116f13f..5c3057c 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::{ - ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, DataViewMut, Module, Scratch, VecZnx, VecZnxBig, VecZnxDft, VmpPMat, ZnxInfos}, }; @@ -133,8 +133,8 @@ impl GLWECiphertext { + VmpApplyTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: ScratchAvailable + TakeVecZnxDft, @@ -162,8 +162,8 @@ impl GLWECiphertext { + VmpApplyTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: ScratchAvailable + TakeVecZnxDft, @@ -192,8 +192,8 @@ impl GLWECiphertext { + VmpApplyTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: TakeVecZnxDft, @@ -224,17 +224,16 @@ where DataRes: DataMut, DataIn: DataRef, DataVmp: DataRef, - Module: - VecZnxDftAllocBytes + VecZnxDftFromVecZnx + VmpApply + VecZnxDftToVecZnxBigConsume + VecZnxBigAddSmallInplace, + Module: VecZnxDftAllocBytes + DFT + VmpApply + IDFTConsume + VecZnxBigAddSmallInplace, Scratch: TakeVecZnxDft, { let cols: usize = a.cols(); let (mut ai_dft, scratch1) = scratch.take_vec_znx_dft(a.n(), cols - 1, a.size()); (0..cols - 1).for_each(|col_i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut ai_dft, col_i, a, col_i + 1); + module.dft(1, 0, &mut ai_dft, col_i, a, col_i + 1); }); module.vmp_apply(&mut res_dft, &ai_dft, mat, scratch1); - let mut res_big: VecZnxBig = module.vec_znx_dft_to_vec_znx_big_consume(res_dft); + 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 } @@ -251,12 +250,7 @@ where DataRes: DataMut, DataIn: DataRef, DataVmp: DataRef, - Module: VecZnxDftAllocBytes - + VecZnxDftFromVecZnx - + VmpApply - + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume - + VecZnxBigAddSmallInplace, + Module: VecZnxDftAllocBytes + DFT + VmpApply + VmpApplyAdd + IDFTConsume + VecZnxBigAddSmallInplace, Scratch: TakeVecZnxDft, { let cols: usize = a.cols(); @@ -278,7 +272,7 @@ where res_dft.set_size(mat.size() - ((digits - di) as isize - 2).max(0) as usize); (0..cols - 1).for_each(|col_i| { - module.vec_znx_dft_from_vec_znx(digits, digits - di - 1, &mut ai_dft, col_i, a, col_i + 1); + module.dft(digits, digits - di - 1, &mut ai_dft, col_i, a, col_i + 1); }); if di == 0 { @@ -289,7 +283,7 @@ where }); res_dft.set_size(res_dft.max_size()); - let mut res_big: VecZnxBig = module.vec_znx_dft_to_vec_znx_big_consume(res_dft); + 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 } diff --git a/poulpy-core/src/keyswitching/lwe_ct.rs b/poulpy-core/src/keyswitching/lwe_ct.rs index 2278708..b7c4f89 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::{ - ScratchAvailable, TakeVecZnx, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, ScratchAvailable, TakeVecZnx, TakeVecZnxDft, VecZnxBigAddSmallInplace, VecZnxBigNormalize, + VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ZnxView, ZnxViewMut, ZnxZero}, }; @@ -26,8 +26,8 @@ impl LWECiphertext> { + VmpApplyTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, { @@ -51,8 +51,8 @@ impl LWECiphertext { + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize, Scratch: TakeVecZnxDft + ScratchAvailable + TakeVecZnx, diff --git a/poulpy-core/src/layouts/compressed/glwe_to_lwe_ksk.rs b/poulpy-core/src/layouts/compressed/glwe_to_lwe_ksk.rs index 3da0a5e..d9dbdbf 100644 --- a/poulpy-core/src/layouts/compressed/glwe_to_lwe_ksk.rs +++ b/poulpy-core/src/layouts/compressed/glwe_to_lwe_ksk.rs @@ -2,9 +2,9 @@ use std::fmt; use poulpy_hal::{ api::{ - SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigNormalize, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, + VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, Data, DataMut, DataRef, FillUniform, MatZnx, Module, ReaderFrom, Reset, WriterTo}, source::Source, @@ -96,9 +96,9 @@ impl GLWEToLWESwitchingKeyCompressed> { where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/layouts/compressed/lwe_ksk.rs b/poulpy-core/src/layouts/compressed/lwe_ksk.rs index 15cc944..0f4d603 100644 --- a/poulpy-core/src/layouts/compressed/lwe_ksk.rs +++ b/poulpy-core/src/layouts/compressed/lwe_ksk.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigNormalize, - VecZnxCopy, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, + VecZnxBigNormalize, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, Data, DataMut, DataRef, FillUniform, MatZnx, Module, ReaderFrom, Reset, WriterTo}, source::Source, @@ -98,9 +98,9 @@ impl LWESwitchingKeyCompressed> { where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/layouts/compressed/lwe_to_glwe_ksk.rs b/poulpy-core/src/layouts/compressed/lwe_to_glwe_ksk.rs index 92b8a05..f930824 100644 --- a/poulpy-core/src/layouts/compressed/lwe_to_glwe_ksk.rs +++ b/poulpy-core/src/layouts/compressed/lwe_to_glwe_ksk.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigNormalize, - VecZnxCopy, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, + VecZnxBigNormalize, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, + VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, Data, DataMut, DataRef, FillUniform, MatZnx, Module, ReaderFrom, Reset, WriterTo}, source::Source, @@ -98,9 +98,9 @@ impl LWEToGLWESwitchingKeyCompressed> { where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/layouts/prepared/glwe_pk.rs b/poulpy-core/src/layouts/prepared/glwe_pk.rs index d0a59e2..774e9ff 100644 --- a/poulpy-core/src/layouts/prepared/glwe_pk.rs +++ b/poulpy-core/src/layouts/prepared/glwe_pk.rs @@ -1,5 +1,5 @@ use poulpy_hal::{ - api::{VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftFromVecZnx}, + api::{DFT, VecZnxDftAlloc, VecZnxDftAllocBytes}, layouts::{Backend, Data, DataMut, DataRef, Module, Scratch, VecZnxDft}, }; @@ -64,7 +64,7 @@ impl GLWEPublicKeyPrepared, B> { impl PrepareAlloc, B>> for GLWEPublicKey where - Module: VecZnxDftAlloc + VecZnxDftFromVecZnx, + Module: VecZnxDftAlloc + DFT, { fn prepare_alloc(&self, module: &Module, scratch: &mut Scratch) -> GLWEPublicKeyPrepared, B> { let mut pk_prepared: GLWEPublicKeyPrepared, B> = @@ -76,7 +76,7 @@ where impl Prepare> for GLWEPublicKeyPrepared where - Module: VecZnxDftFromVecZnx, + Module: DFT, { fn prepare(&mut self, module: &Module, other: &GLWEPublicKey, _scratch: &mut Scratch) { #[cfg(debug_assertions)] @@ -86,7 +86,7 @@ where } (0..self.cols()).for_each(|i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut self.data, i, &other.data, i); + module.dft(1, 0, &mut self.data, i, &other.data, i); }); self.k = other.k; self.basek = other.basek; diff --git a/poulpy-core/src/noise/gglwe_ct.rs b/poulpy-core/src/noise/gglwe_ct.rs index 7587ac7..bb81ef6 100644 --- a/poulpy-core/src/noise/gglwe_ct.rs +++ b/poulpy-core/src/noise/gglwe_ct.rs @@ -1,8 +1,7 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VecZnxNormalizeTmpBytes, VecZnxSubScalarInplace, + DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, + VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, VecZnxSubScalarInplace, }, layouts::{Backend, DataRef, Module, ScalarZnx, ScratchOwned, ZnxZero}, oep::{ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl, TakeVecZnxBigImpl, TakeVecZnxDftImpl}, @@ -22,9 +21,9 @@ impl GGLWECiphertext { DataWant: DataRef, Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize diff --git a/poulpy-core/src/noise/ggsw_ct.rs b/poulpy-core/src/noise/ggsw_ct.rs index 1bd30f0..489b025 100644 --- a/poulpy-core/src/noise/ggsw_ct.rs +++ b/poulpy-core/src/noise/ggsw_ct.rs @@ -1,9 +1,8 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxAddScalarInplace, VecZnxBigAddInplace, - VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, - VecZnxNormalizeTmpBytes, VecZnxSubABInplace, + DFT, IDFTConsume, IDFTTmpA, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxAddScalarInplace, + VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigNormalize, + VecZnxBigNormalizeTmpBytes, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxNormalizeTmpBytes, VecZnxSubABInplace, }, layouts::{Backend, DataRef, Module, ScalarZnx, ScratchOwned, VecZnxBig, VecZnxDft, ZnxZero}, oep::{ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl, TakeVecZnxBigImpl, TakeVecZnxDftImpl}, @@ -23,9 +22,9 @@ impl GGSWCiphertext { DataScalar: DataRef, Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize @@ -33,7 +32,7 @@ impl GGSWCiphertext { + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxAddScalarInplace + VecZnxSubABInplace, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl + ScratchOwnedAllocImpl + ScratchOwnedBorrowImpl, @@ -57,9 +56,9 @@ impl GGSWCiphertext { // mul with sk[col_j-1] if col_j > 0 { - module.vec_znx_dft_from_vec_znx(1, 0, &mut pt_dft, 0, &pt.data, 0); + module.dft(1, 0, &mut pt_dft, 0, &pt.data, 0); module.svp_apply_inplace(&mut pt_dft, 0, &sk_prepared.data, col_j - 1); - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut pt_big, 0, &mut pt_dft, 0); + module.idft_tmp_a(&mut pt_big, 0, &mut pt_dft, 0); module.vec_znx_big_normalize(basek, &mut pt.data, 0, &pt_big, 0, scratch.borrow()); } @@ -90,9 +89,9 @@ impl GGSWCiphertext { DataScalar: DataRef, Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize @@ -100,7 +99,7 @@ impl GGSWCiphertext { + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxAddScalarInplace + VecZnxSubABInplace, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl + ScratchOwnedAllocImpl + ScratchOwnedBorrowImpl, @@ -123,9 +122,9 @@ impl GGSWCiphertext { // mul with sk[col_j-1] if col_j > 0 { - module.vec_znx_dft_from_vec_znx(1, 0, &mut pt_dft, 0, &pt.data, 0); + module.dft(1, 0, &mut pt_dft, 0, &pt.data, 0); module.svp_apply_inplace(&mut pt_dft, 0, &sk_prepared.data, col_j - 1); - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut pt_big, 0, &mut pt_dft, 0); + module.idft_tmp_a(&mut pt_big, 0, &mut pt_dft, 0); module.vec_znx_big_normalize(basek, &mut pt.data, 0, &pt_big, 0, scratch.borrow()); } diff --git a/poulpy-core/src/noise/glwe_ct.rs b/poulpy-core/src/noise/glwe_ct.rs index 793e732..e4b08c0 100644 --- a/poulpy-core/src/noise/glwe_ct.rs +++ b/poulpy-core/src/noise/glwe_ct.rs @@ -1,8 +1,8 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, + VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, + VecZnxSubABInplace, }, layouts::{Backend, DataRef, Module, ScratchOwned}, oep::{ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl, TakeVecZnxBigImpl, TakeVecZnxDftImpl}, @@ -26,9 +26,9 @@ impl GLWECiphertext { DataPt: DataRef, Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize diff --git a/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs b/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs index 9b63478..27b08d5 100644 --- a/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs +++ b/poulpy-core/src/tests/generics/automorphism/gglwe_atk.rs @@ -1,11 +1,11 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddInplace, - VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScratchOwned}, oep::{ @@ -41,8 +41,8 @@ pub fn test_gglwe_automorphism_key_automorphism( + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphism @@ -199,9 +199,9 @@ pub fn test_gglwe_automorphism_key_automorphism_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -219,8 +219,8 @@ pub fn test_gglwe_automorphism_key_automorphism_inplace( + VmpApplyTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphism @@ -230,9 +230,9 @@ pub fn test_gglwe_automorphism_key_automorphism_inplace( + VecZnxAutomorphismInplace + VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize diff --git a/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs b/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs index 269cebc..f5831f5 100644 --- a/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs +++ b/poulpy-core/src/tests/generics/automorphism/ggsw_ct.rs @@ -1,12 +1,11 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, - VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAddInplace, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftCopy, - VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, - VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + DFT, IDFTConsume, IDFTTmpA, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, + 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, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned}, oep::{ @@ -39,9 +38,9 @@ pub fn test_ggsw_automorphism( ) where Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize @@ -49,7 +48,7 @@ pub fn test_ggsw_automorphism( + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + SvpPrepare + SvpPPolAllocBytes + SvpPPolAlloc @@ -193,9 +192,9 @@ pub fn test_ggsw_automorphism_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize @@ -203,7 +202,7 @@ pub fn test_ggsw_automorphism_inplace( + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + SvpPrepare + SvpPPolAllocBytes + SvpPPolAlloc diff --git a/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs b/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs index b04ac0d..c3142ff 100644 --- a/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs +++ b/poulpy-core/src/tests/generics/automorphism/glwe_ct.rs @@ -1,11 +1,10 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddInplace, - VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, - VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, - VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScratchOwned}, oep::{ @@ -37,9 +36,9 @@ pub fn test_glwe_automorphism( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -161,9 +160,9 @@ pub fn test_glwe_automorphism_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/tests/generics/conversion.rs b/poulpy-core/src/tests/generics/conversion.rs index 5f82e4f..7b6ed01 100644 --- a/poulpy-core/src/tests/generics/conversion.rs +++ b/poulpy-core/src/tests/generics/conversion.rs @@ -1,11 +1,11 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, - ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, + 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, }, layouts::{Backend, Module, ScratchOwned, ZnxView}, oep::{ @@ -25,9 +25,9 @@ pub fn test_lwe_to_glwe(module: &Module) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace @@ -130,9 +130,9 @@ pub fn test_glwe_to_lwe(module: &Module) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace diff --git a/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs b/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs index 8a71612..aef3c26 100644 --- a/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs +++ b/poulpy-core/src/tests/generics/encryption/gglwe_atk.rs @@ -1,11 +1,11 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddInplace, - VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScratchOwned}, oep::{ @@ -28,9 +28,9 @@ pub fn test_gglwe_automorphisk_key_encrypt_sk(module: &Module, basek: usiz where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -120,9 +120,9 @@ pub fn test_gglwe_automorphisk_key_compressed_encrypt_sk( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/tests/generics/encryption/gglwe_ct.rs b/poulpy-core/src/tests/generics/encryption/gglwe_ct.rs index 5675b85..d771455 100644 --- a/poulpy-core/src/tests/generics/encryption/gglwe_ct.rs +++ b/poulpy-core/src/tests/generics/encryption/gglwe_ct.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxCopy, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, + DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, + VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, + VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxCopy, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScratchOwned}, @@ -33,9 +33,9 @@ pub fn test_gglwe_switching_key_encrypt_sk( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -111,9 +111,9 @@ pub fn test_gglwe_switching_key_compressed_encrypt_sk( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/tests/generics/encryption/ggsw_ct.rs b/poulpy-core/src/tests/generics/encryption/ggsw_ct.rs index d2f5a74..2299961 100644 --- a/poulpy-core/src/tests/generics/encryption/ggsw_ct.rs +++ b/poulpy-core/src/tests/generics/encryption/ggsw_ct.rs @@ -1,10 +1,10 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAlloc, VecZnxDftAllocBytes, - VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VmpPMatAlloc, VmpPrepare, + 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, VecZnxSub, + VecZnxSubABInplace, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned}, oep::{ @@ -27,9 +27,9 @@ pub fn test_ggsw_encrypt_sk(module: &Module, basek: usize, k: usize, digit where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -51,7 +51,7 @@ where + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl @@ -104,9 +104,9 @@ pub fn test_ggsw_compressed_encrypt_sk(module: &Module, basek: usize, k: u where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -128,7 +128,7 @@ where + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl diff --git a/poulpy-core/src/tests/generics/encryption/glwe_ct.rs b/poulpy-core/src/tests/generics/encryption/glwe_ct.rs index 6db2f46..553888b 100644 --- a/poulpy-core/src/tests/generics/encryption/glwe_ct.rs +++ b/poulpy-core/src/tests/generics/encryption/glwe_ct.rs @@ -1,10 +1,9 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, - VecZnxAddInplace, VecZnxAddNormal, VecZnxBigAddInplace, VecZnxBigAddNormal, VecZnxBigAddSmallInplace, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxCopy, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxSub, VecZnxSubABInplace, + DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, + SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxBigAddInplace, VecZnxBigAddNormal, VecZnxBigAddSmallInplace, + VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxCopy, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxFillUniform, + VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, }, layouts::{Backend, Module, ScratchOwned}, oep::{ @@ -28,9 +27,9 @@ pub fn test_glwe_encrypt_sk(module: &Module, basek: usize, k_ct: usize, k_ where Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize @@ -43,16 +42,16 @@ where + SvpPPolAllocBytes + SvpPrepare + SvpApply - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddNormal + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxNormalizeTmpBytes + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -114,9 +113,9 @@ pub fn test_glwe_compressed_encrypt_sk(module: &Module, basek: usize, k_ct where Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize @@ -129,16 +128,16 @@ where + SvpPPolAllocBytes + SvpPrepare + SvpApply - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddNormal + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxNormalizeTmpBytes + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -212,9 +211,9 @@ pub fn test_glwe_encrypt_zero_sk(module: &Module, basek: usize, k_ct: usiz where Module: VecZnxDftAllocBytes + VecZnxBigAllocBytes - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigAddSmallInplace + VecZnxBigNormalize @@ -227,16 +226,16 @@ where + SvpPPolAllocBytes + SvpPrepare + SvpApply - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddNormal + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxNormalizeTmpBytes + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -289,9 +288,9 @@ pub fn test_glwe_encrypt_pk(module: &Module, basek: usize, k_ct: usize, k_ where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace diff --git a/poulpy-core/src/tests/generics/encryption/glwe_tsk.rs b/poulpy-core/src/tests/generics/encryption/glwe_tsk.rs index e69fb96..206c922 100644 --- a/poulpy-core/src/tests/generics/encryption/glwe_tsk.rs +++ b/poulpy-core/src/tests/generics/encryption/glwe_tsk.rs @@ -1,10 +1,10 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxCopy, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSubScalarInplace, VecZnxSwithcDegree, + DFT, IDFTConsume, IDFTTmpA, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, + SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, + VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxCopy, VecZnxDftAlloc, + VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, + VecZnxSubABInplace, VecZnxSubScalarInplace, VecZnxSwithcDegree, }, layouts::{Backend, Module, ScratchOwned, VecZnxDft}, oep::{ @@ -27,9 +27,9 @@ pub fn test_glwe_tensor_key_encrypt_sk(module: &Module, basek: usize, k: u where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -48,7 +48,7 @@ where + VecZnxDftAlloc + SvpApply + VecZnxBigAlloc - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxAddScalarInplace + VecZnxSwithcDegree + VecZnxSubScalarInplace, @@ -100,13 +100,13 @@ where let mut sk_dft: VecZnxDft, B> = module.vec_znx_dft_alloc(rank, 1); (0..rank).for_each(|i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); + module.dft(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); }); (0..rank).for_each(|i| { (0..rank).for_each(|j| { module.svp_apply(&mut sk_ij_dft, 0, &sk_prepared.data, j, &sk_dft, i); - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); + module.idft_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); module.vec_znx_big_normalize( basek, &mut sk_ij.data.as_vec_znx_mut(), @@ -136,9 +136,9 @@ pub fn test_glwe_tensor_key_compressed_encrypt_sk(module: &Module, basek: where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -157,7 +157,7 @@ where + VecZnxDftAlloc + SvpApply + VecZnxBigAlloc - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxAddScalarInplace + VecZnxSwithcDegree + VecZnxSubScalarInplace, @@ -208,13 +208,13 @@ where let mut sk_dft: VecZnxDft, B> = module.vec_znx_dft_alloc(rank, 1); (0..rank).for_each(|i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); + module.dft(1, 0, &mut sk_dft, i, &sk.data.as_vec_znx(), i); }); (0..rank).for_each(|i| { (0..rank).for_each(|j| { module.svp_apply(&mut sk_ij_dft, 0, &sk_prepared.data, j, &sk_dft, i); - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); + module.idft_tmp_a(&mut sk_ij_big, 0, &mut sk_ij_dft, 0); module.vec_znx_big_normalize( basek, &mut sk_ij.data.as_vec_znx_mut(), 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 ab3263d..993fa29 100644 --- a/poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs +++ b/poulpy-core/src/tests/generics/external_product/gglwe_ksk.rs @@ -1,9 +1,9 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxCopy, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, + 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, }, layouts::{Backend, Module, ScalarZnx, ScalarZnxToMut, ScratchOwned, ZnxViewMut}, @@ -36,9 +36,9 @@ pub fn test_gglwe_switching_key_external_product( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -176,9 +176,9 @@ pub fn test_gglwe_switching_key_external_product_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace 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 207ff32..17acf94 100644 --- a/poulpy-core/src/tests/generics/external_product/ggsw_ct.rs +++ b/poulpy-core/src/tests/generics/external_product/ggsw_ct.rs @@ -1,11 +1,10 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAlloc, VecZnxDftAllocBytes, - VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxFillUniform, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, VmpApply, - VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScalarZnx, ScalarZnxToMut, ScratchOwned, ZnxViewMut}, oep::{ @@ -36,9 +35,9 @@ pub fn test_ggsw_external_product( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -64,7 +63,7 @@ pub fn test_ggsw_external_product( + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl @@ -168,9 +167,9 @@ pub fn test_ggsw_external_product_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -196,7 +195,7 @@ pub fn test_ggsw_external_product_inplace( + VecZnxBigAlloc + VecZnxDftAlloc + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpA, + + IDFTTmpA, B: Backend + TakeVecZnxDftImpl + TakeVecZnxBigImpl 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 32d70c1..937b89a 100644 --- a/poulpy-core/src/tests/generics/external_product/glwe_ct.rs +++ b/poulpy-core/src/tests/generics/external_product/glwe_ct.rs @@ -1,10 +1,10 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, - VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned, ZnxViewMut}, oep::{ @@ -35,9 +35,9 @@ pub fn test_glwe_external_product( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace @@ -168,9 +168,9 @@ pub fn test_glwe_external_product_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace diff --git a/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs b/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs index 5330418..bc42f50 100644 --- a/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/gglwe_ct.rs @@ -1,10 +1,10 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, - VecZnxSubScalarInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScratchOwned}, oep::{ @@ -37,9 +37,9 @@ pub fn test_gglwe_switching_key_keyswitch( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace @@ -184,9 +184,9 @@ pub fn test_gglwe_switching_key_keyswitch_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace diff --git a/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs b/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs index d82d517..6048a2c 100644 --- a/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/ggsw_ct.rs @@ -1,11 +1,11 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAddInplace, VecZnxDftAlloc, - VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, - VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned}, oep::{ @@ -37,9 +37,9 @@ pub fn test_ggsw_keyswitch( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace @@ -63,7 +63,7 @@ pub fn test_ggsw_keyswitch( + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + SvpApply - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxDftCopy + VecZnxDftAddInplace + VecZnxBigAlloc @@ -181,9 +181,9 @@ pub fn test_ggsw_keyswitch_inplace( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace @@ -207,7 +207,7 @@ pub fn test_ggsw_keyswitch_inplace( + VecZnxBigNormalizeTmpBytes + VecZnxSwithcDegree + SvpApply - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxDftCopy + VecZnxDftAddInplace + VecZnxBigAlloc diff --git a/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs b/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs index b8530dc..1b9d35e 100644 --- a/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/glwe_ct.rs @@ -1,10 +1,10 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + 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, }, layouts::{Backend, Module, ScratchOwned}, oep::{ @@ -36,9 +36,9 @@ pub fn test_glwe_keyswitch( ) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace @@ -150,9 +150,9 @@ pub fn test_glwe_keyswitch_inplace(module: &Module, basek: usize, k_ct: us where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace diff --git a/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs b/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs index 6cde7a7..7d79870 100644 --- a/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs +++ b/poulpy-core/src/tests/generics/keyswitch/lwe_ct.rs @@ -1,11 +1,11 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphismInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, - VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, - ZnAddNormal, ZnFillUniform, ZnNormalizeInplace, + 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, }, layouts::{Backend, Module, ScratchOwned, ZnxView}, oep::{ @@ -24,9 +24,9 @@ pub fn test_lwe_keyswitch(module: &Module) where Module: VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace diff --git a/poulpy-core/src/tests/generics/packing.rs b/poulpy-core/src/tests/generics/packing.rs index 8562193..0ca8091 100644 --- a/poulpy-core/src/tests/generics/packing.rs +++ b/poulpy-core/src/tests/generics/packing.rs @@ -2,13 +2,13 @@ use std::collections::HashMap; use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, VecZnxBigAddInplace, - VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, VecZnxNegateInplace, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, + 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, }, layouts::{Backend, Module, ScratchOwned}, oep::{ @@ -36,10 +36,10 @@ where + VecZnxRshInplace + VecZnxRotateInplace + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + VecZnxRotate + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace diff --git a/poulpy-core/src/tests/generics/trace.rs b/poulpy-core/src/tests/generics/trace.rs index c27b798..5a93383 100644 --- a/poulpy-core/src/tests/generics/trace.rs +++ b/poulpy-core/src/tests/generics/trace.rs @@ -2,13 +2,12 @@ use std::collections::HashMap; use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, - VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, - VecZnxBigAllocBytes, VecZnxBigAutomorphismInplace, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotateInplace, - VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, - VmpPMatAlloc, VmpPrepare, + DFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, + 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, }, layouts::{Backend, Module, ScratchOwned, ZnxView, ZnxViewMut}, oep::{ @@ -36,9 +35,9 @@ where + VecZnxRshInplace + VecZnxRotateInplace + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxFillUniform + VecZnxSubABInplace + VecZnxAddInplace diff --git a/poulpy-hal/src/api/vec_znx_dft.rs b/poulpy-hal/src/api/vec_znx_dft.rs index b4590fb..334db87 100644 --- a/poulpy-hal/src/api/vec_znx_dft.rs +++ b/poulpy-hal/src/api/vec_znx_dft.rs @@ -14,26 +14,33 @@ pub trait VecZnxDftAllocBytes { fn vec_znx_dft_alloc_bytes(&self, cols: usize, size: usize) -> usize; } -pub trait VecZnxDftToVecZnxBigTmpBytes { - fn vec_znx_dft_to_vec_znx_big_tmp_bytes(&self) -> usize; +pub trait DFT { + fn dft(&self, step: usize, offset: usize, res: &mut R, res_col: usize, a: &A, a_col: usize) + where + R: VecZnxDftToMut, + A: VecZnxToRef; } -pub trait VecZnxDftToVecZnxBig { - fn vec_znx_dft_to_vec_znx_big(&self, res: &mut R, res_col: usize, a: &A, a_col: usize, scratch: &mut Scratch) +pub trait VecZnxIDFTTmpBytes { + fn vec_znx_idft_tmp_bytes(&self) -> usize; +} + +pub trait IDFT { + fn idft(&self, res: &mut R, res_col: usize, a: &A, a_col: usize, scratch: &mut Scratch) where R: VecZnxBigToMut, A: VecZnxDftToRef; } -pub trait VecZnxDftToVecZnxBigTmpA { - fn vec_znx_dft_to_vec_znx_big_tmp_a(&self, res: &mut R, res_col: usize, a: &mut A, a_col: usize) +pub trait IDFTTmpA { + fn idft_tmp_a(&self, res: &mut R, res_col: usize, a: &mut A, a_col: usize) where R: VecZnxBigToMut, A: VecZnxDftToMut; } -pub trait VecZnxDftToVecZnxBigConsume { - fn vec_znx_dft_to_vec_znx_big_consume(&self, a: VecZnxDft) -> VecZnxBig +pub trait IDFTConsume { + fn vec_znx_idft_consume(&self, a: VecZnxDft) -> VecZnxBig where VecZnxDft: VecZnxDftToMut; } @@ -82,13 +89,6 @@ pub trait VecZnxDftCopy { A: VecZnxDftToRef; } -pub trait VecZnxDftFromVecZnx { - fn vec_znx_dft_from_vec_znx(&self, step: usize, offset: usize, res: &mut R, res_col: usize, a: &A, a_col: usize) - where - R: VecZnxDftToMut, - A: VecZnxToRef; -} - pub trait VecZnxDftZero { fn vec_znx_dft_zero(&self, res: &mut R) where diff --git a/poulpy-hal/src/delegates/vec_znx_dft.rs b/poulpy-hal/src/delegates/vec_znx_dft.rs index 8d4c098..28a9fdf 100644 --- a/poulpy-hal/src/delegates/vec_znx_dft.rs +++ b/poulpy-hal/src/delegates/vec_znx_dft.rs @@ -1,18 +1,16 @@ use crate::{ api::{ - VecZnxDftAdd, VecZnxDftAddInplace, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxDftFromBytes, - VecZnxDftFromVecZnx, VecZnxDftSub, VecZnxDftSubABInplace, VecZnxDftSubBAInplace, VecZnxDftToVecZnxBig, - VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, VecZnxDftToVecZnxBigTmpBytes, VecZnxDftZero, + DFT, IDFT, IDFTConsume, IDFTTmpA, VecZnxDftAdd, VecZnxDftAddInplace, VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftCopy, + VecZnxDftFromBytes, VecZnxDftSub, VecZnxDftSubABInplace, VecZnxDftSubBAInplace, VecZnxDftZero, VecZnxIDFTTmpBytes, }, layouts::{ Backend, Data, Module, Scratch, VecZnxBig, VecZnxBigToMut, VecZnxDft, VecZnxDftOwned, VecZnxDftToMut, VecZnxDftToRef, VecZnxToRef, }, oep::{ - VecZnxDftAddImpl, VecZnxDftAddInplaceImpl, VecZnxDftAllocBytesImpl, VecZnxDftAllocImpl, VecZnxDftCopyImpl, - VecZnxDftFromBytesImpl, VecZnxDftFromVecZnxImpl, VecZnxDftSubABInplaceImpl, VecZnxDftSubBAInplaceImpl, VecZnxDftSubImpl, - VecZnxDftToVecZnxBigConsumeImpl, VecZnxDftToVecZnxBigImpl, VecZnxDftToVecZnxBigTmpAImpl, - VecZnxDftToVecZnxBigTmpBytesImpl, VecZnxDftZeroImpl, + DFTImpl, IDFTConsumeImpl, IDFTImpl, IDFTTmpAImpl, VecZnxDftAddImpl, VecZnxDftAddInplaceImpl, VecZnxDftAllocBytesImpl, + VecZnxDftAllocImpl, VecZnxDftCopyImpl, VecZnxDftFromBytesImpl, VecZnxDftSubABInplaceImpl, VecZnxDftSubBAInplaceImpl, + VecZnxDftSubImpl, VecZnxDftZeroImpl, VecZnxIDFTTmpBytesImpl, }, }; @@ -43,63 +41,63 @@ where } } -impl VecZnxDftToVecZnxBigTmpBytes for Module +impl VecZnxIDFTTmpBytes for Module where - B: Backend + VecZnxDftToVecZnxBigTmpBytesImpl, + B: Backend + VecZnxIDFTTmpBytesImpl, { - fn vec_znx_dft_to_vec_znx_big_tmp_bytes(&self) -> usize { - B::vec_znx_dft_to_vec_znx_big_tmp_bytes_impl(self) + fn vec_znx_idft_tmp_bytes(&self) -> usize { + B::vec_znx_idft_tmp_bytes_impl(self) } } -impl VecZnxDftToVecZnxBig for Module +impl IDFT for Module where - B: Backend + VecZnxDftToVecZnxBigImpl, + B: Backend + IDFTImpl, { - fn vec_znx_dft_to_vec_znx_big(&self, res: &mut R, res_col: usize, a: &A, a_col: usize, scratch: &mut Scratch) + fn idft(&self, res: &mut R, res_col: usize, a: &A, a_col: usize, scratch: &mut Scratch) where R: VecZnxBigToMut, A: VecZnxDftToRef, { - B::vec_znx_dft_to_vec_znx_big_impl(self, res, res_col, a, a_col, scratch); + B::idft_impl(self, res, res_col, a, a_col, scratch); } } -impl VecZnxDftToVecZnxBigTmpA for Module +impl IDFTTmpA for Module where - B: Backend + VecZnxDftToVecZnxBigTmpAImpl, + B: Backend + IDFTTmpAImpl, { - fn vec_znx_dft_to_vec_znx_big_tmp_a(&self, res: &mut R, res_col: usize, a: &mut A, a_col: usize) + fn idft_tmp_a(&self, res: &mut R, res_col: usize, a: &mut A, a_col: usize) where R: VecZnxBigToMut, A: VecZnxDftToMut, { - B::vec_znx_dft_to_vec_znx_big_tmp_a_impl(self, res, res_col, a, a_col); + B::idft_tmp_a_impl(self, res, res_col, a, a_col); } } -impl VecZnxDftToVecZnxBigConsume for Module +impl IDFTConsume for Module where - B: Backend + VecZnxDftToVecZnxBigConsumeImpl, + B: Backend + IDFTConsumeImpl, { - fn vec_znx_dft_to_vec_znx_big_consume(&self, a: VecZnxDft) -> VecZnxBig + fn vec_znx_idft_consume(&self, a: VecZnxDft) -> VecZnxBig where VecZnxDft: VecZnxDftToMut, { - B::vec_znx_dft_to_vec_znx_big_consume_impl(self, a) + B::idft_consume_impl(self, a) } } -impl VecZnxDftFromVecZnx for Module +impl DFT for Module where - B: Backend + VecZnxDftFromVecZnxImpl, + B: Backend + DFTImpl, { - fn vec_znx_dft_from_vec_znx(&self, step: usize, offset: usize, res: &mut R, res_col: usize, a: &A, a_col: usize) + fn dft(&self, step: usize, offset: usize, res: &mut R, res_col: usize, a: &A, a_col: usize) where R: VecZnxDftToMut, A: VecZnxToRef, { - B::vec_znx_dft_from_vec_znx_impl(self, step, offset, res, res_col, a, a_col); + B::dft_impl(self, step, offset, res, res_col, a, a_col); } } diff --git a/poulpy-hal/src/oep/vec_znx_dft.rs b/poulpy-hal/src/oep/vec_znx_dft.rs index 0a28dce..9f55887 100644 --- a/poulpy-hal/src/oep/vec_znx_dft.rs +++ b/poulpy-hal/src/oep/vec_znx_dft.rs @@ -19,6 +19,17 @@ pub unsafe trait VecZnxDftFromBytesImpl { fn vec_znx_dft_from_bytes_impl(n: usize, cols: usize, size: usize, bytes: Vec) -> VecZnxDftOwned; } +/// # 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 DFTImpl { + fn dft_impl(module: &Module, step: usize, offset: usize, res: &mut R, res_col: usize, a: &A, a_col: usize) + where + R: VecZnxDftToMut, + A: VecZnxToRef; +} + /// # THIS TRAIT IS AN OPEN EXTENSION POINT (unsafe) /// * See TODO for reference code. /// * See TODO for corresponding public API. @@ -31,23 +42,17 @@ pub unsafe trait VecZnxDftAllocBytesImpl { /// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VecZnxDftToVecZnxBigTmpBytesImpl { - fn vec_znx_dft_to_vec_znx_big_tmp_bytes_impl(module: &Module) -> usize; +pub unsafe trait VecZnxIDFTTmpBytesImpl { + fn vec_znx_idft_tmp_bytes_impl(module: &Module) -> usize; } /// # 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 VecZnxDftToVecZnxBigImpl { - fn vec_znx_dft_to_vec_znx_big_impl( - module: &Module, - res: &mut R, - res_col: usize, - a: &A, - a_col: usize, - scratch: &mut Scratch, - ) where +pub unsafe trait IDFTImpl { + fn idft_impl(module: &Module, res: &mut R, res_col: usize, a: &A, a_col: usize, scratch: &mut Scratch) + where R: VecZnxBigToMut, A: VecZnxDftToRef; } @@ -56,8 +61,8 @@ pub unsafe trait VecZnxDftToVecZnxBigImpl { /// * See TODO for reference code. /// * See for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VecZnxDftToVecZnxBigTmpAImpl { - fn vec_znx_dft_to_vec_znx_big_tmp_a_impl(module: &Module, res: &mut R, res_col: usize, a: &mut A, a_col: usize) +pub unsafe trait IDFTTmpAImpl { + fn idft_tmp_a_impl(module: &Module, res: &mut R, res_col: usize, a: &mut A, a_col: usize) where R: VecZnxBigToMut, A: VecZnxDftToMut; @@ -67,8 +72,8 @@ pub unsafe trait VecZnxDftToVecZnxBigTmpAImpl { /// * See TODO for reference code. /// * See TODO for corresponding public API. /// # Safety [crate::doc::backend_safety] for safety contract. -pub unsafe trait VecZnxDftToVecZnxBigConsumeImpl { - fn vec_znx_dft_to_vec_znx_big_consume_impl(module: &Module, a: VecZnxDft) -> VecZnxBig +pub unsafe trait IDFTConsumeImpl { + fn idft_consume_impl(module: &Module, a: VecZnxDft) -> VecZnxBig where VecZnxDft: VecZnxDftToMut; } @@ -148,24 +153,6 @@ pub unsafe trait VecZnxDftCopyImpl { A: VecZnxDftToRef; } -/// # 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 VecZnxDftFromVecZnxImpl { - fn vec_znx_dft_from_vec_znx_impl( - module: &Module, - step: usize, - offset: usize, - res: &mut R, - res_col: usize, - a: &A, - a_col: usize, - ) where - R: VecZnxDftToMut, - A: VecZnxToRef; -} - /// # THIS TRAIT IS AN OPEN EXTENSION POINT (unsafe) /// * See TODO for reference code. /// * See TODO for corresponding public API. diff --git a/poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs b/poulpy-hal/src/tests/vmp_pmat/vmp_apply.rs index 7590882..98a4d9e 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::{ - ModuleNew, ScratchOwnedAlloc, ScratchOwnedBorrow, VecZnxBigAlloc, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, - VecZnxDftAlloc, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigTmpA, VmpApply, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, + DFT, IDFTTmpA, ModuleNew, ScratchOwnedAlloc, ScratchOwnedBorrow, VecZnxBigAlloc, VecZnxBigNormalize, + VecZnxBigNormalizeTmpBytes, VecZnxDftAlloc, VmpApply, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, }, layouts::{MatZnx, Module, ScratchOwned, VecZnx, VecZnxBig, VecZnxDft, VmpPMat, ZnxInfos, ZnxViewMut}, oep::{ - ModuleNewImpl, ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl, VecZnxBigAllocImpl, VecZnxBigNormalizeImpl, - VecZnxBigNormalizeTmpBytesImpl, VecZnxDftAllocImpl, VecZnxDftFromVecZnxImpl, VecZnxDftToVecZnxBigTmpAImpl, VmpApplyImpl, - VmpApplyTmpBytesImpl, VmpPMatAllocImpl, VmpPMatPrepareImpl, + DFTImpl, IDFTTmpAImpl, ModuleNewImpl, ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl, VecZnxBigAllocImpl, + VecZnxBigNormalizeImpl, VecZnxBigNormalizeTmpBytesImpl, VecZnxDftAllocImpl, VmpApplyImpl, VmpApplyTmpBytesImpl, + VmpPMatAllocImpl, VmpPMatPrepareImpl, }, }; @@ -23,9 +23,9 @@ where + VecZnxDftAllocImpl + VecZnxBigAllocImpl + VmpPMatPrepareImpl - + VecZnxDftFromVecZnxImpl + + DFTImpl + VmpApplyImpl - + VecZnxDftToVecZnxBigTmpAImpl + + IDFTTmpAImpl + ScratchOwnedAllocImpl + ScratchOwnedBorrowImpl + VecZnxBigNormalizeImpl, @@ -86,7 +86,7 @@ where let mut a_dft: VecZnxDft, B> = module.vec_znx_dft_alloc(a_cols, a_size); (0..a_cols).for_each(|i| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut a_dft, i, &a, i); + module.dft(1, 0, &mut a_dft, i, &a, i); }); module.vmp_apply(&mut c_dft, &a_dft, &vmp, scratch.borrow()); @@ -95,7 +95,7 @@ where let mut res_have: VecZnx> = VecZnx::alloc(n, res_cols, res_size); (0..mat_cols_out).for_each(|i| { - module.vec_znx_dft_to_vec_znx_big_tmp_a(&mut c_big, i, &mut c_dft, i); + module.idft_tmp_a(&mut c_big, i, &mut c_dft, i); module.vec_znx_big_normalize(basek, &mut res_have, i, &c_big, i, scratch.borrow()); }); diff --git a/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs b/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs index a8b42de..fc5f69a 100644 --- a/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs +++ b/poulpy-schemes/src/tfhe/blind_rotation/cggi_algo.rs @@ -1,12 +1,11 @@ use itertools::izip; use poulpy_hal::{ api::{ - ScratchAvailable, SvpApply, SvpPPolAllocBytes, TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft, TakeVecZnxDftSlice, - TakeVecZnxSlice, VecZnxAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigNormalize, - VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAdd, VecZnxDftAddInplace, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, - VecZnxDftSubABInplace, VecZnxDftToVecZnxBig, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpBytes, VecZnxDftZero, - VecZnxMulXpMinusOneInplace, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotate, - VecZnxSubABInplace, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + 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, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, SvpPPol, VecZnx, ZnxView, ZnxZero}, }; @@ -36,7 +35,7 @@ where + VmpApplyTmpBytes + VecZnxNormalizeTmpBytes + VecZnxBigAllocBytes - + VecZnxDftToVecZnxBigTmpBytes + + VecZnxIDFTTmpBytes + VecZnxBigNormalizeTmpBytes, { let brk_size: usize = k_brk.div_ceil(basek); @@ -59,7 +58,7 @@ where + acc_dft_add + vmp_res + vmp_xai - + (vmp | (acc_big + (module.vec_znx_big_normalize_tmp_bytes() | module.vec_znx_dft_to_vec_znx_big_tmp_bytes()))) + + (vmp | (acc_big + (module.vec_znx_big_normalize_tmp_bytes() | module.vec_znx_idft_tmp_bytes()))) } else { GLWECiphertext::bytes_of(module.n(), basek, k_res, rank) + GLWECiphertext::external_product_scratch_space(module, basek, k_res, k_res, k_brk, 1, rank) @@ -73,11 +72,11 @@ where + SvpPPolAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpBytes - + VecZnxDftToVecZnxBig + + VecZnxIDFTTmpBytes + + IDFT + VecZnxDftAdd + VecZnxDftAddInplace - + VecZnxDftFromVecZnx + + DFT + VecZnxDftZero + SvpApply + VecZnxDftSubABInplace @@ -91,7 +90,7 @@ where + VecZnxMulXpMinusOneInplace + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigNormalize + VecZnxNormalizeTmpBytes, Scratch: TakeVecZnxDftSlice + TakeVecZnxDft + TakeVecZnxBig + TakeVecZnxSlice + TakeVecZnx + ScratchAvailable, @@ -135,11 +134,11 @@ fn execute_block_binary_extended( + SvpPPolAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpBytes - + VecZnxDftToVecZnxBig + + VecZnxIDFTTmpBytes + + IDFT + VecZnxDftAdd + VecZnxDftAddInplace - + VecZnxDftFromVecZnx + + DFT + VecZnxDftZero + SvpApply + VecZnxDftSubABInplace @@ -208,7 +207,7 @@ fn execute_block_binary_extended( .for_each(|(ai, ski)| { (0..extension_factor).for_each(|i| { (0..cols).for_each(|j| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut acc_dft[i], j, &acc[i], j); + module.dft(1, 0, &mut acc_dft[i], j, &acc[i], j); }); module.vec_znx_dft_zero(&mut acc_add_dft[i]) }); @@ -273,7 +272,7 @@ fn execute_block_binary_extended( (0..extension_factor).for_each(|j| { (0..cols).for_each(|i| { - module.vec_znx_dft_to_vec_znx_big(&mut acc_add_big, 0, &acc_add_dft[j], i, scratch7); + module.idft(&mut acc_add_big, 0, &acc_add_dft[j], i, scratch7); module.vec_znx_big_add_small_inplace(&mut acc_add_big, 0, &acc[j], i); module.vec_znx_big_normalize(basek, &mut acc[j], i, &acc_add_big, 0, scratch7); }); @@ -302,11 +301,11 @@ fn execute_block_binary( + SvpPPolAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpBytes - + VecZnxDftToVecZnxBig + + VecZnxIDFTTmpBytes + + IDFT + VecZnxDftAdd + VecZnxDftAddInplace - + VecZnxDftFromVecZnx + + DFT + VecZnxDftZero + SvpApply + VecZnxDftSubABInplace @@ -369,7 +368,7 @@ fn execute_block_binary( ) .for_each(|(ai, ski)| { (0..cols).for_each(|j| { - module.vec_znx_dft_from_vec_znx(1, 0, &mut acc_dft, j, &out_mut.data, j); + module.dft(1, 0, &mut acc_dft, j, &out_mut.data, j); }); module.vec_znx_dft_zero(&mut acc_add_dft); @@ -392,7 +391,7 @@ fn execute_block_binary( let (mut acc_add_big, scratch5) = scratch4.take_vec_znx_big(n_glwe, 1, brk.size()); (0..cols).for_each(|i| { - module.vec_znx_dft_to_vec_znx_big(&mut acc_add_big, 0, &acc_add_dft, i, scratch5); + module.idft(&mut acc_add_big, 0, &acc_add_dft, i, scratch5); module.vec_znx_big_add_small_inplace(&mut acc_add_big, 0, &out_mut.data, i); module.vec_znx_big_normalize(basek, &mut out_mut.data, i, &acc_add_big, 0, scratch5); }); @@ -416,11 +415,11 @@ fn execute_standard( + SvpPPolAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpBytes - + VecZnxDftToVecZnxBig + + VecZnxIDFTTmpBytes + + IDFT + VecZnxDftAdd + VecZnxDftAddInplace - + VecZnxDftFromVecZnx + + DFT + VecZnxDftZero + SvpApply + VecZnxDftSubABInplace @@ -434,7 +433,7 @@ fn execute_standard( + VecZnxMulXpMinusOneInplace + VmpApply + VmpApplyAdd - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigNormalize + VecZnxNormalizeTmpBytes, Scratch: TakeVecZnxDftSlice + TakeVecZnxDft + TakeVecZnxBig + TakeVecZnxSlice + ScratchAvailable + TakeVecZnx, diff --git a/poulpy-schemes/src/tfhe/blind_rotation/cggi_key.rs b/poulpy-schemes/src/tfhe/blind_rotation/cggi_key.rs index 4cc63fb..17ef004 100644 --- a/poulpy-schemes/src/tfhe/blind_rotation/cggi_key.rs +++ b/poulpy-schemes/src/tfhe/blind_rotation/cggi_key.rs @@ -1,9 +1,8 @@ use poulpy_hal::{ api::{ - ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxFillUniform, - VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VmpPMatAlloc, - VmpPrepare, + DFT, IDFTConsume, ScratchAvailable, SvpApplyInplace, TakeVecZnx, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, + VecZnxAddScalarInplace, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VmpPMatAlloc, VmpPrepare, }, layouts::{Backend, DataMut, DataRef, Module, ScalarZnx, ScalarZnxToRef, Scratch, ZnxView, ZnxViewMut}, source::Source, @@ -51,9 +50,9 @@ where Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace @@ -163,9 +162,9 @@ impl BlindRotationKeyCompressed { Module: VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace 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 963441a..8f83ded 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 @@ -1,13 +1,12 @@ use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxBigAddInplace, VecZnxBigAddSmallInplace, - VecZnxBigAllocBytes, VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxCopy, VecZnxDftAdd, VecZnxDftAddInplace, - VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftSubABInplace, VecZnxDftToVecZnxBig, VecZnxDftToVecZnxBigConsume, - VecZnxDftToVecZnxBigTmpBytes, VecZnxDftZero, VecZnxFillUniform, VecZnxMulXpMinusOneInplace, VecZnxNormalize, - VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxRotateInplace, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, ZnAddNormal, ZnFillUniform, - ZnNormalizeInplace, + DFT, IDFT, IDFTConsume, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, + 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, }, layouts::{Backend, Module, ScratchOwned, ZnxView}, oep::{ @@ -34,11 +33,11 @@ where + SvpPPolAllocBytes + VmpApplyTmpBytes + VecZnxBigNormalizeTmpBytes - + VecZnxDftToVecZnxBigTmpBytes - + VecZnxDftToVecZnxBig + + VecZnxIDFTTmpBytes + + IDFT + VecZnxDftAdd + VecZnxDftAddInplace - + VecZnxDftFromVecZnx + + DFT + VecZnxDftZero + SvpApply + VecZnxDftSubABInplace @@ -53,7 +52,7 @@ where + SvpPrepare + SvpPPolAlloc + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxBigAddInplace + VecZnxBigNormalize + VecZnxNormalizeTmpBytes diff --git a/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs b/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs index 80b5e22..d489636 100644 --- a/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs +++ b/poulpy-schemes/src/tfhe/circuit_bootstrapping/circuit.rs @@ -2,12 +2,12 @@ use std::collections::HashMap; use poulpy_hal::{ api::{ - ScratchAvailable, TakeMatZnx, TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft, TakeVecZnxDftSlice, TakeVecZnxSlice, - VecZnxAddInplace, VecZnxAutomorphismInplace, VecZnxBigAddSmallInplace, VecZnxBigAllocBytes, VecZnxBigAutomorphismInplace, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAddInplace, - VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, - VecZnxNegateInplace, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxRotateInplace, - VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, + DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, TakeMatZnx, TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft, TakeVecZnxDftSlice, + 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, }, layouts::{Backend, DataMut, DataRef, Module, Scratch, ToOwnedDeep}, oep::{ScratchOwnedAllocImpl, ScratchOwnedBorrowImpl}, @@ -33,7 +33,7 @@ where + VecZnxBigAutomorphismInplace + VecZnxRshInplace + VecZnxDftCopy - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxSub + VecZnxAddInplace + VecZnxNegateInplace @@ -44,8 +44,8 @@ where + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace @@ -131,7 +131,7 @@ pub fn circuit_bootstrap_core( + VecZnxBigAutomorphismInplace + VecZnxRshInplace + VecZnxDftCopy - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxSub + VecZnxAddInplace + VecZnxNegateInplace @@ -142,8 +142,8 @@ pub fn circuit_bootstrap_core( + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace @@ -256,7 +256,7 @@ fn post_process( + VecZnxBigAutomorphismInplace + VecZnxRshInplace + VecZnxDftCopy - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxSub + VecZnxAddInplace + VecZnxNegateInplace @@ -267,8 +267,8 @@ fn post_process( + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace @@ -328,7 +328,7 @@ pub fn pack( + VecZnxBigAutomorphismInplace + VecZnxRshInplace + VecZnxDftCopy - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxSub + VecZnxAddInplace + VecZnxNegateInplace @@ -339,8 +339,8 @@ pub fn pack( + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace @@ -407,7 +407,7 @@ fn combine( + VecZnxBigAutomorphismInplace + VecZnxRshInplace + VecZnxDftCopy - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxSub + VecZnxAddInplace + VecZnxNegateInplace @@ -418,8 +418,8 @@ fn combine( + VecZnxBigNormalizeTmpBytes + VmpApply + VmpApplyAdd - + VecZnxDftFromVecZnx - + VecZnxDftToVecZnxBigConsume + + DFT + + IDFTConsume + VecZnxBigAddSmallInplace + VecZnxBigNormalize + VecZnxAutomorphismInplace diff --git a/poulpy-schemes/src/tfhe/circuit_bootstrapping/key.rs b/poulpy-schemes/src/tfhe/circuit_bootstrapping/key.rs index 9912562..28af408 100644 --- a/poulpy-schemes/src/tfhe/circuit_bootstrapping/key.rs +++ b/poulpy-schemes/src/tfhe/circuit_bootstrapping/key.rs @@ -6,11 +6,11 @@ use std::collections::HashMap; use poulpy_hal::{ api::{ - ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, TakeScalarZnx, TakeSvpPPol, - TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, - VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, VecZnxDftToVecZnxBigTmpA, - VecZnxFillUniform, VecZnxNormalize, VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpPMatAlloc, VmpPrepare, + DFT, IDFTConsume, IDFTTmpA, ScratchAvailable, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, + TakeScalarZnx, TakeSvpPPol, TakeVecZnx, TakeVecZnxBig, TakeVecZnxDft, VecZnxAddInplace, VecZnxAddNormal, + VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxBigNormalize, VecZnxDftAllocBytes, VecZnxFillUniform, VecZnxNormalize, + VecZnxNormalizeInplace, VecZnxNormalizeTmpBytes, VecZnxSub, VecZnxSubABInplace, VecZnxSwithcDegree, VmpPMatAlloc, + VmpPrepare, }, layouts::{Backend, Data, DataRef, Module, Scratch}, source::Source, @@ -52,13 +52,13 @@ impl CircuitBootstrappingKeyEncryptSk for where BlindRotationKey, BRA>: BlindRotationKeyAlloc + BlindRotationKeyEncryptSk, Module: SvpApply - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + VecZnxAddScalarInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxFillUniform + VecZnxSubABInplace 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 805d3f6..403fc5b 100644 --- a/poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs +++ b/poulpy-schemes/src/tfhe/circuit_bootstrapping/tests/circuit_bootstrapping.rs @@ -2,15 +2,14 @@ use std::time::Instant; use poulpy_hal::{ api::{ - ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, SvpPPolAllocBytes, SvpPrepare, - VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, VecZnxAutomorphismInplace, - VecZnxBigAddInplace, VecZnxBigAddSmallInplace, VecZnxBigAlloc, VecZnxBigAllocBytes, VecZnxBigAutomorphismInplace, - VecZnxBigNormalize, VecZnxBigNormalizeTmpBytes, VecZnxBigSubSmallBInplace, VecZnxCopy, VecZnxDftAddInplace, - VecZnxDftAlloc, VecZnxDftAllocBytes, VecZnxDftCopy, VecZnxDftFromVecZnx, VecZnxDftToVecZnxBigConsume, - VecZnxDftToVecZnxBigTmpA, VecZnxFillUniform, VecZnxNegateInplace, VecZnxNormalize, VecZnxNormalizeInplace, - VecZnxNormalizeTmpBytes, VecZnxRotate, VecZnxRotateInplace, VecZnxRshInplace, VecZnxSub, VecZnxSubABInplace, - VecZnxSwithcDegree, VmpApply, VmpApplyAdd, VmpApplyTmpBytes, VmpPMatAlloc, VmpPrepare, ZnAddNormal, ZnFillUniform, - ZnNormalizeInplace, + DFT, IDFTConsume, IDFTTmpA, ScratchOwnedAlloc, ScratchOwnedBorrow, SvpApply, SvpApplyInplace, SvpPPolAlloc, + SvpPPolAllocBytes, SvpPrepare, VecZnxAddInplace, VecZnxAddNormal, VecZnxAddScalarInplace, VecZnxAutomorphism, + 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, }, layouts::{Backend, Module, ScalarZnx, ScratchOwned, ZnxView, ZnxViewMut}, oep::{ @@ -44,9 +43,9 @@ where + VecZnxNormalizeInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxSubABInplace + VecZnxAddInplace @@ -56,7 +55,7 @@ where + VecZnxAutomorphism + VecZnxSwithcDegree + VecZnxBigAllocBytes - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + SvpApply + VecZnxBigAddInplace + VecZnxBigAddSmallInplace @@ -225,9 +224,9 @@ where + VecZnxNormalizeInplace + VecZnxDftAllocBytes + VecZnxBigNormalize - + VecZnxDftFromVecZnx + + DFT + SvpApplyInplace - + VecZnxDftToVecZnxBigConsume + + IDFTConsume + VecZnxNormalizeTmpBytes + VecZnxSubABInplace + VecZnxAddInplace @@ -237,7 +236,7 @@ where + VecZnxAutomorphism + VecZnxSwithcDegree + VecZnxBigAllocBytes - + VecZnxDftToVecZnxBigTmpA + + IDFTTmpA + SvpApply + VecZnxBigAddInplace + VecZnxBigAddSmallInplace