arnaucube
arnaucube/poulpyPublic Self-hosted repository
get GGSW multibit
Rasoul Akhavan Mahdavi rasoul.akhavan.mahdavi@uwaterloo.ca
Wed, 19 Nov 2025 09:38:53 -0500
commit

ad837c8fa8587e9681cbb993a9781d40faddab3f

parent

9e007c988fb82c941e7ea5ea9227b9992d598ad9

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

jump to
M poulpy-schemes/src/bin_fhe/bdd_arithmetic/ciphertexts/fhe_uint_prepared.rs → poulpy-schemes/src/bin_fhe/bdd_arithmetic/ciphertexts/fhe_uint_prepared.rs

@@ -48,12 +48,20 @@ }

pub trait GetGGSWBitMut<T: UnsignedInteger, BE: Backend> { fn get_bit(&mut self, bit: usize) -> GGSWPrepared<&mut [u8], BE>; + fn get_bits(&mut self, start: usize, count: usize) -> Vec<GGSWPrepared<&mut [u8], BE>>; } impl<D: DataMut, T: UnsignedInteger, BE: Backend> GetGGSWBitMut<T, BE> for FheUintPrepared<D, T, BE> { fn get_bit(&mut self, bit: usize) -> GGSWPrepared<&mut [u8], BE> { assert!(bit <= self.bits.len()); self.bits[bit].to_mut() + } + fn get_bits(&mut self, start: usize, count: usize) -> Vec<GGSWPrepared<&mut [u8], BE>> { + assert!(start + count <= self.bits.len()); + self.bits[start..start + count] + .iter_mut() + .map(|bit| bit.to_mut()) + .collect() } }