Wiki Article
ARPACK
Nguồn dữ liệu từ Wikipedia, hiển thị bởi DefZone.Net
| ARPACK | |
|---|---|
| Written in | FORTRAN 77 |
| Type | Software library |
| License | BSD-new |
| Website | lacsi |
ARPACK, the ARnoldi PACKage, is a numerical software library written in FORTRAN 77 for solving large scale eigenvalue problems[1] in the matrix-free fashion.
The package is designed to compute a few eigenvalues and corresponding eigenvectors of large sparse or structured matrices, using the Implicitly Restarted Arnoldi Method (IRAM) or, in the case of symmetric matrices, the corresponding variant of the Lanczos algorithm. It is used by many popular numerical computing environments such as SciPy,[2] Mathematica,[3] Julia_(programming_language),[4] GNU Octave[5] and MATLAB to provide this functionality.
Reverse Communication Interface
[edit]A powerful matrix-free feature of ARPACK is its ability to use any matrix storage format. This is possible because it doesn't operate on the matrices directly, but instead when a matrix operation is required it returns control to the calling program with a flag indicating what operation is required. The calling program must then perform the operation and call the ARPACK routine again to continue. The operations are typically matrix-vector products, and solving linear systems.
Fork
[edit]Due to stalled upstream development, ARPACK has been forked into ARPACK-NG,[6] as a form of a collaborative effort of the various groups that rely on ARPACK.
Similarly, SciPy project, since version 1.17.0, includes a C-translated variant of the original Fortran 77 code. Among the differences, this variant is thread-safe and also allows the users to set the seed for the randomized parts, and hence, allow for deterministic output. Due to these changes, the programming interface is slightly modified, and thus, the SciPy project renamed the codebase to "Arnaud" to distinguish its fork from the original ARPACK.[7]
See also
[edit]- LOBPCG, a different matrix-free method for symmetric or Hermitian matrices only, implemented in C in BLOPEX, ported to hypre and SLEPc, in C++ in Anasazi (Trilinos), in Python in scipy, in Julia language, MATLAB, GNU Octave, as well as in Matrix Algebra on GPU and Multicore Architectures (MAGMA) and NVIDIA CUDA.
- LAPACK, software library based on matrix transformations for dense matrices.
References
[edit]- ^ Lehoucq, R. B.; Sorensen, D. C.; Yang, C. (1998). ARPACK Users Guide: Solution of Large-Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods. Philadelphia: SIAM. ISBN 978-0-89871-407-4.
- ^ "Sparse Eigenvalue Problems with ARPACK". Scipy.org. Retrieved 8 Dec 2013.
- ^ "Some Notes on Internal Implementation". wolfram.com. Retrieved 14 Oct 2016.
- ^ "Arpack.jl". julialang.org. Retrieved 13 Jun 2025.
- ^ "External packages - GNU Octave". gnu.org. Retrieved 8 Dec 2013.
- ^ ARPACK-NG
- ^ "SciPy code repository Pull Request #23274". github.com. Retrieved 8 Jan 2026.
External links
[edit]- Official website at Rice University
- arpack-ng fork, joint effort between Scilab, GNU Octave, Debian, and others.