MAGMA  magma-1.4.0
Matrix Algebra on GPU and Multicore Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magmablas_z.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 _MAGMABLAS_Z_H_
12 #define _MAGMABLAS_Z_H_
13 
14 #define PRECISION_z
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19  /*
20  * Interface to clean
21  */
22 double cpu_gpu_zdiff( int M, int N,
23  cuDoubleComplex * a, int lda,
24  cuDoubleComplex *da, int ldda);
25 void zzero_32x32_block( cuDoubleComplex *, magma_int_t);
26 void zzero_nbxnb_block( magma_int_t, cuDoubleComplex *, magma_int_t);
27 void magmablas_zinplace_transpose(cuDoubleComplex *, magma_int_t, magma_int_t);
28 void magmablas_zpermute_long( cuDoubleComplex *, magma_int_t,
30 void magmablas_zpermute_long2( cuDoubleComplex *, magma_int_t,
32 void magmablas_ztranspose( cuDoubleComplex *, magma_int_t,
33  cuDoubleComplex *, magma_int_t,
35 void magmablas_ztranspose2( cuDoubleComplex *, magma_int_t,
36  cuDoubleComplex *, magma_int_t,
38 void magmablas_zhtodt( cuDoubleComplex *ha, int lda,
39  cuDoubleComplex *dat, int ldda,
40  cuDoubleComplex *dB, int lddb,
41  int m, int n , int nb);
42 void magmablas_zdtoht( cuDoubleComplex *dat, int ldda,
43  cuDoubleComplex *ha, int lda,
44  cuDoubleComplex *dB, int lddb,
45  int m, int n , int nb);
46 
47  /*
48  * LAPACK auxiliary functions
49  */
50 void magmablas_zlacpy( char uplo,
52  cuDoubleComplex *A, magma_int_t lda,
53  cuDoubleComplex *B, magma_int_t ldb);
54 double magmablas_zlange( char norm,
56  cuDoubleComplex *A, magma_int_t lda, double *WORK);
57 double magmablas_zlanhe( char norm, char uplo,
58  magma_int_t n,
59  cuDoubleComplex *A, magma_int_t lda, double *WORK);
60 double magmablas_zlansy( char norm, char uplo,
61  magma_int_t n,
62  cuDoubleComplex *A, magma_int_t lda, double *WORK);
63 void magmablas_zlascl( char type, int kl, int ku,
64  double cfrom, double cto,
65  int m, int n,
66  cuDoubleComplex *A, int lda, int *info );
68  cuDoubleComplex *A, magma_int_t lda);
70  cuDoubleComplex *dAT, magma_int_t lda,
71  magma_int_t i1, magma_int_t i2,
72  magma_int_t *ipiv, magma_int_t inci );
74  cuDoubleComplex *dAT, magma_int_t ldx, magma_int_t ldy,
75  magma_int_t i1, magma_int_t i2,
76  magma_int_t *ipiv, magma_int_t inci );
77 
78  /*
79  * Level 1 BLAS
80  */
82  cuDoubleComplex *dA1, magma_int_t lda1,
83  cuDoubleComplex *dA2, magma_int_t lda2 );
84 void magmablas_zswapblk(char storev,
85  magma_int_t N,
86  cuDoubleComplex *dA1, magma_int_t lda1,
87  cuDoubleComplex *dA2, magma_int_t lda2,
88  magma_int_t i1, magma_int_t i2,
89  magma_int_t *ipiv, magma_int_t inci,
90  magma_int_t offset);
92  cuDoubleComplex *dA1, magma_int_t ldda1, magma_int_t inca1,
93  cuDoubleComplex *dA2, magma_int_t ldda2, magma_int_t inca2 );
94 
95  /*
96  * Level 2 BLAS
97  */
98 void magmablas_zgemv(char t, magma_int_t M, magma_int_t N,
99  cuDoubleComplex alpha,
100  cuDoubleComplex *A, magma_int_t lda,
101  cuDoubleComplex * X, magma_int_t incX,
102  cuDoubleComplex beta,
103  cuDoubleComplex *Y, magma_int_t incY);
104 #if defined(PRECISION_z) || defined(PRECISION_c)
106  cuDoubleComplex alpha,
107  cuDoubleComplex *A, magma_int_t lda,
108  cuDoubleComplex *X, magma_int_t incX,
109  cuDoubleComplex beta,
110  cuDoubleComplex *Y, magma_int_t incY);
111 #endif
113  cuDoubleComplex alpha,
114  cuDoubleComplex *A, magma_int_t lda,
115  cuDoubleComplex *X, magma_int_t incX,
116  cuDoubleComplex beta,
117  cuDoubleComplex *Y, magma_int_t incY);
118 
119  /*
120  * Level 3 BLAS
121  */
122 void magmablas_zgemm(char tA, char tB,
124  cuDoubleComplex alpha,
125  const cuDoubleComplex *A, magma_int_t lda,
126  const cuDoubleComplex *B, magma_int_t ldb,
127  cuDoubleComplex beta,
128  cuDoubleComplex *C, magma_int_t ldc);
129 void magmablas_zgemm_fermi80(char tA, char tB,
131  cuDoubleComplex alpha,
132  const cuDoubleComplex *A, magma_int_t lda,
133  const cuDoubleComplex *B, magma_int_t ldb,
134  cuDoubleComplex beta,
135  cuDoubleComplex *C, magma_int_t ldc);
136 void magmablas_zgemm_fermi64(char tA, char tB,
138  cuDoubleComplex alpha,
139  const cuDoubleComplex *A, magma_int_t lda,
140  const cuDoubleComplex *B, magma_int_t ldb,
141  cuDoubleComplex beta,
142  cuDoubleComplex *C, magma_int_t ldc);
143 void magmablas_zhemm(char s, char u,
145  cuDoubleComplex alpha,
146  const cuDoubleComplex *A, magma_int_t lda,
147  const cuDoubleComplex *B, magma_int_t ldb,
148  cuDoubleComplex beta,
149  cuDoubleComplex *C, magma_int_t ldc);
150 void magmablas_zsymm(char s, char u,
152  cuDoubleComplex alpha,
153  const cuDoubleComplex *A, magma_int_t lda,
154  const cuDoubleComplex *B, magma_int_t ldb,
155  cuDoubleComplex beta,
156  cuDoubleComplex *C, magma_int_t ldc);
157 void magmablas_zsyrk(char u, char t,
158  magma_int_t n, magma_int_t k,
159  cuDoubleComplex alpha,
160  const cuDoubleComplex *A, magma_int_t lda,
161  cuDoubleComplex beta,
162  cuDoubleComplex *C, magma_int_t ldc);
163 void magmablas_zherk(char u, char t,
164  magma_int_t n, magma_int_t k,
165  double alpha,
166  const cuDoubleComplex *A, magma_int_t lda,
167  double beta,
168  cuDoubleComplex *C, magma_int_t ldc);
169 void magmablas_zsyr2k(char u, char t,
171  cuDoubleComplex alpha,
172  const cuDoubleComplex *A, magma_int_t lda,
173  const cuDoubleComplex *B, magma_int_t ldb,
174  cuDoubleComplex beta,
175  cuDoubleComplex *C, magma_int_t ldc);
176 void magmablas_zher2k(char u, char t,
177  magma_int_t n, magma_int_t k,
178  cuDoubleComplex alpha,
179  const cuDoubleComplex *A, magma_int_t lda,
180  const cuDoubleComplex *B, magma_int_t ldb,
181  double beta,
182  cuDoubleComplex *C, magma_int_t ldc);
183 void magmablas_ztrmm(char s, char u, char t, char d,
185  cuDoubleComplex alpha,
186  const cuDoubleComplex *A, magma_int_t lda,
187  cuDoubleComplex *B, magma_int_t ldb);
188 void magmablas_ztrsm(char s, char u, char t, char d,
190  cuDoubleComplex alpha,
191  /*const*/ cuDoubleComplex *A, magma_int_t lda,
192  cuDoubleComplex *B, magma_int_t ldb);
193 
194 
195  /*
196  * Workspace interface (alphabetical order)
197  */
199  cuDoubleComplex alpha,
200  cuDoubleComplex *A, magma_int_t lda,
201  cuDoubleComplex *X, magma_int_t incX,
202  cuDoubleComplex beta,
203  cuDoubleComplex *Y, magma_int_t incY,
204  cuDoubleComplex *dWork);
205 
206 #ifdef __cplusplus
207 }
208 #endif
209 
210 #undef PRECISION_z
211 #endif
void magmablas_zgemm_fermi64(char tA, char tB, magma_int_t m, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magmablas_ztrsm(char s, char u, char t, char d, magma_int_t m, magma_int_t n, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *B, magma_int_t ldb)
void magmablas_zsyr2k(char u, char t, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
magma_int_t magmablas_zhemv(char u, magma_int_t N, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *X, magma_int_t incX, cuDoubleComplex beta, cuDoubleComplex *Y, magma_int_t incY)
void magmablas_zinplace_transpose(cuDoubleComplex *, magma_int_t, magma_int_t)
void magmablas_zpermute_long2(cuDoubleComplex *, magma_int_t, magma_int_t *, magma_int_t, magma_int_t)
void magmablas_zgemv(char t, magma_int_t M, magma_int_t N, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *X, magma_int_t incX, cuDoubleComplex beta, cuDoubleComplex *Y, magma_int_t incY)
#define B(i, j)
Definition: chegst.cpp:17
void magmablas_zlaset(magma_int_t m, magma_int_t n, cuDoubleComplex *A, magma_int_t lda)
double magmablas_zlange(char norm, magma_int_t m, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, double *WORK)
int magma_int_t
Definition: magmablas.h:12
#define C(i, j)
#define dB(dev, i, j)
void magmablas_zherk(char u, char t, magma_int_t n, magma_int_t k, double alpha, const cuDoubleComplex *A, magma_int_t lda, double beta, cuDoubleComplex *C, magma_int_t ldc)
double magmablas_zlansy(char norm, char uplo, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, double *WORK)
void magmablas_zswap(magma_int_t N, cuDoubleComplex *dA1, magma_int_t lda1, cuDoubleComplex *dA2, magma_int_t lda2)
void zzero_nbxnb_block(magma_int_t, cuDoubleComplex *, magma_int_t)
void magmablas_zhemm(char s, char u, magma_int_t m, magma_int_t n, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magmablas_zlacpy(char uplo, magma_int_t m, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *B, magma_int_t ldb)
magma_int_t magmablasw_zsymv(char u, magma_int_t N, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *X, magma_int_t incX, cuDoubleComplex beta, cuDoubleComplex *Y, magma_int_t incY, cuDoubleComplex *dWork)
#define dAT(i, j)
void magmablas_zdtoht(cuDoubleComplex *dat, int ldda, cuDoubleComplex *ha, int lda, cuDoubleComplex *dB, int lddb, int m, int n, int nb)
void magmablas_zsymm(char s, char u, magma_int_t m, magma_int_t n, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
#define magmablas_zgemm
Definition: magmablas.h:25
void magmablas_zhtodt(cuDoubleComplex *ha, int lda, cuDoubleComplex *dat, int ldda, cuDoubleComplex *dB, int lddb, int m, int n, int nb)
void magmablas_zgemm_fermi80(char tA, char tB, magma_int_t m, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magmablas_zswapdblk(magma_int_t n, magma_int_t nb, cuDoubleComplex *dA1, magma_int_t ldda1, magma_int_t inca1, cuDoubleComplex *dA2, magma_int_t ldda2, magma_int_t inca2)
void magmablas_zher2k(char u, char t, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, double beta, cuDoubleComplex *C, magma_int_t ldc)
void magmablas_zsyrk(char u, char t, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
double magmablas_zlanhe(char norm, char uplo, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, double *WORK)
#define Y(i, j)
#define A(i, j)
Definition: cprint.cpp:16
void magmablas_zlaswpx(magma_int_t N, cuDoubleComplex *dAT, magma_int_t ldx, magma_int_t ldy, magma_int_t i1, magma_int_t i2, magma_int_t *ipiv, magma_int_t inci)
void magmablas_ztrmm(char s, char u, char t, char d, magma_int_t m, magma_int_t n, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *B, magma_int_t ldb)
void magmablas_zswapblk(char storev, magma_int_t N, cuDoubleComplex *dA1, magma_int_t lda1, cuDoubleComplex *dA2, magma_int_t lda2, magma_int_t i1, magma_int_t i2, magma_int_t *ipiv, magma_int_t inci, magma_int_t offset)
void magmablas_zlascl(char type, int kl, int ku, double cfrom, double cto, int m, int n, cuDoubleComplex *A, int lda, int *info)
void magmablas_zpermute_long(cuDoubleComplex *, magma_int_t, magma_int_t *, magma_int_t, magma_int_t)
double cpu_gpu_zdiff(int M, int N, cuDoubleComplex *a, int lda, cuDoubleComplex *da, int ldda)
void magmablas_ztranspose2(cuDoubleComplex *, magma_int_t, cuDoubleComplex *, magma_int_t, magma_int_t, magma_int_t)
void magmablas_ztranspose(cuDoubleComplex *, magma_int_t, cuDoubleComplex *, magma_int_t, magma_int_t, magma_int_t)
magma_int_t magmablas_zsymv(char u, magma_int_t N, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *X, magma_int_t incX, cuDoubleComplex beta, cuDoubleComplex *Y, magma_int_t incY)
void magmablas_zlaswp(magma_int_t N, cuDoubleComplex *dAT, magma_int_t lda, magma_int_t i1, magma_int_t i2, magma_int_t *ipiv, magma_int_t inci)
void zzero_32x32_block(cuDoubleComplex *, magma_int_t)