[Numpy-discussion] performing operations in-place in numpy

Charles R Harris charlesr.harris at gmail.com
Wed Jul 8 18:13:45 EDT 2009


On Wed, Jul 8, 2009 at 4:10 PM, Citi, Luca <lciti at essex.ac.uk> wrote:

> @Charles R Harris
>
> >> For example 'sqrt(a**2 + b**2)' can be performed...
> > I think this particular function is already available as a ufunc.
>
> I am not sure it is implemented as ufunc.
> But in any case it was just an example.
>
> Another example is
> sin(2*pi*w+phi)
> that is currently implemented allocating a temporary vector for
> (2*pi*w), another temporary vector for (2*pi*w+phi) and another
> for sin(2*pi*w+phi).
> With my patch only the first temporary vector is allocated,
> then it is reused twice and finally returned.
> One allocation instead of three.
>
> All this happens under the hood and is completely transparent to the user.
>

On thing to keep in mind is that the inputs might be different views of the
same array so the elements might accessed in an unexpected order.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090708/9f265524/attachment.html>


More information about the NumPy-Discussion mailing list