elpa_eigen...at_complex(3)
π elpa_eigenvalues_float_complex(3) β the Library Functions Manual girlie is here to explain it β¨
okay so bestie, listen: this is the page for elpa_eigenvalues_float_complex, and it's literally the glow-up you need when you want all the eigenvalues Ξ» of a complex hermitian eigenproblem. the whole vibe is:
A*Q = Ξ»*Q
that's it. that's the moment. π
β¨ NAME β¨
elpa_eigenvalues_float_complex β computes all eigenvalues Ξ» for a complex hermitian eigenproblem: A*Q = Ξ»*Q π
π¦ SYNOPSIS π¦
π FORTRAN INTERFACE
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%eigenvalues_float_complex (a, ev, error)
and here's the definition of the input and output variables, bestie β don't skip, iykyk:
class(elpa_t) :: elpa_handleβ an instance of the ELPA object. your main character handle, fr fr.real(kind=c_float_complex) :: aORtype(c_ptr) :: aβ the local part of the host/device matrix A for which the eigenvalues should be computed. the dimensions of matrixamust be set BEFORE with the methodselpa_set(3)andelpa_setup(3). the global matrix has to be hermitian β and no, this is not checked by the routine, so that's on you π«Ά. in case of a GPU buildacan be a pointer to the device memory.real(kind=c_float) :: evORtype(c_ptr) :: evβ the global array where the eigenvalues Ξ» will be stored in ascending order. in case of a GPU buildevcan be a pointer to the device memory. and note that complex hermitian matrices also have real eigenvalues β yes really, it's giving "math is iconic" πΈ.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;
// C:
void elpa_eigenvalues_float_complex(elpa_t elpa_handle, float complex
*a, float *ev, int *error);
// C++:
void elpa_eigenvalues_float_complex(elpa_t elpa_handle,
std::complex<float> *a, float *ev, int *error);
and with the definitions of the input and output variables:
elpa_t elpa_handle;β the handle to the ELPA object πfloat complex *a;ORstd::complex<float> *a;β the local part of the host/device matrix A for which the eigenvalues should be computed. the dimensions of matrixamust be set BEFORE with the methodselpa_set(3)andelpa_setup(3). the global matrix A has to be hermitian, and again this is not checked by the routine π. in case of a GPU buildacan be a pointer to the device memory.float *ev;β the global array where the eigenvalues Ξ» will be stored in ascending order. in case of a GPU buildevcan be a pointer to the device memory. note that complex hermitian matrices also have real eigenvalues, periodt π .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 of a complex hermitian matrix. and listen β the functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvalues_float_complex can be called. no shortcuts, babe, the order is the order π§
okay lowkey important: skip the setup and you're not slaying, you're justβ¦ not doing it. call them first. π
π 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)
the whole friend group, fr fr β go read them too π«Άπ
and that's the page, bestie!! this cutie was brought to you by ELPA, dated Thu Nov 28 2024 β like, the manual name and everything. mwah, go compute those eigenvalues. πβ¨π¦πΈπ
π¦ 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