11 #ifndef MAGMA_CLAPACK_H
12 #define MAGMA_CLAPACK_H
23 #define blasf77_caxpy FORTRAN_NAME( caxpy, ZAXPY )
24 #define blasf77_ccopy FORTRAN_NAME( ccopy, ZCOPY )
27 #if defined(PRECISION_z) || defined(PRECISION_c)
28 #define blasf77_cdotc cdotc
30 #define blasf77_cdotc FORTRAN_NAME( cdotc, CDOTC )
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 )
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 )
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 )
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
140 #define DWORKFORZ_AND_LD
141 #define WSPLIT float *wr, float *wi
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 *);
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 *);
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 *,
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 *);
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*);
224 cuFloatComplex *a,
magma_int_t *lda,
float *d,
float *e,
225 cuFloatComplex *tauq, cuFloatComplex *taup,
228 cuFloatComplex *a,
magma_int_t *lda,
float *d,
float *e,
229 cuFloatComplex *tauq, cuFloatComplex *taup,
238 cuFloatComplex *a,
magma_int_t *lda, cuFloatComplex *tau,
241 cuFloatComplex *a,
magma_int_t *lda, cuFloatComplex *tau,
244 cuFloatComplex *a,
magma_int_t *lda, cuFloatComplex *tau,
252 cuFloatComplex *a,
magma_int_t *lda, cuFloatComplex *tau,
259 cuFloatComplex *a,
magma_int_t *lda, cuFloatComplex *tau,
288 cuFloatComplex *a,
int *lda,
289 cuFloatComplex *b,
int *ldb,
int *info);
298 float *d,
float *e, cuFloatComplex *tau,
magma_int_t *info);
301 float *d,
float *e, cuFloatComplex *tau,
304 cuFloatComplex *ab,
magma_int_t *ldab,
float *d__,
float *e,
329 cuFloatComplex *x,
magma_int_t *incx, cuFloatComplex *tau);
331 cuFloatComplex *v,
magma_int_t *ldv,
const cuFloatComplex *tau,
336 cuFloatComplex *SN, cuFloatComplex *R);
338 float *cfrom,
float *cto,
342 cuFloatComplex *alpha, cuFloatComplex *beta,
351 cuFloatComplex *a,
magma_int_t *lda,
float *d__,
float *e,
352 cuFloatComplex *tauq, cuFloatComplex *taup,
377 float* delta,
float* rho,
float* dlam,
magma_int_t* info);
397 #if defined(PRECISION_z) || defined(PRECISION_c)
401 const cuFloatComplex *beta,
406 const cuFloatComplex *tau, cuFloatComplex *
work,
409 cuFloatComplex *a,
magma_int_t *lda,
const cuFloatComplex *tau,
412 cuFloatComplex *a,
magma_int_t *lda,
const cuFloatComplex *tau,
415 cuFloatComplex *a,
magma_int_t *lda,
const cuFloatComplex *tau,
421 cuFloatComplex *a,
magma_int_t *lda,
const cuFloatComplex *tau,
424 cuFloatComplex *a,
magma_int_t *lda,
const cuFloatComplex *tau,
429 const cuFloatComplex *tau, cuFloatComplex *
c,
magma_int_t *ldc,
433 cuFloatComplex *
A,
magma_int_t *lda, cuFloatComplex *Tau,
439 const cuFloatComplex *tau, cuFloatComplex *
c,
magma_int_t *ldc,
444 const cuFloatComplex *tau, cuFloatComplex *
c,
magma_int_t *ldc,
449 const cuFloatComplex *tau, cuFloatComplex *
c,
magma_int_t *ldc,
453 cuFloatComplex *
A,
magma_int_t *lda, cuFloatComplex *Tau,
462 #if defined(PRECISION_z) || defined(PRECISION_c)
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);
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);
478 cuFloatComplex *H,
int *ldh, cuFloatComplex *
Q,
int *ldq,
479 cuFloatComplex *
work,
int *lwork,
float *rwork,
float *result);
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);
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);
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);
501 cuFloatComplex *H,
int *ldh, cuFloatComplex *
Q,
int *ldq,
502 cuFloatComplex *
work,
int *lwork,
float *result);
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);
511 cuFloatComplex *tau, cuFloatComplex *
C,
int *ldc,
512 cuFloatComplex *
work);
514 cuFloatComplex *, cuFloatComplex *,
515 cuFloatComplex *,
int *, cuFloatComplex *);
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);
529 #undef DWORKFORZ_AND_LD