Пример #1
0
fftplan *planIFFT(int N) 
{
  int *factors = factor(N);
  optimizeFactors(factors);
  fftplan *plan = new fftplan;
  plan->dir = -1;
  plan->n = getNFactors(factors);
  plan->N2 = factors;
  plan->N1 = getN1(factors,N);
  plan->order = getOrder(plan->n,plan->N1,plan->N2);
  plan->reorder = (t_fft*)malloc(N*sizeof(t_fft));
  plan->t = calcTwiddles(plan->n,plan->N1,plan->N2,plan->order,-1);
  plan->f = getFuncs(factors);
  plan->N = N;
  plan->norm = 1.0f/(real)N;
  return plan;
}
Пример #2
0
 InitterRegister::InitterRegister(boost::function<void (int *, const char ***)> func, int priority) {
   getFuncs().insert(make_pair(priority, func));
 }
Пример #3
0
 void initProgram(int *argc, const char ***argv) {
   const multimap<int, boost::function<void (int*, const char ***)> > &mp = getFuncs();
   for(multimap<int, boost::function<void (int*, const char ***)> >::const_iterator itr = mp.begin(); itr != mp.end(); itr++) {
     itr->second(argc, argv);
   }
 }