table of contents
- experimental 2026.02.002-1
| elpa_eigenvectors_float(3) | Library Functions Manual | elpa_eigenvectors_float(3) |
NAME¶
elpa_eigenvectors_float - computes all eigenvalues and (part of) the eigenvectors for a real symmetric eigenproblem: A*Q = λ*Q
SYNOPSIS¶
FORTRAN INTERFACE¶
use elpa
class(elpa_t), pointer :: elpa_handle
call elpa_handle%eigenvectors_float (a, ev, q, error)
With the definitions of the input and output variables:
- class(elpa_t) :: elpa_handle
- An instance of the ELPA object.
- real(kind=c_float) :: a OR type(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 methods elpa_set(3) and elpa_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.
- real(kind=c_float) :: ev OR type(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.
- real(kind=c_float) :: q OR type(c_ptr) :: q
- The host/device storage space for the computed eigenvectors. The number of requested eigenvectors must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). In case of a GPU build q can 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 function elpa_strerr(3)
C/C++ INTERFACE¶
#include <elpa/elpa.h>
elpa_t elpa_handle;
void elpa_eigenvectors_float(elpa_t elpa_handle, float *a, float *ev, float *q, int *error);
With the definitions of the input and output variables:
- elpa_t elpa_handle;
- The handle to the ELPA object
- 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 methods elpa_set(3) and elpa_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.
- 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.
- float *q;
- The host/device storage space for the computed eigenvectors. The number of requested eigenvectors must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). In case of a GPU build q can 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 with elpa_strerr(3)
DESCRIPTION¶
Computes the eigenvalues and (part of) the eigenvectors of a real symmetric matrix. The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvectors_float can be called. In particular, the number of eigenvectors to be computed, "nev", must be set with elpa_set(3).
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)
| Thu Nov 28 2024 | ELPA |