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