use crate::kernel::Complex;
#[cfg(target_arch = "x86_64")]
use crate::simd::{detect_simd_level, SimdLevel};
#[inline]
pub fn notw_2_simd_f64(x: &mut [Complex<f64>]) {
#[cfg(target_arch = "x86_64")]
{
let level = detect_simd_level();
if matches!(
level,
SimdLevel::Sse2 | SimdLevel::Avx | SimdLevel::Avx2 | SimdLevel::Avx512
) {
unsafe {
super::backends::sse2_f64::notw_2_sse2(x);
}
return;
}
}
super::super::notw_2(x);
}
#[inline]
pub fn notw_4_simd_f64(x: &mut [Complex<f64>], sign: i32) {
#[cfg(target_arch = "x86_64")]
{
let level = detect_simd_level();
if matches!(level, SimdLevel::Avx2 | SimdLevel::Avx512) {
unsafe {
super::backends::avx2_f64::notw_4_avx2(x, sign);
}
return;
}
if matches!(level, SimdLevel::Sse2 | SimdLevel::Avx) {
unsafe {
super::backends::sse2_f64::notw_4_sse2(x, sign);
}
return;
}
}
super::super::notw_4(x, sign);
}
#[inline]
pub fn notw_8_simd_f64(x: &mut [Complex<f64>], sign: i32) {
#[cfg(target_arch = "x86_64")]
{
let level = detect_simd_level();
if matches!(
level,
SimdLevel::Sse2 | SimdLevel::Avx | SimdLevel::Avx2 | SimdLevel::Avx512
) {
unsafe {
super::backends::sse2_f64::notw_8_sse2(x, sign);
}
return;
}
}
super::super::notw_8(x, sign);
}
#[inline]
pub fn notw_16_simd_f64(x: &mut [Complex<f64>], sign: i32) {
super::super::notw_16(x, sign);
}
#[inline]
pub fn notw_32_simd_f64(x: &mut [Complex<f64>], sign: i32) {
super::super::notw_32(x, sign);
}