[SciPy-Dev] ARPACK fixes before 0.9

Aric Hagberg aric.hagberg at gmail.com
Sun Nov 28 22:45:25 EST 2010


On Sat, Nov 27, 2010 at 9:33 AM, Pauli Virtanen <pav at iki.fi> wrote:
> Hi,
>
> The Arpack interface in Scipy needs some fixes, which would be useful to
> get in for Scipy 0.9. I have them in a branch here:
>
>        https://github.com/pv/scipy-work/tree/bug/1313-arpack
>
> Comments would be appreciated (esp. from David who wrote the original
> interface). I'm going to merge them probably the next W/E unless
> objections arise.
>
> Bugfixes:
>
> - Raise ArpackNoConvergence when ARPACK iteration does not converge.
>  Previously, there was no way to know if convergence was obtained.
>
> - Fix a bug in return value extraction from dneupd, which resulted
>  to invalid eigenvectors/eigenvalues being returned on non-convergence.
>
> - Allow complex matrices in the sparse SVD. It's a naive approach,
>  but probably still better than nothing.
>
> Other changes:
>
> - Rename routines eigen* -> eigs* to avoid shadowing the "eigen" module.
>  "eigs" is also the name for the equivalent routines in Octave/Matlab.
>
> - Remove the ``speigs`` ARPACK interface. It does not seem to make sense
>  two have two different interfaces to the same library.
>
> - Un-deprecate .dot() method of sparse matrixes -- ndarrays also have
>  it, so it makes sense to retain it.

I am actually to blame for the original interface.  David made my hack
work correctly and deserves credit for the good parts.

I took a look at your branch and it seems fine to me.

The name changes makes sense though maybe svd should be svds to match
the eig->eigs pattern between the numpy and sparse implementations?
(Similarly should eigs_symmetric be eigsh  to match
numpy.linalg.eigh?. It would need to be extended to handle the complex
case).

I made some suggestions for documentation improvements at
https://github.com/hagberg/scipy-work/tree/bug/1313-arpack

Aric



More information about the SciPy-Dev mailing list