#ifndef COMPARISON_BENCHMARKS_BASE_FFT_H
#define COMPARISON_BENCHMARKS_BASE_FFT_H

#include <complex>
#include <string>
#include <vector>

namespace comparison_benchmarks {
namespace base {
namespace fft {

const int SIZE = 8192;
const int NUM_ITERATIONS = 1000;
const int NUM_WARMUP_ITERATIONS = 0;

const int RECURSIVE_CUTOFF = 32;
typedef std::vector<std::complex<double>> complex_vector;

void fill_input(fft::complex_vector &data);

void divide(complex_vector::iterator data, complex_vector::iterator swap_array, int n);
void conquer(complex_vector::iterator data, complex_vector::iterator swap_array, int n);
void combine(complex_vector::iterator data, int n);

}
}
}

#endif //COMPARISON_BENCHMARKS_BASE_FFT_H
