Skip to main content

PolynomialSpace

Trait PolynomialSpace 

Source
pub trait PolynomialSpace: Copy {
    type Val: Field;

    // Required methods
    fn size(&self) -> usize;
    fn first_point(&self) -> Self::Val;
    fn next_point<Ext>(&self, x: Ext) -> Option<Ext>
       where Ext: ExtensionField<Self::Val>;
    fn create_disjoint_domain(&self, min_size: usize) -> Self;
    fn split_domains(&self, num_chunks: usize) -> Vec<Self>;
    fn split_evals(
        &self,
        num_chunks: usize,
        evals: DenseMatrix<Self::Val>,
    ) -> Vec<DenseMatrix<Self::Val>>;
    fn zp_at_point<Ext>(&self, point: Ext) -> Ext
       where Ext: ExtensionField<Self::Val>;
    fn selectors_at_point<Ext>(&self, point: Ext) -> LagrangeSelectors<Ext>
       where Ext: ExtensionField<Self::Val>;
    fn selectors_on_coset(
        &self,
        coset: Self,
    ) -> LagrangeSelectors<Vec<Self::Val>>;
}

Required Associated Types§

Required Methods§

Source

fn size(&self) -> usize

Source

fn first_point(&self) -> Self::Val

Source

fn next_point<Ext>(&self, x: Ext) -> Option<Ext>
where Ext: ExtensionField<Self::Val>,

Source

fn create_disjoint_domain(&self, min_size: usize) -> Self

Source

fn split_domains(&self, num_chunks: usize) -> Vec<Self>

Source

fn split_evals( &self, num_chunks: usize, evals: DenseMatrix<Self::Val>, ) -> Vec<DenseMatrix<Self::Val>>

Source

fn zp_at_point<Ext>(&self, point: Ext) -> Ext
where Ext: ExtensionField<Self::Val>,

Source

fn selectors_at_point<Ext>(&self, point: Ext) -> LagrangeSelectors<Ext>
where Ext: ExtensionField<Self::Val>,

Source

fn selectors_on_coset(&self, coset: Self) -> LagrangeSelectors<Vec<Self::Val>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§