sisi4s
Loading...
Searching...
No Matches
ScaLapack.hpp
Go to the documentation of this file.
1#ifndef SCA_LAPACK_DEFINED
2#define SCA_LAPACK_DEFINED
3
4#include <math/Complex.hpp>
5
6// TODO: use define for name mangling: underscore or not
7
8extern "C" {
9void descinit_(int *descriptor,
10 const int *globalRows,
11 const int *globalColumns,
12 const int *blockRows,
13 const int *blockColumns,
14 const int *rowOffset,
15 const int *columnOffset,
16 const int *context,
17 const int *leadingDimensionSize,
18 int *info);
19int numroc_(const int *globalSize,
20 const int *blockSize,
21 const int *iproc,
22 const int *isrcproc,
23 const int *nprocs);
24int indxl2g_(const int *localIndex,
25 const int *blockSize,
26 const int *iproc,
27 const int *isrcproc,
28 const int *nprocs);
29int indxg2l_(const int *globalIndex,
30 const int *blockSize,
31 const int *iproc,
32 const int *isrcproc,
33 const int *nprocs);
34
35void pdsyev_(const char *jobz,
36 const char *upperLower,
37 const int *m,
38 const double *a,
39 const int *ia,
40 const int *ja,
41 const int *desca,
42 double *lambda,
43 double *z,
44 const int *iz,
45 const int *jz,
46 const int *descz,
47 double *work,
48 const int *lwork,
49 int *info);
50void pzheev_(const char *jobz,
51 const char *upperLower,
52 const int *m,
53 const sisi4s::complex *a,
54 const int *ia,
55 const int *ja,
56 const int *desca,
57 double *lambda,
59 const int *iz,
60 const int *jz,
61 const int *descz,
62 sisi4s::complex *work,
63 const int *lwork,
64 double *realWork,
65 const int *lRealCount,
66 int *info);
67
68void pdsyevd_(const char *jobz,
69 const char *upperLower,
70 const int *m,
71 const double *a,
72 const int *ia,
73 const int *ja,
74 const int *desca,
75 double *lambda,
76 double *z,
77 const int *iz,
78 const int *jz,
79 const int *descz,
80 double *work,
81 const int *lwork,
82 int *iwork,
83 const int *liwork,
84 int *info);
85void pzheevd_(const char *jobz,
86 const char *upperLower,
87 const int *m,
88 const sisi4s::complex *a,
89 const int *ia,
90 const int *ja,
91 const int *desca,
92 double *lambda,
94 const int *iz,
95 const int *jz,
96 const int *descz,
97 sisi4s::complex *work,
98 const int *lwork,
99 double *realWork,
100 const int *lRealCount,
101 int *iwork,
102 const int *liwork,
103 int *info);
104
105void pdgesvd_(const char *jobu,
106 const char *jobvt,
107 const int *m,
108 const int *n,
109 const double *a,
110 const int *ia,
111 const int *ja,
112 const int *desca,
113 double *s,
114 double *u,
115 const int *iu,
116 const int *ju,
117 const int *descu,
118 double *vt,
119 const int *ivt,
120 const int *jvt,
121 const int *descvt,
122 double *work,
123 const int *lwork,
124 int *info);
125void pzgesvd_(const char *jobu,
126 const char *jobvt,
127 const int *m,
128 const int *n,
129 const sisi4s::complex *a,
130 const int *ia,
131 const int *ja,
132 const int *desca,
133 double *s,
135 const int *iu,
136 const int *ju,
137 const int *descu,
138 sisi4s::complex *vt,
139 const int *ivt,
140 const int *jvt,
141 const int *descvt,
142 sisi4s::complex *work,
143 const int *lwork,
144 double *rwork,
145 int *info);
146
147void pdgemm_(const char *opA,
148 const char *opB,
149 const int *m,
150 const int *n,
151 const int *k,
152 const double *alpha,
153 const double *a,
154 const int *ia,
155 const int *ja,
156 const int *desca,
157 const double *b,
158 const int *ib,
159 const int *jb,
160 const int *descb,
161 const double *beta,
162 double *C,
163 const int *ic,
164 const int *jc,
165 const int *descc);
166void pzgemm_(const char *opA,
167 const char *opB,
168 const int *m,
169 const int *n,
170 const int *k,
171 const sisi4s::complex *alpha,
172 const sisi4s::complex *a,
173 const int *ia,
174 const int *ja,
175 const int *desca,
176 const sisi4s::complex *b,
177 const int *ib,
178 const int *jb,
179 const int *descb,
180 const sisi4s::complex *beta,
182 const int *ic,
183 const int *jc,
184 const int *descc);
185}
186
187#endif
void pdsyevd_(const char *jobz, const char *upperLower, const int *m, const double *a, const int *ia, const int *ja, const int *desca, double *lambda, double *z, const int *iz, const int *jz, const int *descz, double *work, const int *lwork, int *iwork, const int *liwork, int *info)
int indxg2l_(const int *globalIndex, const int *blockSize, const int *iproc, const int *isrcproc, const int *nprocs)
void pdsyev_(const char *jobz, const char *upperLower, const int *m, const double *a, const int *ia, const int *ja, const int *desca, double *lambda, double *z, const int *iz, const int *jz, const int *descz, double *work, const int *lwork, int *info)
void descinit_(int *descriptor, const int *globalRows, const int *globalColumns, const int *blockRows, const int *blockColumns, const int *rowOffset, const int *columnOffset, const int *context, const int *leadingDimensionSize, int *info)
void pdgesvd_(const char *jobu, const char *jobvt, const int *m, const int *n, const double *a, const int *ia, const int *ja, const int *desca, double *s, double *u, const int *iu, const int *ju, const int *descu, double *vt, const int *ivt, const int *jvt, const int *descvt, double *work, const int *lwork, int *info)
void pzheevd_(const char *jobz, const char *upperLower, const int *m, const sisi4s::complex *a, const int *ia, const int *ja, const int *desca, double *lambda, sisi4s::complex *z, const int *iz, const int *jz, const int *descz, sisi4s::complex *work, const int *lwork, double *realWork, const int *lRealCount, int *iwork, const int *liwork, int *info)
int numroc_(const int *globalSize, const int *blockSize, const int *iproc, const int *isrcproc, const int *nprocs)
int indxl2g_(const int *localIndex, const int *blockSize, const int *iproc, const int *isrcproc, const int *nprocs)
void pdgemm_(const char *opA, const char *opB, const int *m, const int *n, const int *k, const double *alpha, const double *a, const int *ia, const int *ja, const int *desca, const double *b, const int *ib, const int *jb, const int *descb, const double *beta, double *C, const int *ic, const int *jc, const int *descc)
void pzgemm_(const char *opA, const char *opB, const int *m, const int *n, const int *k, const sisi4s::complex *alpha, const sisi4s::complex *a, const int *ia, const int *ja, const int *desca, const sisi4s::complex *b, const int *ib, const int *jb, const int *descb, const sisi4s::complex *beta, sisi4s::complex *C, const int *ic, const int *jc, const int *descc)
void pzgesvd_(const char *jobu, const char *jobvt, const int *m, const int *n, const sisi4s::complex *a, const int *ia, const int *ja, const int *desca, double *s, sisi4s::complex *u, const int *iu, const int *ju, const int *descu, sisi4s::complex *vt, const int *ivt, const int *jvt, const int *descvt, sisi4s::complex *work, const int *lwork, double *rwork, int *info)
void pzheev_(const char *jobz, const char *upperLower, const int *m, const sisi4s::complex *a, const int *ia, const int *ja, const int *desca, double *lambda, sisi4s::complex *z, const int *iz, const int *jz, const int *descz, sisi4s::complex *work, const int *lwork, double *realWork, const int *lRealCount, int *info)
Complex< real > complex
Definition Complex.hpp:17