competitive/math/number_theoretic_transform/ntt_simd/mod.rs
1use super::*;
2use std::arch::x86_64::*;
3
4#[inline]
5fn normalize_scalar<M>(x: u32) -> u32
6where
7 M: Montgomery32NttModulus,
8{
9 if x >= M::MOD { x - M::MOD } else { x }
10}
11
12mod convolution_avx2;
13mod ntt_avx2;
14mod ntt_avx512;
15
16pub use convolution_avx2::{
17 convolve_blocks_avx2, inverse_transform_blocks_avx2, multiply_blocks_avx2,
18 transform_blocks_avx2,
19};
20pub use ntt_avx2::{
21 intt_batch_avx2, ntt_batch_avx2, pointwise_multiply_add_avx2, pointwise_multiply_avx2,
22};
23pub use ntt_avx512::{
24 intt_batch_avx512, ntt_batch_avx512, pointwise_multiply_add_avx512, pointwise_multiply_avx512,
25};