[SciPy-User] scipy.linalg.solve()'s overwrite option does not work

braingateway braingateway at gmail.com
Sat Nov 6 13:13:38 EDT 2010


David Warde-Farley:
> On 2010-11-05, at 9:21 PM, braingateway wrote:
>
>   
>> Hi everyone,
>> I believe the overwrite option is used for reduce memory usage. But I
>> did following test, and find out it does not work at all. Maybe I
>> misunderstood the purpose of overwrite option. If anybody could explain
>> this, I shall highly appreciate your help.
>>     
>
> First of all, this is a SciPy issue, so please don't crosspost to NumPy-discussion.
>
>   
>>>>> a=npy.random.randn(20,20)
>>>>> x=npy.random.randn(20,4)
>>>>> a=npy.matrix(a)
>>>>> x=npy.matrix(x)
>>>>> b=a*x
>>>>> import scipy.linalg as sla
>>>>> a0=npy.matrix(a)
>>>>> a is a0
>>>>>           
>> False
>>     
>>>>> b0=npy.matrix(b)
>>>>> b is b0
>>>>>           
>> False
>>     
>
> You shouldn't use 'is' to compare arrays unless you mean to compare them by object identity. Use all(b == b0) to compare by value.
>
> David
>
>   
Thanks for reply, but I have to say u did not understand my post at all.
I did this 'is' comparison on purpose, because I wanna know if the 
overwrite flag is work or not.
See following example:
 >>> a=numpy.matrix([0,0,1])
 >>> a
matrix([[0, 0, 1]])
 >>> a0=a
 >>> a0 is a
True
This means a0 and a is actually point to a same object. Then a0 act 
similar to the C pointer of a.
I compared a0/b0 and a/b by 'is' first to show I did create a new object 
from the original matrix, so the following (a0==a).all() comparison can 
actually prove the values inside the a and b were not overwritten.

Sincerely,
LittleBigBrain
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>   




More information about the SciPy-User mailing list