halo2_axiom

Module arithmetic

Source
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 bitvector n
  • This computes the inner product of two vectors a and b.
  • This evaluates a provided polynomial (in coefficient form) at point.
  • Convert coefficient bases group elements to lagrange basis by inverse FFT.
  • Divides polynomial a in X by X - 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.