9using cd = std::complex<double>;
12bool is_power_of_two(
size_t n);
15size_t next_power_of_two(
size_t n);
18void bit_reverse_permute(std::vector<cd> &a);
20void pad_to_pow_two(std::vector<cd> &a,
size_t &N);
26void iterative_fft(std::vector<cd> &a,
bool inverse =
false);
32std::vector<cd> fft_copy(
const std::vector<cd> &input,
bool inverse =
false);
38void iterative_fft_2d(std::vector<cd> &a,
size_t width,
size_t height,
bool inverse =
false);
44std::vector<cd> iterative_fft_2d_copy(
const std::vector<cd> &input,
size_t width,
size_t height,
45 bool inverse =
false);