#ifndef FFT_INL_
#define FFT_INL_
#include <iostream>
#include <assert.h>
#include <time.h>
#include <chrono>
#include <vector>
#include <tclap/CmdLine.h>
{
try {
TCLAP::CmdLine cmd("Command line arguments for ", '=');
TCLAP::ValueArg<size_t>
EArg(
"n",
"number-of-events",
"Number of events",
true, 10e6,
"size_t");
}
catch (TCLAP::ArgException &e) {
std::cerr << "error: " << e.error() << " for arg " << e.argId()
<< std::endl;
}
fft_r2c.Execute();
auto r2c_out = fft_r2c.GetOutputData();
r2c_out.first + r2c_out.second );
fft_c2r.Execute();
auto c2r_out = fft_c2r.GetOutputData();
c2r_out.first + c2r_out.second);
printf(" ---- real ---- | ---------- complex ---------- | ----- real -----\n");
printf("%f \t| %f:re + %f:im \t| %f \n", hydra::get<0>(a),
hydra::get<1>(a).real(), hydra::get<1>(a).imag(), hydra::get<2>(a)/
nentries );
});
fft_c2c_f.Execute();
auto c2c_out_f = fft_c2c_f.GetOutputData();
c2c_out_f.first + c2c_out_f.second);
fft_c2c_b.Execute();
auto c2c_out_b = fft_c2c_b.GetOutputData();
c2c_out_b.first + c2c_out_b.second);
auto datac =
hydra::zip( c, output_c2c_f , output_c2c_b);
printf(" ----------- complex ---------- | ---------- complex ---------- | ---------- complex ----------\n");
{
printf(" %f:re + %f:im \t| %f:re + %f:im \t| %f:re + %f:im \n",
hydra::get<0>(a).real(), hydra::get<0>(a).imag(),
});
return 0;
}
#endif