#include "itbase.h"

using std::cout;
using std::endl;
using namespace itpp;

int main()
{
  int N=pow2i(16), NN=1000, i;
  vec a(N), b(N);
  double *p1=a._data(),*p2=b._data();

  //Remove comments below to measure execution times.
  //Real_Timer time;

  //time.tic();
  for (i=0; i<NN; i++) {
    memcpy(p1,p2,4*N);
  }
  //time.toc();

  N=17, NN=100, i;

  vec in(N), in_final;
  cvec out, out_real, in_complex, inv_out;

  in = randn(N);

  cout << "fft:" << endl;
  //time.tic();
  for (i=0; i<NN; i++) {
    in_complex = to_cvec(in);
    fft(in_complex, out);
  }
  //time.toc();

  cout << "Real fft:" << endl;
  //time.tic();
  for (i=0; i<NN; i++) {
    fft_real(in, out_real);
  }
  //time.toc();

  cout << "Real ifft:" << endl;
  //time.tic();
  for (i=0; i<NN; i++) {
    ifft_real(out_real, in_final);
  }
  //time.toc();

  cout << "Old ifft:" << endl;
  //time.tic();
  for (i=0; i<NN; i++) {
    inv_out = ifft(out);
  }
  //time.toc();

  return 0;

}


syntax highlighted by Code2HTML, v. 0.9.1