[Numpy-discussion] Inplace dot and blas access

Dan Goodman dg.numpy at thesamovar.net
Mon Aug 25 13:51:31 EDT 2008


Hi all,

I'm sorry for what is probably a very simple question but despite looking I
didn't manage to find anything.

I have some code (solving linear differential equation) which is doing the
following operation lots of times:

S[:] = dot(A,S)+C

here S is a (M,N) matrix, A is (M,M) and C is (M,1). M is usually smallish and N
is largish.

My question is, can this be turned into an inplace operation to save memory and
time?

As far as I can see, although some array functions allow you to specify the
destination of the output, dot always generates a new array. So I would like to
have something like this:

dot(A,S, out=S)
S+=C

Ideally, I could do this in one line. I believe the BLAS DGEMM routine does what
I want (if I converted C to a matrix rather than a vector). Is there any way to
access this using Python and NumPy (e.g. something like numpy.blas.DGEMM) or
would I need to use C code to do this?

Many thanks in advance,
Dan Goodman




More information about the NumPy-Discussion mailing list