[SciPy-dev] PRIMME: PReconditioned Iterative MultiMethod Eigensolver

Nils Wagner nwagner at iam.uni-stuttgart.de
Tue Oct 24 05:46:51 CDT 2006

Hi all,

A new eigensolver is available (*NA Digest, V. 06, # 43*).
PRIMME is released under the Lesser GPL license.
Is this licence compatible wrt scipy ?


From: Andreas Stathopoulos <andreas at cs.wm.edu>
Date: Thu, 19 Oct 2006 01:50:09 -0400
Subject: PRIMME Eigensolver

PRIMME: PReconditioned Iterative MultiMethod Eigensolver


We are pleased to announce the release of PRIMME Version 1.1 featuring
enhanced functionality and a year-long testing by several groups.

PRIMME is a C library for the solution of large, sparse, real
symmetric and complex Hermitian eigenvalue problems. It implements a
main iteration similar to Davidson/Jacobi-Davidson, but with the
appropriate choice of parameters it can transform to most known, and
even yet undiscovered, preconditioned eigensolvers. These include the
nearly optimal GD+k and JDQMR methods.

PRIMME implements one of the most comprehensive sets of eigenvalue
techniques, including block methods, locking, locally optimal
restarting, dynamic stopping criteria for inner iteration, and many
correction equation variants. Coupled with the above nearly optimal
methods, PRIMME demonstrates exceptional robustness and efficiency.
Even without preconditioning, PRIMME has proved faster than Lanczos
methods for a small number of eigenpairs of difficult problems.

PRIMME's multi-layer interface allows non-expert, end-users to access
the full power of these methods. Unlike traditional Jacobi-Davidson
methods, where a host of parameters must be tuned, PRIMME has a
sophisticated mechanism for determining appropriate defaults.
Moreover, under a new DYNAMIC mode, the best method can be selected
dynamically based on runtime timings and measurements. Yet, experts
can still control and experiment with numerous tuning knobs.

PRIMME works with any external matrix-(multi)vector and preconditioner
(multi-)vector functions, including indefinite preconditioners; it can
find both exterior and interior eigenpairs; it is both sequential and
parallel (SPMD parallelization); and can be called from any C, C++, or
Fortran program.

For questions, bugs, reports please email:

         andreas at cs.wm.edu

More information about the Scipy-dev mailing list