elpa_solve_tridiagonal - computes the eigenvalue problem for real
symmetric tridiagonal matrix
use elpa
class(elpa_t), pointer :: elpa
call elpa%eigenvectors (d, e, q, error)
With the definitions of the input and output variables:
class(elpa_t) :: elpa ! returns an instance of the ELPA
object
- datatype :: d
- The diagonal elements of a matrix whose dimensions have been defined in
elpa_setup(3). On exist the eigenvalues are stored in this
1d-array. The datatype of the diagonal elements can either be
"real(kind=c_double)" or "real(kind=c_float)".
- datatype :: e
- The offdiagonal elements of the matrix. The datatype of the diagonal
elements can either be "real(kind=c_double)" or
"real(kind=c_float)". datatype :: q The storage space for
the computed eigenvectors. The datatype of the matrix can be either
"real(kind=c_double)" or "real(kind=c_float)".
- 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(elpa_t handle, datatype
*d, datatype *e, datatype *q, int *error);
With the definitions of the input and output variables:
- elpa_t handle;
- The handle to the ELPA object
- datatype *d;
- The diagonal elements of the matrix. The dimensions of the matrix must be
set BEFORE with elpa_setup(3). On exist the eigenvalues are
stored in d. The datatype can be one of "double" or
"float".
- datatype *e;
- The offdiagonal elements of the matrix. The datatype can be one of
"double" or "float".
- datatype *q;
- The storage space for the computed eigenvectors. 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", "float", "double complex", or
"float complex".
- int *error;
- The error code of the function. Should be "ELPA_OK". The error
codes can be querried with elpa_strerr(3)
Computes the eigenvalue problem of a real symmtric tridiagonal
matrix.The functions elpa_init(3), elpa_allocate(3),
elpa_set(3), and elpa_setup(3) must be called BEFORE
elpa_solve_tridiagonal can be called.
elpa2_print_kernels(1) elpa_init(3)
elpa_allocate(3) elpa_set(3) elpa_setup(3)
elpa_strerr(3) elpa_eigenvalues(3) elpa_cholesky(3)
elpa_invert_triangular(3) elpa_hermitian_multiply(3)
elpa_uninit(3) elpa_deallocate(3)