Newer
Older
/**
*

PRUVOST Florent
committed
* @copyright (c) 2009-2014 The University of Tennessee and The University
* of Tennessee Research Foundation.
* All rights reserved.
* @copyright (c) 2012-2014 Inria. All rights reserved.

PRUVOST Florent
committed
* @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
*
**/
/**
*
* @file core_zblas.h
*
* PLASMA auxiliary routines
* PLASMA is a software package provided by Univ. of Tennessee,
* Univ. of California Berkeley and Univ. of Colorado Denver
*
* @version 2.5.0
* @comment This file has been automatically generated
* from Plasma 2.5.0 for MORSE 1.0.0
* @author Jakub Kurzak
* @author Hatem Ltaief
* @author Azzam Haidar
* @author Mathieu Faverge
* @author Emmanuel Agullo
* @author Cedric Castagnede
* @date 2010-11-15
* @precisions normal z -> c d s
*
**/
#ifndef _MORSE_CORE_ZBLAS_H_
#define _MORSE_CORE_ZBLAS_H_
#define COMPLEX
#ifdef __cplusplus
extern "C" {
#endif
/** ****************************************************************************
* Declarations of serial kernels - alphabetical order
**/
void CORE_dzasum(int storev, MORSE_enum uplo, int M, int N,
const MORSE_Complex64_t *A, int lda, double *work);
void CORE_zbrdalg(MORSE_enum uplo, int N, int NB,
const MORSE_desc_t *pA, MORSE_Complex64_t *C, MORSE_Complex64_t *S,
int i, int j, int m, int grsiz);
int CORE_zgbelr(MORSE_enum uplo, int N,
MORSE_desc_t *A, MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int eltsize);
int CORE_zgbrce(MORSE_enum uplo, int N,
MORSE_desc_t *A, MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int eltsize);
int CORE_zgblrx(MORSE_enum uplo, int N,
MORSE_desc_t *A, MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int eltsize);

PRUVOST Florent
committed
int CORE_zaxpy(int M, MORSE_Complex64_t alpha,
const MORSE_Complex64_t *A, int incA,
MORSE_Complex64_t *B, int incB);
int CORE_zgeadd(MORSE_enum trans, int M, int N,
MORSE_Complex64_t alpha,
const MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *B, int LDB);
int CORE_zlascal( MORSE_enum uplo, int m, int n,
MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int lda );
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
int CORE_zgelqt(int M, int N, int IB,
MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *TAU,
MORSE_Complex64_t *WORK);
void CORE_zgemm(MORSE_enum transA, MORSE_enum transB,
int M, int N, int K,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *B, int LDB,
MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC);
int CORE_zgeqrt(int M, int N, int IB,
MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *TAU, MORSE_Complex64_t *WORK);
int CORE_zgesplit(MORSE_enum side, MORSE_enum diag,
int M, int N,
MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *B, int LDB);
int CORE_zgessm(int M, int N, int K, int IB,
const int *IPIV,
const MORSE_Complex64_t *L, int LDL,
MORSE_Complex64_t *A, int LDA);
int CORE_zgessq(int M, int N,
const MORSE_Complex64_t *A, int LDA,
double *scale, double *sumsq);
int CORE_zgetf2_nopiv(int M, int N,
MORSE_Complex64_t *A, int LDA);
int CORE_zgetrf(int M, int N,
MORSE_Complex64_t *A, int LDA,
int *IPIV, int *INFO);
int CORE_zgetrf_incpiv(int M, int N, int IB,
MORSE_Complex64_t *A, int LDA,
int *IPIV, int *INFO);
int CORE_zgetrf_nopiv(int M, int N, int IB,
MORSE_Complex64_t *A, int LDA,
int *INFO);
int CORE_zgetrf_reclap(int M, int N,
MORSE_Complex64_t *A, int LDA,
int *IPIV, int *info);
int CORE_zgetrf_rectil(const MORSE_desc_t A, int *IPIV, int *info);
void CORE_zgetrip(int m, int n, MORSE_Complex64_t *A,
MORSE_Complex64_t *work);
int CORE_zhbelr(MORSE_enum uplo, int N,
MORSE_desc_t *A, MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int eltsize);
int CORE_zhblrx(MORSE_enum uplo, int N,
MORSE_desc_t *A, MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int eltsize);
int CORE_zhbrce(MORSE_enum uplo, int N,
MORSE_desc_t *A, MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int eltsize);
void CORE_zhbtype1cb(int N, int NB,
MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int sweep, int Vblksiz, int WANTZ,
MORSE_Complex64_t *WORK);
void CORE_zhbtype2cb(int N, int NB,
MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int st, int ed, int sweep, int Vblksiz, int WANTZ,
MORSE_Complex64_t *WORK);
void CORE_zhbtype3cb(int N, int NB,
MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *V, const MORSE_Complex64_t *TAU,
int st, int ed, int sweep, int Vblksiz, int WANTZ,
MORSE_Complex64_t *WORK);
void CORE_zhegst(int itype, MORSE_enum uplo, int N,
MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *B, int LDB, int *INFO);
#ifdef COMPLEX
void CORE_zhemm(MORSE_enum side, MORSE_enum uplo,
int M, int N,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *B, int LDB,
MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC);
void CORE_zherk(MORSE_enum uplo, MORSE_enum trans,
int N, int K,
double alpha, const MORSE_Complex64_t *A, int LDA,
double beta, MORSE_Complex64_t *C, int LDC);
void CORE_zher2k(MORSE_enum uplo, MORSE_enum trans,
int N, int K,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *B, int LDB,
double beta, MORSE_Complex64_t *C, int LDC);
int CORE_zhessq(MORSE_enum uplo, int N,
const MORSE_Complex64_t *A, int LDA,
double *scale, double *sumsq);
#endif
int CORE_zherfb(MORSE_enum uplo, int N, int K, int IB, int NB,
const MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *C, int LDC,
MORSE_Complex64_t *WORK, int LDWORK);
void CORE_zlacpy(MORSE_enum uplo, int M, int N,
const MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *B, int LDB);
void CORE_zlange(int norm, int M, int N,
const MORSE_Complex64_t *A, int LDA,
double *work, double *normA);
#ifdef COMPLEX
void CORE_zlanhe(int norm, MORSE_enum uplo, int N,
const MORSE_Complex64_t *A, int LDA,
double *work, double *normA);
#endif
void CORE_zlansy(int norm, MORSE_enum uplo, int N,
const MORSE_Complex64_t *A, int LDA,
double *work, double *normA);
void CORE_zlantr(int norm, MORSE_enum uplo, MORSE_enum diag, int M, int N,
const MORSE_Complex64_t *A, int LDA,
double *work, double *normA);
int CORE_zlarfb_gemm(MORSE_enum side, MORSE_enum trans, MORSE_enum direct, MORSE_enum storev,
int M, int N, int K,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *C, int LDC,
MORSE_Complex64_t *WORK, int LDWORK);
int CORE_zlarfx2(MORSE_enum side, int N,
MORSE_Complex64_t V,
MORSE_Complex64_t TAU,
MORSE_Complex64_t *C1, int LDC1,
MORSE_Complex64_t *C2, int LDC2);
int CORE_zlarfx2c(MORSE_enum uplo,
MORSE_Complex64_t V,
MORSE_Complex64_t TAU,
MORSE_Complex64_t *C1,
MORSE_Complex64_t *C2,
MORSE_Complex64_t *C3);
int CORE_zlarfx2ce(MORSE_enum uplo,
MORSE_Complex64_t *V,
MORSE_Complex64_t *TAU,
MORSE_Complex64_t *C1,
MORSE_Complex64_t *C2,
MORSE_Complex64_t *C3);
void CORE_zlarfy(int N,
MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *V,
const MORSE_Complex64_t *TAU,
MORSE_Complex64_t *WORK);
void CORE_zlaset(MORSE_enum uplo, int n1, int n2,
MORSE_Complex64_t alpha, MORSE_Complex64_t beta,
MORSE_Complex64_t *tileA, int ldtilea);
void CORE_zlaset2(MORSE_enum uplo, int n1, int n2, MORSE_Complex64_t alpha,
MORSE_Complex64_t *tileA, int ldtilea);
void CORE_zlaswp(int N, MORSE_Complex64_t *A, int LDA,
int I1, int I2, const int *IPIV, int INC);
int CORE_zlaswp_ontile( MORSE_desc_t descA, int i1, int i2, const int *ipiv, int inc);
int CORE_zlaswpc_ontile(MORSE_desc_t descA, int i1, int i2, const int *ipiv, int inc);
int CORE_zlatro(MORSE_enum uplo, MORSE_enum trans,
int M, int N,
const MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *B, int LDB);
void CORE_zlauum(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA);
int CORE_zpamm(int op, MORSE_enum side, MORSE_enum storev,
int M, int N, int K, int L,
const MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
const MORSE_Complex64_t *V, int LDV,
MORSE_Complex64_t *W, int LDW);
int CORE_zparfb(MORSE_enum side, MORSE_enum trans, MORSE_enum direct, MORSE_enum storev,
int M1, int N1, int M2, int N2, int K, int L,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *WORK, int LDWORK);
int CORE_zpemv(MORSE_enum trans, MORSE_enum storev,
int M, int N, int L,
MORSE_Complex64_t ALPHA,
const MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *X, int INCX,
MORSE_Complex64_t BETA,
MORSE_Complex64_t *Y, int INCY,
MORSE_Complex64_t *WORK);
void CORE_zplghe(double bump, int m, int n, MORSE_Complex64_t *A, int lda,
int bigM, int m0, int n0, unsigned long long int seed );
void CORE_zplgsy(MORSE_Complex64_t bump, int m, int n, MORSE_Complex64_t *A, int lda,
int bigM, int m0, int n0, unsigned long long int seed );
void CORE_zplrnt(int m, int n, MORSE_Complex64_t *A, int lda,
int bigM, int m0, int n0, unsigned long long int seed );
void CORE_zpotrf(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, int *INFO);
void CORE_zshift(int s, int m, int n, int L,
MORSE_Complex64_t *A);
void CORE_zshiftw(int s, int cl, int m, int n, int L,
MORSE_Complex64_t *A, MORSE_Complex64_t *W);
int CORE_zssssm(int M1, int N1, int M2, int N2, int K, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
const MORSE_Complex64_t *L1, int LDL1,
const MORSE_Complex64_t *L2, int LDL2,
const int *IPIV);
void CORE_zsymm(MORSE_enum side, MORSE_enum uplo,
int M, int N,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *B, int LDB,
MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC);
void CORE_zsyrk(MORSE_enum uplo, MORSE_enum trans,
int N, int K,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC);
void CORE_zsyr2k(MORSE_enum uplo, MORSE_enum trans,
int N, int K,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
const MORSE_Complex64_t *B, int LDB,
MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC);
int CORE_zsyssq(MORSE_enum uplo, int N,
const MORSE_Complex64_t *A, int LDA,
double *scale, double *sumsq);
int CORE_zsytf2_nopiv(MORSE_enum uplo, int n, MORSE_Complex64_t *A, int lda);
void CORE_zswpab(int i, int n1, int n2,
MORSE_Complex64_t *A, MORSE_Complex64_t *work);
int CORE_zswptr_ontile(MORSE_desc_t descA, int i1, int i2, const int *ipiv, int inc,
const MORSE_Complex64_t *Akk, int ldak);
int CORE_ztradd(MORSE_enum uplo, MORSE_enum trans, int M, int N,
MORSE_Complex64_t alpha,
const MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t beta,
MORSE_Complex64_t *B, int LDB);

Mathieu Faverge
committed
void CORE_ztrasm(MORSE_enum storev, MORSE_enum uplo, MORSE_enum diag,
int M, int N,
const MORSE_Complex64_t *A, int lda, double *work);
void CORE_ztrdalg(MORSE_enum uplo, int N, int NB,
const MORSE_desc_t *pA, MORSE_Complex64_t *V, MORSE_Complex64_t *TAU,
int i, int j, int m, int grsiz);
void CORE_ztrmm(MORSE_enum side, MORSE_enum uplo,
MORSE_enum transA, MORSE_enum diag,
int M, int N,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *B, int LDB);
void CORE_ztrsm(MORSE_enum side, MORSE_enum uplo,
MORSE_enum transA, MORSE_enum diag,
int M, int N,
MORSE_Complex64_t alpha, const MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *B, int LDB);

Mathieu Faverge
committed
int CORE_ztrssq(MORSE_enum uplo, MORSE_enum diag, int M, int N,
const MORSE_Complex64_t *A, int LDA,
double *scale, double *sumsq);
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
void CORE_ztrtri(MORSE_enum uplo, MORSE_enum diag, int N,
MORSE_Complex64_t *A, int LDA, int *info);
int CORE_ztslqt(int M, int N, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *TAU, MORSE_Complex64_t *WORK);
int CORE_ztsmlq(MORSE_enum side, MORSE_enum trans,
int M1, int N1, int M2, int N2, int K, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *WORK, int LDWORK);
int CORE_ztsmlq_corner( int m1, int n1, int m2, int n2, int m3, int n3,
int k, int ib, int nb,
MORSE_Complex64_t *A1, int lda1,
MORSE_Complex64_t *A2, int lda2,
MORSE_Complex64_t *A3, int lda3,
const MORSE_Complex64_t *V, int ldv,
const MORSE_Complex64_t *T, int ldt,
MORSE_Complex64_t *WORK, int ldwork);
int CORE_ztsmlq_hetra1( MORSE_enum side, MORSE_enum trans,
int m1, int n1, int m2, int n2,
int k, int ib,
MORSE_Complex64_t *A1, int lda1,
MORSE_Complex64_t *A2, int lda2,
const MORSE_Complex64_t *V, int ldv,
const MORSE_Complex64_t *T, int ldt,
MORSE_Complex64_t *WORK, int ldwork);
int CORE_ztsmqr(MORSE_enum side, MORSE_enum trans,
int M1, int N1, int M2, int N2, int K, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *WORK, int LDWORK);
int CORE_ztsmqr_corner( int m1, int n1, int m2, int n2, int m3, int n3,
int k, int ib, int nb,
MORSE_Complex64_t *A1, int lda1,
MORSE_Complex64_t *A2, int lda2,
MORSE_Complex64_t *A3, int lda3,
const MORSE_Complex64_t *V, int ldv,
const MORSE_Complex64_t *T, int ldt,
MORSE_Complex64_t *WORK, int ldwork);
int CORE_ztsmqr_hetra1( MORSE_enum side, MORSE_enum trans,
int m1, int n1, int m2, int n2,
int k, int ib,
MORSE_Complex64_t *A1, int lda1,
MORSE_Complex64_t *A2, int lda2,
const MORSE_Complex64_t *V, int ldv,
const MORSE_Complex64_t *T, int ldt,
MORSE_Complex64_t *WORK, int ldwork);
int CORE_ztsqrt(int M, int N, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *TAU, MORSE_Complex64_t *WORK);
int CORE_ztstrf(int M, int N, int IB, int NB,
MORSE_Complex64_t *U, int LDU,
MORSE_Complex64_t *A, int LDA,
MORSE_Complex64_t *L, int LDL,
int *IPIV, MORSE_Complex64_t *WORK,
int LDWORK, int *INFO);
int CORE_zttmqr(MORSE_enum side, MORSE_enum trans,
int M1, int N1, int M2, int N2, int K, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *WORK, int LDWORK);
int CORE_zttqrt(int M, int N, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *TAU,
MORSE_Complex64_t *WORK);
int CORE_zttmlq(MORSE_enum side, MORSE_enum trans,
int M1, int N1, int M2, int N2, int K, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *WORK, int LDWORK);
int CORE_zttlqt(int M, int N, int IB,
MORSE_Complex64_t *A1, int LDA1,
MORSE_Complex64_t *A2, int LDA2,
MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *TAU,
MORSE_Complex64_t *WORK);
int CORE_zunmlq(MORSE_enum side, MORSE_enum trans,
int M, int N, int IB, int K,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *C, int LDC,
MORSE_Complex64_t *WORK, int LDWORK);
int CORE_zunmqr(MORSE_enum side, MORSE_enum trans,
int M, int N, int K, int IB,
const MORSE_Complex64_t *V, int LDV,
const MORSE_Complex64_t *T, int LDT,
MORSE_Complex64_t *C, int LDC,
MORSE_Complex64_t *WORK, int LDWORK);
#ifdef __cplusplus
}
#endif
#undef COMPLEX
#endif