MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magma_z.h
Go to the documentation of this file.
1 /*
2  * -- MAGMA (version 1.2.0) --
3  * Univ. of Tennessee, Knoxville
4  * Univ. of California, Berkeley
5  * Univ. of Colorado, Denver
6  * May 2012
7  *
8  * @precisions normal z -> s d c
9  */
10 
11 #ifndef _MAGMA_Z_H_
12 #define _MAGMA_Z_H_
13 #define PRECISION_z
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /* ////////////////////////////////////////////////////////////////////////////
20  -- MAGMA function definitions / Data on CPU
21 */
22 magma_int_t magma_zgebrd( magma_int_t m, magma_int_t n, cuDoubleComplex *A,
23  magma_int_t lda, double *d, double *e,
24  cuDoubleComplex *tauq, cuDoubleComplex *taup,
25  cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info);
27  cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau,
28  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
30  cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau,
31  cuDoubleComplex *work, magma_int_t lwork,
32  cuDoubleComplex *d_T, magma_int_t *info);
34  cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau,
35  cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info);
37  cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *tau,
38  cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info);
39 magma_int_t magma_zgeqrf( magma_int_t m, magma_int_t n, cuDoubleComplex *A,
40  magma_int_t lda, cuDoubleComplex *tau, cuDoubleComplex *work,
41  magma_int_t lwork, magma_int_t *info);
42 magma_int_t magma_zgeqrf_ooc( magma_int_t m, magma_int_t n, cuDoubleComplex *A,
43  magma_int_t lda, cuDoubleComplex *tau, cuDoubleComplex *work,
44  magma_int_t lwork, magma_int_t *info);
46  cuDoubleComplex *A, magma_int_t lda, magma_int_t *ipiv,
47  cuDoubleComplex *B, magma_int_t ldb, magma_int_t *info);
48 magma_int_t magma_zgetrf( magma_int_t m, magma_int_t n, cuDoubleComplex *A,
49  magma_int_t lda, magma_int_t *ipiv,
50  magma_int_t *info);
51 magma_int_t magma_zgetrf_mc( magma_context *cntxt, magma_int_t *m, magma_int_t *n, cuDoubleComplex *A,
52  magma_int_t *lda, magma_int_t *ipiv, magma_int_t *info);
54  cuDoubleComplex *A, magma_int_t *lda,
55  cuDoubleComplex *tau, cuDoubleComplex *work,
56  magma_int_t *lwork, magma_int_t *info);
57 magma_int_t magma_zgetrf2(magma_int_t m, magma_int_t n, cuDoubleComplex *a,
58  magma_int_t lda, magma_int_t *ipiv, magma_int_t *info);
59 magma_int_t magma_zlatrd( char uplo, magma_int_t n, magma_int_t nb, cuDoubleComplex *a,
60  magma_int_t lda, double *e, cuDoubleComplex *tau,
61  cuDoubleComplex *w, magma_int_t ldw,
62  cuDoubleComplex *da, magma_int_t ldda,
63  cuDoubleComplex *dw, magma_int_t lddw);
65  cuDoubleComplex *a, magma_int_t lda,
66  double *e, cuDoubleComplex *tau,
67  cuDoubleComplex *w, magma_int_t ldw,
68  cuDoubleComplex *da, magma_int_t ldda,
69  cuDoubleComplex *dw, magma_int_t lddw,
70  cuDoubleComplex *dwork, magma_int_t ldwork);
72  cuDoubleComplex *da, cuDoubleComplex *dv, cuDoubleComplex *a,
73  magma_int_t lda, cuDoubleComplex *tau, cuDoubleComplex *t,
74  magma_int_t ldt, cuDoubleComplex *y, magma_int_t ldy);
76  cuDoubleComplex *a, magma_int_t lda,
77  cuDoubleComplex *da, cuDoubleComplex *y,
78  cuDoubleComplex *v, cuDoubleComplex *t,
79  cuDoubleComplex *dwork);
80 magma_int_t magma_zposv ( char uplo, magma_int_t n, magma_int_t nrhs,
81  cuDoubleComplex *A, magma_int_t lda,
82  cuDoubleComplex *B, magma_int_t ldb, magma_int_t *info);
83 magma_int_t magma_zpotrf( char uplo, magma_int_t n, cuDoubleComplex *A,
84  magma_int_t lda, magma_int_t *info);
85 magma_int_t magma_zpotrf_mc( magma_context *cntxt, char *uplo, magma_int_t *n, cuDoubleComplex *A,
86  magma_int_t *lda, magma_int_t *info);
87 magma_int_t magma_zpotri( char uplo, magma_int_t n, cuDoubleComplex *A,
88  magma_int_t lda, magma_int_t *info);
89 magma_int_t magma_zlauum( char uplo, magma_int_t n, cuDoubleComplex *A,
90  magma_int_t lda, magma_int_t *info);
91 magma_int_t magma_ztrtri( char uplo, char diag, magma_int_t n, cuDoubleComplex *A,
92  magma_int_t lda, magma_int_t *info);
93 magma_int_t magma_zhetrd( char uplo, magma_int_t n, cuDoubleComplex *A,
94  magma_int_t lda, double *d, double *e,
95  cuDoubleComplex *tau, cuDoubleComplex *work, magma_int_t lwork,
96  magma_int_t *info);
98  cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *tau,
99  cuDoubleComplex *work, magma_int_t lwork,
100  magma_int_t *info);
102  cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *tau,
103  cuDoubleComplex *work, magma_int_t lwork,
104  magma_int_t *info);
106  cuDoubleComplex *a, magma_int_t lda,
107  cuDoubleComplex *tau, cuDoubleComplex *dwork,
108  magma_int_t nb, magma_int_t *info );
109 magma_int_t magma_zunmql( const char side, const char trans,
111  cuDoubleComplex *a, magma_int_t lda,
112  cuDoubleComplex *tau,
113  cuDoubleComplex *c, magma_int_t ldc,
114  cuDoubleComplex *work, magma_int_t lwork,
115  magma_int_t *info);
116 magma_int_t magma_zunmqr( char side, char trans,
118  cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *tau,
119  cuDoubleComplex *c, magma_int_t ldc,
120  cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info);
121 magma_int_t magma_zunmtr( char side, char uplo, char trans,
123  cuDoubleComplex *a, magma_int_t lda,
124  cuDoubleComplex *tau,
125  cuDoubleComplex *c, magma_int_t ldc,
126  cuDoubleComplex *work, magma_int_t lwork,
127  magma_int_t *info);
129  cuDoubleComplex *a, magma_int_t lda,
130  cuDoubleComplex *tau,
131  cuDoubleComplex *dT, magma_int_t nb,
132  magma_int_t *info);
133 magma_int_t magma_zheev( char jobz, char uplo, magma_int_t n,
134  cuDoubleComplex *a, magma_int_t lda, double *w,
135  cuDoubleComplex *work, magma_int_t lwork,
136  double *rwork, magma_int_t *info);
137 #if defined(PRECISION_z) || defined(PRECISION_c)
138 magma_int_t magma_zgeev( char jobvl, char jobvr, magma_int_t n,
139  cuDoubleComplex *a, magma_int_t lda,
140  cuDoubleComplex *w,
141  cuDoubleComplex *vl, magma_int_t ldvl,
142  cuDoubleComplex *vr, magma_int_t ldvr,
143  cuDoubleComplex *work, magma_int_t lwork,
144  double *rwork, magma_int_t *info);
145 magma_int_t magma_zgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n,
146  cuDoubleComplex *a, magma_int_t lda, double *s,
147  cuDoubleComplex *u, magma_int_t ldu,
148  cuDoubleComplex *vt, magma_int_t ldvt,
149  cuDoubleComplex *work, magma_int_t lwork,
150  double *rwork, magma_int_t *info );
151 magma_int_t magma_zheevd( char jobz, char uplo, magma_int_t n,
152  cuDoubleComplex *a, magma_int_t lda, double *w,
153  cuDoubleComplex *work, magma_int_t lwork,
154  double *rwork, magma_int_t lrwork,
155  magma_int_t *iwork, magma_int_t liwork, magma_int_t *info);
156 magma_int_t magma_zhegvd( magma_int_t itype, char jobz, char uplo, magma_int_t n,
157  cuDoubleComplex *a, magma_int_t lda,
158  cuDoubleComplex *b, magma_int_t ldb,
159  double *w, cuDoubleComplex *work, magma_int_t lwork,
160  double *rwork, magma_int_t lrwork, magma_int_t *iwork,
161  magma_int_t liwork, magma_int_t *info);
162 #else
163 magma_int_t magma_zgeev( char jobvl, char jobvr, magma_int_t n,
164  cuDoubleComplex *a, magma_int_t lda,
165  cuDoubleComplex *wr, cuDoubleComplex *wi,
166  cuDoubleComplex *vl, magma_int_t ldvl,
167  cuDoubleComplex *vr, magma_int_t ldvr,
168  cuDoubleComplex *work, magma_int_t lwork,
169  magma_int_t *info);
170 magma_int_t magma_zgesvd( char jobu, char jobvt, magma_int_t m, magma_int_t n,
171  cuDoubleComplex *a, magma_int_t lda, double *s,
172  cuDoubleComplex *u, magma_int_t ldu,
173  cuDoubleComplex *vt, magma_int_t ldvt,
174  cuDoubleComplex *work, magma_int_t lwork,
175  magma_int_t *info );
176 magma_int_t magma_zheevd( char jobz, char uplo, magma_int_t n,
177  cuDoubleComplex *a, magma_int_t lda, double *w,
178  cuDoubleComplex *work, magma_int_t lwork,
179  magma_int_t *iwork, magma_int_t liwork, magma_int_t *info);
180 magma_int_t magma_zhegvd( magma_int_t itype, char jobz, char uplo, magma_int_t n,
181  cuDoubleComplex *a, magma_int_t lda,
182  cuDoubleComplex *b, magma_int_t ldb,
183  double *w, cuDoubleComplex *work, magma_int_t lwork,
184  magma_int_t *iwork, magma_int_t liwork, magma_int_t *info);
185 #endif
186 
187 magma_int_t magma_zhegst( magma_int_t itype, char uplo, magma_int_t n,
188  cuDoubleComplex *a, magma_int_t lda,
189  cuDoubleComplex *b, magma_int_t ldb, magma_int_t *info);
190 
191 /* ////////////////////////////////////////////////////////////////////////////
192  -- MAGMA function definitions / Data on GPU
193 */
195  cuDoubleComplex *dA, magma_int_t ldda,
196  cuDoubleComplex *dB, magma_int_t lddb,
197  cuDoubleComplex *hwork, magma_int_t lwork,
198  magma_int_t *info);
200  cuDoubleComplex *dA, magma_int_t ldda,
201  cuDoubleComplex *dB, magma_int_t lddb,
202  cuDoubleComplex *hwork, magma_int_t lwork,
203  magma_int_t *info);
205  cuDoubleComplex *dA, magma_int_t ldda, cuDoubleComplex *tau,
206  cuDoubleComplex *work, magma_int_t lwork, magma_int_t *info);
208  cuDoubleComplex *dA, magma_int_t ldda,
209  cuDoubleComplex *tau, cuDoubleComplex *dT,
210  magma_int_t *info);
212  cuDoubleComplex *dA, magma_int_t ldda,
213  cuDoubleComplex *tau, magma_int_t *info);
215  cuDoubleComplex *dA, magma_int_t ldda,
216  cuDoubleComplex *tau, cuDoubleComplex *dT,
217  magma_int_t *info);
219  cuDoubleComplex *dA, magma_int_t ldda,
220  cuDoubleComplex *tau, cuDoubleComplex *dT,
221  cuDoubleComplex *dB, magma_int_t lddb,
222  cuDoubleComplex *hwork, magma_int_t lhwork,
223  magma_int_t *info);
225  cuDoubleComplex *dA, magma_int_t ldda,
226  cuDoubleComplex *tau, cuDoubleComplex *dT,
227  cuDoubleComplex *dB, magma_int_t lddb,
228  cuDoubleComplex *hwork, magma_int_t lhwork,
229  magma_int_t *info);
231  magma_int_t *ipiv,
232  cuDoubleComplex *dL1, magma_int_t lddl1,
233  cuDoubleComplex *dL, magma_int_t lddl,
234  cuDoubleComplex *dA, magma_int_t ldda,
235  magma_int_t *info);
237  cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *ipiv,
238  cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info);
240  cuDoubleComplex *hA, magma_int_t ldha, cuDoubleComplex *dA, magma_int_t ldda,
241  cuDoubleComplex *hL, magma_int_t ldhl, cuDoubleComplex *dL, magma_int_t lddl,
242  magma_int_t *ipiv,
243  cuDoubleComplex *dwork, magma_int_t lddwork,
244  magma_int_t *info);
246  cuDoubleComplex *dA, magma_int_t ldda,
247  magma_int_t *ipiv, magma_int_t *info);
250  cuDoubleComplex *dA, magma_int_t ldda,
251  magma_int_t *info);
253  cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *ipiv,
254  cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info);
256  cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *da, magma_int_t ldda,
257  double *d, double *e, cuDoubleComplex *tauq, cuDoubleComplex *taup,
258  cuDoubleComplex *x, magma_int_t ldx, cuDoubleComplex *dx, magma_int_t lddx,
259  cuDoubleComplex *y, magma_int_t ldy, cuDoubleComplex *dy, magma_int_t lddy);
260 magma_int_t magma_zlarfb_gpu( char side, char trans, char direct, char storev,
262  cuDoubleComplex *dv, magma_int_t ldv, cuDoubleComplex *dt, magma_int_t ldt,
263  cuDoubleComplex *dc, magma_int_t ldc, cuDoubleComplex *dowrk, magma_int_t ldwork );
265  cuDoubleComplex *dA, magma_int_t ldda,
266  cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info);
268  cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info);
270  cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info);
272  cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info);
273 magma_int_t magma_ztrtri_gpu( char uplo, char diag, magma_int_t n,
274  cuDoubleComplex *dA, magma_int_t ldda, magma_int_t *info);
276  cuDoubleComplex *da, magma_int_t ldda,
277  double *d, double *e, cuDoubleComplex *tau,
278  cuDoubleComplex *wa, magma_int_t ldwa,
279  cuDoubleComplex *work, magma_int_t lwork,
280  magma_int_t *info);
282  cuDoubleComplex *da, magma_int_t ldda,
283  double *d, double *e, cuDoubleComplex *tau,
284  cuDoubleComplex *wa, magma_int_t ldwa,
285  cuDoubleComplex *work, magma_int_t lwork,
286  cuDoubleComplex *dwork, magma_int_t ldwork,
287  magma_int_t *info);
289  cuDoubleComplex *dA, magma_int_t ldda,
290  cuDoubleComplex *dB, magma_int_t lddb, magma_int_t *info);
293  cuDoubleComplex *dA1, magma_int_t ldda1,
294  cuDoubleComplex *dA2, magma_int_t ldda2,
295  cuDoubleComplex *dL1, magma_int_t lddl1,
296  cuDoubleComplex *dL2, magma_int_t lddl2,
297  magma_int_t *IPIV, magma_int_t *info);
299  cuDoubleComplex *hU, magma_int_t ldhu, cuDoubleComplex *dU, magma_int_t lddu,
300  cuDoubleComplex *hA, magma_int_t ldha, cuDoubleComplex *dA, magma_int_t ldda,
301  cuDoubleComplex *hL, magma_int_t ldhl, cuDoubleComplex *dL, magma_int_t lddl,
302  magma_int_t *ipiv,
303  cuDoubleComplex *hwork, magma_int_t ldhwork,
304  cuDoubleComplex *dwork, magma_int_t lddwork,
305  magma_int_t *info);
307  cuDoubleComplex *da, magma_int_t ldda,
308  cuDoubleComplex *tau, cuDoubleComplex *dwork,
309  magma_int_t nb, magma_int_t *info );
310 magma_int_t magma_zunmql2_gpu(const char side, const char trans,
312  cuDoubleComplex *da, magma_int_t ldda,
313  cuDoubleComplex *tau,
314  cuDoubleComplex *dc, magma_int_t lddc,
315  cuDoubleComplex *wa, magma_int_t ldwa,
316  magma_int_t *info);
317 magma_int_t magma_zunmqr_gpu( char side, char trans,
319  cuDoubleComplex *a, magma_int_t lda, cuDoubleComplex *tau,
320  cuDoubleComplex *c, magma_int_t ldc,
321  cuDoubleComplex *work, magma_int_t lwork,
322  cuDoubleComplex *td, magma_int_t nb, magma_int_t *info);
323 magma_int_t magma_zunmqr2_gpu(const char side, const char trans,
325  cuDoubleComplex *da, magma_int_t ldda,
326  cuDoubleComplex *tau,
327  cuDoubleComplex *dc, magma_int_t lddc,
328  cuDoubleComplex *wa, magma_int_t ldwa,
329  magma_int_t *info);
330 magma_int_t magma_zunmtr_gpu( char side, char uplo, char trans,
332  cuDoubleComplex *da, magma_int_t ldda,
333  cuDoubleComplex *tau,
334  cuDoubleComplex *dc, magma_int_t lddc,
335  cuDoubleComplex *wa, magma_int_t ldwa,
336  magma_int_t *info);
337 
338 #if defined(PRECISION_z) || defined(PRECISION_c)
339 magma_int_t magma_zheevd_gpu( char jobz, char uplo,
340  magma_int_t n,
341  cuDoubleComplex *da, magma_int_t ldda,
342  double *w,
343  cuDoubleComplex *wa, magma_int_t ldwa,
344  cuDoubleComplex *work, magma_int_t lwork,
345  double *rwork, magma_int_t lrwork,
346  magma_int_t *iwork, magma_int_t liwork,
347  magma_int_t *info);
348 #else
349 magma_int_t magma_zheevd_gpu( char jobz, char uplo,
350  magma_int_t n,
351  cuDoubleComplex *da, magma_int_t ldda,
352  cuDoubleComplex *w,
353  cuDoubleComplex *wa, magma_int_t ldwa,
354  cuDoubleComplex *work, magma_int_t lwork,
355  magma_int_t *iwork, magma_int_t liwork,
356  magma_int_t *info);
357 #endif
358 
360  cuDoubleComplex *da, magma_int_t ldda,
361  cuDoubleComplex *db, magma_int_t lddb, magma_int_t *info);
362 
363 
364 #ifdef __cplusplus
365 }
366 #endif
367 
368 #undef PRECISION_z
369 #endif /* _MAGMA_Z_H_ */
370