Spectra stands for Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK. It is a C++ library for large scale eigenvalue problems, built on top of Eigen, an open source linear algebra library.
Spectra is implemented as a header-only C++ library, whose only dependency, Eigen, is also header-only. Hence Spectra can be easily embedded in C++ projects that require calculating eigenvalues of large matrices.
The development page of Spectra is https://github.com/yixuan/spectra/.
ARPACK is a software written in FORTRAN for solving large scale eigenvalue problems. The development of Spectra is much inspired by ARPACK, and as the whole name indicates, Spectra is a redesign of the ARPACK library using C++ language.
In fact, Spectra is based on the algorithms described in the ARPACK Users’ Guide, but it does not use the ARPACK code, and it is NOT a clone of ARPACK for C++. In short, Spectra implements the major algorithms in ARPACK, but Spectra provides a completely different interface, and it does not depend on ARPACK.
Spectra 1.0.0 introduces a lot of API-breaking changes, but the code migration should be easy and straightforward. See this guide for details.
See the Quick Start page for some minimal examples that demonstrate the basic use of Spectra.
Spectra is open source. Bug reports, suggestions and feature requests are welcome on the development page. Code contribution and pull requests would be great.
Spectra is an open source project licensed under MPL2.