pub struct EncryptionLayout<L> {
pub layout: L,
pub noise: NoiseInfos,
}Fields§
§layout: L§noise: NoiseInfosImplementations§
Source§impl<L: LWEInfos> EncryptionLayout<L>
impl<L: LWEInfos> EncryptionLayout<L>
pub fn new(layout: L, noise: NoiseInfos) -> Result<Self>
pub fn new_from_default_sigma(layout: L) -> Result<Self>
Trait Implementations§
Source§impl<L: Debug> Debug for EncryptionLayout<L>
impl<L: Debug> Debug for EncryptionLayout<L>
Source§impl<L> EncryptionInfos for EncryptionLayout<L>
impl<L> EncryptionInfos for EncryptionLayout<L>
fn noise_infos(&self) -> NoiseInfos
Source§impl<L: GGLWEInfos> GGLWEInfos for EncryptionLayout<L>
impl<L: GGLWEInfos> GGLWEInfos for EncryptionLayout<L>
Source§fn k_aux(&self) -> TorusPrecision
fn k_aux(&self) -> TorusPrecision
Auxiliary guard precision (in bits) stored below the gadget region and
used for noise management during key operations. Free value, need not be
a multiple of
base2k. In practice dsize*base2k + logN.fn dsize(&self) -> Dsize
fn rank_in(&self) -> Rank
fn rank_out(&self) -> Rank
Source§fn stride(&self) -> usize
fn stride(&self) -> usize
Row stride into the stored matrix: digit
i is stored row
(i + 1) * stride - 1. A key used as stored has stride 1; a
GGLWEView coarsening it to dsize reports
dsize / stored dsize.fn gglwe_layout(&self) -> GGLWELayout
Source§impl<L: GGSWInfos> GGSWInfos for EncryptionLayout<L>
impl<L: GGSWInfos> GGSWInfos for EncryptionLayout<L>
Source§fn k_aux(&self) -> TorusPrecision
fn k_aux(&self) -> TorusPrecision
Auxiliary guard precision (in bits) stored below the gadget region and
used for noise management during key operations. Free value, need not be
a multiple of
base2k.Source§fn ggsw_layout(&self) -> GGSWLayout
fn ggsw_layout(&self) -> GGSWLayout
Returns a plain-data
GGSWLayout snapshot of the current parameters.Source§impl<L: GLWEInfos> GLWEInfos for EncryptionLayout<L>
impl<L: GLWEInfos> GLWEInfos for EncryptionLayout<L>
Source§fn glwe_layout(&self) -> GLWELayout
fn glwe_layout(&self) -> GLWELayout
Returns a plain-data
GLWELayout snapshot of the current parameters.Source§impl<L: LWEInfos> LWEInfos for EncryptionLayout<L>
impl<L: LWEInfos> LWEInfos for EncryptionLayout<L>
Source§fn base2k(&self) -> Base2K
fn base2k(&self) -> Base2K
Returns the base-2-log of the limb width used for the RNS/CRT representation.
Source§fn n(&self) -> Degree
fn n(&self) -> Degree
Returns the LWE dimension, i.e. the number of mask elements (= GLWE ring degree N).
Source§fn max_size(&self) -> usize
fn max_size(&self) -> usize
Returns the allocated limb capacity of the backing container: the
physical width operations may compute at (
size() <= max_size()).
Together with k() this fully describes an object: k is the claimed
precision and max_size the allocation. Layout/spec types without a
buffer report their metadata-derived width.Source§fn k(&self) -> TorusPrecision
fn k(&self) -> TorusPrecision
Returns the Torus precision used by the object.
Source§fn max_k(&self) -> TorusPrecision
fn max_k(&self) -> TorusPrecision
Returns the Torus precision the allocation can hold
(
Self::max_size * base2k).Source§fn lwe_layout(&self) -> LWELayout
fn lwe_layout(&self) -> LWELayout
Returns a plain-data
LWELayout snapshot of the current parameters.Auto Trait Implementations§
impl<L> Freeze for EncryptionLayout<L>where
L: Freeze,
impl<L> RefUnwindSafe for EncryptionLayout<L>where
L: RefUnwindSafe,
impl<L> Send for EncryptionLayout<L>where
L: Send,
impl<L> Sync for EncryptionLayout<L>where
L: Sync,
impl<L> Unpin for EncryptionLayout<L>where
L: Unpin,
impl<L> UnsafeUnpin for EncryptionLayout<L>where
L: UnsafeUnpin,
impl<L> UnwindSafe for EncryptionLayout<L>where
L: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more