summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2010-10-27 14:51:01 -0400
committerTavian Barnes <tavianator@gmail.com>2010-10-27 14:51:01 -0400
commit5a3b6249213de42554ca7dff2f51f7e181e0f451 (patch)
tree46a4d1335269bbb92ef03e2ab34248ace331fb5d
parentd9b039984385ca00ef21fb4159e291d70b8e9069 (diff)
downloaddimension-5a3b6249213de42554ca7dff2f51f7e181e0f451.tar.xz
Add polynomial benchmark.
-rw-r--r--bench/libdimension/Makefile.am24
-rw-r--r--bench/libdimension/geometry.c1
-rw-r--r--bench/libdimension/polynomial.c46
-rw-r--r--bench/libdimension/prtree.c18
4 files changed, 70 insertions, 19 deletions
diff --git a/bench/libdimension/Makefile.am b/bench/libdimension/Makefile.am
index bf14727..2388bd5 100644
--- a/bench/libdimension/Makefile.am
+++ b/bench/libdimension/Makefile.am
@@ -19,20 +19,26 @@
INCLUDES = -I$(top_srcdir)/libdimension
-EXTRA_PROGRAMS = bench-array bench-list bench-geometry bench-prtree
+EXTRA_PROGRAMS = bench-array \
+ bench-list \
+ bench-geometry \
+ bench-polynomial \
+ bench-prtree
AM_CFLAGS = $(libsandglass_CFLAGS) -fno-inline
AM_LDFLAGS = $(libsandglass_LIBS) $(top_builddir)/libdimension/libdimension.la
-bench_array_SOURCES = array.c
-bench_list_SOURCES = list.c
+bench_array_SOURCES = array.c
+bench_list_SOURCES = list.c
bench_geometry_SOURCES = geometry.c
-bench_prtree_SOURCES = prtree.c
+bench_polynomial_SOURCES = polynomial.c
+bench_prtree_SOURCES = prtree.c
-bench: bench-array$(EXEEXT) bench-list$(EXEEXT) bench-geometry$(EXEEXT) bench-prtree$(EXEEXT)
- ./bench-array$(EXEEXT)
- ./bench-list$(EXEEXT)
- ./bench-geometry$(EXEEXT)
- ./bench-prtree$(EXEEXT)
+bench: $(EXTRA_PROGRAMS)
+ ./bench-array
+ ./bench-list
+ ./bench-geometry
+ ./bench-polynomial
+ ./bench-prtree
.PHONY: bench
diff --git a/bench/libdimension/geometry.c b/bench/libdimension/geometry.c
index 7e34d6d..bc351b5 100644
--- a/bench/libdimension/geometry.c
+++ b/bench/libdimension/geometry.c
@@ -30,7 +30,6 @@ main(void)
double result;
sandglass_t sandglass;
-
if (sandglass_init_monotonic(&sandglass, SANDGLASS_CPUTIME) != 0) {
perror("sandglass_create()");
return EXIT_FAILURE;
diff --git a/bench/libdimension/polynomial.c b/bench/libdimension/polynomial.c
new file mode 100644
index 0000000..5b8921c
--- /dev/null
+++ b/bench/libdimension/polynomial.c
@@ -0,0 +1,46 @@
+/*************************************************************************
+ * Copyright (C) 2009-2010 Tavian Barnes <tavianator@gmail.com> *
+ * *
+ * This file is part of The Dimension Benchmark Suite. *
+ * *
+ * The Dimension Benchmark Suite is free software; you can redistribute *
+ * it and/or modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 of the *
+ * License, or (at your option) any later version. *
+ * *
+ * The Dimension Benchmark Suite is distributed in the hope that it will *
+ * be useful, but WITHOUT ANY WARRANTY; without even the implied *
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See *
+ * the GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+#include "dimension.h"
+#include <sandglass.h>
+#include <stdlib.h>
+
+int
+main(void)
+{
+ double poly[6], x[5];
+ // poly[] = (x + 1)*(x - 1.2345)*(x - 2.3456)*(x - 5)*(x - 100)
+ poly[5] = 1.0;
+ poly[4] = -107.5801;
+ poly[3] = 770.2260432;
+ poly[2] = -1215.2863928;
+ poly[1] = -646.270936;
+ poly[0] = 1447.8216;
+
+ sandglass_t sandglass;
+ if (sandglass_init_monotonic(&sandglass, SANDGLASS_CPUTIME) != 0) {
+ perror("sandglass_create()");
+ return EXIT_FAILURE;
+ }
+
+ sandglass_bench_fine(&sandglass, dmnsn_solve_polynomial(poly, 5, x));
+ printf("dmnsn_solve_polynomial(): %ld\n", sandglass.grains);
+
+ return EXIT_SUCCESS;
+}
diff --git a/bench/libdimension/prtree.c b/bench/libdimension/prtree.c
index c67d3e7..c6888ae 100644
--- a/bench/libdimension/prtree.c
+++ b/bench/libdimension/prtree.c
@@ -1,17 +1,17 @@
/*************************************************************************
- * Copyright (C) 2010 Tavian Barnes <tavianator@gmail.com> *
+ * Copyright (C) 2009-2010 Tavian Barnes <tavianator@gmail.com> *
* *
- * This file is part of The Dimension Test Suite. *
+ * This file is part of The Dimension Benchmark Suite. *
* *
- * The Dimension Test Suite is free software; you can redistribute it *
- * and/or modify it under the terms of the GNU General Public License as *
- * published by the Free Software Foundation; either version 3 of the *
+ * The Dimension Benchmark Suite is free software; you can redistribute *
+ * it and/or modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 3 of the *
* License, or (at your option) any later version. *
* *
- * The Dimension Test Suite is distributed in the hope that it will be *
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty *
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * General Public License for more details. *
+ * The Dimension Benchmark Suite is distributed in the hope that it will *
+ * be useful, but WITHOUT ANY WARRANTY; without even the implied *
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See *
+ * the GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *