1#![no_std]
2
3extern crate alloc;
4
5mod data_traits;
6pub mod dft;
7mod extension;
8mod mds;
9mod monty_31;
10mod poseidon2;
11mod utils;
12pub use data_traits::*;
13pub use mds::*;
14pub use monty_31::*;
15pub use poseidon2::*;
16
17#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
18mod aarch64_neon;
19#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
20pub use aarch64_neon::*;
21
22#[cfg(all(
23 target_arch = "x86_64",
24 target_feature = "avx2",
25 not(target_feature = "avx512f")
26))]
27mod x86_64_avx2;
28#[cfg(all(
29 target_arch = "x86_64",
30 target_feature = "avx2",
31 not(target_feature = "avx512f")
32))]
33pub use x86_64_avx2::*;
34
35#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
36mod x86_64_avx512;
37#[cfg(all(target_arch = "x86_64", target_feature = "avx512f"))]
38pub use x86_64_avx512::*;
39
40#[cfg(not(any(
41 all(target_arch = "aarch64", target_feature = "neon"),
42 all(target_arch = "x86_64", target_feature = "avx2",),
43)))]
44mod no_packing;
45#[cfg(not(any(
46 all(target_arch = "aarch64", target_feature = "neon"),
47 all(target_arch = "x86_64", target_feature = "avx2",),
48)))]
49pub use no_packing::*;