Modules
domain
This module contains different evaluation domains used for polynomial arithmetic, especially those friendly to fast Fourier transforms (FFTs).
GeneralEvaluationDomain
Contains the GeneralEvaluationDomain
for FFT-friendly fields.
mixed_radix
Contains the MixedRadixEvaluationDomain
for fields that do not have high-enough two-adicity for efficient FFTs.
radix2
Contains the Radix2EvaluationDomain
, an evaluation domain for fields with high two-adicity, supporting FFTs of size at most 2^F::TWO_ADICITY
.
The Radix2EvaluationDomain
in the ark-poly
crate has several methods that allow for various operations on polynomial domains. Here is a list of the primary methods:
new
: Constructs a domain for a given number of coefficients.get_coset
: Constructs a coset domain.compute_size_of_domain
: Returns the size of a domain suitable for a given number of coefficients.size
: Returns the size of the domain.log_size_of_group
: Returns the base-2 logarithm of the domain size.size_inv
: Returns the multiplicative inverse of the domain size as a field element.group_gen
: Returns the generator for the multiplicative subgroup.group_gen_inv
: Returns the inverse of the subgroup generator.coset_offset
: Returns the coset offset.coset_offset_inv
: Returns the inverse of the coset offset.coset_offset_pow_size
: Returns the coset offset raised to the power of the domain size.fft_in_place
: Computes a Fast Fourier Transform (FFT) in place.ifft_in_place
: Computes an Inverse Fast Fourier Transform (IFFT) in place.sample_element_outside_domain
: Samples an element outside the domain.new_coset
: Constructs a coset domain for a given number of coefficients and offset.size_as_field_element
: Returns the size of the domain as a field element.fft
: Computes a FFT.ifft
: Computes an IFFT.distribute_powers
: Multiplies the i-th element of coefficients with gig^igi.distribute_powers_and_mul_by_const
: Multiplies the i-th element of coefficients with c×gic \times g^ic×gi.evaluate_all_lagrange_coefficients
: Evaluates all Lagrange coefficients at a given point.vanishing_polynomial
: Returns the vanishing polynomial.evaluate_vanishing_polynomial
: Evaluates the vanishing polynomial at a given point.element
: Returns the i-th element of the domain.reindex_by_subdomain
: Reindexes an index by another subdomain.mul_polynomials_in_evaluation_domain
: Multiplies two polynomials presented by their evaluations in the domain.
evaluations
This module provides data structures and functionalities for representing and working with polynomials in their evaluations form.
multivariate
Handles sparse multivariate polynomials.
univariate
Deals with univariate polynomials represented in evaluations form.
Methods in Evaluations
Struct (from mod.rs
):
- interpolate
- from_vec_and_domain
- evaluate_at
- evaluate_at_index
- scale
- scale_in_place
- coset_evaluate_and_return_poly
- into_coeffs
- ifft
- fft
- evaluate_over_domain_by_ref
- evaluate_over_domain
- mul_assign_by_ref
- add_assign_by_ref
- sub_assign_by_ref
- interpolate_with_domain
- coset_interpolate_and_return_poly
polynomial
This module includes functions and structures for manipulating both univariate and multivariate polynomials.
multivariate
Focuses on sparse multivariate polynomials.
univariate
Deals with both sparse and dense univariate polynomials.