MAGMA  magma-1.4.0
Matrix Algebra on GPU and Multicore Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magma_zlapack.h
Go to the documentation of this file.
1 /*
2  * -- MAGMA (version 1.4.0) --
3  * Univ. of Tennessee, Knoxville
4  * Univ. of California, Berkeley
5  * Univ. of Colorado, Denver
6  * August 2013
7  *
8  * @precisions normal z -> s d c
9  */
10 
11 #ifndef MAGMA_ZLAPACK_H
12 #define MAGMA_ZLAPACK_H
13 
14 #define PRECISION_z
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /* ////////////////////////////////////////////////////////////////////////////
20  -- LAPACK Externs used in MAGMA
21 */
22 
23 #define blasf77_zaxpy FORTRAN_NAME( zaxpy, ZAXPY )
24 #define blasf77_zcopy FORTRAN_NAME( zcopy, ZCOPY )
25 
26 /* complex versions use C wrapper to return value; no name mangling. */
27 #if defined(PRECISION_z) || defined(PRECISION_c)
28 #define blasf77_zdotc zdotc
29 #else
30 #define blasf77_zdotc FORTRAN_NAME( zdotc, ZDOTC )
31 #endif
32 
33 #define blasf77_zgemm FORTRAN_NAME( zgemm, ZGEMM )
34 #define blasf77_zgemv FORTRAN_NAME( zgemv, ZGEMV )
35 #define blasf77_zhemm FORTRAN_NAME( zhemm, ZHEMM )
36 #define blasf77_zhemv FORTRAN_NAME( zhemv, ZHEMV )
37 #define blasf77_zher2k FORTRAN_NAME( zher2k, ZHER2K )
38 #define blasf77_zherk FORTRAN_NAME( zherk, ZHERK )
39 #define blasf77_zscal FORTRAN_NAME( zscal, ZSCAL )
40 #define blasf77_zdscal FORTRAN_NAME( zdscal, ZDSCAL )
41 #define blasf77_zsymm FORTRAN_NAME( zsymm, ZSYMM )
42 #define blasf77_zsyr2k FORTRAN_NAME( zsyr2k, ZSYR2K )
43 #define blasf77_zsyrk FORTRAN_NAME( zsyrk, ZSYRK )
44 #define blasf77_zswap FORTRAN_NAME( zswap, ZSWAP )
45 #define blasf77_ztrmm FORTRAN_NAME( ztrmm, ZTRMM )
46 #define blasf77_ztrmv FORTRAN_NAME( ztrmv, ZTRMV )
47 #define blasf77_ztrsm FORTRAN_NAME( ztrsm, ZTRSM )
48 #define blasf77_ztrsv FORTRAN_NAME( ztrsv, ZTRSV )
49 #define blasf77_zgeru FORTRAN_NAME( zgeru, ZGERU )
50 
51 #define lapackf77_zbdsqr FORTRAN_NAME( zbdsqr, ZBDSQR )
52 #define lapackf77_zgebak FORTRAN_NAME( zgebak, ZGEBAK )
53 #define lapackf77_zgebal FORTRAN_NAME( zgebal, ZGEBAL )
54 #define lapackf77_zgebd2 FORTRAN_NAME( zgebd2, ZGEBD2 )
55 #define lapackf77_zgebrd FORTRAN_NAME( zgebrd, ZGEBRD )
56 #define lapackf77_zgeev FORTRAN_NAME( zgeev, ZGEEV )
57 #define lapackf77_zgehd2 FORTRAN_NAME( zgehd2, ZGEHD2 )
58 #define lapackf77_zgehrd FORTRAN_NAME( zgehrd, ZGEHRD )
59 #define lapackf77_zgelqf FORTRAN_NAME( zgelqf, ZGELQF )
60 #define lapackf77_zgels FORTRAN_NAME( zgels, ZGELS )
61 #define lapackf77_zgeqlf FORTRAN_NAME( zgeqlf, ZGEQLF )
62 #define lapackf77_zgeqrf FORTRAN_NAME( zgeqrf, ZGEQRF )
63 #define lapackf77_zgesvd FORTRAN_NAME( zgesvd, ZGESVD )
64 #define lapackf77_zgetrf FORTRAN_NAME( zgetrf, ZGETRF )
65 #define lapackf77_zgetrs FORTRAN_NAME( zgetrs, ZGETRS )
66 #define lapackf77_zheev FORTRAN_NAME( zheev, ZHEEV )
67 #define lapackf77_zheevd FORTRAN_NAME( zheevd, ZHEEVD )
68 #define lapackf77_zhegs2 FORTRAN_NAME( zhegs2, ZHEGS2 )
69 #define lapackf77_zhegvd FORTRAN_NAME( zhegvd, ZHEGVD )
70 #define lapackf77_zhetd2 FORTRAN_NAME( zhetd2, ZHETD2 )
71 #define lapackf77_zhetrd FORTRAN_NAME( zhetrd, ZHETRD )
72 #define lapackf77_zhseqr FORTRAN_NAME( zhseqr, ZHSEQR )
73 #define lapackf77_zlacpy FORTRAN_NAME( zlacpy, ZLACPY )
74 #define lapackf77_zlacgv FORTRAN_NAME( zlacgv, ZLACGV )
75 #define lapackf77_zlange FORTRAN_NAME( zlange, ZLANGE )
76 #define lapackf77_zlanhe FORTRAN_NAME( zlanhe, ZLANHE )
77 #define lapackf77_zlansy FORTRAN_NAME( zlansy, ZLANSY )
78 #define lapackf77_zlarfb FORTRAN_NAME( zlarfb, ZLARFB )
79 #define lapackf77_zlarfg FORTRAN_NAME( zlarfg, ZLARFG )
80 #define lapackf77_zlarft FORTRAN_NAME( zlarft, ZLARFT )
81 #define lapackf77_zlarnv FORTRAN_NAME( zlarnv, ZLARNV )
82 #define lapackf77_zlartg FORTRAN_NAME( zlartg, ZLARTG )
83 #define lapackf77_zlascl FORTRAN_NAME( zlascl, ZLASCL )
84 #define lapackf77_zlaset FORTRAN_NAME( zlaset, ZLASET )
85 #define lapackf77_zlaswp FORTRAN_NAME( zlaswp, ZLASWP )
86 #define lapackf77_zlatrd FORTRAN_NAME( zlatrd, ZLATRD )
87 #define lapackf77_zlabrd FORTRAN_NAME( zlabrd, ZLABRD )
88 #define lapackf77_zlauum FORTRAN_NAME( zlauum, ZLAUUM )
89 #define lapackf77_zpotrf FORTRAN_NAME( zpotrf, ZPOTRF )
90 #define lapackf77_zpotrs FORTRAN_NAME( zpotrs, ZPOTRS )
91 #define lapackf77_zpotri FORTRAN_NAME( zpotri, ZPOTRI )
92 #define lapackf77_ztrevc FORTRAN_NAME( ztrevc, ZTREVC )
93 #define lapackf77_ztrtri FORTRAN_NAME( ztrtri, ZTRTRI )
94 #define lapackf77_zsteqr FORTRAN_NAME( zsteqr, ZSTEQR )
95 #define lapackf77_zstedc FORTRAN_NAME( zstedc, ZSTEDC )
96 #define lapackf77_zsymv FORTRAN_NAME( zsymv, ZSYMV )
97 #define lapackf77_zung2r FORTRAN_NAME( zung2r, ZUNG2R )
98 #define lapackf77_zungbr FORTRAN_NAME( zungbr, ZUNGBR )
99 #define lapackf77_zunghr FORTRAN_NAME( zunghr, ZUNGHR )
100 #define lapackf77_zunglq FORTRAN_NAME( zunglq, ZUNGLQ )
101 #define lapackf77_zungqr FORTRAN_NAME( zungqr, ZUNGQR )
102 #define lapackf77_zungtr FORTRAN_NAME( zungtr, ZUNGTR )
103 #define lapackf77_zunm2r FORTRAN_NAME( zunm2r, ZUNM2R )
104 #define lapackf77_zunmbr FORTRAN_NAME( zunmbr, ZUNMBR )
105 #define lapackf77_zunmlq FORTRAN_NAME( zunmlq, ZUNMLQ )
106 #define lapackf77_zunmql FORTRAN_NAME( zunmql, ZUNMQL )
107 #define lapackf77_zunmqr FORTRAN_NAME( zunmqr, ZUNMQR )
108 #define lapackf77_zunmtr FORTRAN_NAME( zunmtr, ZUNMTR )
109 
110 /* testing functions */
111 #define lapackf77_zbdt01 FORTRAN_NAME( zbdt01, ZBDT01 )
112 #define lapackf77_zget22 FORTRAN_NAME( zget22, ZGET22 )
113 #define lapackf77_zhet21 FORTRAN_NAME( zhet21, ZHET21 )
114 #define lapackf77_zhst01 FORTRAN_NAME( zhst01, ZHST01 )
115 #define lapackf77_zqrt02 FORTRAN_NAME( zqrt02, ZQRT02 )
116 #define lapackf77_zunt01 FORTRAN_NAME( zunt01, ZUNT01 )
117 #define lapackf77_zlarfy FORTRAN_NAME( zlarfy, ZLARFY )
118 #define lapackf77_zstt21 FORTRAN_NAME( zstt21, ZSTT21 )
119 
120 
121 #if defined(PRECISION_z) || defined(PRECISION_c)
122 #define DWORKFORZ double *rwork,
123 #define DWORKFORZ_AND_LD double *rwork, magma_int_t *ldrwork,
124 #define WSPLIT cuDoubleComplex *w
125 #else
126 #define DWORKFORZ
127 #define DWORKFORZ_AND_LD
128 #define WSPLIT double *wr, double *wi
129 #endif
130 
131  /*
132  * BLAS functions (Alphabetical order)
133  */
134 void blasf77_zaxpy(const int *, cuDoubleComplex *, cuDoubleComplex *,
135  const int *, cuDoubleComplex *, const int *);
136 void blasf77_zcopy(const int *, cuDoubleComplex *, const int *,
137  cuDoubleComplex *, const int *);
138 #if defined(PRECISION_z) || defined(PRECISION_c)
139 void blasf77_zdotc(cuDoubleComplex *, int *, cuDoubleComplex *, int *,
140  cuDoubleComplex *, int *);
141 #endif
142 void blasf77_zgemm(const char *, const char *, const int *, const int *, const int *,
143  cuDoubleComplex *, cuDoubleComplex *, const int *,
144  cuDoubleComplex *, const int *, cuDoubleComplex *,
145  cuDoubleComplex *, const int *);
146 void blasf77_zgemv(const char *, const int *, const int *, cuDoubleComplex *,
147  cuDoubleComplex *, const int *, cuDoubleComplex *, const int *,
148  cuDoubleComplex *, cuDoubleComplex *, const int *);
149 void blasf77_zgeru(int *, int *, cuDoubleComplex *, cuDoubleComplex *, int *,
150  cuDoubleComplex *, int *, cuDoubleComplex *, int *);
151 void blasf77_zhemm(const char *, const char *, const int *, const int *,
152  cuDoubleComplex *, cuDoubleComplex *, const int *,
153  cuDoubleComplex *, const int *, cuDoubleComplex *,
154  cuDoubleComplex *, const int *);
155 void blasf77_zhemv(const char *, const int *, cuDoubleComplex *, cuDoubleComplex *,
156  const int *, cuDoubleComplex *, const int *, cuDoubleComplex *,
157  cuDoubleComplex *, const int *);
158 void blasf77_zher2k(const char *, const char *, const int *, const int *,
159  cuDoubleComplex *, cuDoubleComplex *, const int *,
160  cuDoubleComplex *, const int *, double *,
161  cuDoubleComplex *, const int *);
162 void blasf77_zherk( const char *, const char *, const int *, const int *, double *,
163  cuDoubleComplex *, const int *, double *, cuDoubleComplex *,
164  const int *);
165 void blasf77_zscal( const int *, cuDoubleComplex *, cuDoubleComplex *, const int *);
166 #if defined(PRECISION_z) || defined(PRECISION_c)
167 void blasf77_zdscal( const int *, double *, cuDoubleComplex *, const int *);
168 #endif
169 void blasf77_zsymm( const char *, const char *, const int *, const int *,
170  cuDoubleComplex *, cuDoubleComplex *, const int *,
171  cuDoubleComplex *, const int *, cuDoubleComplex *,
172  cuDoubleComplex *, const int *);
173 void blasf77_zsyr2k(const char *, const char *, const int *, const int *,
174  cuDoubleComplex *, cuDoubleComplex *, const int *,
175  cuDoubleComplex *, const int *, cuDoubleComplex *,
176  cuDoubleComplex *, const int *);
177 void blasf77_zsyrk( const char *, const char *, const int *, const int *,
178  cuDoubleComplex *, cuDoubleComplex *, const int *,
179  cuDoubleComplex *, cuDoubleComplex *, const int *);
180 void blasf77_zswap( int *, cuDoubleComplex *, int *, cuDoubleComplex *, int *);
181 void blasf77_ztrmm( const char *, const char *, const char *, const char *,
182  const int *, const int *, cuDoubleComplex *,
183  cuDoubleComplex *, const int *, cuDoubleComplex *,const int *);
184 void blasf77_ztrmv( const char *, const char *, const char *, const int *,
185  cuDoubleComplex*, const int *, cuDoubleComplex *, const int*);
186 void blasf77_ztrsm( const char *, const char *, const char *, const char *,
187  const int *, const int *, cuDoubleComplex *,
188  cuDoubleComplex *, const int *, cuDoubleComplex *,const int*);
189 void blasf77_ztrsv( const char *, const char *, const char *, const int *,
190  cuDoubleComplex *, const int *, cuDoubleComplex *, const int*);
191 
192  /*
193  * Lapack functions (Alphabetical order)
194  */
195 void lapackf77_zbdsqr(const char *uplo, magma_int_t *n, magma_int_t *nvct,
196  magma_int_t *nru, magma_int_t *ncc, double *D, double *E,
197  cuDoubleComplex *VT, magma_int_t *ldvt,
198  cuDoubleComplex *U, magma_int_t *ldu,
199  cuDoubleComplex *C, magma_int_t *ldc,
200  double *work, magma_int_t *info);
201 void lapackf77_zgebak(const char *job, const char *side, magma_int_t *n,
202  magma_int_t *ilo, magma_int_t *ihi,
203  double *scale, magma_int_t *m,
204  cuDoubleComplex *v, magma_int_t *ldv, magma_int_t *info);
205 void lapackf77_zgebal(const char *job, magma_int_t *n, cuDoubleComplex *A, magma_int_t *lda,
206  magma_int_t *ilo, magma_int_t *ihi, double *scale, magma_int_t *info);
208  cuDoubleComplex *a, magma_int_t *lda, double *d, double *e,
209  cuDoubleComplex *tauq, cuDoubleComplex *taup,
210  cuDoubleComplex *work, magma_int_t *info);
212  cuDoubleComplex *a, magma_int_t *lda, double *d, double *e,
213  cuDoubleComplex *tauq, cuDoubleComplex *taup,
214  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
215 void lapackf77_zgeev(char *jobl, char *jobr, magma_int_t *n,
216  cuDoubleComplex *a, magma_int_t *lda, WSPLIT,
217  cuDoubleComplex *vl, magma_int_t *ldvl,
218  cuDoubleComplex *vr, magma_int_t *ldvr,
219  cuDoubleComplex *work, magma_int_t *lwork,
220  DWORKFORZ magma_int_t *info);
222  cuDoubleComplex *a, magma_int_t *lda, cuDoubleComplex *tau,
223  cuDoubleComplex *work, magma_int_t *info);
225  cuDoubleComplex *a, magma_int_t *lda, cuDoubleComplex *tau,
226  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
228  cuDoubleComplex *a, magma_int_t *lda, cuDoubleComplex *tau,
229  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
230 void lapackf77_zgels(const char *trans,
231  magma_int_t *m, magma_int_t *n, magma_int_t *nrhs,
232  cuDoubleComplex *a, magma_int_t *lda,
233  cuDoubleComplex *b, magma_int_t *ldb,
234  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
236  cuDoubleComplex *a, magma_int_t *lda, cuDoubleComplex *tau,
237  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
239  cuDoubleComplex *a, magma_int_t *lda, cuDoubleComplex *tau,
240  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
242  cuDoubleComplex *a, magma_int_t *lda,
243  magma_int_t *ipiv, magma_int_t *info);
244 void lapackf77_zgetrs(const char* trans,
245  magma_int_t *n, magma_int_t *nrhs,
246  cuDoubleComplex *a, magma_int_t *lda, magma_int_t *ipiv,
247  cuDoubleComplex *b, magma_int_t *ldb, magma_int_t *info);
248 void lapackf77_zgesvd(const char *jobu, const char *jobvt,
249  magma_int_t *m, magma_int_t *n,
250  cuDoubleComplex *a, magma_int_t *lda,
251  double *s, cuDoubleComplex *u, magma_int_t *ldu,
252  cuDoubleComplex *vt, magma_int_t *ldvt,
253  cuDoubleComplex *work, magma_int_t *lwork,
254  DWORKFORZ magma_int_t *info );
255 void lapackf77_zheev(const char *jobz, const char *uplo, magma_int_t *n,
256  cuDoubleComplex *a, magma_int_t *lda, double *w,
257  cuDoubleComplex *work, magma_int_t *lwork,
259 void lapackf77_zheevd(const char *jobz, const char *uplo, magma_int_t *n,
260  cuDoubleComplex *a, magma_int_t *lda, double *w,
261  cuDoubleComplex *work, magma_int_t *lwork,
263  magma_int_t *liwork, magma_int_t *info);
264 void lapackf77_zhegs2(int *itype, char *uplo, int *n,
265  cuDoubleComplex *a, int *lda,
266  cuDoubleComplex *b, int *ldb, int *info);
267 void lapackf77_zhegvd(magma_int_t *itype, const char *jobz, const char *uplo,
268  magma_int_t *n, cuDoubleComplex *a, magma_int_t *lda,
269  cuDoubleComplex *b, magma_int_t *ldb, double *w,
270  cuDoubleComplex *work, magma_int_t *lwork,
271  DWORKFORZ_AND_LD magma_int_t *iwork, magma_int_t *liwork,
272  magma_int_t *info);
273 void lapackf77_zhetd2(const char *uplo, magma_int_t *n,
274  cuDoubleComplex *a, magma_int_t *lda,
275  double *d, double *e, cuDoubleComplex *tau, magma_int_t *info);
276 void lapackf77_zhetrd(const char *uplo, magma_int_t *n,
277  cuDoubleComplex *a, magma_int_t *lda,
278  double *d, double *e, cuDoubleComplex *tau,
279  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
280 void lapackf77_zhseqr(const char *job, const char *compz, magma_int_t *n,
281  magma_int_t *ilo, magma_int_t *ihi,
282  cuDoubleComplex *H, magma_int_t *ldh, WSPLIT,
283  cuDoubleComplex *Z, magma_int_t *ldz,
284  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
285 void lapackf77_zlacpy(const char *uplo, magma_int_t *m, magma_int_t *n,
286  const cuDoubleComplex *a, magma_int_t *lda,
287  cuDoubleComplex *b, magma_int_t *ldb);
288 void lapackf77_zlacgv(magma_int_t *n, cuDoubleComplex *x, magma_int_t *incx);
289 double lapackf77_zlange(const char *norm, magma_int_t *m, magma_int_t *n,
290  const cuDoubleComplex *a, magma_int_t *lda, double *work);
291 double lapackf77_zlanhe(const char *norm, const char *uplo, magma_int_t *n,
292  const cuDoubleComplex *a, magma_int_t *lda, double * work);
293 double lapackf77_zlansy(const char *norm, const char *uplo, magma_int_t *n,
294  const cuDoubleComplex *a, magma_int_t *lda, double * work);
295 void lapackf77_zlarfb(const char *side, const char *trans, const char *direct,
296  const char *storev, magma_int_t *m, magma_int_t *n, magma_int_t *k,
297  const cuDoubleComplex *v, magma_int_t *ldv,
298  const cuDoubleComplex *t, magma_int_t *ldt,
299  cuDoubleComplex *c, magma_int_t *ldc,
300  cuDoubleComplex *work, magma_int_t *ldwork);
301 void lapackf77_zlarfg(magma_int_t *n, cuDoubleComplex *alpha,
302  cuDoubleComplex *x, magma_int_t *incx, cuDoubleComplex *tau);
303 void lapackf77_zlarft(const char *direct, const char *storev, magma_int_t *n, magma_int_t *k,
304  cuDoubleComplex *v, magma_int_t *ldv, const cuDoubleComplex *tau,
305  cuDoubleComplex *t, magma_int_t *ldt);
306 void lapackf77_zlarnv(magma_int_t *idist, magma_int_t *iseed, magma_int_t *n,
307  cuDoubleComplex *x);
308 void lapackf77_zlartg(cuDoubleComplex *F, cuDoubleComplex *G, double *cs,
309  cuDoubleComplex *SN, cuDoubleComplex *R);
310 void lapackf77_zlascl(const char *type, magma_int_t *kl, magma_int_t *ku,
311  double *cfrom, double *cto,
312  magma_int_t *m, magma_int_t *n,
313  cuDoubleComplex *A, magma_int_t *lda, magma_int_t *info);
314 void lapackf77_zlaset(const char *uplo, magma_int_t *m, magma_int_t *n,
315  cuDoubleComplex *alpha, cuDoubleComplex *beta,
316  cuDoubleComplex *A, magma_int_t *lda);
317 void lapackf77_zlaswp(magma_int_t *n, cuDoubleComplex *a, magma_int_t *lda,
318  magma_int_t *k1, magma_int_t *k2, magma_int_t *ipiv,
319  magma_int_t *incx);
320 void lapackf77_zlatrd(const char *uplo, magma_int_t *n, magma_int_t *nb,
321  cuDoubleComplex *a, magma_int_t *lda, double *e,
322  cuDoubleComplex *tau, cuDoubleComplex *work, magma_int_t *ldwork);
324  cuDoubleComplex *a, magma_int_t *lda, double *d__, double *e,
325  cuDoubleComplex *tauq, cuDoubleComplex *taup,
326  cuDoubleComplex *x, magma_int_t *ldx,
327  cuDoubleComplex *y, magma_int_t *ldy);
328 void lapackf77_zpotrf(const char *uplo, magma_int_t *n,
329  cuDoubleComplex *a, magma_int_t *lda, magma_int_t *info);
330 void lapackf77_zpotrs(const char *uplo, magma_int_t *n, magma_int_t *nrhs,
331  cuDoubleComplex *a, magma_int_t *lda,
332  cuDoubleComplex *b, magma_int_t *ldb, magma_int_t *info);
333 void lapackf77_zpotri(const char *uplo, magma_int_t *n,
334  cuDoubleComplex *a, magma_int_t *lda, magma_int_t *info);
335 void lapackf77_zlauum(const char *uplo, magma_int_t *n,
336  cuDoubleComplex *a, magma_int_t *lda, magma_int_t *info);
337 void lapackf77_ztrevc(const char *side, const char *howmny, magma_int_t *select, magma_int_t *n,
338  cuDoubleComplex *T, magma_int_t *ldt, cuDoubleComplex *VL, magma_int_t *ldvl,
339  cuDoubleComplex *VR, magma_int_t *ldvr, magma_int_t *MM, magma_int_t *M,
340  cuDoubleComplex *work, DWORKFORZ magma_int_t *info);
341 void lapackf77_zsteqr(const char *compz, magma_int_t *n, double *D, double *E,
342  cuDoubleComplex *Z, magma_int_t *ldz,
343  double *work, magma_int_t *info);
344 void lapackf77_zstedc(const char *compz, magma_int_t *n, double *D, double *E,
345  cuDoubleComplex *Z, magma_int_t *ldz,
346  cuDoubleComplex *work, magma_int_t *ldwork,
347  DWORKFORZ_AND_LD magma_int_t *iwork, magma_int_t *liwork,
348  magma_int_t *info);
349 void lapackf77_ztrtri(const char *uplo, const char *diag, magma_int_t *n,
350  cuDoubleComplex *a, magma_int_t *lda, magma_int_t *info);
351 #if defined(PRECISION_z) || defined(PRECISION_c)
352 void lapackf77_zsymv(const char *uplo, const magma_int_t *N, const cuDoubleComplex *alpha,
353  const cuDoubleComplex *A, const magma_int_t *lda,
354  const cuDoubleComplex *X, const magma_int_t *incX,
355  const cuDoubleComplex *beta,
356  cuDoubleComplex *Y, const magma_int_t *incY);
357 #endif
359  cuDoubleComplex *a, magma_int_t *lda,
360  const cuDoubleComplex *tau, cuDoubleComplex *work,
361  magma_int_t *info);
362 void lapackf77_zungbr(const char *vect, magma_int_t *m, magma_int_t *n, magma_int_t *k,
363  cuDoubleComplex *a, magma_int_t *lda, const cuDoubleComplex *tau,
364  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
366  cuDoubleComplex *a, magma_int_t *lda, const cuDoubleComplex *tau,
367  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
369  cuDoubleComplex *a, magma_int_t *lda, const cuDoubleComplex *tau,
370  cuDoubleComplex *work, magma_int_t *ldwork, magma_int_t *info);
372  cuDoubleComplex *a, magma_int_t *lda, const cuDoubleComplex *tau,
373  cuDoubleComplex *work, magma_int_t *ldwork, magma_int_t *info);
374 void lapackf77_zungtr(const char *uplo, magma_int_t *n,
375  cuDoubleComplex *a, magma_int_t *lda, const cuDoubleComplex *tau,
376  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
377 void lapackf77_zunm2r(const char *side, const char *trans,
378  magma_int_t *m, magma_int_t *n, magma_int_t *k,
379  const cuDoubleComplex *a, magma_int_t *lda,
380  const cuDoubleComplex *tau, cuDoubleComplex *c, magma_int_t *ldc,
381  cuDoubleComplex *work, magma_int_t *info);
382 void lapackf77_zunmbr(const char *vect, const char *side, const char *trans,
383  magma_int_t *M, magma_int_t *N, magma_int_t *K,
384  cuDoubleComplex *A, magma_int_t *lda, cuDoubleComplex *Tau,
385  cuDoubleComplex *C, magma_int_t *ldc,
386  cuDoubleComplex *work, magma_int_t *ldwork, magma_int_t *info);
387 void lapackf77_zunmlq(const char *side, const char *trans,
389  const cuDoubleComplex *a, magma_int_t *lda,
390  const cuDoubleComplex *tau, cuDoubleComplex *c, magma_int_t *ldc,
391  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
392 void lapackf77_zunmql(const char *side, const char *trans,
394  const cuDoubleComplex *a, magma_int_t *lda,
395  const cuDoubleComplex *tau, cuDoubleComplex *c, magma_int_t *ldc,
396  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
397 void lapackf77_zunmqr(const char *side, const char *trans,
398  magma_int_t *m, magma_int_t *n, magma_int_t *k,
399  const cuDoubleComplex *a, magma_int_t *lda,
400  const cuDoubleComplex *tau, cuDoubleComplex *c, magma_int_t *ldc,
401  cuDoubleComplex *work, magma_int_t *lwork, magma_int_t *info);
402 void lapackf77_zunmtr(const char *side, const char *uplo, const char *trans,
403  magma_int_t *M, magma_int_t *N,
404  cuDoubleComplex *A, magma_int_t *lda, cuDoubleComplex *Tau,
405  cuDoubleComplex *C, magma_int_t *ldc,
406  cuDoubleComplex *work, magma_int_t *ldwork, magma_int_t *info);
407 
408 
409  /*
410  * Testing functions
411  */
412 
413 #if defined(PRECISION_z) || defined(PRECISION_c)
414 
415 void lapackf77_zbdt01(int *m, int *n, int *kd, cuDoubleComplex *A, int *lda,
416  cuDoubleComplex *Q, int *ldq, double *D, double *E,
417  cuDoubleComplex *PT, int *ldpt, cuDoubleComplex *work,
418  double *rwork, double *resid);
419 void lapackf77_zget22(char *transa, char *transe, char *transw, int *n,
420  cuDoubleComplex *a, int *lda, cuDoubleComplex *e, int *lde,
421  cuDoubleComplex *w, cuDoubleComplex *work,
422  double *rwork, double *result);
423 void lapackf77_zhet21(int *itype, const char *uplo, int *n, int *kband,
424  cuDoubleComplex *A, int *lda, double *D, double *E,
425  cuDoubleComplex *U, int *ldu, cuDoubleComplex *V, int *ldv,
426  cuDoubleComplex *TAU, cuDoubleComplex *work,
427  double *rwork, double *result);
428 void lapackf77_zhst01(int *n, int *ilo, int *ihi, cuDoubleComplex *A, int *lda,
429  cuDoubleComplex *H, int *ldh, cuDoubleComplex *Q, int *ldq,
430  cuDoubleComplex *work, int *lwork, double *rwork, double *result);
431 void lapackf77_zstt21(int *n, int *kband, double *AD, double *AE, double *SD,
432  double *SE, cuDoubleComplex *U, int *ldu,
433  cuDoubleComplex *work, double *rwork, double *result);
434 void lapackf77_zunt01(const char *rowcol, int *m, int *n, cuDoubleComplex *U, int *ldu,
435  cuDoubleComplex *work, int *lwork, double *rwork, double *resid);
436 
437 #else
438 
439 void lapackf77_zbdt01(int *m, int *n, int *kd, cuDoubleComplex *A, int *lda,
440  cuDoubleComplex *Q, int *ldq, double *D, double *E,
441  cuDoubleComplex *PT, int *ldpt,
442  cuDoubleComplex *work, double *resid);
443 void lapackf77_zget22(char *transa, char *transe, char *transw, int *n,
444  cuDoubleComplex *a, int *lda, cuDoubleComplex *e, int *lde,
445  cuDoubleComplex *wr, cuDoubleComplex *wi,
446  double *work, double *result);
447 void lapackf77_zhet21(int *itype, const char *uplo, int *n, int *kband,
448  cuDoubleComplex *A, int *lda, double *D, double *E,
449  cuDoubleComplex *U, int *ldu, cuDoubleComplex *V, int *ldv,
450  cuDoubleComplex *TAU, cuDoubleComplex *work, double *result);
451 void lapackf77_zhst01(int *n, int *ilo, int *ihi, cuDoubleComplex *A, int *lda,
452  cuDoubleComplex *H, int *ldh, cuDoubleComplex *Q, int *ldq,
453  cuDoubleComplex *work, int *lwork, double *result);
454 void lapackf77_zstt21(int *n, int *kband, double *AD, double *AE, double *SD,
455  double *SE, cuDoubleComplex *U, int *ldu,
456  cuDoubleComplex *work, double *result);
457 void lapackf77_zunt01(const char *rowcol, int *m, int *n, cuDoubleComplex *U, int *ldu,
458  cuDoubleComplex *work, int *lwork, double *resid);
459 #endif
460 
461 void lapackf77_zlarfy(const char *uplo, int *N, cuDoubleComplex *V, int *incv,
462  cuDoubleComplex *tau, cuDoubleComplex *C, int *ldc,
463  cuDoubleComplex *work);
464 void lapackf77_zqrt02(int *m, int *n, int *k, cuDoubleComplex *A, cuDoubleComplex *AF,
465  cuDoubleComplex *Q, cuDoubleComplex *R, int *lda,
466  cuDoubleComplex *TAU, cuDoubleComplex *work, int *lwork,
467  double *rwork, double *result);
468 
469 #ifdef __cplusplus
470 }
471 #endif
472 
473 #undef DWORKFORZ
474 #undef DWORKFORZ_AND_LD
475 #undef WSPLIT
476 #undef PRECISION_z
477 #endif /* MAGMA ZLAPACK */
#define blasf77_zaxpy
Definition: magma_zlapack.h:23
#define lapackf77_ztrevc
Definition: magma_zlapack.h:92
#define lapackf77_zpotri
Definition: magma_zlapack.h:91
#define lapackf77_zgetrf
Definition: magma_zlapack.h:64
#define lapackf77_zunmlq
#define lapackf77_zlatrd
Definition: magma_zlapack.h:86
#define blasf77_zsyrk
Definition: magma_zlapack.h:43
#define lapackf77_zungqr
#define blasf77_zhemm
Definition: magma_zlapack.h:35
#define lapackf77_zget22
#define lapackf77_zlanhe
Definition: magma_zlapack.h:76
#define lapackf77_zunglq
#define lapackf77_zlarft
Definition: magma_zlapack.h:80
#define lapackf77_zgels
Definition: magma_zlapack.h:60
#define lapackf77_zungtr
#define T(m)
Definition: zgeqrf_mc.cpp:14
#define lapackf77_zhetrd
Definition: magma_zlapack.h:71
#define lapackf77_zgeev
Definition: magma_zlapack.h:56
#define lapackf77_zlaset
Definition: magma_zlapack.h:84
#define lapackf77_zlarfb
Definition: magma_zlapack.h:78
#define DWORKFORZ
#define lapackf77_zsymv
Definition: magma_zlapack.h:96
int magma_int_t
Definition: magmablas.h:12
#define C(i, j)
#define lapackf77_zlartg
Definition: magma_zlapack.h:82
#define lapackf77_zlacpy
Definition: magma_zlapack.h:73
#define WSPLIT
#define lapackf77_zunt01
#define lapackf77_zung2r
Definition: magma_zlapack.h:97
#define lapackf77_zunghr
Definition: magma_zlapack.h:99
#define lapackf77_zgebrd
Definition: magma_zlapack.h:55
#define vl(i, j)
#define lapackf77_zhegs2
Definition: magma_zlapack.h:68
#define Z(ix, iy)
Definition: dstedx.cpp:14
#define lapackf77_ztrtri
Definition: magma_zlapack.h:93
#define lapackf77_zunmbr
#define lapackf77_zheevd
Definition: magma_zlapack.h:67
#define lapackf77_zheev
Definition: magma_zlapack.h:66
#define lapackf77_zgelqf
Definition: magma_zlapack.h:59
#define lapackf77_zunmqr
#define blasf77_zdotc
Definition: magma_zlapack.h:28
#define blasf77_zdscal
Definition: magma_zlapack.h:40
#define F(i, j)
#define lapackf77_zhet21
#define lapackf77_zgebal
Definition: magma_zlapack.h:53
#define lapackf77_zgesvd
Definition: magma_zlapack.h:63
#define TAU(m)
#define lapackf77_zlaswp
Definition: magma_zlapack.h:85
#define lapackf77_zlabrd
Definition: magma_zlapack.h:87
#define lapackf77_zlansy
Definition: magma_zlapack.h:77
#define blasf77_zswap
Definition: magma_zlapack.h:44
#define lapackf77_zqrt02
#define blasf77_zsyr2k
Definition: magma_zlapack.h:42
#define lapackf77_zstt21
#define blasf77_ztrsv
Definition: magma_zlapack.h:48
#define lapackf77_zpotrf
Definition: magma_zlapack.h:89
#define lapackf77_zhst01
#define Y(i, j)
#define blasf77_ztrmm
Definition: magma_zlapack.h:45
#define blasf77_ztrsm
Definition: magma_zlapack.h:47
#define A(i, j)
Definition: cprint.cpp:16
#define lapackf77_zsteqr
Definition: magma_zlapack.h:94
#define lapackf77_zgeqrf
Definition: magma_zlapack.h:62
#define lapackf77_zhegvd
Definition: magma_zlapack.h:69
#define lapackf77_zstedc
Definition: magma_zlapack.h:95
#define E(m, n)
#define lapackf77_zunmql
#define blasf77_zgemm
Definition: magma_zlapack.h:33
#define lapackf77_zpotrs
Definition: magma_zlapack.h:90
#define lapackf77_zgehrd
Definition: magma_zlapack.h:58
#define lapackf77_zlacgv
Definition: magma_zlapack.h:74
#define lapackf77_zlauum
Definition: magma_zlapack.h:88
#define lapackf77_zhetd2
Definition: magma_zlapack.h:70
#define blasf77_zcopy
Definition: magma_zlapack.h:24
#define blasf77_zherk
Definition: magma_zlapack.h:38
#define lapackf77_zlange
Definition: magma_zlapack.h:75
#define lapackf77_zlarfy
#define lapackf77_zunm2r
#define lapackf77_zunmtr
#define lapackf77_zgehd2
Definition: magma_zlapack.h:57
#define lapackf77_zungbr
Definition: magma_zlapack.h:98
#define lapackf77_zhseqr
Definition: magma_zlapack.h:72
#define lapackf77_zgebak
Definition: magma_zlapack.h:52
#define blasf77_zscal
Definition: magma_zlapack.h:39
#define vr(i, j)
#define lapackf77_zlascl
Definition: magma_zlapack.h:83
#define lapackf77_zbdsqr
Definition: magma_zlapack.h:51
#define lapackf77_zbdt01
#define blasf77_zgemv
Definition: magma_zlapack.h:34
#define blasf77_zgeru
Definition: magma_zlapack.h:49
#define blasf77_zsymm
Definition: magma_zlapack.h:41
#define lapackf77_zgebd2
Definition: magma_zlapack.h:54
#define blasf77_zher2k
Definition: magma_zlapack.h:37
#define blasf77_ztrmv
Definition: magma_zlapack.h:46
#define lapackf77_zlarfg
Definition: magma_zlapack.h:79
#define lapackf77_zgeqlf
Definition: magma_zlapack.h:61
#define blasf77_zhemv
Definition: magma_zlapack.h:36
#define Q(ix, iy)
Definition: dlaex0.cpp:14
#define lapackf77_zgetrs
Definition: magma_zlapack.h:65
#define lapackf77_zlarnv
Definition: magma_zlapack.h:81
#define DWORKFORZ_AND_LD
#define V(m)