Expand description
Mathematical primitives used in Binius, built atop the binius_field
crate.
This crate provides a variety of mathematical primitives used in Binius, including:
- Multilinear polynomials
- Univariate polynomials
- Matrix operations
- Arithmetic expressions and evaluators
This crate is a dependency of binius_hal
. When modules in binius_core
need to be abstracted
behind the HAL, this is one of the places they are often moved in order to avoid crate
dependency cycles.
Structs§
- Binary
Subspace - An $F_2$-linear subspace of a binary field.
- Default
Evaluation Domain Factory - Evaluation
Domain - A domain that univariate polynomials may be evaluated on.
- Interpolation
Domain - An extended version of
EvaluationDomain
that supports interpolation to monomial form. Takes longer to construct due to Vandermonde inversion, which has cubic complexity. - Isomorphic
Evaluation Domain Factory - Linear
Normal Form - A normal form for a linear expression.
- MLEDirect
Adapter - An adapter for
MultilinearExtension
that implementsMultilinearPoly
over the same packed field that theMultilinearExtension
stores evaluations in. - MLEEmbedding
Adapter - An adapter for
MultilinearExtension
that implementsMultilinearPoly
over a packed extension field. - Matrix
- A matrix over a field.
- Multilinear
Extension - A multilinear polynomial represented by its evaluations over the boolean hypercube.
- Multilinear
Query - Tensor product expansion of sumcheck round challenges.
- Multilinear
Query Ref - Wraps
MultilinearQuery
to hideData
from the users. - Packing
Deref - A wrapper for containers of underlier types that dereferences as packed field slices.
Enums§
- Arith
Expr - Arithmetic expressions that can be evaluated symbolically.
- Error
- Evaluation
Order - Sumcheck evaluation order.
Traits§
- Composition
Poly - A multivariate polynomial that is used as a composition of several multilinear polynomials.
- Evaluation
Domain Factory - Wraps type information to enable instantiating EvaluationDomains.
- Multilinear
Poly - Represents a multilinear polynomial.
Functions§
- eq_
ind_ partial_ eval - Computes the partial evaluation of the equality indicator polynomial.
- evaluate_
piecewise_ multilinear - Evaluate a piecewise multilinear polynomial at a point, given the evaluations of the pieces.
- evaluate_
univariate - Evaluate a univariate polynomial specified by its monomial coefficients.
- extrapolate_
line - Extrapolates lines through a pair of packed fields at a single point from a subfield.
- extrapolate_
line_ scalar - Similar methods, but for scalar fields.
- extrapolate_
lines - Extrapolates lines through a pair of packed fields at a packed vector of points.
- fold_
left - Execute the left fold operation.
- fold_
left_ lerp - Left linear interpolation (lerp, single variable) fold
- fold_
left_ lerp_ inplace - Inplace left linear interpolation (lerp, single variable) fold
- fold_
right - Execute the right fold operation.
- fold_
right_ lerp - Specialized implementation for a single parameter right fold using linear interpolation instead of tensor expansion resulting in a single multiplication instead of two: f(r||w) = r * (f(1||w) - f(0||w)) + f(0||w).
- tensor_
prod_ eq_ ind - Tensor Product expansion of values with partial eq indicator evaluated at extra_query_coordinates
Type Aliases§
- Multilinear
Extension Borrowed - Type alias for the common pattern of a
MultilinearExtension
backed by borrowed data.