Sites and Affiliations
Research and Applications
Major Accomplishments
Frequently Asked Questions
Knowledge and Technology Transfer
Education and Outreach
Media Resources
Technical Reports and Publications
Parallel Computing Research - Our Quarterly Newsletter
Contact Information
CRPC Home Page

UniGuide Featured Site

ARPACK++: A C++ Implementation of the ARPACK Eigenvalue Package

Francisco Gomes

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