1elpa_generalized_eigenvaluesL(i3b)rary Functions Maneulapla_generalized_eigenvalues(3)
2
3
4
6 elpa_generalized_eigenvalues - computes the eigenvalues of a
7 generalized eigenvalue problem for real symmetric or complex hermitian
8 matrices
9
10
12 FORTRAN INTERFACE
13 use elpa
14 class(elpa_t), pointer :: elpa
15
16 call elpa%generalized_eigenvalues (a, b, ev, is_already_decomopsed,
17 error)
18
19 With the definitions of the input and output variables:
20
21 class(elpa_t) :: elpa ! returns an instance of the ELPA object
22
23 datatype :: a
24 The matrix a for which the eigenvalues should be computed. The
25 dimensions of matrix a must be set BEFORE with the methods
26 elpa_set(3) and elpa_setup(3). The datatype of the matrix can be
27 one of "real(kind=c_double)", "real(kind=c_float)",
28 "complex(kind=c_double)", or "complex(kind=c_float)"
29
30 datatype :: b
31 The matrix b defining the generalized eigenvalue problem. The
32 dimensions and datatype of the matrix b has to be the same as
33 for matrix a.
34
35 datatype :: ev
36 The vector ev where the eigenvalues will be stored in ascending
37 order. The datatype of the vector ev can be either
38 "real(kind=c_double)", or "real(kind=c_float)", depending of the
39 datatype of the matrix. Note that complex hermitian matrices
40 also have real valued eigenvalues.
41
42 logical :: is_already_decomposed
43 Has to be set to .false. for the first call with a given b and
44 .true. for each subsequent call with the same b, since b then
45 already contains decomposition and thus the decomposing step is
46 skipped.
47
48
49 integer, optional :: error
50 The return error code of the function. Should be "ELPA_OK". The
51 error code can be querried with the function elpa_strerr(3)
52
53
54 C INTERFACE
55 #include <elpa/elpa.h>
56 elpa_t handle;
57
58 void elpa_generalized_eigenvalues(elpa_t handle, datatype *a, datatype
59 *b, datatype *ev, int is_already_decomposed, int *error);
60
61 With the definitions of the input and output variables:
62
63
64 elpa_t handle;
65 The handle to the ELPA object
66
67 datatype *a;
68 The matrix a for which the eigenvalues should be computed. The
69 dimensions of the matrix must be set BEFORE with the methods
70 elpa_set(3) and elpa_setup(3). The datatype can be one of
71 "double", "float", "double complex", or "float complex".
72
73 datatype *b;
74 The matrix b defining the generalized eigenvalue problem. The
75 dimensions and the datatype of the matrix b must be the same as
76 matrix a.
77
78 datatype *ev;
79 The storage for the computed eigenvalues. Eigenvalues will be
80 stored in ascendig order. The datatype can be either "double" or
81 "float". Note that the eigenvalues of complex hermitian matrices
82 are also real.
83
84 int is_already_decomposed;
85 Has to be set to 0 for the first call with a given b and 1 for
86 each subsequent call with the same b, since b then already
87 contains decomposition and thus the decomposing step is skipped.
88
89 int *error;
90 The error code of the function. Should be "ELPA_OK". The error
91 codes can be querried with elpa_strerr(3)
92
93
95 Compute the generalized eigenvalues and (parts of) the eigenvector
96 spectrum of a real symmtric or complex hermitian matrix.The functions
97 elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be
98 called BEFORE elpa_generalized_eigenvalues can be called. Especially
99 the number of eigenvectors to be computed can be set with elpa_set(3).
100 Unlike in the case of ordinary eigenvalue problem, the generalized
101 problem calls some external scalapack routines. The user is responsible
102 for initialization of the blacs context, which then has to be passed to
103 elpa by elpa_set(3) BEFORE elpa_generalized_eigenvalues can be called.
104
106 elpa2_print_kernels(1) elpa_init(3) elpa_allocate(3) elpa_set(3)
107 elpa_setup(3) elpa_strerr(3) elpa_eigenvalues(3) elpa_eigenvectors(3)
108 elpa_cholesky(3) elpa_invert_triangular(3) elpa_solve_tridiagonal(3)
109 elpa_hermitian_multiply(3) elpa_uninit(3) elpa_deallocate(3)
110
111
112
113ELPA Wed Mar 14 2018elpa_generalized_eigenvalues(3)