27 size_t binary_logn = 0 ;
36 ntest = (1 << binary_logn) ;
60 for (i = 0; i <
n - 1; i++)
104 GSL_ERROR (
"n is not a power of 2", GSL_EINVAL);
129 for (b = 0; b <
q; b++)
134 VECTOR(data,stride,b*p) = t0_real ;
135 VECTOR(data,stride,b*p + p_1) = t1_real ;
144 const double theta = - 2.0 *
M_PI /
p;
150 for (a = 1; a < (
p_1)/2; a++)
155 const ATOMIC tmp_real = w_real - s * w_imag - s2 * w_real;
156 const ATOMIC tmp_imag = w_imag + s * w_real - s2 * w_imag;
161 for (b = 0; b <
q; b++)
170 ATOMIC t0_real = z0_real + w_real * z1_real - w_imag * z1_imag;
171 ATOMIC t0_imag = z0_imag + w_real * z1_imag + w_imag * z1_real;
175 ATOMIC t1_real = z0_real - w_real * z1_real + w_imag * z1_imag;
176 ATOMIC t1_imag = z0_imag - w_real * z1_imag - w_imag * z1_real;
178 VECTOR(data,stride,b*p + a) = t0_real ;
179 VECTOR(data,stride,b*p + p - a) = t0_imag ;
181 VECTOR(data,stride,b*p + p_1 - a) = t1_real ;
182 VECTOR(data,stride,b*p + p_1 + a) = -t1_imag ;
189 for (b = 0; b <
q; b++)
193 VECTOR(data,stride,b*p + p - p_1/2) *= -1 ;
#define VECTOR(a, stride, i)
static int const size_t const size_t n
static philox4x32_key_t k
static int const size_t stride
static int FUNCTION(fft_real, bitreverse_order)(BASE data[]
static int const size_t const size_t size_t logn
static int fft_binary_logn(const size_t n)