Skip to main content

Term

Trait Term 

Source
pub trait Term:
    Clone
    + PartialOrd
    + Ord
    + PartialEq
    + Eq
    + Hash
    + Default
    + Debug
    + Deref<Target = [(usize, usize)]>
    + Send
    + Sync
    + CanonicalSerialize
    + CanonicalDeserialize {
    // Required methods
    fn new(term: Vec<(usize, usize)>) -> Self;
    fn degree(&self) -> usize;
    fn vars(&self) -> Vec<usize>;
    fn powers(&self) -> Vec<usize>;
    fn is_constant(&self) -> bool;
    fn evaluate<F: Field>(&self, p: &[F]) -> F;
}
Expand description

Describes the interface for a term (monomial) of a multivariate polynomial.

Required Methods§

Source

fn new(term: Vec<(usize, usize)>) -> Self

Create a new Term from a list of tuples of the form (variable, power)

Source

fn degree(&self) -> usize

Returns the total degree of self. This is the sum of all variable powers in self

Source

fn vars(&self) -> Vec<usize>

Returns a list of variables in self

Source

fn powers(&self) -> Vec<usize>

Returns a list of the powers of each variable in self

Source

fn is_constant(&self) -> bool

Returns whether self is a constant

Source

fn evaluate<F: Field>(&self, p: &[F]) -> F

Evaluates self at the point p.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§