Documentation
¶
Overview ¶
Package polynomial provides field-agnostic polynomials.
Index ¶
- func FromSlice[FR emulated.FieldParams](in []emulated.Element[FR]) []*emulated.Element[FR]
- func FromSliceReferences[FR emulated.FieldParams](in []*emulated.Element[FR]) []emulated.Element[FR]
- type Multilinear
- type Polynomial
- func (p *Polynomial[FR]) EvalEqual(x, y []*emulated.Element[FR]) *emulated.Element[FR]
- func (p *Polynomial[FR]) EvalMultilinear(at []*emulated.Element[FR], M Multilinear[FR]) (*emulated.Element[FR], error)
- func (p *Polynomial[FR]) EvalMultilinearMany(at []*emulated.Element[FR], M ...Multilinear[FR]) ([]*emulated.Element[FR], error)
- func (p *Polynomial[FR]) EvalUnivariate(P Univariate[FR], at *emulated.Element[FR]) *emulated.Element[FR]
- func (p *Polynomial[FR]) InterpolateLDE(at *emulated.Element[FR], values []*emulated.Element[FR]) *emulated.Element[FR]
- type Univariate
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FromSliceReferences ¶
func FromSliceReferences[FR emulated.FieldParams](in []*emulated.Element[FR]) []emulated.Element[FR]
FromSliceReferences maps slice of emulated element references to their values.
Types ¶
type Multilinear ¶
type Multilinear[FR emulated.FieldParams] []emulated.Element[FR]
Multilinear defines a multivariate multilinear polynomial by its term coefficients.
func PlaceholderMultilinear ¶
func PlaceholderMultilinear[FR emulated.FieldParams](nbVars int) Multilinear[FR]
PlaceholderMultilinear returns empty variable for allocating variables during circuit compilation.
func ValueOfMultilinear ¶
func ValueOfMultilinear[FR emulated.FieldParams](ml []*big.Int) Multilinear[FR]
ValueOfMultilinear assigns Multilinear variable.
type Polynomial ¶
type Polynomial[FR emulated.FieldParams] struct { // contains filtered or unexported fields }
Polynomial is a non-native polynomial evaluator.
func New ¶
func New[FR emulated.FieldParams](api frontend.API) (*Polynomial[FR], error)
New returns new polynomial evaluator.
func (*Polynomial[FR]) EvalEqual ¶
func (p *Polynomial[FR]) EvalEqual(x, y []*emulated.Element[FR]) *emulated.Element[FR]
EvalEquals returns the evaluation
eq(x, y) = \prod (1-x)*(1-y) + x*y,
which for binary inputs x and y equals 1 only if x = y and 0 otherwise.
func (*Polynomial[FR]) EvalMultilinear ¶
func (p *Polynomial[FR]) EvalMultilinear(at []*emulated.Element[FR], M Multilinear[FR]) (*emulated.Element[FR], error)
EvalMultilinear evaluates multilinear polynomial at variable values at. It returns the evaluation. The method does not mutate the inputs.
func (*Polynomial[FR]) EvalMultilinearMany ¶
func (p *Polynomial[FR]) EvalMultilinearMany(at []*emulated.Element[FR], M ...Multilinear[FR]) ([]*emulated.Element[FR], error)
EvalMultilinearMany evaluates multilinear polynomials at variable values at. It returns the evaluations. The method does not mutate the inputs.
The method allows to share computations of computing the coefficients of the multilinear polynomials at the given evaluation points.
func (*Polynomial[FR]) EvalUnivariate ¶
func (p *Polynomial[FR]) EvalUnivariate(P Univariate[FR], at *emulated.Element[FR]) *emulated.Element[FR]
EvalUnivariate evaluates univariate polynomial at a point at. It returns the evaluation. The method does not mutate the inputs.
func (*Polynomial[FR]) InterpolateLDE ¶
func (p *Polynomial[FR]) InterpolateLDE(at *emulated.Element[FR], values []*emulated.Element[FR]) *emulated.Element[FR]
InterpolateLDE returns the polynomial obtained by interpolating values at evaluation point at.
type Univariate ¶
type Univariate[FR emulated.FieldParams] []emulated.Element[FR]
Univariate defines a univariate polynomial by its coefficients.
func PlaceholderUnivariate ¶
func PlaceholderUnivariate[FR emulated.FieldParams](length int) Univariate[FR]
PlaceholderUnivariate returns empty variable for allocating variables during circuit compilation.
func ValueOfUnivariate ¶
func ValueOfUnivariate[FR emulated.FieldParams](univ []*big.Int) Univariate[FR]
ValueOfUnivariate assigns Univariate variable.