mod avx2;
#[cfg(feature = "simd512")]
mod avx512;
mod sse42;
pub use avx2::{
add_assign_avx2, add_assign_scalar_avx2, mul_add_avx2, mul_assign_avx2,
mul_elementwise_assign_avx2, mul_elementwise_avx2, mul_into_avx2, sub_assign_avx2,
sub_assign_scalar_avx2,
};
#[cfg(feature = "simd512")]
pub use avx512::{
add_assign_avx512, add_assign_scalar_avx512, mul_add_avx512, mul_assign_avx512,
mul_elementwise_assign_avx512, mul_elementwise_avx512, mul_into_avx512, sub_assign_avx512,
sub_assign_scalar_avx512,
};
pub use sse42::{
add_assign_scalar_sse42, add_assign_sse42, mul_add_sse42, mul_assign_sse42,
mul_elementwise_assign_sse42, mul_elementwise_sse42, mul_into_sse42, sub_assign_scalar_sse42,
sub_assign_sse42,
};
pub(super) use avx2::min_chain_avx2;
use crate::field::mersenne31;
#[allow(clippy::cast_possible_wrap)]
pub(super) const P: i32 = mersenne31::MODULUS as i32;