Skip to main content

fft_avx512

Function fft_avx512 

Source
unsafe fn fft_avx512<const INVERSE: bool>(
    a: &mut [Complex<f64>],
    cache: &[Complex<f64>],
)
Examples found in repository?
crates/competitive/src/math/fast_fourier_transform.rs (line 630)
623fn fft_dispatch<const INVERSE: bool>(a: &mut [Complex<f64>]) {
624    RotateCache::ensure(a.len() / 2);
625    RotateCache::with(|cache| {
626        #[cfg(target_arch = "x86_64")]
627        if a.len() >= 16 {
628            match simd_backend() {
629                SimdBackend::Avx512 => {
630                    return unsafe { fft_avx512::<INVERSE>(a, cache) };
631                }
632                SimdBackend::Avx2 => return unsafe { fft_avx2::<INVERSE>(a, cache) },
633                SimdBackend::Scalar => {}
634            }
635        }
636        fft_kernel!(a, cache, INVERSE);
637    });
638}