[Scipy-svn] r4487 - trunk/scipy/sandbox/mkufunc
scipy-svn at scipy.org
scipy-svn at scipy.org
Fri Jun 27 18:29:23 EDT 2008
Author: ilan
Date: 2008-06-27 17:29:20 -0500 (Fri, 27 Jun 2008)
New Revision: 4487
Modified:
trunk/scipy/sandbox/mkufunc/test_speed.py
Log:
Added blitz
Modified: trunk/scipy/sandbox/mkufunc/test_speed.py
===================================================================
--- trunk/scipy/sandbox/mkufunc/test_speed.py 2008-06-27 19:37:49 UTC (rev 4486)
+++ trunk/scipy/sandbox/mkufunc/test_speed.py 2008-06-27 22:29:20 UTC (rev 4487)
@@ -2,7 +2,8 @@
from math import sin, cos
import time
-from numpy import arange, vectorize
+from numpy import arange, vectorize, allclose
+from scipy import weave
from mkufunc import mkufunc
@@ -11,27 +12,38 @@
return 4.2 * x * x + 3.7 * x + 1.5
+vfunc = vectorize(f)
+
ufunc = mkufunc([(float, float)])(f)
-vfunc = vectorize(f)
-
x = arange(0, 1000, 0.001) #print "x =", x, x.dtype
start_time = time.time()
-y = 4.2 * x * x + 3.7 * x + 1.5
+b_y = x.copy()
+weave.blitz("b_y[:] = 4.2 * x[:] * x[:] + 3.7 * x[:] + 1.5")
+b_time = time.time() - start_time
+print 'blitz: %.6f sec' % b_time
+
+start_time = time.time()
+n_y = f(x)
n_time = time.time() - start_time
print 'numpy: %.6f sec' % n_time
start_time = time.time()
-y = vfunc(x)
+v_y = vfunc(x)
v_time = time.time() - start_time
print 'vectorize: %.6f sec' % v_time
start_time = time.time()
-y = ufunc(x)
+u_y = ufunc(x)
u_time = time.time() - start_time
print 'mkufunc: %.6f sec' % u_time
-print "speedup over numpy:", n_time/u_time
+print "speedup over blitz:", b_time/u_time
+print "speedup over numpy:", n_time/u_time
print "speedup over vectorize:", v_time/u_time
+
+assert allclose(b_y, n_y)
+assert allclose(v_y, n_y)
+assert allclose(u_y, n_y)
More information about the Scipy-svn
mailing list