arnaucube
arnaucube/poulpyPublic Self-hosted repository
Enforce extension factor to be a power of two
Jean-Philippe Bossuat jeanphilippe.bossuat@gmail.com
Tue, 08 Jul 2025 13:54:20 +0200
commit

2e0e7e11b43bd488afe7833e070ab1812a1b831e

parent

af5bbbb55db93cd815afe232bb7d588069d80edd

2 files changed, 8 insertions(+), 1 deletions(-)

jump to
M core/src/blind_rotation/ccgi.rs → core/src/blind_rotation/ccgi.rs

@@ -82,7 +82,6 @@ ),

} } -// TODO: ENSURE DOMAIN EXTENSION AS pub(crate) fn cggi_blind_rotate_block_binary_extended<DataRes, DataIn>( module: &Module<FFT64>, res: &mut GLWECiphertext<DataRes>,
M core/src/blind_rotation/lut.rs → core/src/blind_rotation/lut.rs

@@ -8,6 +8,14 @@ }

impl LookUpTable { pub fn alloc(module: &Module<FFT64>, basek: usize, k: usize, extension_factor: usize) -> Self { + #[cfg(debug_assertions)] + { + assert!( + extension_factor & (extension_factor - 1) == 0, + "extension_factor must be a power of two but is: {}", + extension_factor + ); + } let size: usize = k.div_ceil(basek); let mut data: Vec<VecZnx<Vec<u8>>> = Vec::with_capacity(extension_factor); (0..extension_factor).for_each(|_| {