Skip to main content

PolynomialVector

Trait PolynomialVector 

Source
pub trait PolynomialVector:
    Default
    + Sized
    + Index<usize>
    + IndexMut<usize> {
    type Poly: Polynomial;

    const K: usize;

    // Required methods
    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,
    );
}

Required Associated Constants§

Source

const K: usize

Required Associated Types§

Required Methods§

Source

fn ntt(&mut self)

Source

fn ntt_and_reduce(&mut self)

Source

fn inv_ntt_tomont(&mut self)

Source

fn reduce(&mut self)

Source

fn uniform_xof<const TRANSPOSED: bool>(&mut self, seed: &[u8; 32], i: u8)

Source

fn basemul_acc( &self, other: &Self, result: &mut <Self as PolynomialVector>::Poly, )

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<P, const N: usize, const K: usize> PolynomialVector for PolyVec<P, N, K>
where P: SizedPolynomial<N>,

Source§

const K: usize = K

Source§

type Poly = P