diff --git a/bin/gmsh_bench.py b/bin/gmsh_bench.py
new file mode 100755
index 0000000..7a47bac
--- /dev/null
+++ b/bin/gmsh_bench.py
@@ -0,0 +1,76 @@
+#!/usr/bin/env python
+
+import sys
+
+import numpy as np
+
+from optparse import OptionParser
+
+import interp.bootstrap
+from interp.grid.gmsh import gmsh_grid3D, gmsh_grid
+from interp.tools import *
+
+
+def get_right_exact_func(options):
+ f = None
+ if options.dimension == 3:
+ if options.baker:
+ f = baker_exact_3D
+ else:
+ f =friendly_exact_3D
+ elif options.dimension == 2:
+ if options.baker:
+ f = baker_exact_2D
+ else:
+ f = friendly_exact_2D
+ return f
+
+
+
+if __name__ == '__main__':
+ parser = OptionParser(usage = "%prog [options] ")
+
+ parser.add_option("-v", "--verbose",
+ action="store_true", dest="verbose", default=False,
+ help="verbose flag")
+
+ parser.add_option("-b", "--baker",
+ action="store_true", dest="baker", default=False,
+ help="use more impressive baker funcs")
+
+ parser.add_option("-d", "--dimension",
+ type="int", dest="dimension", default=3,
+ help="use 3D or 2D gmsh lib (default: %default)")
+ parser.add_option("-o", "--order",
+ type="int", dest="order", default=3,
+ help="order of interpolation (default: %default)")
+ parser.add_option("-e", "--extra-points",
+ type="int", dest="extra", default=3,
+ help="number of extra points (default: %default)")
+
+
+ (options, args) = parser.parse_args()
+ if len(args) != 2:
+ # print >> sys.stderr, "usage: %s " % sys.argv[0]
+ parser.print_usage()
+ sys.exit(1)
+
+ input_file, count = args
+
+ if options.dimension == 3:
+ g = gmsh_grid3D(input_file)
+ else:
+ g = gmsh_grid(input_file)
+
+ g.q = np.array([get_right_exact_func(options)(x) for x in g.verts])
+
+ results = {True:0, False:0}
+ for i in xrange(int(count)):
+ X = np.random.random((1,options.dimension))[0]
+
+ a = g.run_baker(X, order = options.order, extra_points = options.extra)
+ e = get_right_exact_func(options)(X)
+
+ results[improved_answer(a, e)] += 1
+
+ print results
diff --git a/bin/parse_gmsh.py b/bin/parse_gmsh.py
deleted file mode 100755
index 1805d0d..0000000
--- a/bin/parse_gmsh.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-
-import numpy as np
-
-from interp.grid.gmsh import gmsh_grid
-from interp.tools import exact_func, improved_answer
-from interp import bootstrap
-
-if __name__ == '__main__':
- if len(sys.argv) != 2:
- print >> sys.stderr, "usage: %s " % sys.argv[0]
- sys.exit(1)
-
- g = gmsh_grid(sys.argv[1])
- g.q = np.array([exact_func(x) for x in g.verts])
- # g.dump_to_blender_files()
-
- X = np.array([0.2, 0.5]) #TODO:, 0.0])
- R = g.get_containing_simplex(X)
- print R
- R, S = g.get_simplex_and_nearest_points(X, 10)
- print "r", R
- print "s", S
-
- a = g.run_baker(X)
- print a
- e = exact_func(X)
- print e
- print improved_answer(a, e)
-
- a = g.run_baker(X, extra_points = 5)
- print a
- e = exact_func(X)
- print e
- print improved_answer(a, e)
-
- a = g.run_baker(X, extra_points = 7)
- print a
- e = exact_func(X)
- print e
- print improved_answer(a, e)
-
- a = g.run_baker(X, order=3)
- print a
- e = exact_func(X)
- print e
- print improved_answer(a, e)
-
- a = g.run_baker(X, order=3, extra_points = 5)
- print a
- e = exact_func(X)
- print e
- print improved_answer(a, e)
-
- a = g.run_baker(X, order=3, extra_points = 7)
- print a
- e = exact_func(X)
- print e
- print improved_answer(a, e)
-
- a = g.run_baker(X, order=3, extra_points = 10)
- print a
- e = exact_func(X)
- print e
- print improved_answer(a, e)
-
- results = {True:0, False:0}
- for i in xrange(1000):
- X = np.random.random((1,2))[0]
-
- try:
- a = g.run_baker(X, order=2, extra_points = 3)
- e = exact_func(X)
- ia = improved_answer(a, e)
- # if not ia:
- # print a['final'] - e, a, e
- results[ia] += 1
- except Exception,e:
- print >>sys.stderr, e
- print >>sys.stderr, X
-
- print results
diff --git a/bin/parse_gmsh3D.py b/bin/parse_gmsh3D.py
deleted file mode 100755
index e14da90..0000000
--- a/bin/parse_gmsh3D.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import cProfile
-
-import numpy as np
-
-import interp.bootstrap
-from interp.grid.gmsh import gmsh_grid3D
-from interp.tools import improved_answer, exact
-
-def test_success(input_file, count):
- g = gmsh_grid3D(input_file)
- g.q = np.array([exact(x) for x in g.verts])
-
- results = {True:0, False:0}
- # import pdb; pdb.set_trace()
- for i in xrange(count):
- X = np.random.random((1,3))[0]
-
- a = g.run_baker(X, order = 3, extra_points = 32)
- e = exact(X)
-
- results[improved_answer(a, e)] += 1
-
- return results
-
-if __name__ == '__main__':
- if len(sys.argv) != 3:
- print >> sys.stderr, "usage: %s " % sys.argv[0]
- sys.exit(1)
-
- input_file, count = sys.argv[1:]
-
- print test_success(input_file, int(count))