elpa_skew_eigenvalues - computes the eigenvalues of a real
skew-symmetric matrix
use elpa
class(elpa_t), pointer :: elpa
call elpa%skew_eigenvalues (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 can be one of
"real(kind=c_double)" or "real(kind=c_float)". The
matrix has to be skew-symmetric, this is not checked by the routine.
- datatype :: ev
- The vector ev where the eigenvalues will be stored in ascending
order. The datatype of the vector ev can be either
"real(kind=c_double)", or "real(kind=c_float)",
depending of the datatype of the matrix.
- 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_skew_eigenvalues(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 can be
one of "double" or "float".
- datatype *ev;
- The storage for the computed eigenvalues. Eigenvalues will be stored in
ascendig order. The datatype can be either
"double" or "float". Note that the eigenvalues of
complex hermitian matrices are also real. The matrix has to be
skew-symmetric, this is not checked by the routine.
- 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 real skew-symmetric matrix.The
functions elpa_init(3), elpa_allocate(3), elpa_set(3),
and elpa_setup(3) must be called BEFORE
elpa_skew_eigenvalues can be called.
elpa2_print_kernels(1) elpa_init(3)
elpa_allocate(3) elpa_set(3) elpa_setup(3)
elpa_strerr(3) elpa_eigenvectors(3)
elpa_skew_eigenvectors(3) elpa_eigenvalues(3)
elpa_cholesky(3) elpa_invert_triangular(3)
elpa_solve_tridiagonal(3) elpa_eigenvalues(3)
elpa_uninit(3) elpa_deallocate(3)