get GGSW multibit
Rasoul Akhavan Mahdavi rasoul.akhavan.mahdavi@uwaterloo.ca
Wed, 19 Nov 2025 09:38:53 -0500
1 files changed,
8 insertions(+),
0 deletions(-)
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() } }