elpa_gener...igenvalues(3)
πΈ NAME πΈ
okay so bestie, welcome to elpa_gener...igenvalues(3) from the Library Functions Manual β this is the page for elpa_generalized_eigenvalues, and it computes all eigenvalues of a generalized eigenvalue problem, A*Q = Ξ»*B*Q, for real symmetric or complex hermitian matrices A, B. iconic behavior, honestly. π
β¨
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_generalized_eigenvalues_doubleelpa_generalized_eigenvalues_floatelpa_generalized_eigenvalues_double_complexelpa_generalized_eigenvalues_float_complex
β¨ SYNOPSIS β¨
π§ FORTRAN INTERFACE π§
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%generalized_eigenvalues (a, b, ev,
is_already_decomposed, error)
With the definitions of the input and output variables:
class(elpa_t) :: elpa_handleβ an instance of the ELPA object. main character handle energy.datatype :: aβ the local matrixafor which the eigenvalues 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)".datatype :: bβ the local matrixbdefining the generalized eigenvalue problem. The dimensions and datatype of matrixbhas to be the same as for matrixa.datatype_real :: evβ the array where the eigenvalues Ξ» will be stored in ascending order. Thedatatype_realof the vectorevcan be either"real(kind=c_double)"or"real(kind=c_float)", depending on the datatype of the matrix. Note that complex hermitian matrices also have real eigenvalues.logical :: is_already_decomposedβ has to be set to.false.for the first call with a givenband.true.for each subsequent call with the sameb, sincebthen already contains decomposition and thus the decomposing step is skipped. iykyk.integer, optional :: errorβ the return error code of the function. Should beELPA_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_generalized_eigenvalues(elpa_t elpa_handle, datatype *a,
datatype *b, datatype_real *ev, int is_already_decomposed, 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 matrixafor which the eigenvalues 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++.datatype * b;β the matrixbdefining the generalized eigenvalue problem. The dimensions and the datatype of matrixbmust be the same as matrixa.datatype_real *ev;β the array where the eigenvalues Ξ» will be stored in ascending order. Thedatatype_realcan be either"double"or"float". Note that the eigenvalues of complex hermitian matrices are also real.int is_already_decomposed;β has to be set to0for the first call with a givenband1for each subsequent call with the sameb, sincebthen already contains decomposition and thus the decomposing step is skipped.int *error;β the error code of the function. Should beELPA_OK. The error codes can be queried withelpa_strerr(3).
π DESCRIPTION π
Computes the generalized eigenvalues for a real symmetric or complex hermitian generalized eigenproblem. The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_generalized_eigenvalues can be called. No skipping the prequel, bestie.
Unlike in the case of ordinary eigenvalue problem, the generalized problem calls some external ScaLAPACK routines. The user is responsible for initialization of the BLACS context, which then has to be passed to elpa by elpa_set(3) BEFORE elpa_generalized_eigenvalues can be called. That part is on you, fr fr. periodt.
π SEE ALSO π
okay bestie, go give these their flowers too:
elpa2_print_kernels(1)elpa_init(3)elpa_allocate(3)elpa_set(3)elpa_setup(3)elpa_strerr(3)elpa_eigenvalues(3)elpa_eigenvectors(3)elpa_cholesky(3)elpa_invert_triangular(3)elpa_solve_tridiagonal(3)elpa_hermitian_multiply(3)elpa_uninit(3)elpa_deallocate(3)
with all the π from the ELPA girlies β source/version ELPA, date Thu Nov 28 2024, page elpa_gener...igenvalues(3) π«Άβ¨
π¦ 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