From: Alexander S. <a.s...@gm...> - 2004-10-01 18:33:03
|
Fernando Perez <Fer...@co...> 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 |