ELPA_EIGENVECTORS_DOUBLE(3)
π NAME π
Okay so this page is elpa_eigenvectors_double(3), from the Library Functions Manual β yes bestie, thatβs the whole title situation, and weβre folding it in right here instead of copy-pasting the header line. The function itself is elpa_eigenvectors_double: it computes all eigenvalues and (part of) the eigenvectors for a real symmetric eigenproblem: A*Q = Ξ»*Q. Iconic. β¨
πΈ SYNOPSIS πΈ
π» FORTRAN INTERFACE
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%eigenvectors_double (a, ev, q, error)
Hereβs what those variables mean, bestie:
class(elpa_t) :: elpa_handleβ an instance of the ELPA object. Main character handle energy, lowkey.real(kind=c_double) :: aORtype(c_ptr) :: aβ the local part of the host/device matrixAfor which all eigenvalues and (part of) eigenvectors should be computed. The dimensions of matrixamust 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,acan be a pointer to the device memory.real(kind=c_double) :: evORtype(c_ptr) :: evβ the host/device vectorevwhere the eigenvalues will be stored in ascending order. In case of a GPU build,evcan be a pointer to the device memory.real(kind=c_double) :: 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,qcan be a pointer to the device memory.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_double(elpa_t elpa_handle, double *a, double *ev,
double *q, int *error);
And hereβs the C/C++ variable tea π:
elpa_t elpa_handle;β the handle to the ELPA object.double *a;β the local part of the host/device matrixAfor 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,acan be a pointer to the device memory.double *ev;β the host/device storage for the computed eigenvalues. Eigenvalues will be stored in ascending order. In case of a GPU build,evcan be a pointer to the device memory.double *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,qcan be a pointer to the device memory.int *error;β the error code of the function. Should be"ELPA_OK". The error codes can be queried withelpa_strerr(3).
π¦ DESCRIPTION π¦
elpa_eigenvectors_double computes the eigenvalues and (part of) the eigenvectors of a real symmetric matrix. Periodt.
The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvectors_double can be called. In particular, the number of eigenvectors to be computed, "nev", must be set with elpa_set(3). No cap, that setup order is the vibe check. π
Fr fr, the global matrix has to be symmetric β and this is not checked by the routine. So donβt come for the function if you feed it chaos. π
π 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)
Cute little sign-off, bestie: this pageβs source/version is ELPA, dated Thu Nov 28 2024, and the footer title is elpa_eigenvectors_double(3). Slay, read the docs, hydrate, and call elpa_setup(3) before you call 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