p3_mersenne_31/
lib.rs

1//! The prime field `F_p` where `p = 2^31 - 1`.
2
3#![no_std]
4
5extern crate alloc;
6
7mod complex;
8mod dft;
9mod extension;
10mod mds;
11mod mersenne_31;
12mod poseidon2;
13mod radix_2_dit;
14
15pub use dft::Mersenne31Dft;
16pub use mds::*;
17pub use mersenne_31::*;
18pub use poseidon2::*;
19pub use radix_2_dit::Mersenne31ComplexRadix2Dit;
20
21#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
22mod aarch64_neon;
23#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
24pub use aarch64_neon::*;
25
26#[cfg(all(
27    target_arch = "x86_64",
28    target_feature = "avx2",
29    not(target_feature = "avx512f")
30))]
31mod x86_64_avx2;
32#[cfg(all(
33    target_arch = "x86_64",
34    target_feature = "avx2",
35    not(target_feature = "avx512f")
36))]
37pub use x86_64_avx2::*;
38
39#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
40mod x86_64_avx512;
41#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
42pub use x86_64_avx512::*;
43
44#[cfg(not(any(
45    all(target_arch = "aarch64", target_feature = "neon"),
46    all(target_arch = "x86_64", target_feature = "avx2",),
47)))]
48mod no_packing;
49#[cfg(not(any(
50    all(target_arch = "aarch64", target_feature = "neon"),
51    all(target_arch = "x86_64", target_feature = "avx2",),
52)))]
53pub use no_packing::*;