mirror of
https://github.com/arnaucube/poulpy.git
synced 2026-02-10 05:06:44 +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> {
|
pub trait GetGGSWBitMut<T: UnsignedInteger, BE: Backend> {
|
||||||
fn get_bit(&mut self, bit: usize) -> GGSWPrepared<&mut [u8], BE>;
|
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> {
|
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());
|
assert!(bit <= self.bits.len());
|
||||||
self.bits[bit].to_mut()
|
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> {
|
impl<D: Data, T: UnsignedInteger, BE: Backend> BitSize for FheUintPrepared<D, T, BE> {
|
||||||
|
|||||||
Reference in New Issue
Block a user