|
| template<typename T , int W> |
| void | radix4Strided (const T *xr, const T *xi, T *yr, T *yi, size_t n, size_t s, const TwiddleSpan< T > &tw) noexcept |
| | One Stockham radix-4 DIF pass with stride s >= W, vectorised over the stride (twiddles broadcast per butterfly group).
|
| |
| template<typename T , int W> |
| void | radix4First (const T *xr, const T *xi, T *yr, T *yi, size_t n, const TwiddleSpan< T > &tw) noexcept |
| | The first (stride-1) radix-4 pass, vectorised across W butterflies (n/4 must be a multiple of W): the inputs and twiddles are contiguous in p, and the four outputs of each butterfly are adjacent, written through a 4-way interleave.
|
| |
| template<typename T , int W> |
| void | radix2Last (const T *xr, const T *xi, T *yr, T *yi, size_t s) noexcept |
| | The closing radix-2 pass (n = 2, stride s = N / 2): no twiddles.
|
| |
template<typename T , int W>
| void dspark::detail::fft::radix4First |
( |
const T * |
xr, |
|
|
const T * |
xi, |
|
|
T * |
yr, |
|
|
T * |
yi, |
|
|
size_t |
n, |
|
|
const TwiddleSpan< T > & |
tw |
|
) |
| |
|
noexcept |
The first (stride-1) radix-4 pass, vectorised across W butterflies (n/4 must be a multiple of W): the inputs and twiddles are contiguous in p, and the four outputs of each butterfly are adjacent, written through a 4-way interleave.
Definition at line 158 of file FFT.h.
template<typename T , int W>
| void dspark::detail::fft::radix4Strided |
( |
const T * |
xr, |
|
|
const T * |
xi, |
|
|
T * |
yr, |
|
|
T * |
yi, |
|
|
size_t |
n, |
|
|
size_t |
s, |
|
|
const TwiddleSpan< T > & |
tw |
|
) |
| |
|
noexcept |
One Stockham radix-4 DIF pass with stride s >= W, vectorised over the stride (twiddles broadcast per butterfly group).
y[q + s(4p + k)] = w^(kp) * (radix-4 butterfly of x[q + s(p + k n/4)]).
Definition at line 106 of file FFT.h.