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::*;