Expand description
This module provides common utilities, traits and structures for group, field and polynomial arithmetic.
Traits§
- This trait is the affine counterpart to
Curve
and is used for serialization, storage in memory, and inspection of $x$ and $y$ coordinates. - This trait is a common interface for dealing with elements of an elliptic curve group in a “projective” form, where that arithmetic is usually more efficient.
- This represents an element of a group with basic operations that can be performed. This allows an FFT implementation (for example) to operate generically over either a field or elliptic curve group.
- This trait represents an element of a field.
Functions§
- Dispatcher
- Performs a multi-exponentiation operation.
- Reverse
l
LSBs of bitvectorn
- This computes the inner product of two vectors
a
andb
. - This evaluates a provided polynomial (in coefficient form) at
point
. - Convert coefficient bases group elements to lagrange basis by inverse FFT.
- Divides polynomial
a
inX
byX - b
with no remainder. - Returns coefficients of an n - 1 degree polynomial given a set of n points and their evaluations. This function will panic if two values in
points
are the same. - This utility function will parallelize an operation that is to be performed over a mutable slice.
- Performs a small multi-exponentiation operation. Uses the double-and-add algorithm with doublings shared across points.