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§
Sourcefn marginalize_first(&self, claim: F) -> UnivariatePolynomial<F>
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
.
Sourcefn partial_evaluation(self, alpha: F) -> Self
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.