1elpa_hermitian_multiply(3) Library Functions Manual elpa_hermitian_multiply(3)
2
3
4
6 elpa_hermitian_multiply - Performs C = A**H * B
7
8
10 FORTRAN INTERFACE
11 use elpa
12 class(elpa_t), pointer :: elpa
13
14 call elpa%hermitian_multiply (uplo_a, uplo_c, ncb, a, b, nrows_b,
15 ncols_b, &
16 c, nrows_c, ncols_c, error)"
17
18 With the definitions of the input and output variables:
19
20
21 character*1 :: uplo_a
22 set to 'U' if A is upper triangular, 'L' if A is lower
23 triangular or anything else if A is a full matrix
24
25 character*1 :: uplo_c
26 set to 'U' if only the upper diagonal part of C is needed, to
27 'L' if only the upper diagonal part of C is needed, or to
28 anything else if the full matrix C is needed
29
30 integer :: ncb
31 The number of columns of the global matrices b and c
32
33 datatype :: a
34 The matrix a. The dimensions of matrix a must be set BEFORE with
35 the methods elpa_set(3) and elpa_setup(3). The datatype of the
36 matrix can be one of "real(kind=c_double)",
37 "real(kind=c_float)", "complex(kind=c_double)", or
38 "complex(kind=c_float)"
39
40 datatype :: b
41 The matrix b. The dimensions of the matrix are specified by the
42 parametes nrows_b and ncols_b. The datatype of the matrix can be
43 one of "real(kind=c_double)", "real(kind=c_float)",
44 "complex(kind=c_double)", or "complex(kind=c_float)"
45
46 integer :: nrows_b
47 The number of rows of matrix b
48
49 integer :: ncols_b
50 The number of columns of matrix b
51
52 datatype :: c
53 The matrix c. The dimensions of the matrix are specified by the
54 parametes nrows_c and ncols_c. The datatype of the matrix can be
55 one of "real(kind=c_double)", "real(kind=c_float)",
56 "complex(kind=c_double)", or "complex(kind=c_float)"
57
58 integer :: nrows_c
59 The number of rows of matrix c
60
61 integer :: ncols_c
62 The number of columns of matrix c
63
64 integer, optional :: error
65 The return error code of the function. Should be "ELPA_OK". The
66 error code can be querried with the function elpa_strerr(3)
67
68
69 C INTERFACE
70 #include <elpa/elpa.h>
71 elpa_t handle;
72
73 void elpa_hermitian_multiply(elpa_t handle, char uplo_a, char uplo_c,
74 int ncb, datatype *a, datatype *b, int nrows_b, int ncols_b, datatype
75 *c, int nrows_c, int ncols_c, int *error);
76
77 With the definitions of the input and output variables:
78
79
80 elpa_t handle;
81 The handle to the ELPA object
82
83 char uplo_a;
84 set to 'U' if A is upper triangular, 'L' if A is lower
85 triangular or anything else if A is a full matrix
86
87 char uplo_c;
88 set to 'U' if only the upper diagonal part of C is needed, to
89 'L' if only the upper diagonal part of C is needed, or to
90 anything else if the full matrix C is needed
91
92 int ncb;
93 The number of columns of the global matrices b and c
94
95 datatype *a;
96 The matrix a. The dimensions of matrix a must be set BEFORE with
97 the methods elpa_set(3) and elpa_setup(3). The datatype of the
98 matrix can be one of "double", "float", "double complex", or
99 "float complex"
100
101 datatype *b;
102 The matrix b. The dimensions of the matrix are specified by the
103 parametes nrows_b and ncols_b. The datatype of the matrix can be
104 one of "double", "float", "double complex", or "float complex"
105
106 int nrows_b;
107 The number of rows of matrix b
108
109 int ncols_b;
110 The number of columns of matrix b
111
112 datatype *c;
113 The matrix c. The dimensions of the matrix are specified by the
114 parametes nrows_c and ncols_c. The datatype of the matrix can be
115 one of "double", "float", "double complex", or "float complex"
116
117 int nrows_c;
118 The number of rows of matrix c
119
120 int ncols_c;
121 The number of columns of matrix c
122
123 int *error
124 The return error code of the function. Should be "ELPA_OK". The
125 error code can be querried with the function elpa_strerr(3)
126
127
128
130 Performa a "hermitian" multiplication C = A**T * B for real matrices
131 and C=A**H * B for complex matrices. The functions elpa_init(3),
132 elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE
133 elpa_hermitian_multiply can be called.
134
136 elpa2_print_kernels(1) elpa_init(3) elpa_allocate(3) elpa_set(3)
137 elpa_setup(3) elpa_strerr(3) elpa_eigenvalues(3) elpa_eigenvectors(3)
138 elpa_solve_tridiagonal(3) elpa_uninit(3) elpa_deallocate(3)
139
140
141
142ELPA Sat Jul 15 2017 elpa_hermitian_multiply(3)