<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Feb 15, 2014 at 5:08 PM,  <span dir="ltr"><<a href="mailto:josef.pktd@gmail.com" target="_blank" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=josef.pktd@gmail.com&cc=&bcc=&su=&body=','_blank');return false;">josef.pktd@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Sat, Feb 15, 2014 at 4:56 PM, Sebastian Berg<br>
<<a href="mailto:sebastian@sipsolutions.net" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=sebastian@sipsolutions.net&cc=&bcc=&su=&body=','_blank');return false;">sebastian@sipsolutions.net</a>> wrote:<br>


> On Sa, 2014-02-15 at 16:37 -0500, alex wrote:<br>
>> Hello list,<br>
>><br>
>> Here's another idea resurrection from numpy github comments that I've<br>
>> been advised could be posted here for re-discussion.<br>
>><br>
>> The proposal would be to make np.linalg.svd more like scipy.linalg.svd<br>
>> with respect to input checking.  The argument against the change is<br>
>> raw speed; if you know that you will never feed non-finite input to<br>
>> svd, then np.linalg.svd is a bit faster than scipy.linalg.svd.  An<br>
>> argument for the change could be to avoid issues reported on github<br>
>> like crashes, hangs, spurious non-convergence exceptions, etc. from<br>
>> the undefined behavior of svd of non-finite input.<br>
>><br>
><br>
> +1, unless this is a huge speed penalty, correctness (and decent error<br>
> messages) should come first in my opinion, this is python after all. If<br>
> this is a noticable speed difference, a kwarg may be an option (but<br>
> would think about that some more).<br>
<br>
</div>maybe -1<br>
<br>
statsmodels is using np.linalg.pinv which uses svd<br>
I never ran heard of any crash (*), and the only time I compared with<br>
scipy I didn't like the slowdown.<br>
I didn't do any serious timings just a few examples.<br>
<br>
(*) not converged, ...<br>
<br>
pinv(x.T).dot(x) -> pinv(x.T, please_don_t_check=True).dot(y)<br>
<br>
numbers ?<br></blockquote><div><br></div><div>FWIW, I see this spurious SVD did not converge warning very frequently with ARMA when there is a nan that has creeped in. I usually know where to find the problem, but I think it'd be nice if this error message was a little better.</div>

<div><br></div><div>Skipper </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
grep: we also use scipy.linalg.pinv in some cases<br>
<span class="HOEnZb"><font color="#888888"><br>
Josef<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
><br>
> - Sebastian<br>
><br>
>> """<br>
>> [...] the following numpy code hangs until I `kill -9` it.<br>
>><br>
>> ```<br>
>> $ python runtests.py --shell<br>
>> $ python<br>
>> Python 2.7.5+<br>
>> [GCC 4.8.1] on linux2<br>
>> >>> import numpy as np<br>
>> >>> np.__version__<br>
>> '1.9.0.dev-e3f0f53'<br>
>> >>> A = np.array([[1e3, 0], [0, 1]])<br>
>> >>> B = np.array([[1e300, 0], [0, 1]])<br>
>> >>> C = np.array([[1e3000, 0], [0, 1]])<br>
>> >>> np.linalg.svd(A)<br>
>> (array([[ 1.,  0.],<br>
>>        [ 0.,  1.]]), array([ 1000.,     1.]), array([[ 1.,  0.],<br>
>>        [ 0.,  1.]]))<br>
>> >>> np.linalg.svd(B)<br>
>> (array([[ 1.,  0.],<br>
>>        [ 0.,  1.]]), array([  1.00000000e+300,   1.00000000e+000]),<br>
>> array([[ 1.,  0.],<br>
>>        [ 0.,  1.]]))<br>
>> >>> np.linalg.svd(C)<br>
>> [hangs forever]<br>
>> ```<br>
>> """<br>
>><br>
>> Alex<br>
>> _______________________________________________<br>
>> NumPy-Discussion mailing list<br>
>> <a href="mailto:NumPy-Discussion@scipy.org" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=NumPy-Discussion@scipy.org&cc=&bcc=&su=&body=','_blank');return false;">NumPy-Discussion@scipy.org</a><br>


>> <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
>><br>
><br>
><br>
> _______________________________________________<br>
> NumPy-Discussion mailing list<br>
> <a href="mailto:NumPy-Discussion@scipy.org" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=NumPy-Discussion@scipy.org&cc=&bcc=&su=&body=','_blank');return false;">NumPy-Discussion@scipy.org</a><br>


> <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=NumPy-Discussion@scipy.org&cc=&bcc=&su=&body=','_blank');return false;">NumPy-Discussion@scipy.org</a><br>


<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
</div></div></blockquote></div><br></div></div>