[SciPy-dev] scipy SVD with alternate lapack driver
Mon Jun 1 17:39:59 CDT 2009
Hi all.. I posted on the numpy list a few months back about running
into some unstable SVD behavior, namely 1) a non-converging SVD and 2)
negative singular values. My colleagues and I got curious when MATLAB
and Octave did not fail or give bogus results for the two operators.
Based on the Octave code and some testing with the lapack drivers, it
would appear that using the *GESVD family of drivers is more robust in
the face of these corner cases than the *GESDD drivers.
So after leaving off for months, I finally went back to fixing this
up. Using a lot of monkey-see-monkey-do, I added the f2py function
signatures for the *GESVD functions, hopefully sane code in
calc_lwork.f, and wrote up a bit of python in linalg/decomp.py, with
some appropriate testing. I haven't submitted a patch to scipy yet..
Can I just post the "svn diff" with a description of the issue at hand
on the Trac site? Although it does look like it's working, I haven't
tested it extensively yet. And I was *very* ignorantly hacking at the
Fortran / f2py bits.
Hope this is helpful.
More information about the Scipy-dev