diff src/fftw-3.3.3/libbench2/mflops.c @ 10:37bf6b4a2645

Add FFTW3
author Chris Cannam
date Wed, 20 Mar 2013 15:35:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/fftw-3.3.3/libbench2/mflops.c	Wed Mar 20 15:35:50 2013 +0000
@@ -0,0 +1,32 @@
+/* not worth copyrighting */
+
+#include "bench.h"
+#include <math.h>
+
+double mflops(const bench_problem *p, double t)
+{
+     int size = tensor_sz(p->sz);
+     int vsize = tensor_sz(p->vecsz);
+
+     if (size <= 1) /* a copy: just return reals copied / time */
+	  switch (p->kind) {
+	      case PROBLEM_COMPLEX:
+		   return (2.0 * size * vsize / (t * 1.0e6));
+	      case PROBLEM_REAL:
+	      case PROBLEM_R2R:
+		   return (1.0 * size * vsize / (t * 1.0e6));
+	  }
+
+     switch (p->kind) {
+	 case PROBLEM_COMPLEX:
+	      return (5.0 * size * vsize * log((double)size) / 
+		      (log(2.0) * t * 1.0e6));
+	 case PROBLEM_REAL:
+	 case PROBLEM_R2R:
+	      return (2.5 * vsize * size * log((double) size) / 
+		      (log(2.0) * t * 1.0e6));
+     }
+     BENCH_ASSERT(0 /* can't happen */);
+     return 0.0;
+}
+