[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