[SciPy-dev] scipy SVD with alternate lapack driver

M Trumpis mtrumpis@berkeley....
Mon Jun 1 17:39:48 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.

Kind regards,
Mike


More information about the Scipy-dev mailing list