
Fernando Perez Fernando.Perez@colorado.edu writes:
Hi all,
I found something today a bit unpleasant: if you install numeric without any BLAS support, 'matrixmultiply is dot==True', so they are fully interchangeable. However, to my surprise, if you build numeric with the blas optimizations, they are NOT identical.
Oops, my bad (I submitted the patch and while pretty much all the real coding was done by Richard Everson this is my oversight).
The reason is a bug in Numeric.py. After defining dot, the code reads:
#This is obsolete, don't use in new code matrixmultiply = dot
On the other hand, it gently nudges people to no longer use the obsoleted matrixmultiply ;)
In [4]: timing 1,dot,a,b ------> timing(1,dot,a,b) Out[4]: 0.55591500000000005
In [5]: timing 1,matrixmultiply,a,b ------> timing(1,matrixmultiply,a,b) Out[5]: 68.142640999999998
In [6]: _/__ Out[6]: 122.57744619231356
Pretty significant difference...
Yup, someone should incorporate optional atlas dot support into numarray if it hasn't happened already (won't be me, IIRC it took some convincing to get this into Numeric and I won't be using numarray for anything real in the near future).
cheers,
alex