Hello list, Here's another idea resurrection from numpy github comments that I've been advised could be posted here for re-discussion.
The proposal would be to make np.linalg.svd more like scipy.linalg.svd with respect to input checking. The argument against the change is raw speed; if you know that you will never feed non-finite input to svd, then np.linalg.svd is a bit faster than scipy.linalg.svd. An argument for the change could be to avoid issues reported on github like crashes, hangs, spurious non-convergence exceptions, etc. from the undefined behavior of svd of non-finite input. """ [...] the following numpy code hangs until I `kill -9` it. ``` $ python runtests.py --shell $ python Python 2.7.5+ [GCC 4.8.1] on linux2 >>> import numpy as np >>> np.__version__ '1.9.0.dev-e3f0f53' >>> A = np.array([[1e3, 0], [0, 1]]) >>> B = np.array([[1e300, 0], [0, 1]]) >>> C = np.array([[1e3000, 0], [0, 1]]) >>> np.linalg.svd(A) (array([[ 1., 0.], [ 0., 1.]]), array([ 1000., 1.]), array([[ 1., 0.], [ 0., 1.]])) >>> np.linalg.svd(B) (array([[ 1., 0.], [ 0., 1.]]), array([ 1.00000000e+300, 1.00000000e+000]), array([[ 1., 0.], [ 0., 1.]])) >>> np.linalg.svd(C) [hangs forever] ``` """ Alex _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion