36 int bench_openmp(FILE *infile, 
int n, 
int m, 
int p, 
double _Complex (*kernel)(
double , 
int , 
const double *), 
double c, 
double eps_I, 
double eps_B)
 
   42   double r_max = 0.25 - my_fastsum_plan.
eps_B/2.0;
 
   46   fscanf(infile, 
"%d %d %d", &d, &L, &M);
 
   49   fftw_import_wisdom_from_filename(
"fastsum_benchomp_detail_threads.plan");
 
   51   fftw_import_wisdom_from_filename(
"fastsum_benchomp_detail_single.plan");
 
   54   fastsum_init_guru(&my_fastsum_plan, d, L, M, kernel, &c, NEARFIELD_BOXES, n, m, p, eps_I, eps_B);
 
   57   fftw_export_wisdom_to_filename(
"fastsum_benchomp_detail_threads.plan");
 
   59   fftw_export_wisdom_to_filename(
"fastsum_benchomp_detail_single.plan");
 
   67       fscanf(infile, 
"%lg", &v);
 
   68       my_fastsum_plan.
x[d*j+t] = v * r_max;
 
   74     fscanf(infile, 
"%lg %lg", &re, &im);
 
   75     my_fastsum_plan.
alpha[j] = re + _Complex_I * im;
 
   83       fscanf(infile, 
"%lg", &v);
 
   84       my_fastsum_plan.
y[d*j+t] = v * r_max;
 
   95   tt_total = nfft_elapsed_seconds(t1,t0);
 
  111 #ifndef MEASURE_TIME_FFTW 
  116   printf(
"%.6e %.6e %.6e %6e %.6e %.6e %.6e %.6e %.6e %6e %.6e %.6e %6e %.6e %.6e %6e\n", my_fastsum_plan.
MEASURE_TIME_t[0], my_fastsum_plan.
MEASURE_TIME_t[1], my_fastsum_plan.
MEASURE_TIME_t[2], my_fastsum_plan.
MEASURE_TIME_t[3], my_fastsum_plan.
MEASURE_TIME_t[4], my_fastsum_plan.
MEASURE_TIME_t[5], my_fastsum_plan.
MEASURE_TIME_t[6], my_fastsum_plan.
MEASURE_TIME_t[7], tt_total-my_fastsum_plan.
MEASURE_TIME_t[0]-my_fastsum_plan.
MEASURE_TIME_t[1]-my_fastsum_plan.
MEASURE_TIME_t[2]-my_fastsum_plan.
MEASURE_TIME_t[3]-my_fastsum_plan.
MEASURE_TIME_t[4]-my_fastsum_plan.
MEASURE_TIME_t[5]-my_fastsum_plan.
MEASURE_TIME_t[6]-my_fastsum_plan.
MEASURE_TIME_t[7], tt_total, my_fastsum_plan.
mv1.
MEASURE_TIME_t[0], my_fastsum_plan.
mv1.
MEASURE_TIME_t[1], my_fastsum_plan.
mv1.
MEASURE_TIME_t[2], my_fastsum_plan.
mv2.
MEASURE_TIME_t[0], my_fastsum_plan.
mv2.
MEASURE_TIME_t[1], my_fastsum_plan.
mv2.
MEASURE_TIME_t[2]);
 
  123 int main(
int argc, 
char **argv)
 
  129   double _Complex (*kernel)(double , int , 
const double *);  
 
  141   nthreads = atoi(argv[8]);
 
  143   omp_set_num_threads(nthreads);
 
  156   if (strcmp(s,
"gaussian")==0)
 
  158   else if (strcmp(s,
"multiquadric")==0)
 
  159     kernel = multiquadric;
 
  160   else if (strcmp(s,
"inverse_multiquadric")==0)
 
  161     kernel = inverse_multiquadric;
 
  162   else if (strcmp(s,
"logarithm")==0)
 
  164   else if (strcmp(s,
"thinplate_spline")==0)
 
  165     kernel = thinplate_spline;
 
  166   else if (strcmp(s,
"one_over_square")==0)
 
  167     kernel = one_over_square;
 
  168   else if (strcmp(s,
"one_over_modulus")==0)
 
  169     kernel = one_over_modulus;
 
  170   else if (strcmp(s,
"one_over_x")==0)
 
  172   else if (strcmp(s,
"inverse_multiquadric3")==0)
 
  173     kernel = inverse_multiquadric3;
 
  174   else if (strcmp(s,
"sinc_kernel")==0)
 
  175     kernel = sinc_kernel;
 
  176   else if (strcmp(s,
"cosc")==0)
 
  178   else if (strcmp(s,
"cot")==0)
 
  183     kernel = multiquadric;
 
  186   bench_openmp(stdin, n, m, p, kernel, c, eps_I, eps_B);