p3_monty_31/
lib.rs
1#![no_std]
2#![cfg_attr(
3 all(
4 feature = "nightly-features",
5 target_arch = "x86_64",
6 target_feature = "avx512f"
7 ),
8 feature(stdarch_x86_avx512)
9)]
10
11extern crate alloc;
12
13mod data_traits;
14pub mod dft;
15mod extension;
16mod mds;
17mod monty_31;
18mod poseidon2;
19mod utils;
20pub use data_traits::*;
21pub use mds::*;
22pub use monty_31::*;
23pub use poseidon2::*;
24
25#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
26mod aarch64_neon;
27#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
28pub use aarch64_neon::*;
29
30#[cfg(all(
31 target_arch = "x86_64",
32 target_feature = "avx2",
33 not(all(feature = "nightly-features", target_feature = "avx512f"))
34))]
35mod x86_64_avx2;
36#[cfg(all(
37 target_arch = "x86_64",
38 target_feature = "avx2",
39 not(all(feature = "nightly-features", target_feature = "avx512f"))
40))]
41pub use x86_64_avx2::*;
42
43#[cfg(all(
44 feature = "nightly-features",
45 target_arch = "x86_64",
46 target_feature = "avx512f"
47))]
48mod x86_64_avx512;
49#[cfg(all(
50 feature = "nightly-features",
51 target_arch = "x86_64",
52 target_feature = "avx512f"
53))]
54pub use x86_64_avx512::*;
55
56#[cfg(not(any(
57 all(target_arch = "aarch64", target_feature = "neon"),
58 all(target_arch = "x86_64", target_feature = "avx2",),
59)))]
60mod no_packing;
61#[cfg(not(any(
62 all(target_arch = "aarch64", target_feature = "neon"),
63 all(target_arch = "x86_64", target_feature = "avx2",),
64)))]
65pub use no_packing::*;