On 2/4/07, Sebastian Haase <[EMAIL PROTECTED]> wrote:
> On 2/3/07, Robert Kern <[EMAIL PROTECTED]> wrote:
> > Stephen Simmons wrote:
> >
> > > The question though is whether all of the inner loop's overhead is
> > > necessary.
> > > My counterexample using numpy.dot() suggests there's considerable scope
> > > for improvement, at least for certain common cases.
> >
> > Well, yes. You most likely have an ATLAS-accelerated dot(). The ATLAS put a 
> > lot
> > of work into making matrix products really fast. However, they did so at a 
> > cost:
> > different architectures use different code. That's not really something we 
> > can
> > do in the core of numpy without making numpy as difficult to build as ATLAS 
> > is.
> >
> Maybe this argument could be inverted:
> maybe numpy could check if ATLAS is installed and automatically switch to the
> numpy.dot(numpy.ones(a.shape[0], a.dtype), a)
> variant that Stephen suggested.
>
> Of course -- as I see it -- the numpy.ones(...)  part requires lots of
> extra memory. Maybe there are other downsides ... !?

I use multiplication instead of sum in heavily used loops. I'm often
able to predefine the ones outside the loop.

In Octave I made my own sum functions---separate ones for axis 0 and
1---that use multiplication. Maybe it is better to make a new function
rather than complicate the existing one.
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to