mod interval;
pub use interval::*;
mod nosimd;
pub use nosimd::*;
#[cfg(all(target_feature = "avx2", not(feature = "nosimd")))]
mod avx;
#[cfg(all(target_feature = "avx2", not(feature = "nosimd")))]
pub use avx::*;
#[cfg(all(target_feature = "neon", not(feature = "nosimd")))]
mod neon;
#[cfg(all(target_feature = "neon", not(feature = "nosimd")))]
pub use neon::*;
#[cfg(all(
not(feature = "nosimd"),
not(target_feature = "avx2"),
not(target_feature = "neon")
))]
pub type COITree<T, I> = BasicCOITree<T, I>;
#[cfg(all(target_feature = "avx2", not(feature = "nosimd")))]
pub type COITree<T, I> = AVXCOITree<T, I>;
#[cfg(all(target_feature = "neon", not(feature = "nosimd")))]
pub type COITree<T, I> = NeonCOITree<T, I>;
#[cfg(all(
not(feature = "nosimd"),
not(target_feature = "avx2"),
not(target_feature = "neon")
))]
pub type COITreeSortedQuerent<'a, T, I> = BasicSortedQuerent<'a, T, I>;
#[cfg(all(target_feature = "avx2", not(feature = "nosimd")))]
pub type COITreeSortedQuerent<'a, T, I> = AVXSortedQuerent<'a, T, I>;
#[cfg(all(target_feature = "neon", not(feature = "nosimd")))]
pub type COITreeSortedQuerent<'a, T, I> = NeonSortedQuerent<'a, T, I>;