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