11 #ifndef MAGMA_ZLAPACK_H
12 #define MAGMA_ZLAPACK_H
23 #define blasf77_zaxpy FORTRAN_NAME( zaxpy, ZAXPY )
24 #define blasf77_zcopy FORTRAN_NAME( zcopy, ZCOPY )
27 #if defined(PRECISION_z) || defined(PRECISION_c)
28 #define blasf77_zdotc zdotc
30 #define blasf77_zdotc FORTRAN_NAME( zdotc, ZDOTC )
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_zher2 FORTRAN_NAME( zher2, ZHER2 )
39 #define blasf77_zherk FORTRAN_NAME( zherk, ZHERK )
40 #define blasf77_zscal FORTRAN_NAME( zscal, ZSCAL )
41 #define blasf77_zdscal FORTRAN_NAME( zdscal, ZDSCAL )
42 #define blasf77_zsymm FORTRAN_NAME( zsymm, ZSYMM )
43 #define blasf77_zsyr2k FORTRAN_NAME( zsyr2k, ZSYR2K )
44 #define blasf77_zsyrk FORTRAN_NAME( zsyrk, ZSYRK )
45 #define blasf77_zswap FORTRAN_NAME( zswap, ZSWAP )
46 #define blasf77_ztrmm FORTRAN_NAME( ztrmm, ZTRMM )
47 #define blasf77_ztrmv FORTRAN_NAME( ztrmv, ZTRMV )
48 #define blasf77_ztrsm FORTRAN_NAME( ztrsm, ZTRSM )
49 #define blasf77_ztrsv FORTRAN_NAME( ztrsv, ZTRSV )
50 #define blasf77_zgeru FORTRAN_NAME( zgeru, ZGERU )
52 #define lapackf77_zbdsqr FORTRAN_NAME( zbdsqr, ZBDSQR )
53 #define lapackf77_zgebak FORTRAN_NAME( zgebak, ZGEBAK )
54 #define lapackf77_zgebal FORTRAN_NAME( zgebal, ZGEBAL )
55 #define lapackf77_zgebd2 FORTRAN_NAME( zgebd2, ZGEBD2 )
56 #define lapackf77_zgebrd FORTRAN_NAME( zgebrd, ZGEBRD )
57 #define lapackf77_zgeev FORTRAN_NAME( zgeev, ZGEEV )
58 #define lapackf77_zgehd2 FORTRAN_NAME( zgehd2, ZGEHD2 )
59 #define lapackf77_zgehrd FORTRAN_NAME( zgehrd, ZGEHRD )
60 #define lapackf77_zgelqf FORTRAN_NAME( zgelqf, ZGELQF )
61 #define lapackf77_zgels FORTRAN_NAME( zgels, ZGELS )
62 #define lapackf77_zgeqlf FORTRAN_NAME( zgeqlf, ZGEQLF )
63 #define lapackf77_zgeqp3 FORTRAN_NAME( zgeqp3, ZGEQP3 )
64 #define lapackf77_zgeqrf FORTRAN_NAME( zgeqrf, ZGEQRF )
65 #define lapackf77_zgesvd FORTRAN_NAME( zgesvd, ZGESVD )
66 #define lapackf77_zgetrf FORTRAN_NAME( zgetrf, ZGETRF )
67 #define lapackf77_zgetri FORTRAN_NAME( zgetri, ZGETRI )
68 #define lapackf77_zgetrs FORTRAN_NAME( zgetrs, ZGETRS )
69 #define lapackf77_zheev FORTRAN_NAME( zheev, ZHEEV )
70 #define lapackf77_zheevd FORTRAN_NAME( zheevd, ZHEEVD )
71 #define lapackf77_zhegs2 FORTRAN_NAME( zhegs2, ZHEGS2 )
72 #define lapackf77_zhegvd FORTRAN_NAME( zhegvd, ZHEGVD )
73 #define lapackf77_zhetd2 FORTRAN_NAME( zhetd2, ZHETD2 )
74 #define lapackf77_zhetrd FORTRAN_NAME( zhetrd, ZHETRD )
75 #define lapackf77_zhbtrd FORTRAN_NAME( zhbtrd, ZHBTRD )
76 #define lapackf77_zhseqr FORTRAN_NAME( zhseqr, ZHSEQR )
77 #define lapackf77_zlacpy FORTRAN_NAME( zlacpy, ZLACPY )
78 #define lapackf77_zlacgv FORTRAN_NAME( zlacgv, ZLACGV )
79 #define lapackf77_zlange FORTRAN_NAME( zlange, ZLANGE )
80 #define lapackf77_zlanhe FORTRAN_NAME( zlanhe, ZLANHE )
81 #define lapackf77_zlansy FORTRAN_NAME( zlansy, ZLANSY )
82 #define lapackf77_zlarfb FORTRAN_NAME( zlarfb, ZLARFB )
83 #define lapackf77_zlarfg FORTRAN_NAME( zlarfg, ZLARFG )
84 #define lapackf77_zlarft FORTRAN_NAME( zlarft, ZLARFT )
85 #define lapackf77_zlarnv FORTRAN_NAME( zlarnv, ZLARNV )
86 #define lapackf77_zlartg FORTRAN_NAME( zlartg, ZLARTG )
87 #define lapackf77_zlascl FORTRAN_NAME( zlascl, ZLASCL )
88 #define lapackf77_zlaset FORTRAN_NAME( zlaset, ZLASET )
89 #define lapackf77_zlaswp FORTRAN_NAME( zlaswp, ZLASWP )
90 #define lapackf77_zlatrd FORTRAN_NAME( zlatrd, ZLATRD )
91 #define lapackf77_zlabrd FORTRAN_NAME( zlabrd, ZLABRD )
92 #define lapackf77_zlauum FORTRAN_NAME( zlauum, ZLAUUM )
93 #define lapackf77_zpotrf FORTRAN_NAME( zpotrf, ZPOTRF )
94 #define lapackf77_zpotrs FORTRAN_NAME( zpotrs, ZPOTRS )
95 #define lapackf77_zpotri FORTRAN_NAME( zpotri, ZPOTRI )
96 #define lapackf77_ztrevc FORTRAN_NAME( ztrevc, ZTREVC )
97 #define lapackf77_dstebz FORTRAN_NAME( dstebz, DSTEBZ )
98 #define lapackf77_dlamc3 FORTRAN_NAME( dlamc3, DLAMC3 )
99 #define lapackf77_dlaed4 FORTRAN_NAME( dlaed4, DLAED4 )
100 #define lapackf77_dlamrg FORTRAN_NAME( dlamrg, DLAMRG )
101 #define lapackf77_ztrtri FORTRAN_NAME( ztrtri, ZTRTRI )
102 #define lapackf77_zsteqr FORTRAN_NAME( zsteqr, ZSTEQR )
103 #define lapackf77_zstedc FORTRAN_NAME( zstedc, ZSTEDC )
104 #define lapackf77_zstein FORTRAN_NAME( zstein, ZSTEIN )
105 #define lapackf77_zstemr FORTRAN_NAME( zstemr, ZSTEMR )
106 #define lapackf77_zsymv FORTRAN_NAME( zsymv, ZSYMV )
107 #define lapackf77_zung2r FORTRAN_NAME( zung2r, ZUNG2R )
108 #define lapackf77_zungbr FORTRAN_NAME( zungbr, ZUNGBR )
109 #define lapackf77_zunghr FORTRAN_NAME( zunghr, ZUNGHR )
110 #define lapackf77_zunglq FORTRAN_NAME( zunglq, ZUNGLQ )
111 #define lapackf77_zungql FORTRAN_NAME( zungql, ZUNGQL )
112 #define lapackf77_zungqr FORTRAN_NAME( zungqr, ZUNGQR )
113 #define lapackf77_zungtr FORTRAN_NAME( zungtr, ZUNGTR )
114 #define lapackf77_zunm2r FORTRAN_NAME( zunm2r, ZUNM2R )
115 #define lapackf77_zunmbr FORTRAN_NAME( zunmbr, ZUNMBR )
116 #define lapackf77_zunmlq FORTRAN_NAME( zunmlq, ZUNMLQ )
117 #define lapackf77_zunmql FORTRAN_NAME( zunmql, ZUNMQL )
118 #define lapackf77_zunmqr FORTRAN_NAME( zunmqr, ZUNMQR )
119 #define lapackf77_zunmtr FORTRAN_NAME( zunmtr, ZUNMTR )
122 #define lapackf77_zbdt01 FORTRAN_NAME( zbdt01, ZBDT01 )
123 #define lapackf77_zget22 FORTRAN_NAME( zget22, ZGET22 )
124 #define lapackf77_zqpt01 FORTRAN_NAME( zqpt01, ZQPT01 )
125 #define lapackf77_zhet21 FORTRAN_NAME( zhet21, ZHET21 )
126 #define lapackf77_zhst01 FORTRAN_NAME( zhst01, ZHST01 )
127 #define lapackf77_zqrt02 FORTRAN_NAME( zqrt02, ZQRT02 )
128 #define lapackf77_zunt01 FORTRAN_NAME( zunt01, ZUNT01 )
129 #define lapackf77_zlarfy FORTRAN_NAME( zlarfy, ZLARFY )
130 #define lapackf77_zlarfx FORTRAN_NAME( zlarfx, ZLARFX )
131 #define lapackf77_zstt21 FORTRAN_NAME( zstt21, ZSTT21 )
134 #if defined(PRECISION_z) || defined(PRECISION_c)
135 #define DWORKFORZ double *rwork,
136 #define DWORKFORZ_AND_LD double *rwork, magma_int_t *ldrwork,
137 #define WSPLIT cuDoubleComplex *w
140 #define DWORKFORZ_AND_LD
141 #define WSPLIT double *wr, double *wi
147 void blasf77_zaxpy(
const int *, cuDoubleComplex *, cuDoubleComplex *,
148 const int *, cuDoubleComplex *,
const int *);
149 void blasf77_zcopy(
const int *, cuDoubleComplex *,
const int *,
150 cuDoubleComplex *,
const int *);
151 #if defined(PRECISION_z) || defined(PRECISION_c)
152 void blasf77_zdotc(cuDoubleComplex *,
int *, cuDoubleComplex *,
int *,
153 cuDoubleComplex *,
int *);
155 void blasf77_zgemm(
const char *,
const char *,
const int *,
const int *,
const int *,
156 cuDoubleComplex *, cuDoubleComplex *,
const int *,
157 cuDoubleComplex *,
const int *, cuDoubleComplex *,
158 cuDoubleComplex *,
const int *);
159 void blasf77_zgemv(
const char *,
const int *,
const int *, cuDoubleComplex *,
160 cuDoubleComplex *,
const int *, cuDoubleComplex *,
const int *,
161 cuDoubleComplex *, cuDoubleComplex *,
const int *);
162 void blasf77_zgeru(
int *,
int *, cuDoubleComplex *, cuDoubleComplex *,
int *,
163 cuDoubleComplex *,
int *, cuDoubleComplex *,
int *);
164 void blasf77_zhemm(
const char *,
const char *,
const int *,
const int *,
165 cuDoubleComplex *, cuDoubleComplex *,
const int *,
166 cuDoubleComplex *,
const int *, cuDoubleComplex *,
167 cuDoubleComplex *,
const int *);
168 void blasf77_zhemv(
const char *,
const int *, cuDoubleComplex *, cuDoubleComplex *,
169 const int *, cuDoubleComplex *,
const int *, cuDoubleComplex *,
170 cuDoubleComplex *,
const int *);
171 void blasf77_zher2k(
const char *,
const char *,
const int *,
const int *,
172 cuDoubleComplex *, cuDoubleComplex *,
const int *,
173 cuDoubleComplex *,
const int *,
double *,
174 cuDoubleComplex *,
const int *);
176 cuDoubleComplex *,
int *, cuDoubleComplex *,
int *,
177 cuDoubleComplex *,
int *);
178 void blasf77_zherk(
const char *,
const char *,
const int *,
const int *,
double *,
179 cuDoubleComplex *,
const int *,
double *, cuDoubleComplex *,
181 void blasf77_zscal(
const int *, cuDoubleComplex *, cuDoubleComplex *,
const int *);
182 #if defined(PRECISION_z) || defined(PRECISION_c)
183 void blasf77_zdscal(
const int *,
double *, cuDoubleComplex *,
const int *);
185 void blasf77_zsymm(
const char *,
const char *,
const int *,
const int *,
186 cuDoubleComplex *, cuDoubleComplex *,
const int *,
187 cuDoubleComplex *,
const int *, cuDoubleComplex *,
188 cuDoubleComplex *,
const int *);
189 void blasf77_zsyr2k(
const char *,
const char *,
const int *,
const int *,
190 cuDoubleComplex *, cuDoubleComplex *,
const int *,
191 cuDoubleComplex *,
const int *, cuDoubleComplex *,
192 cuDoubleComplex *,
const int *);
193 void blasf77_zsyrk(
const char *,
const char *,
const int *,
const int *,
194 cuDoubleComplex *, cuDoubleComplex *,
const int *,
195 cuDoubleComplex *, cuDoubleComplex *,
const int *);
196 void blasf77_zswap(
int *, cuDoubleComplex *,
int *, cuDoubleComplex *,
int *);
197 void blasf77_ztrmm(
const char *,
const char *,
const char *,
const char *,
198 const int *,
const int *, cuDoubleComplex *,
199 cuDoubleComplex *,
const int *, cuDoubleComplex *,
const int *);
200 void blasf77_ztrmv(
const char *,
const char *,
const char *,
const int *,
201 cuDoubleComplex*,
const int *, cuDoubleComplex *,
const int*);
202 void blasf77_ztrsm(
const char *,
const char *,
const char *,
const char *,
203 const int *,
const int *, cuDoubleComplex *,
204 cuDoubleComplex *,
const int *, cuDoubleComplex *,
const int*);
205 void blasf77_ztrsv(
const char *,
const char *,
const char *,
const int *,
206 cuDoubleComplex *,
const int *, cuDoubleComplex *,
const int*);
224 cuDoubleComplex *a,
magma_int_t *lda,
double *d,
double *e,
225 cuDoubleComplex *tauq, cuDoubleComplex *taup,
228 cuDoubleComplex *a,
magma_int_t *lda,
double *d,
double *e,
229 cuDoubleComplex *tauq, cuDoubleComplex *taup,
238 cuDoubleComplex *a,
magma_int_t *lda, cuDoubleComplex *tau,
241 cuDoubleComplex *a,
magma_int_t *lda, cuDoubleComplex *tau,
244 cuDoubleComplex *a,
magma_int_t *lda, cuDoubleComplex *tau,
252 cuDoubleComplex *a,
magma_int_t *lda, cuDoubleComplex *tau,
259 cuDoubleComplex *a,
magma_int_t *lda, cuDoubleComplex *tau,
288 cuDoubleComplex *a,
int *lda,
289 cuDoubleComplex *b,
int *ldb,
int *info);
298 double *d,
double *e, cuDoubleComplex *tau,
magma_int_t *info);
301 double *d,
double *e, cuDoubleComplex *tau,
304 cuDoubleComplex *ab,
magma_int_t *ldab,
double *d__,
double *e,
329 cuDoubleComplex *x,
magma_int_t *incx, cuDoubleComplex *tau);
331 cuDoubleComplex *v,
magma_int_t *ldv,
const cuDoubleComplex *tau,
336 cuDoubleComplex *SN, cuDoubleComplex *R);
338 double *cfrom,
double *cto,
342 cuDoubleComplex *alpha, cuDoubleComplex *beta,
351 cuDoubleComplex *a,
magma_int_t *lda,
double *d__,
double *e,
352 cuDoubleComplex *tauq, cuDoubleComplex *taup,
377 double* delta,
double* rho,
double* dlam,
magma_int_t* info);
397 #if defined(PRECISION_z) || defined(PRECISION_c)
401 const cuDoubleComplex *beta,
406 const cuDoubleComplex *tau, cuDoubleComplex *
work,
409 cuDoubleComplex *a,
magma_int_t *lda,
const cuDoubleComplex *tau,
412 cuDoubleComplex *a,
magma_int_t *lda,
const cuDoubleComplex *tau,
415 cuDoubleComplex *a,
magma_int_t *lda,
const cuDoubleComplex *tau,
418 cuDoubleComplex *,
magma_int_t *, cuDoubleComplex *,
421 cuDoubleComplex *a,
magma_int_t *lda,
const cuDoubleComplex *tau,
424 cuDoubleComplex *a,
magma_int_t *lda,
const cuDoubleComplex *tau,
429 const cuDoubleComplex *tau, cuDoubleComplex *
c,
magma_int_t *ldc,
433 cuDoubleComplex *
A,
magma_int_t *lda, cuDoubleComplex *Tau,
439 const cuDoubleComplex *tau, cuDoubleComplex *
c,
magma_int_t *ldc,
444 const cuDoubleComplex *tau, cuDoubleComplex *
c,
magma_int_t *ldc,
449 const cuDoubleComplex *tau, cuDoubleComplex *
c,
magma_int_t *ldc,
453 cuDoubleComplex *
A,
magma_int_t *lda, cuDoubleComplex *Tau,
462 #if defined(PRECISION_z) || defined(PRECISION_c)
465 cuDoubleComplex *
Q,
int *ldq,
double *D,
double *
E,
466 cuDoubleComplex *PT,
int *ldpt, cuDoubleComplex *
work,
467 double *rwork,
double *resid);
468 void lapackf77_zget22(
const char *transa,
const char *transe,
const char *transw,
int *n,
469 cuDoubleComplex *a,
int *lda, cuDoubleComplex *e,
int *lde,
470 cuDoubleComplex *w, cuDoubleComplex *
work,
471 double *rwork,
double *result);
473 cuDoubleComplex *
A,
int *lda,
double *D,
double *
E,
474 cuDoubleComplex *U,
int *ldu, cuDoubleComplex *
V,
int *ldv,
475 cuDoubleComplex *
TAU, cuDoubleComplex *
work,
476 double *rwork,
double *result);
478 cuDoubleComplex *H,
int *ldh, cuDoubleComplex *
Q,
int *ldq,
479 cuDoubleComplex *
work,
int *lwork,
double *rwork,
double *result);
480 void lapackf77_zstt21(
int *n,
int *kband,
double *AD,
double *AE,
double *SD,
481 double *SE, cuDoubleComplex *U,
int *ldu,
482 cuDoubleComplex *
work,
double *rwork,
double *result);
483 void lapackf77_zunt01(
const char *rowcol,
int *m,
int *n, cuDoubleComplex *U,
int *ldu,
484 cuDoubleComplex *
work,
int *lwork,
double *rwork,
double *resid);
489 cuDoubleComplex *
Q,
int *ldq,
double *D,
double *
E,
490 cuDoubleComplex *PT,
int *ldpt,
491 cuDoubleComplex *
work,
double *resid);
492 void lapackf77_zget22(
const char *transa,
const char *transe,
const char *transw,
int *n,
493 cuDoubleComplex *a,
int *lda, cuDoubleComplex *e,
int *lde,
494 cuDoubleComplex *wr, cuDoubleComplex *wi,
495 double *
work,
double *result);
497 cuDoubleComplex *
A,
int *lda,
double *D,
double *
E,
498 cuDoubleComplex *U,
int *ldu, cuDoubleComplex *
V,
int *ldv,
499 cuDoubleComplex *
TAU, cuDoubleComplex *
work,
double *result);
501 cuDoubleComplex *H,
int *ldh, cuDoubleComplex *
Q,
int *ldq,
502 cuDoubleComplex *
work,
int *lwork,
double *result);
503 void lapackf77_zstt21(
int *n,
int *kband,
double *AD,
double *AE,
double *SD,
504 double *SE, cuDoubleComplex *U,
int *ldu,
505 cuDoubleComplex *
work,
double *result);
506 void lapackf77_zunt01(
const char *rowcol,
int *m,
int *n, cuDoubleComplex *U,
int *ldu,
507 cuDoubleComplex *
work,
int *lwork,
double *resid);
511 cuDoubleComplex *tau, cuDoubleComplex *
C,
int *ldc,
512 cuDoubleComplex *
work);
514 cuDoubleComplex *, cuDoubleComplex *,
515 cuDoubleComplex *,
int *, cuDoubleComplex *);
517 cuDoubleComplex *af,
int *lda, cuDoubleComplex *tau,
int *jpvt,
518 cuDoubleComplex *
work,
int *lwork);
519 void lapackf77_zqrt02(
int *m,
int *n,
int *k, cuDoubleComplex *
A, cuDoubleComplex *AF,
520 cuDoubleComplex *
Q, cuDoubleComplex *R,
int *lda,
521 cuDoubleComplex *
TAU, cuDoubleComplex *
work,
int *lwork,
522 double *rwork,
double *result);
529 #undef DWORKFORZ_AND_LD