ARPACK++: A C++ Implementation of the ARPACK Eigenvalue Package
Presented at the
1997 CRPC Annual Meeting Poster Session
ARPACK++ is an object-oriented version of the ARPACK package. ARPACK is a well known collection of FORTRAN subroutines designed to compute a few eigenvalues and eigenvectors of large scale sparse matrices and pencils. It implements a variant of the Arnoldi process for finding eigenvalues called "Implicit restarted Arnoldi method" (IRAM) and is capable of solving a great variety of problems from single precision positive definite symmetric problems to double precision complex non-Hermitian generalized problems.
ARPACK++ is a collection of templates that offers C++ programmers an interface to ARPACK. It preserves the full capability, performance, accuracy and memory requirements of the FORTRAN package, but takes advantage of the C++ object-oriented programming environment.
Templates are used by ARPACK++ to reduce the work needed to establish and solve eigenvalue problems and to simplify the structure utilized to handle such problems. One class will handle single and double precision problems while avoiding the complication of the "reverse communication interface" that characterizes the FORTRAN version of ARPACK.
Several class templates were included in ARPACK++ not only to allow the user to efficiently handle even the most intricate problems, but also to minimize the work needed to build an interface with other libraries, such as the Template Numerical Toolkit (TNT) and the Hilbert Class Library (HCL).