ELPA_EIGENVECTORS_FLOAT_COMPLEX(3)
okay so bestie, this is the elpa_eigenvectors_float_complex page from the ELPA Library Functions Manual β yes, the whole thing, and it's giving "complex hermitian eigenproblem but make it fashion" β¨π
πΈ NAME πΈ
elpa_eigenvectors_float_complex β computes all eigenvalues and (part of) the eigenvectors for a complex hermitian eigenproblem: A*Q = Ξ»*Q π
β¨ SYNOPSIS β¨
π«Ά FORTRAN INTERFACE
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%eigenvectors_float_complex (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 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 all eigenvalues and (part of) eigenvectors should be computed. The dimensions of matrix a must be set BEFORE with the methodselpa_set(3)andelpa_setup(3). The global matrix has to be symmetric, this is not checked by the routine. In case of a GPU build a can be a pointer to the device memory. No cap, set those dimensions first π¨real(kind=c_float) :: evORtype(c_ptr) :: evβ The host/device vector ev where the eigenvalues will be stored in ascending order. In case of a GPU build ev can be a pointer to the device memory. Note that complex hermitian matrices also have real eigenvalues. Cute, right? πreal(kind=c_float_complex) :: qORtype(c_ptr) :: qβ The host/device storage space for the computed eigenvectors. The number of requested eigenvectors must be set BEFORE with the methodselpa_set(3)andelpa_setup(3). In case of a GPU build q can be a pointer to the device memory. Manifesting that storage space for you π―οΈβ¨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). Bestie, check your error code, it's the vibe check of this whole situation π
π¦ C/C++ INTERFACE
#include <elpa/elpa.h>
elpa_t elpa_handle;
// C:
void elpa_eigenvectors_float_complex(elpa_t elpa_handle, float complex
*a, float complex *ev, float complex *q, int *error);
// C++:
void elpa_eigenvalues_float_complex(elpa_t elpa_handle,
std::complex<float> *a, float *ev, std::complex<float> *q, int *error);
With the definitions of the input and output variables:
elpa_t elpa_handle;β The handle to the ELPA object. Your little ELPA passport πfloat complex *a;ORstd::complex<float> *a;β The local part of the host/device matrix A for which the eigenpairs should be computed. The dimensions of the matrix must be set BEFORE with the methodselpa_set(3)andelpa_setup(3). The global matrix has to be symmetric, this is not checked by the routine. In case of a GPU build a can be a pointer to the device memory. Again: dimensions first, or it's not gonna slay πfloat *ev;β The host/device storage for the computed eigenvalues. Eigenvalues will be stored in ascending order. In case of a GPU build ev can be a pointer to the device memory. Ordered, organized, iconic πfloat complex *q;ORstd::complex<float> *q;β The host/device storage space for the computed eigenvectors. The number of requested eigenvectors must be set BEFORE with the methodselpa_set(3)andelpa_setup(3). In case of a GPU build q can be a pointer to the device memory. Set that number, bestie, it's not optional energy πint *error;β The error code of the function. Should be"ELPA_OK". The error codes can be queried withelpa_strerr(3). That's your receipts, keep them π§Ύ
π DESCRIPTION π
Computes the eigenvalues and (part of) the eigenvectors of a complex hermitian matrix. The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvectors_float_complex can be called. In particular, the number of eigenvectors to be computed, "nev", must be set with elpa_set(3).
bestie this is a whole pre-game ritual:elpa_init(3)βelpa_allocate(3)βelpa_set(3)βelpa_setup(3), and then β only then β you can callelpa_eigenvectors_float_complex. Also set"nev"withelpa_set(3)or the whole thing is not giving what it's supposed to give π β¨
π 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)
and that's the whole page, bestie π«Ά this little icon is from ELPA, dated Thu Nov 28 2024, and the page itself is elpa_eigen...oat_complex(3) β periodt π
πβ¨
π¦ 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