elpa_eigenvalues_double(3)
π
elpa_eigenvalues_double β the elpa_eigenvalues_double(3) page, bestie edition
okay so this is a page from the Library Functions Manual and honestly? it's a bop. it's giving "find all the eigenvalues of a real symmetric problem" and we're gonna walk through it together, no gatekeeping π
β¨ NAME β¨
elpa_eigenvalues_double β computes, like, all the eigenvalues Ξ» for a real symmetric eigenproblem:
A*Q = Ξ»*Q
that's the whole vibe. main character energy fr fr πΈ
π«Ά SYNOPSIS π«Ά
π FORTRAN INTERFACE
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%eigenvalues_double (a, ev, error)
and here's the definitions of the input and output variables, because i would never leave you guessing π
class(elpa_t) :: elpa_handleβ an instance of the ELPA object. your handle. your little ELPA bestie.real(kind=c_double) :: 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). also! the global matrix has to be symmetric, and this is not checked by the routine β so that's on you, not on ELPA π. in case of a GPU buildacan be a pointer to the device memory.real(kind=c_double) :: 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.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_eigenvalues_double(elpa_t elpa_handle, double *a, double *ev,
int *error);
and with the definitions of the input and output variables, icons only β¨
elpa_t elpa_handle;β the handle to the ELPA object.double *a;β the local part of the host/device matrix A for which the eigenvalues should be computed. again, for the people in the back π’: the dimensions of matrixamust be set BEFORE with the methodselpa_set(3)andelpa_setup(3). the global matrix A has to be symmetric, and this is not checked by the routine. in case of a GPU buildacan be a pointer to the device memory.datatype_real *ev;β the array where the eigenvalues Ξ» will be stored in ascending order. and yes, eigenvalues will be stored in ascending order. we said it twice because it matters π. in case of a GPU buildevcan 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 π₯
computes the eigenvalues of a double precision real symmetric matrix. that's the whole job, and it ate π
β οΈ the functionselpa_init(3),elpa_allocate(3),elpa_set(3), andelpa_setup(3)must be called BEFOREelpa_eigenvalues_doublecan be called. like, non-negotiable. do the prep work first, bestie. no skipping steps π€
π SEE ALSO π
your reading list, go off πβ¨
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)
and that's the page!! this one's brought to you by ELPA, dated Thu Nov 28 2024 β so go call elpa_init(3) first, mwah, talk later π«Άπβ¨
π¦ 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