|0.3.0||Jun 6, 2021|
|0.2.0||Mar 24, 2021|
#926 in Cryptography
35,755 downloads per month
Used in 23 crates (15 directly)
This crate implements traits and implementations for polynomials, FFT-friendly subsets of a field (dubbed "domains"), and FFTs for these domains.
polynomial module provides the following traits for defining polynomials in coefficient form:
Polynomial: Requires implementors to support common operations on polynomials, such as
Zero, evaluation at a point, degree, etc, and defines methods to serialize to and from the coefficient representation of the polynomial.
UVPolynomial: Specifies that a
Polynomialis actually a univariate polynomial.
MVPolynomial: Specifies that a
Polynomialis actually a multivariate polynomial.
This crate also provides the following data structures that implement these traits:
univariate/DensePolynomial: Represents degree
dunivariate polynomials via a list of
d + 1coefficients. This struct implements the
univariate/SparsePolynomial: Represents degree
dunivariate polynomials via a list containing all non-zero monomials. This should only be used when most coefficients of the polynomial are zero. This struct implements the
Polynomialtrait (but not the
multivariate/SparsePolynomial: Represents multivariate polynomials via a list containing all non-zero monomials.
This crate also provides the
univariate/DenseOrSparsePolynomial enum, which allows the user to abstract over the type of underlying univariate polynomial (dense or sparse).
evaluations module provides data structures to represent univariate polynomials in lagrange form.
univariate/EvaluationsRepresents a univariate polynomial in evaluation form, which can be used for FFT.
evaluations module also provides the following traits for defining multivariate polynomials in lagrange form:
multivariate/multilinear/MultilinearExtensionSpecifies a multilinear polynomial evaluated over boolean hypercube.
This crate provides some data structures to implement these traits.
multivariate/multilinear/DenseMultilinearExtensionRepresents multilinear extension via a list of evaluations over boolean hypercube.
multivariate/multilinear/SparseMultilinearExtensionRepresents multilinear extension via a list of non-zero evaluations over boolean hypercube.