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#![warn(
5    unused,
6    future_incompatible,
7    nonstandard_style,
8    rust_2018_idioms,
9    rust_2021_compatibility
10)]
11#![forbid(unsafe_code)]
12#![allow(
13    clippy::many_single_char_names,
14    clippy::suspicious_op_assign_impl,
15    clippy::suspicious_arithmetic_impl
16)]
17
18#[macro_use]
19extern crate educe;
20
21#[macro_use]
22extern crate ark_std;
23
24pub mod domain;
25
26pub mod evaluations;
27pub mod polynomial;
28
29pub use domain::{
30    EvaluationDomain, GeneralEvaluationDomain, MixedRadixEvaluationDomain, Radix2EvaluationDomain,
31};
32pub use evaluations::{
33    multivariate::multilinear::{
34        DenseMultilinearExtension, MultilinearExtension, SparseMultilinearExtension,
35    },
36    univariate::Evaluations,
37};
38pub use polynomial::{multivariate, univariate, DenseMVPolynomial, DenseUVPolynomial, Polynomial};
39
40#[cfg(test)]
41mod test;
42
43#[rustfmt::skip]
44#[cfg(doctest)]
45mod test_readme {
46  macro_rules! external_doc_test {
47    ($x:expr) => {
48        #[doc = $x]
49        extern {}
50    };
51  }
52
53  external_doc_test!(include_str!("../README.md"));
54}