annotate src/fftw-3.3.8/libbench2/mflops.c @ 82:d0c2a83c1364

Add FFTW 3.3.8 source, and a Linux build
author Chris Cannam
date Tue, 19 Nov 2019 14:52:55 +0000
parents
children
rev   line source
Chris@82 1 /* not worth copyrighting */
Chris@82 2
Chris@82 3 #include "libbench2/bench.h"
Chris@82 4 #include <math.h>
Chris@82 5
Chris@82 6 double mflops(const bench_problem *p, double t)
Chris@82 7 {
Chris@82 8 size_t size = tensor_sz(p->sz);
Chris@82 9 size_t vsize = tensor_sz(p->vecsz);
Chris@82 10
Chris@82 11 if (size <= 1) /* a copy: just return reals copied / time */
Chris@82 12 switch (p->kind) {
Chris@82 13 case PROBLEM_COMPLEX:
Chris@82 14 return (2.0 * size * vsize / (t * 1.0e6));
Chris@82 15 case PROBLEM_REAL:
Chris@82 16 case PROBLEM_R2R:
Chris@82 17 return (1.0 * size * vsize / (t * 1.0e6));
Chris@82 18 }
Chris@82 19
Chris@82 20 switch (p->kind) {
Chris@82 21 case PROBLEM_COMPLEX:
Chris@82 22 return (5.0 * size * vsize * log((double)size) /
Chris@82 23 (log(2.0) * t * 1.0e6));
Chris@82 24 case PROBLEM_REAL:
Chris@82 25 case PROBLEM_R2R:
Chris@82 26 return (2.5 * vsize * size * log((double) size) /
Chris@82 27 (log(2.0) * t * 1.0e6));
Chris@82 28 }
Chris@82 29 BENCH_ASSERT(0 /* can't happen */);
Chris@82 30 return 0.0;
Chris@82 31 }
Chris@82 32