arkwork ark-poly

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:

  1. new: Constructs a domain for a given number of coefficients.
  2. get_coset: Constructs a coset domain.
  3. compute_size_of_domain: Returns the size of a domain suitable for a given number of coefficients.
  4. size: Returns the size of the domain.
  5. log_size_of_group: Returns the base-2 logarithm of the domain size.
  6. size_inv: Returns the multiplicative inverse of the domain size as a field element.
  7. group_gen: Returns the generator for the multiplicative subgroup.
  8. group_gen_inv: Returns the inverse of the subgroup generator.
  9. coset_offset: Returns the coset offset.
  10. coset_offset_inv: Returns the inverse of the coset offset.
  11. coset_offset_pow_size: Returns the coset offset raised to the power of the domain size.
  12. fft_in_place: Computes a Fast Fourier Transform (FFT) in place.
  13. ifft_in_place: Computes an Inverse Fast Fourier Transform (IFFT) in place.
  14. sample_element_outside_domain: Samples an element outside the domain.
  15. new_coset: Constructs a coset domain for a given number of coefficients and offset.
  16. size_as_field_element: Returns the size of the domain as a field element.
  17. fft: Computes a FFT.
  18. ifft: Computes an IFFT.
  19. distribute_powers: Multiplies the i-th element of coefficients with gig^igi.
  20. distribute_powers_and_mul_by_const: Multiplies the i-th element of coefficients with c×gic \times g^ic×gi.
  21. evaluate_all_lagrange_coefficients: Evaluates all Lagrange coefficients at a given point.
  22. vanishing_polynomial: Returns the vanishing polynomial.
  23. evaluate_vanishing_polynomial: Evaluates the vanishing polynomial at a given point.
  24. element: Returns the i-th element of the domain.
  25. reindex_by_subdomain: Reindexes an index by another subdomain.
  26. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *