table of contents
- experimental 2026.02.002-1
| elpa_eigenvalues(3) | Library Functions Manual | elpa_eigenvalues(3) |
NAME¶
elpa_eigenvalues - computes all eigenvalues λ for a real symmetric or complex hermitian eigenproblem: A*Q = λ*Q
There are also variations of this routine that can accept not only host but also device pointers as input/output. Names of these routines explicitly contain the corresponding datatypes: elpa_eigenvalues_double, elpa_eigenvalues_float, elpa_eigenvalues_double_complex, elpa_eigenvalues_float_complex.
SYNOPSIS¶
FORTRAN INTERFACE¶
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%eigenvalues (a, ev, error)
With the definitions of the input and output variables:
- class(elpa_t) :: elpa_handle
- An instance of the ELPA object.
- datatype :: a
- The local part of matrix A for which the eigenvalues should be computed. The dimensions of matrix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype of the matrix can be one of "real(kind=c_double)", "real(kind=c_float)", "complex(kind=c_double)", or "complex(kind=c_float)". The global matrix has to be symmetric or hermitian, this is not checked by the routine.
- datatype_real :: ev
- The global array where the eigenvalues λ will be stored in ascending order. The datatype_real of ev can be either "real(kind=c_double)" or "real(kind=c_float)", depending of the datatype of the matrix. Note that complex hermitian matrices also have real eigenvalues.
- integer, optional :: error
- The return error code of the function. Should be "ELPA_OK". The error code can be queried with the function elpa_strerr(3)
C/C++ INTERFACE¶
#include <elpa/elpa.h>
elpa_t elpa_handle;
void elpa_eigenvalues(elpa_t elpa_handle, datatype *a, datatype_real *ev, int *error);
With the definitions of the input and output variables:
- elpa_t elpa_handle;
- The handle to the ELPA object
- datatype *a;
- The local part of matrix A for which the eigenvalues should be computed. The dimensions of the matrix must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype can be one of "double", "float", "double complex"/"std::complex<double>", "float complex"/"std::complex<float>" for C/C++. The global matrix has to be symmetric or hermitian, this is not checked by the routine.
- datatype_real *ev;
- The global array where the eigenvalues λ will be stored in ascending order. The datatype_real of the vector ev can be either "double" or "float", depending of the datatype of the matrix. Note that complex hermitian matrices also have real eigenvalues.
- int *error;
- The error code of the function. Should be "ELPA_OK". The error codes can be queried with elpa_strerr(3)
DESCRIPTION¶
Computes the eigenvalues of a real symmetric or complex hermitian matrix. The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvalues can be called.
SEE ALSO¶
elpa2_print_kernels(1) elpa_init(3) elpa_allocate(3) elpa_set(3) elpa_setup(3) elpa_strerr(3) elpa_skew_eigenvalues(3) elpa_eigenvectors(3) elpa_skew_eigenvectors(3) elpa_cholesky(3) elpa_invert_triangular(3) elpa_solve_tridiagonal(3) elpa_eigenvalues(3) elpa_uninit(3) elpa_deallocate(3)
| Thu Nov 28 2024 | ELPA |