elpa_eigenvalues_double - computes the eigenvalues of a real
double-precision symmetric matrix
use elpa
class(elpa_t), pointer :: elpa
call elpa%eigenvalues_double (a, ev, error)
With the definitions of the input and output variables:
class(elpa_t) :: elpa ! returns an instance of the ELPA
object
- datatype :: a
- The matrix a for which the eigenvalues should be computed. The dimensions
of matrix a must be set BEFORE with the methods elpa_set(3)
and elpa_setup(3). The datatype of the matrix must be
real(kind=c_double). The matrix has to be symmetric this is not checked by
the routine. In case of a GPU build a can be a device pointer of
type "type(c_ptr) to a matrix a on the device memory.
- datatype :: ev
- The vector ev where the eigenvalues will be stored in ascending
order. The datatype of the vector ev must be
"real(kind=c_double)". In case of a GPU build ev can be a
device pointer of type "type(c_ptr) to the vector of eigenvalues in
the device memory
- integer, optional :: error
- The return error code of the function. Should be "ELPA_OK". The
error code can be querried with the function elpa_strerr(3)
#include <elpa/elpa.h>
elpa_t handle;
void elpa_eigenvalues_double(elpa_t handle,
datatype *a, datatype *ev, int *error);
With the definitions of the input and output variables:
- elpa_t handle;
- The handle to the ELPA object
- datatype *a;
- The matrix a for which the eigenvalues should be computed. The dimensions
of the matrix must be set BEFORE with the methods
elpa_set(3) and elpa_setup(3). The datatype must be
"double". The matrix has to be symmetric, this is not checked by
the routine. In case of a GPU build a can be a device pointer to a
matrix a on the device memory.
- datatype *ev;
- The storage for the computed eigenvalues. Eigenvalues will be stored in
ascendig order. The datatype must be "double". In
case of a GPU build ev can be a device pointer to the vectors of
eigenvalues in the device memory.
- int *error;
- The error code of the function. Should be "ELPA_OK". The error
codes can be querried with elpa_strerr(3)
Compute the eigenvalues of a double precision real symmetric
matrix. The functions elpa_init(3), elpa_allocate(3),
elpa_set(3), and elpa_setup(3) must be called BEFORE
elpa_eigenvalues can be called.
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)