There are two different types of interfaces available in the Extended Eigensolver routines:
The reverse communication interfaces (RCI):
These interfaces are matrix free format (the interfaces are independent of the matrix data formats). You must provide matrix-vector multiply and direct/iterative linear system solvers for your own explicit or implicit data format.
The predefined interfaces:
?feast_<matrix type><type of eigenvalue problem>
are predefined drivers for ?feast reverse communication interface that act on commonly used matrix data storage (dense, banded and compressed sparse row representation), using internal matrix-vector routines and selected inner linear system solvers.
For these interfaces:
? indicates the data type of matrix A (and matrix B if any) defined as follows:
<matrix type> defined as follows:
Value of <matrix type>
Inner linear system solver used by Extended Eigensolver
LAPACK dense solvers
(symmetric banded real)
Internal banded solver
(Hermitian banded complex)
Compressed sparse row
Reverse communications interfaces
<type of eigenvalue problem> is:
generalized eigenvalue problem
standard eigenvalue problem
For example, sfeast_scsrev is a single-precision routine with a symmetric real matrix stored in sparse compressed-row format for a standard eigenvalue problem, and zfeast_hrci is a complex double-precision routine with a Hermitian matrix using the reverse communication interface.
? can be s or d if a matrix is real symmetric: <matrix type> is sy, sb, or scsr.
? can be c or z if a matrix is complex Hermitian: <matrix type> is he, hb, or hcsr.
? can be c or z if the Extended Eigensolver RCI interface is used for solving a complex Hermitian problem.
? can be s or d if the Extended Eigensolver RCI interface is used for solving a real symmetric problem.