fml
0.1-0
Fused Matrix Library
_scalapack_prototypes.h
1
// This file is part of fml which is released under the Boost Software
2
// License, Version 1.0. See accompanying file LICENSE or copy at
3
// https://www.boost.org/LICENSE_1_0.txt
4
5
#ifndef FML_MPI_LINALG__SCALAPACK_PROTOTYPES_H
6
#define FML_MPI_LINALG__SCALAPACK_PROTOTYPES_H
7
#pragma once
8
9
10
#ifndef restrict
11
#define restrict __restrict__
12
#endif
13
14
#ifdef __cplusplus
15
extern
"C"
{
16
#endif
17
18
19
extern
void
psgemm_(
const
char
*transa,
const
char
*transb,
const
int
*m,
20
const
int
*n,
const
int
*k,
const
float
*restrict alpha,
21
const
float
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
22
const
float
*restrict b,
const
int
*ib,
const
int
*jb,
const
int
*descb,
23
const
float
*restrict beta,
float
*restrict c,
const
int
*ic,
const
int
*jc,
24
const
int
*descc);
25
26
extern
void
pdgemm_(
const
char
*transa,
const
char
*transb,
const
int
*m,
27
const
int
*n,
const
int
*k,
const
double
*restrict alpha,
28
const
double
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
29
const
double
*restrict b,
const
int
*ib,
const
int
*jb,
const
int
*descb,
30
const
double
*restrict beta,
double
*restrict c,
const
int
*ic,
const
int
*jc,
31
const
int
*descc);
32
33
34
35
extern
void
pssyrk_(
const
char
*uplo,
const
char
*trans,
const
int
*n,
36
const
int
*k,
const
float
*restrict alpha,
const
float
*restrict a,
37
const
int
*ia,
const
int
*ja,
const
int
*desca,
const
float
*restrict beta,
38
float
*restrict c,
const
int
*ic,
const
int
*jc,
const
int
*descc);
39
40
extern
void
pdsyrk_(
const
char
*uplo,
const
char
*trans,
const
int
*n,
41
const
int
*k,
const
double
*restrict alpha,
const
double
*restrict a,
42
const
int
*ia,
const
int
*ja,
const
int
*desca,
const
double
*restrict beta,
43
double
*restrict c,
const
int
*ic,
const
int
*jc,
const
int
*descc);
44
45
46
47
extern
void
pstran_(
const
int
*restrict m,
const
int
*restrict n,
48
const
float
*restrict alpha,
const
float
*restrict a,
const
int
*ia,
49
const
int
*ja,
const
int
*restrict desca,
const
float
*restrict beta,
50
float
*restrict c,
const
int
*ic,
const
int
*jc,
const
int
*restrict descc);
51
52
extern
void
pdtran_(
const
int
*restrict m,
const
int
*restrict n,
53
const
double
*restrict alpha,
const
double
*restrict a,
const
int
*ia,
54
const
int
*ja,
const
int
*restrict desca,
const
double
*restrict beta,
55
double
*restrict c,
const
int
*ic,
const
int
*jc,
const
int
*restrict descc);
56
57
58
59
extern
void
psgetrf_(
const
int
*m,
const
int
*n,
float
*restrict a,
60
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*restrict ipiv,
61
int
*info);
62
63
extern
void
pdgetrf_(
const
int
*m,
const
int
*n,
double
*restrict a,
64
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*restrict ipiv,
65
int
*info);
66
67
68
69
extern
void
psgesvd_(
const
char
*restrict jobu,
const
char
*restrict jobvt,
70
const
int
*restrict m,
const
int
*restrict n,
float
*restrict a,
71
const
int
*ia,
const
int
*ja,
const
int
*restrict desca,
72
float
*restrict s,
float
*restrict u,
const
int
*restrict iu,
73
const
int
*restrict ju,
const
int
*restrict descu,
float
*restrict vt,
74
const
int
*restrict ivt,
const
int
*restrict jvt,
const
int
*restrict descvt,
75
float
*restrict work,
const
int
*restrict lwork,
int
*restrict info);
76
77
extern
void
pdgesvd_(
const
char
*restrict jobu,
const
char
*restrict jobvt,
78
const
int
*restrict m,
const
int
*restrict n,
double
*restrict a,
79
const
int
*ia,
const
int
*ja,
const
int
*restrict desca,
80
double
*restrict s,
double
*restrict u,
const
int
*restrict iu,
81
const
int
*restrict ju,
const
int
*restrict descu,
double
*restrict vt,
82
const
int
*restrict ivt,
const
int
*restrict jvt,
const
int
*restrict descvt,
83
double
*restrict work,
const
int
*restrict lwork,
int
*restrict info);
84
85
86
87
extern
void
pssyevr_(
const
char
*restrict jobz,
const
char
*restrict range,
88
const
char
*restrict uplo,
const
int
*n,
float
*restrict a,
const
int
*ia,
89
const
int
*ja,
const
int
*restrict desca,
const
float
*vl,
const
float
*vu,
90
const
int
*il,
const
int
*iu,
int
*m,
int
*nz,
float
*w,
float
*z,
91
const
int
*iz,
const
int
*jz,
const
int
*restrict descz,
92
float
*restrict work,
const
int
*restrict lwork,
int
*restrict iwork,
93
const
int
*restrict liwork,
int
*restrict info);
94
95
extern
void
pdsyevr_(
const
char
*restrict jobz,
const
char
*restrict range,
96
const
char
*restrict uplo,
const
int
*n,
double
*restrict a,
const
int
*ia,
97
const
int
*ja,
const
int
*restrict desca,
const
double
*vl,
const
double
*vu,
98
const
int
*il,
const
int
*iu,
int
*m,
int
*nz,
double
*w,
double
*z,
99
const
int
*iz,
const
int
*jz,
const
int
*restrict descz,
100
double
*restrict work,
const
int
*restrict lwork,
int
*restrict iwork,
101
const
int
*restrict liwork,
int
*restrict info);
102
103
104
105
extern
void
psgetri_(
const
int
*n,
float
*restrict a,
const
int
*ia,
106
const
int
*ja,
const
int
*restrict desca,
int
*restrict ipiv,
107
float
*restrict work,
const
int
*restrict lwork,
int
*restrict iwork,
108
const
int
*restrict liwork,
int
*restrict info);
109
110
extern
void
pdgetri_(
const
int
*n,
double
*restrict a,
const
int
*ia,
111
const
int
*ja,
const
int
*restrict desca,
int
*restrict ipiv,
112
double
*restrict work,
const
int
*restrict lwork,
int
*restrict iwork,
113
const
int
*restrict liwork,
int
*restrict info);
114
115
116
117
extern
void
psgesv_(
const
int
*n,
const
int
*nrhs,
float
*restrict a,
118
const
int
*ia,
const
int
*ja,
const
int
*restrict desca,
int
*restrict ipvt,
119
float
*restrict b,
const
int
*ib,
const
int
*jb,
const
int
*restrict descb,
120
int
*info);
121
122
extern
void
pdgesv_(
const
int
*n,
const
int
*nrhs,
double
*restrict a,
123
const
int
*ia,
const
int
*ja,
const
int
*restrict desca,
int
*restrict ipvt,
124
double
*restrict b,
const
int
*ib,
const
int
*jb,
const
int
*restrict descb,
125
int
*info);
126
127
128
129
extern
void
pslacpy_(
const
char
*uplo,
const
int
*m,
const
int
*n,
130
const
float
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
131
float
*restrict b,
const
int
*ib,
const
int
*jb,
const
int
*descb);
132
133
extern
void
pdlacpy_(
const
char
*uplo,
const
int
*m,
const
int
*n,
134
const
double
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
135
double
*restrict b,
const
int
*ib,
const
int
*jb,
const
int
*descb);
136
137
138
139
extern
void
psgeqpf_(
const
int
*m,
const
int
*n,
float
*restrict a,
140
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*restrict ipiv,
141
float
*restrict tau,
float
*restrict work,
const
int
*lwork,
142
int
*info);
143
144
extern
void
pdgeqpf_(
const
int
*m,
const
int
*n,
double
*restrict a,
145
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*restrict ipiv,
146
double
*restrict tau,
double
*restrict work,
const
int
*lwork,
147
int
*info);
148
149
150
151
extern
void
psgeqrf_(
const
int
*m,
const
int
*n,
float
*restrict a,
152
const
int
*ia,
const
int
*ja,
const
int
*desca,
float
*restrict tau,
153
float
*restrict work,
const
int
*lwork,
int
*info);
154
155
extern
void
pdgeqrf_(
const
int
*m,
const
int
*n,
double
*restrict a,
156
const
int
*ia,
const
int
*ja,
const
int
*desca,
double
*restrict tau,
157
double
*restrict work,
const
int
*lwork,
int
*info);
158
159
160
161
extern
void
psormqr_(
const
char
*side,
const
char
*trans,
const
int
*m,
162
const
int
*n,
const
int
*k,
const
float
*restrict a,
const
int
*ia,
163
const
int
*ja,
const
int
*desca,
float
*restrict tau,
float
*restrict c,
164
const
int
*ic,
const
int
*jc,
const
int
*descc,
float
*restrict work,
165
const
int
*lwork,
int
*info);
166
167
extern
void
pdormqr_(
const
char
*side,
const
char
*trans,
const
int
*m,
168
const
int
*n,
const
int
*k,
const
double
*restrict a,
const
int
*ia,
169
const
int
*ja,
const
int
*desca,
double
*restrict tau,
double
*restrict c,
170
const
int
*ic,
const
int
*jc,
const
int
*descc,
double
*restrict work,
171
const
int
*lwork,
int
*info);
172
173
174
175
extern
void
psorgqr_(
const
int
*m,
const
int
*n,
const
int
*k,
176
float
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
177
float
*restrict tau,
float
*restrict work,
const
int
*lwork,
int
*info);
178
179
extern
void
pdorgqr_(
const
int
*m,
const
int
*n,
const
int
*k,
180
double
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
181
double
*restrict tau,
double
*restrict work,
const
int
*lwork,
int
*info);
182
183
184
185
extern
void
psorglq_(
const
int
*m,
const
int
*n,
const
int
*k,
186
float
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
187
float
*restrict tau,
float
*restrict work,
const
int
*lwork,
int
*info);
188
189
extern
void
pdorglq_(
const
int
*m,
const
int
*n,
const
int
*k,
190
double
*restrict a,
const
int
*ia,
const
int
*ja,
const
int
*desca,
191
double
*restrict tau,
double
*restrict work,
const
int
*lwork,
int
*info);
192
193
194
195
extern
void
psgelqf_(
const
int
*m,
const
int
*n,
float
*restrict a,
196
const
int
*ia,
const
int
*ja,
const
int
*desca,
float
*restrict tau,
197
float
*restrict work,
const
int
*lwork,
int
*info);
198
199
extern
void
pdgelqf_(
const
int
*m,
const
int
*n,
double
*restrict a,
200
const
int
*ia,
const
int
*ja,
const
int
*desca,
double
*restrict tau,
201
double
*restrict work,
const
int
*lwork,
int
*info);
202
203
204
205
extern
void
psormlq_(
const
char
*side,
const
char
*trans,
const
int
*m,
206
const
int
*n,
const
int
*k,
const
float
*restrict a,
const
int
*ia,
207
const
int
*ja,
const
int
*desca,
float
*restrict tau,
float
*restrict c,
208
const
int
*ic,
const
int
*jc,
const
int
*descc,
float
*restrict work,
209
const
int
*lwork,
int
*info);
210
211
extern
void
pdormlq_(
const
char
*side,
const
char
*trans,
const
int
*m,
212
const
int
*n,
const
int
*k,
const
double
*restrict a,
const
int
*ia,
213
const
int
*ja,
const
int
*desca,
double
*restrict tau,
double
*restrict c,
214
const
int
*ic,
const
int
*jc,
const
int
*descc,
double
*restrict work,
215
const
int
*lwork,
int
*info);
216
217
218
219
extern
void
pspotrf_(
const
char
*uplo,
const
int
*n,
float
*
const
restrict a,
220
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*info);
221
222
extern
void
pdpotrf_(
const
char
*uplo,
const
int
*n,
double
*
const
restrict a,
223
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*info);
224
225
226
227
extern
void
pslassq_(
const
int
*n,
const
float
*
const
restrict x,
228
const
int
*ix,
const
int
*jx,
const
int
*descx,
const
int
*incx,
float
*scale,
229
float
*sumsq);
230
231
extern
void
pdlassq_(
const
int
*n,
const
double
*
const
restrict x,
232
const
int
*ix,
const
int
*jx,
const
int
*descx,
const
int
*incx,
double
*scale,
233
double
*sumsq);
234
235
236
237
extern
void
psgecon_(
const
char
*norm,
const
int
*n,
238
const
float
*
const
restrict A,
const
int
*ia,
const
int
*ja,
239
const
int
*desca,
const
float
*anorm,
float
*rcond,
float
*work,
240
const
int
*lwork,
int
*iwork,
const
int
*liwork,
int
*info);
241
242
extern
void
pdgecon_(
const
char
*norm,
const
int
*n,
243
const
double
*
const
restrict A,
const
int
*ia,
const
int
*ja,
244
const
int
*desca,
const
double
*anorm,
double
*rcond,
double
*work,
245
const
int
*lwork,
int
*iwork,
const
int
*liwork,
int
*info);
246
247
248
249
extern
void
pstrcon_(
const
char
*norm,
const
char
*uplo,
const
char
*diag,
250
const
int
*n,
const
float
*
const
restrict A,
const
int
*ia,
const
int
*ja,
251
const
int
*desca,
float
*rcond,
float
*work,
const
int
*lwork,
int
*iwork,
252
const
int
*liwork,
int
*info);
253
254
extern
void
pdtrcon_(
const
char
*norm,
const
char
*uplo,
const
char
*diag,
255
const
int
*n,
const
double
*
const
restrict A,
const
int
*ia,
const
int
*ja,
256
const
int
*desca,
double
*rcond,
double
*work,
const
int
*lwork,
int
*iwork,
257
const
int
*liwork,
int
*info);
258
259
260
261
extern
void
pstrtri_(
const
char
*uplo,
const
char
*diag,
const
int
*n,
262
float
*A,
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*info);
263
264
extern
void
pdtrtri_(
const
char
*uplo,
const
char
*diag,
const
int
*n,
265
double
*A,
const
int
*ia,
const
int
*ja,
const
int
*desca,
int
*info);
266
267
268
#ifdef __cplusplus
269
}
270
#endif
271
272
273
#endif
fml
src
fml
mpi
linalg
_scalapack_prototypes.h
Generated by
1.8.17