mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-09 20:56:47 +01:00
get GGSW multibit
This commit is contained in:
@@ -48,6 +48,7 @@ impl<D: DataRef, T: UnsignedInteger, BE: Backend> GetGGSWBit<BE> for FheUintPrep
|
||||
|
||||
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> {
|
||||
@@ -55,6 +56,13 @@ impl<D: DataMut, T: UnsignedInteger, BE: Backend> GetGGSWBitMut<T, BE> for FheUi
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
||||
impl<D: Data, T: UnsignedInteger, BE: Backend> BitSize for FheUintPrepared<D, T, BE> {
|
||||
|
||||
Reference in New Issue
Block a user