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(
45 const std::vector<cd>& input,
size_t width,
size_t height,
bool inverse =
false