pub struct GLWETensorKeyLayout {
pub n: Degree,
pub base2k: Base2K,
pub dnum: Dnum,
pub k_aux: TorusPrecision,
pub rank: Rank,
pub dsize: Dsize,
}Expand description
Plain-data descriptor for a GLWETensorKey carrying only the
layout parameters (no backing buffer).
Implements LWEInfos, GLWEInfos and GGLWEInfos so it can
be passed to any generic constructor that needs layout information.
The rank_in is derived from rank as max(1, rank*(rank+1)/2).
Fields§
§n: Degree§base2k: Base2K§dnum: Dnum§k_aux: TorusPrecision§rank: Rank§dsize: DsizeTrait Implementations§
Source§impl Clone for GLWETensorKeyLayout
impl Clone for GLWETensorKeyLayout
Source§fn clone(&self) -> GLWETensorKeyLayout
fn clone(&self) -> GLWETensorKeyLayout
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for GLWETensorKeyLayout
Source§impl Debug for GLWETensorKeyLayout
impl Debug for GLWETensorKeyLayout
impl Eq for GLWETensorKeyLayout
Source§impl GGLWEInfos for GLWETensorKeyLayout
impl GGLWEInfos for GLWETensorKeyLayout
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 rank_in(&self) -> Rank
fn dsize(&self) -> Dsize
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 GLWEInfos for GLWETensorKeyLayout
impl GLWEInfos for GLWETensorKeyLayout
Source§fn glwe_layout(&self) -> GLWELayout
fn glwe_layout(&self) -> GLWELayout
Returns a plain-data
GLWELayout snapshot of the current parameters.Source§impl LWEInfos for GLWETensorKeyLayout
impl LWEInfos for GLWETensorKeyLayout
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 base2k(&self) -> Base2K
fn base2k(&self) -> Base2K
Returns the base-2-log of the limb width used for the RNS/CRT representation.
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.Source§impl PartialEq for GLWETensorKeyLayout
impl PartialEq for GLWETensorKeyLayout
impl StructuralPartialEq for GLWETensorKeyLayout
Auto Trait Implementations§
impl Freeze for GLWETensorKeyLayout
impl RefUnwindSafe for GLWETensorKeyLayout
impl Send for GLWETensorKeyLayout
impl Sync for GLWETensorKeyLayout
impl Unpin for GLWETensorKeyLayout
impl UnsafeUnpin for GLWETensorKeyLayout
impl UnwindSafe for GLWETensorKeyLayout
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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