1#![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::*;