annotate fft/fftw/fftw-3.3.4/libbench2/mflops.c @ 40:223f770b5341 kissfft-double tip

Try a double-precision kissfft
author Chris Cannam
date Wed, 07 Sep 2016 10:40:32 +0100
parents 26056e866c29
children
rev   line source
Chris@19 1 /* not worth copyrighting */
Chris@19 2
Chris@19 3 #include "bench.h"
Chris@19 4 #include <math.h>
Chris@19 5
Chris@19 6 double mflops(const bench_problem *p, double t)
Chris@19 7 {
Chris@19 8 int size = tensor_sz(p->sz);
Chris@19 9 int vsize = tensor_sz(p->vecsz);
Chris@19 10
Chris@19 11 if (size <= 1) /* a copy: just return reals copied / time */
Chris@19 12 switch (p->kind) {
Chris@19 13 case PROBLEM_COMPLEX:
Chris@19 14 return (2.0 * size * vsize / (t * 1.0e6));
Chris@19 15 case PROBLEM_REAL:
Chris@19 16 case PROBLEM_R2R:
Chris@19 17 return (1.0 * size * vsize / (t * 1.0e6));
Chris@19 18 }
Chris@19 19
Chris@19 20 switch (p->kind) {
Chris@19 21 case PROBLEM_COMPLEX:
Chris@19 22 return (5.0 * size * vsize * log((double)size) /
Chris@19 23 (log(2.0) * t * 1.0e6));
Chris@19 24 case PROBLEM_REAL:
Chris@19 25 case PROBLEM_R2R:
Chris@19 26 return (2.5 * vsize * size * log((double) size) /
Chris@19 27 (log(2.0) * t * 1.0e6));
Chris@19 28 }
Chris@19 29 BENCH_ASSERT(0 /* can't happen */);
Chris@19 30 return 0.0;
Chris@19 31 }
Chris@19 32