pub struct PolyVec<P, const N: usize, const K: usize>(/* private fields */)
where
P: Polynomial;Implementations§
Source§impl<const K: usize> PolyVec<Poly<KyberFq, { KYBER_N / 2 }>, { KyberPoly::N }, K>
impl<const K: usize> PolyVec<Poly<KyberFq, { KYBER_N / 2 }>, { KyberPoly::N }, K>
pub fn getnoise_eta1(&mut self, prf: &mut Prf, seed: &[u8; 32], nonce: u8)
pub fn getnoise_eta2(&mut self, prf: &mut Prf, seed: &[u8; 32], nonce: u8)
pub fn compress<const D: usize>(&self, ct: &mut [[[u8; D]; 32]; K])
pub fn decompress<const D: usize>(&mut self, ct: &[[[u8; D]; 32]; K])
Trait Implementations§
Source§impl<P, const N: usize, const K: usize> AddAssign<&PolyVec<P, N, K>> for PolyVec<P, N, K>where
P: Polynomial,
impl<P, const N: usize, const K: usize> AddAssign<&PolyVec<P, N, K>> for PolyVec<P, N, K>where
P: Polynomial,
Source§fn add_assign(&mut self, rhs: &Self)
fn add_assign(&mut self, rhs: &Self)
Performs the
+= operation. Read moreSource§impl<P, const N: usize, const K: usize> AsMut<[P; K]> for PolyVec<P, N, K>where
P: Polynomial,
impl<P, const N: usize, const K: usize> AsMut<[P; K]> for PolyVec<P, N, K>where
P: Polynomial,
Source§impl<P, const N: usize, const K: usize> AsRef<[P; K]> for PolyVec<P, N, K>where
P: Polynomial,
impl<P, const N: usize, const K: usize> AsRef<[P; K]> for PolyVec<P, N, K>where
P: Polynomial,
Source§impl<P, const N: usize, const K: usize> Clone for PolyVec<P, N, K>where
P: Polynomial + Clone,
impl<P, const N: usize, const K: usize> Clone for PolyVec<P, N, K>where
P: Polynomial + Clone,
Source§impl<P, const N: usize, const K: usize> Debug for PolyVec<P, N, K>where
P: Polynomial + Debug,
impl<P, const N: usize, const K: usize> Debug for PolyVec<P, N, K>where
P: Polynomial + Debug,
Source§impl<P, const N: usize, const K: usize> Index<usize> for PolyVec<P, N, K>where
P: Polynomial,
impl<P, const N: usize, const K: usize> Index<usize> for PolyVec<P, N, K>where
P: Polynomial,
Source§impl<P, const N: usize, const K: usize> IndexMut<usize> for PolyVec<P, N, K>where
P: Polynomial,
impl<P, const N: usize, const K: usize> IndexMut<usize> for PolyVec<P, N, K>where
P: Polynomial,
Source§impl<'a, P, const N: usize, const K: usize> IntoIterator for &'a PolyVec<P, N, K>where
P: Polynomial,
impl<'a, P, const N: usize, const K: usize> IntoIterator for &'a PolyVec<P, N, K>where
P: Polynomial,
Source§impl<'a, const N: usize, P, const K: usize> IntoIterator for &'a mut PolyVec<P, N, K>where
P: Polynomial,
impl<'a, const N: usize, P, const K: usize> IntoIterator for &'a mut PolyVec<P, N, K>where
P: Polynomial,
Source§impl<P, const N: usize, const K: usize> PolynomialVector for PolyVec<P, N, K>where
P: SizedPolynomial<N>,
impl<P, const N: usize, const K: usize> PolynomialVector for PolyVec<P, N, K>where
P: SizedPolynomial<N>,
const K: usize = K
type Poly = P
fn ntt(&mut self)
fn ntt_and_reduce(&mut self)
fn inv_ntt_tomont(&mut self)
fn reduce(&mut self)
fn uniform_xof<const TRANSPOSED: bool>(&mut self, seed: &[u8; 32], i: u8)
fn basemul_acc( &self, other: &Self, result: &mut <Self as PolynomialVector>::Poly, )
impl<P, const N: usize, const K: usize> Copy for PolyVec<P, N, K>where
P: Polynomial + Copy,
Auto Trait Implementations§
impl<P, const N: usize, const K: usize> Freeze for PolyVec<P, N, K>where
P: Freeze,
impl<P, const N: usize, const K: usize> RefUnwindSafe for PolyVec<P, N, K>where
P: RefUnwindSafe,
impl<P, const N: usize, const K: usize> Send for PolyVec<P, N, K>where
P: Send,
impl<P, const N: usize, const K: usize> Sync for PolyVec<P, N, K>where
P: Sync,
impl<P, const N: usize, const K: usize> Unpin for PolyVec<P, N, K>where
P: Unpin,
impl<P, const N: usize, const K: usize> UnsafeUnpin for PolyVec<P, N, K>where
P: UnsafeUnpin,
impl<P, const N: usize, const K: usize> UnwindSafe for PolyVec<P, N, K>where
P: 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