[SciPy-dev] scipy SVD with alternate lapack driver

Robert Kern robert.kern at gmail.com
Mon Jun 1 18:45:01 EDT 2009


On Mon, Jun 1, 2009 at 17:39, M Trumpis <mtrumpis at berkeley.edu> wrote:
> 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?

Create a new ticket, and attach the .diff to it. At the bottom of the
"New Ticket" form is a check-box: "I have files to attach to this
ticket". Make sure that is checked, and you will be prompted for the
file.

> 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.

For adding new LAPACK wrappers, that technique tends to work fairly well.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco



More information about the SciPy-Dev mailing list