openvm_stark_backend::poly::multi

Trait MultivariatePolyOracle

Source
pub trait MultivariatePolyOracle<F> {
    // Required methods
    fn arity(&self) -> usize;
    fn marginalize_first(&self, claim: F) -> UnivariatePolynomial<F>;
    fn partial_evaluation(self, alpha: F) -> Self;
}
Expand description

Represents a multivariate polynomial g(x_1, ..., x_n).

Required Methods§

Source

fn arity(&self) -> usize

For an n-variate polynomial, returns n.

Source

fn marginalize_first(&self, claim: F) -> UnivariatePolynomial<F>

Returns the sum of g(x_1, x_2, ..., x_n) over all (x_2, ..., x_n) in {0, 1}^(n-1) as a polynomial in x_1.

Source

fn partial_evaluation(self, alpha: F) -> Self

Returns the multivariate polynomial h(x_2, ..., x_n) = g(alpha, x_2, ..., x_n).

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§

Source§

impl<F: Field> MultivariatePolyOracle<F> for Mle<F>