Skip to main content

ark_poly/
lib.rs

1//! This crate implements functions for manipulating polynomials over finite
2//! fields, including FFTs.
3#![cfg_attr(not(feature = "std"), no_std)]
4#![forbid(unsafe_code)]
5#![allow(clippy::suspicious_op_assign_impl, clippy::suspicious_arithmetic_impl)]
6
7pub mod domain;
8
9pub mod evaluations;
10pub mod polynomial;
11
12pub use domain::{
13    EvaluationDomain, GeneralEvaluationDomain, MixedRadixEvaluationDomain, Radix2EvaluationDomain,
14};
15pub use evaluations::{
16    multivariate::multilinear::{
17        DenseMultilinearExtension, MultilinearExtension, SparseMultilinearExtension,
18    },
19    univariate::Evaluations,
20};
21pub use polynomial::{multivariate, univariate, DenseMVPolynomial, DenseUVPolynomial, Polynomial};
22
23#[cfg(test)]
24mod test;
25
26#[cfg(doctest)]
27mod test_readme {
28    macro_rules! external_doc_test {
29        ($x:expr) => {
30            #[doc = $x]
31            extern "C" {}
32        };
33    }
34
35    external_doc_test!(include_str!("../README.md"));
36}