MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magma_clapack.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  * @generated c Thu May 10 22:26:24 2012
9  */
10 
11 #ifndef MAGMA_CLAPACK_H
12 #define MAGMA_CLAPACK_H
13 
14 #define PRECISION_c
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /* ////////////////////////////////////////////////////////////////////////////
20  -- LAPACK Externs used in MAGMA
21 */
22 
23 #define blasf77_caxpy FORTRAN_NAME( caxpy, ZAXPY )
24 #define blasf77_ccopy FORTRAN_NAME( ccopy, 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_cdotc cdotc
29 #else
30 #define blasf77_cdotc FORTRAN_NAME( cdotc, CDOTC )
31 #endif
32 
33 #define blasf77_cgemm FORTRAN_NAME( cgemm, CGEMM )
34 #define blasf77_cgemv FORTRAN_NAME( cgemv, ZGEMV )
35 #define blasf77_chemm FORTRAN_NAME( chemm, CHEMM )
36 #define blasf77_chemv FORTRAN_NAME( chemv, CHEMV )
37 #define blasf77_cher2k FORTRAN_NAME( cher2k, CHER2K )
38 #define blasf77_cher2 FORTRAN_NAME( cher2, CHER2 )
39 #define blasf77_cherk FORTRAN_NAME( cherk, CHERK )
40 #define blasf77_cscal FORTRAN_NAME( cscal, ZSCAL )
41 #define blasf77_csscal FORTRAN_NAME( csscal, ZDSCAL )
42 #define blasf77_csymm FORTRAN_NAME( csymm, CSYMM )
43 #define blasf77_csyr2k FORTRAN_NAME( csyr2k, CSYR2K )
44 #define blasf77_csyrk FORTRAN_NAME( csyrk, CSYRK )
45 #define blasf77_cswap FORTRAN_NAME( cswap, ZSWAP )
46 #define blasf77_ctrmm FORTRAN_NAME( ctrmm, CTRMM )
47 #define blasf77_ctrmv FORTRAN_NAME( ctrmv, ZTRMV )
48 #define blasf77_ctrsm FORTRAN_NAME( ctrsm, CTRSM )
49 #define blasf77_ctrsv FORTRAN_NAME( ctrsv, CTRSV )
50 #define blasf77_cgeru FORTRAN_NAME( cgeru, ZGERU )
51 
52 #define lapackf77_cbdsqr FORTRAN_NAME( cbdsqr, ZBDSQR )
53 #define lapackf77_cgebak FORTRAN_NAME( cgebak, ZGEBAK )
54 #define lapackf77_cgebal FORTRAN_NAME( cgebal, ZGEBAL )
55 #define lapackf77_cgebd2 FORTRAN_NAME( cgebd2, ZGEBD2 )
56 #define lapackf77_cgebrd FORTRAN_NAME( cgebrd, CGEBRD )
57 #define lapackf77_cgeev FORTRAN_NAME( cgeev, CGEEV )
58 #define lapackf77_cgehd2 FORTRAN_NAME( cgehd2, ZGEHD2 )
59 #define lapackf77_cgehrd FORTRAN_NAME( cgehrd, CGEHRD )
60 #define lapackf77_cgelqf FORTRAN_NAME( cgelqf, CGELQF )
61 #define lapackf77_cgels FORTRAN_NAME( cgels, CGELS )
62 #define lapackf77_cgeqlf FORTRAN_NAME( cgeqlf, ZGEQLF )
63 #define lapackf77_cgeqp3 FORTRAN_NAME( cgeqp3, CGEQP3 )
64 #define lapackf77_cgeqrf FORTRAN_NAME( cgeqrf, CGEQRF )
65 #define lapackf77_cgesvd FORTRAN_NAME( cgesvd, CGESVD )
66 #define lapackf77_cgetrf FORTRAN_NAME( cgetrf, CGETRF )
67 #define lapackf77_cgetri FORTRAN_NAME( cgetri, CGETRI )
68 #define lapackf77_cgetrs FORTRAN_NAME( cgetrs, CGETRS )
69 #define lapackf77_cheev FORTRAN_NAME( cheev, CHEEV )
70 #define lapackf77_cheevd FORTRAN_NAME( cheevd, CHEEVD )
71 #define lapackf77_chegs2 FORTRAN_NAME( chegs2, ZHEGS2 )
72 #define lapackf77_chegvd FORTRAN_NAME( chegvd, CHEGVD )
73 #define lapackf77_chetd2 FORTRAN_NAME( chetd2, ZHETD2 )
74 #define lapackf77_chetrd FORTRAN_NAME( chetrd, CHETRD )
75 #define lapackf77_chbtrd FORTRAN_NAME( chbtrd, CHBTRD )
76 #define lapackf77_chseqr FORTRAN_NAME( chseqr, ZHSEQR )
77 #define lapackf77_clacpy FORTRAN_NAME( clacpy, ZLACPY )
78 #define lapackf77_clacgv FORTRAN_NAME( clacgv, ZLACGV )
79 #define lapackf77_clange FORTRAN_NAME( clange, CLANGE )
80 #define lapackf77_clanhe FORTRAN_NAME( clanhe, CLANHE )
81 #define lapackf77_clansy FORTRAN_NAME( clansy, CLANSY )
82 #define lapackf77_clarfb FORTRAN_NAME( clarfb, CLARFB )
83 #define lapackf77_clarfg FORTRAN_NAME( clarfg, ZLARFG )
84 #define lapackf77_clarft FORTRAN_NAME( clarft, ZLARFT )
85 #define lapackf77_clarnv FORTRAN_NAME( clarnv, ZLARNV )
86 #define lapackf77_clartg FORTRAN_NAME( clartg, ZLARTG )
87 #define lapackf77_clascl FORTRAN_NAME( clascl, ZLASCL )
88 #define lapackf77_claset FORTRAN_NAME( claset, ZLASET )
89 #define lapackf77_claswp FORTRAN_NAME( claswp, ZLASWP )
90 #define lapackf77_clatrd FORTRAN_NAME( clatrd, CLATRD )
91 #define lapackf77_clabrd FORTRAN_NAME( clabrd, CLABRD )
92 #define lapackf77_clauum FORTRAN_NAME( clauum, ZLAUUM )
93 #define lapackf77_cpotrf FORTRAN_NAME( cpotrf, CPOTRF )
94 #define lapackf77_cpotrs FORTRAN_NAME( cpotrs, CPOTRS )
95 #define lapackf77_cpotri FORTRAN_NAME( cpotri, ZPOTRI )
96 #define lapackf77_ctrevc FORTRAN_NAME( ctrevc, ZTREVC )
97 #define lapackf77_sstebz FORTRAN_NAME( sstebz, DSTEBZ )
98 #define lapackf77_slamc3 FORTRAN_NAME( slamc3, DLAMC3 )
99 #define lapackf77_slaed4 FORTRAN_NAME( slaed4, DLAED4 )
100 #define lapackf77_slamrg FORTRAN_NAME( slamrg, DLAMRG )
101 #define lapackf77_ctrtri FORTRAN_NAME( ctrtri, ZTRTRI )
102 #define lapackf77_csteqr FORTRAN_NAME( csteqr, ZSTEQR )
103 #define lapackf77_cstedc FORTRAN_NAME( cstedc, ZSTEDC )
104 #define lapackf77_cstein FORTRAN_NAME( cstein, ZSTEIN )
105 #define lapackf77_cstemr FORTRAN_NAME( cstemr, ZSTEMR )
106 #define lapackf77_csymv FORTRAN_NAME( csymv, ZSYMV )
107 #define lapackf77_cung2r FORTRAN_NAME( cung2r, ZUNG2R )
108 #define lapackf77_cungbr FORTRAN_NAME( cungbr, ZUNGBR )
109 #define lapackf77_cunghr FORTRAN_NAME( cunghr, CUNGHR )
110 #define lapackf77_cunglq FORTRAN_NAME( cunglq, CUNGLQ )
111 #define lapackf77_cungql FORTRAN_NAME( cungql, ZUNGQL )
112 #define lapackf77_cungqr FORTRAN_NAME( cungqr, CUNGQR )
113 #define lapackf77_cungtr FORTRAN_NAME( cungtr, ZUNGTR )
114 #define lapackf77_cunm2r FORTRAN_NAME( cunm2r, ZUNM2R )
115 #define lapackf77_cunmbr FORTRAN_NAME( cunmbr, ZUNMBR )
116 #define lapackf77_cunmlq FORTRAN_NAME( cunmlq, CUNMLQ )
117 #define lapackf77_cunmql FORTRAN_NAME( cunmql, CUNMQL )
118 #define lapackf77_cunmqr FORTRAN_NAME( cunmqr, CUNMQR )
119 #define lapackf77_cunmtr FORTRAN_NAME( cunmtr, CUNMTR )
120 
121 /* testing functions */
122 #define lapackf77_cbdt01 FORTRAN_NAME( cbdt01, ZBDT01 )
123 #define lapackf77_cget22 FORTRAN_NAME( cget22, ZGET22 )
124 #define lapackf77_cqpt01 FORTRAN_NAME( cqpt01, ZQPT01 )
125 #define lapackf77_chet21 FORTRAN_NAME( chet21, ZHET21 )
126 #define lapackf77_chst01 FORTRAN_NAME( chst01, ZHST01 )
127 #define lapackf77_cqrt02 FORTRAN_NAME( cqrt02, ZQRT02 )
128 #define lapackf77_cunt01 FORTRAN_NAME( cunt01, ZUNT01 )
129 #define lapackf77_clarfy FORTRAN_NAME( clarfy, ZLARFY )
130 #define lapackf77_clarfx FORTRAN_NAME( clarfx, ZLARFX )
131 #define lapackf77_cstt21 FORTRAN_NAME( cstt21, ZSTT21 )
132 
133 
134 #if defined(PRECISION_z) || defined(PRECISION_c)
135 #define DWORKFORZ float *rwork,
136 #define DWORKFORZ_AND_LD float *rwork, magma_int_t *ldrwork,
137 #define WSPLIT cuFloatComplex *w
138 #else
139 #define DWORKFORZ
140 #define DWORKFORZ_AND_LD
141 #define WSPLIT float *wr, float *wi
142 #endif
143 
144  /*
145  * BLAS functions (Alphabetical order)
146  */
147 void blasf77_caxpy(const int *, cuFloatComplex *, cuFloatComplex *,
148  const int *, cuFloatComplex *, const int *);
149 void blasf77_ccopy(const int *, cuFloatComplex *, const int *,
150  cuFloatComplex *, const int *);
151 #if defined(PRECISION_z) || defined(PRECISION_c)
152 void blasf77_cdotc(cuFloatComplex *, int *, cuFloatComplex *, int *,
153  cuFloatComplex *, int *);
154 #endif
155 void blasf77_cgemm(const char *, const char *, const int *, const int *, const int *,
156  cuFloatComplex *, cuFloatComplex *, const int *,
157  cuFloatComplex *, const int *, cuFloatComplex *,
158  cuFloatComplex *, const int *);
159 void blasf77_cgemv(const char *, const int *, const int *, cuFloatComplex *,
160  cuFloatComplex *, const int *, cuFloatComplex *, const int *,
161  cuFloatComplex *, cuFloatComplex *, const int *);
162 void blasf77_cgeru(int *, int *, cuFloatComplex *, cuFloatComplex *, int *,
163  cuFloatComplex *, int *, cuFloatComplex *, int *);
164 void blasf77_chemm(const char *, const char *, const int *, const int *,
165  cuFloatComplex *, cuFloatComplex *, const int *,
166  cuFloatComplex *, const int *, cuFloatComplex *,
167  cuFloatComplex *, const int *);
168 void blasf77_chemv(const char *, const int *, cuFloatComplex *, cuFloatComplex *,
169  const int *, cuFloatComplex *, const int *, cuFloatComplex *,
170  cuFloatComplex *, const int *);
171 void blasf77_cher2k(const char *, const char *, const int *, const int *,
172  cuFloatComplex *, cuFloatComplex *, const int *,
173  cuFloatComplex *, const int *, float *,
174  cuFloatComplex *, const int *);
175 void blasf77_cher2(const char *, int *, cuFloatComplex *,
176  cuFloatComplex *, int *, cuFloatComplex *, int *,
177  cuFloatComplex *, int *);
178 void blasf77_cherk( const char *, const char *, const int *, const int *, float *,
179  cuFloatComplex *, const int *, float *, cuFloatComplex *,
180  const int *);
181 void blasf77_cscal( const int *, cuFloatComplex *, cuFloatComplex *, const int *);
182 #if defined(PRECISION_z) || defined(PRECISION_c)
183 void blasf77_csscal( const int *, float *, cuFloatComplex *, const int *);
184 #endif
185 void blasf77_csymm( const char *, const char *, const int *, const int *,
186  cuFloatComplex *, cuFloatComplex *, const int *,
187  cuFloatComplex *, const int *, cuFloatComplex *,
188  cuFloatComplex *, const int *);
189 void blasf77_csyr2k(const char *, const char *, const int *, const int *,
190  cuFloatComplex *, cuFloatComplex *, const int *,
191  cuFloatComplex *, const int *, cuFloatComplex *,
192  cuFloatComplex *, const int *);
193 void blasf77_csyrk( const char *, const char *, const int *, const int *,
194  cuFloatComplex *, cuFloatComplex *, const int *,
195  cuFloatComplex *, cuFloatComplex *, const int *);
196 void blasf77_cswap( int *, cuFloatComplex *, int *, cuFloatComplex *, int *);
197 void blasf77_ctrmm( const char *, const char *, const char *, const char *,
198  const int *, const int *, cuFloatComplex *,
199  cuFloatComplex *, const int *, cuFloatComplex *,const int *);
200 void blasf77_ctrmv( const char *, const char *, const char *, const int *,
201  cuFloatComplex*, const int *, cuFloatComplex *, const int*);
202 void blasf77_ctrsm( const char *, const char *, const char *, const char *,
203  const int *, const int *, cuFloatComplex *,
204  cuFloatComplex *, const int *, cuFloatComplex *,const int*);
205 void blasf77_ctrsv( const char *, const char *, const char *, const int *,
206  cuFloatComplex *, const int *, cuFloatComplex *, const int*);
207 
208  /*
209  * Lapack functions (Alphabetical order)
210  */
211 void lapackf77_cbdsqr(const char *uplo, magma_int_t *n, magma_int_t *nvct,
212  magma_int_t *nru, magma_int_t *ncc, float *D, float *E,
213  cuFloatComplex *VT, magma_int_t *ldvt,
214  cuFloatComplex *U, magma_int_t *ldu,
215  cuFloatComplex *C, magma_int_t *ldc,
216  float *work, magma_int_t *info);
217 void lapackf77_cgebak(const char *job, const char *side, magma_int_t *n,
218  magma_int_t *ilo, magma_int_t *ihi,
219  float *scale, magma_int_t *m,
220  cuFloatComplex *v, magma_int_t *ldv, magma_int_t *info);
221 void lapackf77_cgebal(const char *job, magma_int_t *n, cuFloatComplex *A, magma_int_t *lda,
222  magma_int_t *ilo, magma_int_t *ihi, float *scale, magma_int_t *info);
224  cuFloatComplex *a, magma_int_t *lda, float *d, float *e,
225  cuFloatComplex *tauq, cuFloatComplex *taup,
226  cuFloatComplex *work, magma_int_t *info);
228  cuFloatComplex *a, magma_int_t *lda, float *d, float *e,
229  cuFloatComplex *tauq, cuFloatComplex *taup,
230  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
231 void lapackf77_cgeev(const char *jobl, const char *jobr, magma_int_t *n,
232  cuFloatComplex *a, magma_int_t *lda, WSPLIT,
233  cuFloatComplex *vl, magma_int_t *ldvl,
234  cuFloatComplex *vr, magma_int_t *ldvr,
235  cuFloatComplex *work, magma_int_t *lwork,
236  DWORKFORZ magma_int_t *info);
238  cuFloatComplex *a, magma_int_t *lda, cuFloatComplex *tau,
239  cuFloatComplex *work, magma_int_t *info);
241  cuFloatComplex *a, magma_int_t *lda, cuFloatComplex *tau,
242  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
244  cuFloatComplex *a, magma_int_t *lda, cuFloatComplex *tau,
245  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
246 void lapackf77_cgels(const char *trans,
247  magma_int_t *m, magma_int_t *n, magma_int_t *nrhs,
248  cuFloatComplex *a, magma_int_t *lda,
249  cuFloatComplex *b, magma_int_t *ldb,
250  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
252  cuFloatComplex *a, magma_int_t *lda, cuFloatComplex *tau,
253  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
254 void lapackf77_cgeqp3(magma_int_t *m, magma_int_t *n, cuFloatComplex *a, magma_int_t *lda,
255  magma_int_t *jpvt, cuFloatComplex *tau,
256  cuFloatComplex *work, magma_int_t *lwork,
257  DWORKFORZ magma_int_t *info);
259  cuFloatComplex *a, magma_int_t *lda, cuFloatComplex *tau,
260  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
262  cuFloatComplex *a, magma_int_t *lda,
263  magma_int_t *ipiv, magma_int_t *info);
265  cuFloatComplex *a, magma_int_t *lda, magma_int_t *ipiv,
266  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
267 void lapackf77_cgetrs(const char* trans,
268  magma_int_t *n, magma_int_t *nrhs,
269  cuFloatComplex *a, magma_int_t *lda, magma_int_t *ipiv,
270  cuFloatComplex *b, magma_int_t *ldb, magma_int_t *info);
271 void lapackf77_cgesvd(const char *jobu, const char *jobvt,
272  magma_int_t *m, magma_int_t *n,
273  cuFloatComplex *a, magma_int_t *lda,
274  float *s, cuFloatComplex *u, magma_int_t *ldu,
275  cuFloatComplex *vt, magma_int_t *ldvt,
276  cuFloatComplex *work, magma_int_t *lwork,
277  DWORKFORZ magma_int_t *info );
278 void lapackf77_cheev(const char *jobz, const char *uplo, magma_int_t *n,
279  cuFloatComplex *a, magma_int_t *lda, float *w,
280  cuFloatComplex *work, magma_int_t *lwork,
281  DWORKFORZ magma_int_t *info);
282 void lapackf77_cheevd(const char *jobz, const char *uplo, magma_int_t *n,
283  cuFloatComplex *a, magma_int_t *lda, float *w,
284  cuFloatComplex *work, magma_int_t *lwork,
286  magma_int_t *liwork, magma_int_t *info);
287 void lapackf77_chegs2(int *itype, const char *uplo, int *n,
288  cuFloatComplex *a, int *lda,
289  cuFloatComplex *b, int *ldb, int *info);
290 void lapackf77_chegvd(magma_int_t *itype, const char *jobz, const char *uplo,
291  magma_int_t *n, cuFloatComplex *a, magma_int_t *lda,
292  cuFloatComplex *b, magma_int_t *ldb, float *w,
293  cuFloatComplex *work, magma_int_t *lwork,
294  DWORKFORZ_AND_LD magma_int_t *iwork, magma_int_t *liwork,
295  magma_int_t *info);
296 void lapackf77_chetd2(const char *uplo, magma_int_t *n,
297  cuFloatComplex *a, magma_int_t *lda,
298  float *d, float *e, cuFloatComplex *tau, magma_int_t *info);
299 void lapackf77_chetrd(const char *uplo, magma_int_t *n,
300  cuFloatComplex *a, magma_int_t *lda,
301  float *d, float *e, cuFloatComplex *tau,
302  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
303 void lapackf77_chbtrd(const char *vect, const char *uplo, magma_int_t *n, magma_int_t *kd,
304  cuFloatComplex *ab, magma_int_t *ldab, float *d__, float *e,
305  cuFloatComplex *q, magma_int_t *ldq, cuFloatComplex *work,
306  magma_int_t *info);
307 void lapackf77_chseqr(const char *job, const char *compz, magma_int_t *n,
308  magma_int_t *ilo, magma_int_t *ihi,
309  cuFloatComplex *H, magma_int_t *ldh, WSPLIT,
310  cuFloatComplex *Z, magma_int_t *ldz,
311  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
312 void lapackf77_clacpy(const char *uplo, magma_int_t *m, magma_int_t *n,
313  const cuFloatComplex *a, magma_int_t *lda,
314  cuFloatComplex *b, magma_int_t *ldb);
315 void lapackf77_clacgv(magma_int_t *n, cuFloatComplex *x, magma_int_t *incx);
316 float lapackf77_clange(const char *norm, magma_int_t *m, magma_int_t *n,
317  const cuFloatComplex *a, magma_int_t *lda, float *work);
318 float lapackf77_clanhe(const char *norm, const char *uplo, magma_int_t *n,
319  const cuFloatComplex *a, magma_int_t *lda, float * work);
320 float lapackf77_clansy(const char *norm, const char *uplo, magma_int_t *n,
321  const cuFloatComplex *a, magma_int_t *lda, float * work);
322 void lapackf77_clarfb(const char *side, const char *trans, const char *direct,
323  const char *storev, magma_int_t *m, magma_int_t *n, magma_int_t *k,
324  const cuFloatComplex *v, magma_int_t *ldv,
325  const cuFloatComplex *t, magma_int_t *ldt,
326  cuFloatComplex *c, magma_int_t *ldc,
327  cuFloatComplex *work, magma_int_t *ldwork);
328 void lapackf77_clarfg(magma_int_t *n, cuFloatComplex *alpha,
329  cuFloatComplex *x, magma_int_t *incx, cuFloatComplex *tau);
330 void lapackf77_clarft(const char *direct, const char *storev, magma_int_t *n, magma_int_t *k,
331  cuFloatComplex *v, magma_int_t *ldv, const cuFloatComplex *tau,
332  cuFloatComplex *t, magma_int_t *ldt);
333 void lapackf77_clarnv(magma_int_t *idist, magma_int_t *iseed, magma_int_t *n,
334  cuFloatComplex *x);
335 void lapackf77_clartg(cuFloatComplex *F, cuFloatComplex *G, float *cs,
336  cuFloatComplex *SN, cuFloatComplex *R);
337 void lapackf77_clascl(const char *type, magma_int_t *kl, magma_int_t *ku,
338  float *cfrom, float *cto,
339  magma_int_t *m, magma_int_t *n,
340  cuFloatComplex *A, magma_int_t *lda, magma_int_t *info);
341 void lapackf77_claset(const char *uplo, magma_int_t *m, magma_int_t *n,
342  cuFloatComplex *alpha, cuFloatComplex *beta,
343  cuFloatComplex *A, magma_int_t *lda);
344 void lapackf77_claswp(magma_int_t *n, cuFloatComplex *a, magma_int_t *lda,
345  magma_int_t *k1, magma_int_t *k2, magma_int_t *ipiv,
346  magma_int_t *incx);
347 void lapackf77_clatrd(const char *uplo, magma_int_t *n, magma_int_t *nb,
348  cuFloatComplex *a, magma_int_t *lda, float *e,
349  cuFloatComplex *tau, cuFloatComplex *work, magma_int_t *ldwork);
351  cuFloatComplex *a, magma_int_t *lda, float *d__, float *e,
352  cuFloatComplex *tauq, cuFloatComplex *taup,
353  cuFloatComplex *x, magma_int_t *ldx,
354  cuFloatComplex *y, magma_int_t *ldy);
355 void lapackf77_cpotrf(const char *uplo, magma_int_t *n,
356  cuFloatComplex *a, magma_int_t *lda, magma_int_t *info);
357 void lapackf77_cpotrs(const char *uplo, magma_int_t *n, magma_int_t *nrhs,
358  cuFloatComplex *a, magma_int_t *lda,
359  cuFloatComplex *b, magma_int_t *ldb, magma_int_t *info);
360 void lapackf77_cpotri(const char *uplo, magma_int_t *n,
361  cuFloatComplex *a, magma_int_t *lda, magma_int_t *info);
362 void lapackf77_clauum(const char *uplo, magma_int_t *n,
363  cuFloatComplex *a, magma_int_t *lda, magma_int_t *info);
364 void lapackf77_ctrevc(const char *side, const char *howmny, magma_int_t *select, magma_int_t *n,
365  cuFloatComplex *T, magma_int_t *ldt, cuFloatComplex *VL, magma_int_t *ldvl,
366  cuFloatComplex *VR, magma_int_t *ldvr, magma_int_t *MM, magma_int_t *M,
367  cuFloatComplex *work, DWORKFORZ magma_int_t *info);
368 void lapackf77_sstebz(const char *range, const char *order, magma_int_t *n, float *vl, float *vu,
369  magma_int_t *il, magma_int_t *iu, float *abstol,
370  float *d__, float *e, magma_int_t *m, magma_int_t *nsplit,
371  float *w, magma_int_t *iblock, magma_int_t *isplit, float *work,
372  magma_int_t *iwork, magma_int_t *info);
373 float lapackf77_slamc3(float* a, float* b);
374 void lapackf77_slamrg(magma_int_t* n1, magma_int_t* n2, float* a,
375  magma_int_t* dtrd1, magma_int_t* dtrd2, magma_int_t* index);
376 void lapackf77_slaed4(magma_int_t* n, magma_int_t* i, float* d, float* z,
377  float* delta, float* rho, float* dlam, magma_int_t* info);
378 void lapackf77_csteqr(const char *compz, magma_int_t *n, float *D, float *E,
379  cuFloatComplex *Z, magma_int_t *ldz,
380  float *work, magma_int_t *info);
381 void lapackf77_cstedc(const char *compz, magma_int_t *n, float *D, float *E,
382  cuFloatComplex *Z, magma_int_t *ldz,
383  cuFloatComplex *work, magma_int_t *ldwork,
384  DWORKFORZ_AND_LD magma_int_t *iwork, magma_int_t *liwork,
385  magma_int_t *info);
386 void lapackf77_cstein(magma_int_t *n, float *d__, float *e,
387  magma_int_t *m, float *w, magma_int_t *iblock, magma_int_t *isplit,
388  cuFloatComplex *z__, magma_int_t *ldz, float *work, magma_int_t *iwork,
389  magma_int_t *ifail, magma_int_t *info);
390 void lapackf77_cstemr(const char *jobz, const char *range, magma_int_t *n, float *d__, float *e,
391  float *vl, float *vu, magma_int_t *il, magma_int_t *iu, magma_int_t *m,
392  float *w, cuFloatComplex *z__, magma_int_t *ldz, magma_int_t *nzc,
393  magma_int_t *isuppz, magma_int_t *tryrac, float *work, magma_int_t *lwork,
394  magma_int_t *iwork, magma_int_t *liwork, magma_int_t *info);
395 void lapackf77_ctrtri(const char *uplo, const char *diag, magma_int_t *n,
396  cuFloatComplex *a, magma_int_t *lda, magma_int_t *info);
397 #if defined(PRECISION_z) || defined(PRECISION_c)
398 void lapackf77_csymv(const char *uplo, const magma_int_t *N, const cuFloatComplex *alpha,
399  const cuFloatComplex *A, const magma_int_t *lda,
400  const cuFloatComplex *X, const magma_int_t *incX,
401  const cuFloatComplex *beta,
402  cuFloatComplex *Y, const magma_int_t *incY);
403 #endif
405  cuFloatComplex *a, magma_int_t *lda,
406  const cuFloatComplex *tau, cuFloatComplex *work,
407  magma_int_t *info);
408 void lapackf77_cungbr(const char *vect, magma_int_t *m, magma_int_t *n, magma_int_t *k,
409  cuFloatComplex *a, magma_int_t *lda, const cuFloatComplex *tau,
410  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
412  cuFloatComplex *a, magma_int_t *lda, const cuFloatComplex *tau,
413  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
415  cuFloatComplex *a, magma_int_t *lda, const cuFloatComplex *tau,
416  cuFloatComplex *work, magma_int_t *ldwork, magma_int_t *info);
418  cuFloatComplex *, magma_int_t *, cuFloatComplex *,
419  cuFloatComplex *, magma_int_t *, magma_int_t *);
421  cuFloatComplex *a, magma_int_t *lda, const cuFloatComplex *tau,
422  cuFloatComplex *work, magma_int_t *ldwork, magma_int_t *info);
423 void lapackf77_cungtr(const char *uplo, magma_int_t *n,
424  cuFloatComplex *a, magma_int_t *lda, const cuFloatComplex *tau,
425  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
426 void lapackf77_cunm2r(const char *side, const char *trans,
427  magma_int_t *m, magma_int_t *n, magma_int_t *k,
428  const cuFloatComplex *a, magma_int_t *lda,
429  const cuFloatComplex *tau, cuFloatComplex *c, magma_int_t *ldc,
430  cuFloatComplex *work, magma_int_t *info);
431 void lapackf77_cunmbr(const char *vect, const char *side, const char *trans,
433  cuFloatComplex *A, magma_int_t *lda, cuFloatComplex *Tau,
434  cuFloatComplex *C, magma_int_t *ldc,
435  cuFloatComplex *work, magma_int_t *ldwork, magma_int_t *info);
436 void lapackf77_cunmlq(const char *side, const char *trans,
438  const cuFloatComplex *a, magma_int_t *lda,
439  const cuFloatComplex *tau, cuFloatComplex *c, magma_int_t *ldc,
440  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
441 void lapackf77_cunmql(const char *side, const char *trans,
443  const cuFloatComplex *a, magma_int_t *lda,
444  const cuFloatComplex *tau, cuFloatComplex *c, magma_int_t *ldc,
445  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
446 void lapackf77_cunmqr(const char *side, const char *trans,
447  magma_int_t *m, magma_int_t *n, magma_int_t *k,
448  const cuFloatComplex *a, magma_int_t *lda,
449  const cuFloatComplex *tau, cuFloatComplex *c, magma_int_t *ldc,
450  cuFloatComplex *work, magma_int_t *lwork, magma_int_t *info);
451 void lapackf77_cunmtr(const char *side, const char *uplo, const char *trans,
453  cuFloatComplex *A, magma_int_t *lda, cuFloatComplex *Tau,
454  cuFloatComplex *C, magma_int_t *ldc,
455  cuFloatComplex *work, magma_int_t *ldwork, magma_int_t *info);
456 
457 
458  /*
459  * Testing functions
460  */
461 
462 #if defined(PRECISION_z) || defined(PRECISION_c)
463 
464 void lapackf77_cbdt01(int *m, int *n, int *kd, cuFloatComplex *A, int *lda,
465  cuFloatComplex *Q, int *ldq, float *D, float *E,
466  cuFloatComplex *PT, int *ldpt, cuFloatComplex *work,
467  float *rwork, float *resid);
468 void lapackf77_cget22(const char *transa, const char *transe, const char *transw, int *n,
469  cuFloatComplex *a, int *lda, cuFloatComplex *e, int *lde,
470  cuFloatComplex *w, cuFloatComplex *work,
471  float *rwork, float *result);
472 void lapackf77_chet21(int *itype, const char *uplo, int *n, int *kband,
473  cuFloatComplex *A, int *lda, float *D, float *E,
474  cuFloatComplex *U, int *ldu, cuFloatComplex *V, int *ldv,
475  cuFloatComplex *TAU, cuFloatComplex *work,
476  float *rwork, float *result);
477 void lapackf77_chst01(int *n, int *ilo, int *ihi, cuFloatComplex *A, int *lda,
478  cuFloatComplex *H, int *ldh, cuFloatComplex *Q, int *ldq,
479  cuFloatComplex *work, int *lwork, float *rwork, float *result);
480 void lapackf77_cstt21(int *n, int *kband, float *AD, float *AE, float *SD,
481  float *SE, cuFloatComplex *U, int *ldu,
482  cuFloatComplex *work, float *rwork, float *result);
483 void lapackf77_cunt01(const char *rowcol, int *m, int *n, cuFloatComplex *U, int *ldu,
484  cuFloatComplex *work, int *lwork, float *rwork, float *resid);
485 
486 #else
487 
488 void lapackf77_cbdt01(int *m, int *n, int *kd, cuFloatComplex *A, int *lda,
489  cuFloatComplex *Q, int *ldq, float *D, float *E,
490  cuFloatComplex *PT, int *ldpt,
491  cuFloatComplex *work, float *resid);
492 void lapackf77_cget22(const char *transa, const char *transe, const char *transw, int *n,
493  cuFloatComplex *a, int *lda, cuFloatComplex *e, int *lde,
494  cuFloatComplex *wr, cuFloatComplex *wi,
495  float *work, float *result);
496 void lapackf77_chet21(int *itype, const char *uplo, int *n, int *kband,
497  cuFloatComplex *A, int *lda, float *D, float *E,
498  cuFloatComplex *U, int *ldu, cuFloatComplex *V, int *ldv,
499  cuFloatComplex *TAU, cuFloatComplex *work, float *result);
500 void lapackf77_chst01(int *n, int *ilo, int *ihi, cuFloatComplex *A, int *lda,
501  cuFloatComplex *H, int *ldh, cuFloatComplex *Q, int *ldq,
502  cuFloatComplex *work, int *lwork, float *result);
503 void lapackf77_cstt21(int *n, int *kband, float *AD, float *AE, float *SD,
504  float *SE, cuFloatComplex *U, int *ldu,
505  cuFloatComplex *work, float *result);
506 void lapackf77_cunt01(const char *rowcol, int *m, int *n, cuFloatComplex *U, int *ldu,
507  cuFloatComplex *work, int *lwork, float *resid);
508 #endif
509 
510 void lapackf77_clarfy(const char *uplo, int *N, cuFloatComplex *V, int *incv,
511  cuFloatComplex *tau, cuFloatComplex *C, int *ldc,
512  cuFloatComplex *work);
513 void lapackf77_clarfx(const char *, int *, int *,
514  cuFloatComplex *, cuFloatComplex *,
515  cuFloatComplex *, int *, cuFloatComplex *);
516 float lapackf77_cqpt01(int *m, int *n, int *k, cuFloatComplex *a,
517  cuFloatComplex *af, int *lda, cuFloatComplex *tau, int *jpvt,
518  cuFloatComplex *work, int *lwork);
519 void lapackf77_cqrt02(int *m, int *n, int *k, cuFloatComplex *A, cuFloatComplex *AF,
520  cuFloatComplex *Q, cuFloatComplex *R, int *lda,
521  cuFloatComplex *TAU, cuFloatComplex *work, int *lwork,
522  float *rwork, float *result);
523 
524 #ifdef __cplusplus
525 }
526 #endif
527 
528 #undef DWORKFORZ
529 #undef DWORKFORZ_AND_LD
530 #undef WSPLIT
531 #undef PRECISION_c
532 #endif /* MAGMA ZLAPACK */