elpa_eigenvectors(3)
β¨ elpa_eigenvectors(3) β¨
okay bestie, this is the elpa_eigenvectors(3) page from the Library Functions Manual, and it is literally the main-character routine for solving 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_eigenvectors_double, elpa_eigenvectors_float, elpa_eigenvectors_double_complex, elpa_eigenvectors_float_complex.
πΈ SYNOPSIS πΈ
π«Ά FORTRAN INTERFACE
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%eigenvectors (a, ev, q, error)
With the definitions of the input and output variables:
class(elpa_t) :: elpa_handleβ An instance of the ELPA object. Your handle, your main character energy πdatatype :: aβ The local part of matrix A for which the eigenvalues and (part of) eigenvectors should be computed. The dimensions of matrixamust be set BEFORE with the methodselpa_set(3)andelpa_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. Thedatatype_realofevcan 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. no cap, the Ξ» are real even when the matrix is complex πdatatype :: qβ The storage space for the computed eigenvectors Q. The number of requested eigenvectors must be set BEFORE with the methodselpa_set(3)andelpa_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)".integer, optional :: errorβ The return error code of the function. Should be"ELPA_OK". The error code can be queried with the functionelpa_strerr(3).
π¦ C/C++ INTERFACE
#include <elpa/elpa.h>
elpa_t elpa_handle;
void elpa_eigenvectors(elpa_t elpa_handle, datatype *a, datatype_real *ev, datatype *q, int *error);
With the definitions of the input and output variables:
elpa_t elpa_handle;β The handle to the ELPA object. periodt πdatatype *a;β The local part of matrix A for which the eigenvalues and (part of) eigenvectors should be computed. The dimensions of the matrix must be set BEFORE with the methodselpa_set(3)andelpa_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. Thedatatype_realcan be either"double"or"float", depending of the datatype of the matrix. Note that the eigenvalues of complex hermitian matrices are also real.datatype *q;β The storage space for the computed eigenvectors Q. The number of requested eigenvectors must be set BEFORE with the methodselpa_set(3)andelpa_setup(3). The datatype can be one of"double","float","double complex"/"std::complex<double>","float complex"/"std::complex<float>"for C/C++.int *error;β The error code of the function. Should be"ELPA_OK". The error codes can be queried withelpa_strerr(3).
π DESCRIPTION π
Computes the eigenvalues and (part of) the eigenvector spectrum 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_eigenvectors can be called. In particular, the number of eigenvectors to be computed, "nev", must be set with elpa_set(3).
bestie, do NOT skip the setup steps. the routine is iconic but it is not psychic π set your dimensions and "nev" first, then come through.
π SEE ALSO π
elpa2_print_kernels(1)elpa_init(3)elpa_allocate(3)elpa_set(3)elpa_setup(3)elpa_strerr(3)elpa_eigenvalues(3)elpa_skew_eigenvalues(3)elpa_skew_eigenvectors(3)elpa_cholesky(3)elpa_invert_triangular(3)elpa_solve_tridiagonal(3)elpa_hermitian_multiply(3)elpa_uninit(3)elpa_deallocate(3)
π this cutie page is from ELPA, dated Thu Nov 28 2024 β go forth and solve your eigenproblems, bestie, you got this π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: elpa 2026.02.002
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms