binius_math

Trait CompositionPoly

source
pub trait CompositionPoly<F: Field>:
    Debug
    + Send
    + Sync {
    // Required methods
    fn n_vars(&self) -> usize;
    fn degree(&self) -> usize;
    fn evaluate<P: PackedField<Scalar: ExtensionField<F>>>(
        &self,
        query: &[P],
    ) -> Result<P, Error>;
    fn binary_tower_level(&self) -> usize;
    fn batch_evaluate<P: PackedField<Scalar: ExtensionField<F>>>(
        &self,
        batch_query: &[&[P]],
        evals: &mut [P],
    ) -> Result<(), Error>;
}
Expand description

A generic version of the CompositionPolyOS trait that is not object-safe.

Required Methods§

source

fn n_vars(&self) -> usize

source

fn degree(&self) -> usize

source

fn evaluate<P: PackedField<Scalar: ExtensionField<F>>>( &self, query: &[P], ) -> Result<P, Error>

source

fn binary_tower_level(&self) -> usize

source

fn batch_evaluate<P: PackedField<Scalar: ExtensionField<F>>>( &self, batch_query: &[&[P]], evals: &mut [P], ) -> Result<(), Error>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, F: Field, T: 'a + CompositionPoly<F> + ?Sized> CompositionPoly<F> for &'a T
where &'a T: Debug + Send + Sync,

source§

fn n_vars(&self) -> usize

source§

fn degree(&self) -> usize

source§

fn evaluate<P: PackedField<Scalar: ExtensionField<F>>>( &self, query: &[P], ) -> Result<P, Error>

source§

fn binary_tower_level(&self) -> usize

source§

fn batch_evaluate<P: PackedField<Scalar: ExtensionField<F>>>( &self, batch_query: &[&[P]], evals: &mut [P], ) -> Result<(), Error>

Implementors§