numerics
Loading...
Searching...
No Matches
impl.hpp File Reference

std::experimental::simd butterfly for FFT. More...

Go to the source code of this file.

Detailed Description

std::experimental::simd butterfly for FFT.

Uses the portable C++ SIMD abstraction (<experimental/simd>, GCC 11+). On AVX2 platforms vd::size() == 4 (4 doubles/register), on NEON == 2.

The gather uses the generator-lambda constructor: simd<double, abi> ur([](int k){ return a[j+k].real(); }); which the compiler maps to SIMD gather instructions when possible.

The scatter-store back to AoS is the main cost difference vs. the handwritten backend – the element-wise write loop is the comparison point.

Only compiled when NUMERICS_HAS_STD_SIMD is defined.

Definition in file impl.hpp.