arnaucube
arnaucube/poulpyPublic Self-hosted repository
Make `GLWECiphertextToRef/{ToMut}` implement `Infos`
Janmajaya Mall janmajayamall@protonmail.com
Tue, 08 Jul 2025 13:53:43 +0530
commit

b99f43aa0fe5df37afec763afa152f7085a2987d

parent

463731948de4a9a920e1889fbe479adcbab68199

3 files changed, 10 insertions(+), 8 deletions(-)

jump to
M core/src/ggsw/ciphertext.rs → core/src/ggsw/ciphertext.rs

@@ -20,6 +20,8 @@

impl GGSWCiphertext<Vec<u8>, FFT64> { pub fn alloc(module: &Module<FFT64>, basek: usize, k: usize, rows: usize, digits: usize, rank: usize) -> Self { let size: usize = k.div_ceil(basek); + debug_assert!(digits > 0, "invalid ggsw: `digits` == 0"); + debug_assert!( size > digits, "invalid ggsw: ceil(k/basek): {} <= digits: {}",
M core/src/glwe/ciphertext.rs → core/src/glwe/ciphertext.rs

@@ -79,7 +79,7 @@ self.basek = basek

} } -pub trait GLWECiphertextToRef { +pub trait GLWECiphertextToRef: Infos { fn to_ref(&self) -> GLWECiphertext<&[u8]>; }

@@ -93,7 +93,7 @@ }

} } -pub trait GLWECiphertextToMut { +pub trait GLWECiphertextToMut: Infos { fn to_mut(&mut self) -> GLWECiphertext<&mut [u8]>; }
M core/src/glwe/ops.rs → core/src/glwe/ops.rs

@@ -2,11 +2,11 @@ use backend::{FFT64, Module, Scratch, VecZnx, VecZnxOps, ZnxZero};

use crate::{GLWECiphertext, GLWECiphertextToMut, GLWECiphertextToRef, Infos, SetMetaData}; -pub trait GLWEOps: GLWECiphertextToMut + Infos + SetMetaData { +pub trait GLWEOps: GLWECiphertextToMut + SetMetaData { fn add<A, B>(&mut self, module: &Module<FFT64>, a: &A, b: &B) where - A: GLWECiphertextToRef + Infos, - B: GLWECiphertextToRef + Infos, + A: GLWECiphertextToRef, + B: GLWECiphertextToRef, { #[cfg(debug_assertions)] {

@@ -75,8 +75,8 @@ }

fn sub<A, B>(&mut self, module: &Module<FFT64>, a: &A, b: &B) where - A: GLWECiphertextToRef + Infos, - B: GLWECiphertextToRef + Infos, + A: GLWECiphertextToRef, + B: GLWECiphertextToRef, { #[cfg(debug_assertions)] {

@@ -230,7 +230,7 @@ }

fn normalize<A>(&mut self, module: &Module<FFT64>, a: &A, scratch: &mut Scratch) where - A: GLWECiphertextToRef + Infos, + A: GLWECiphertextToRef, { #[cfg(debug_assertions)] {