PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
plasma_d.h
Go to the documentation of this file.
1 
18 #ifndef _PLASMA_D_H_
19 #define _PLASMA_D_H_
20 
21 #undef COMPLEX
22 #define REAL
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
31 int PLASMA_dgebrd(PLASMA_enum jobu, PLASMA_enum jobvt, int M, int N, double *A, int LDA, double *D, double *E, double *U, int LDU, double *VT, int LDVT, PLASMA_desc *T);
32 int PLASMA_dgeev(PLASMA_enum jobvl, PLASMA_enum jobvr, int N, double *A, int LDA, double *W, double *VL, int LDVL, double *VR, int LDVR, double *T);
33 int PLASMA_dgehrd(int N, int ILO, int IHI, double *A, int LDA, double *T);
34 int PLASMA_dgelqf(int M, int N, double *A, int LDA, double *T);
35 int PLASMA_dgelqs(int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB);
36 int PLASMA_dgels(PLASMA_enum trans, int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB);
37 int PLASMA_dgemm(PLASMA_enum transA, PLASMA_enum transB, int M, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC);
38 int PLASMA_dgeqrf(int M, int N, double *A, int LDA, double *T);
39 int PLASMA_dgeqrs(int M, int N, int NRHS, double *A, int LDA, double *T, double *B, int LDB);
40 int PLASMA_dgesv(int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB);
41 int PLASMA_dgesv_incpiv(int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB);
42 int PLASMA_dgesvd(PLASMA_enum jobu, PLASMA_enum jobvt, int M, int N, double *A, int LDA, double *S, double *U, int LDU, double *VT, int LDVT, PLASMA_desc *T);
43 int PLASMA_dgetrf(int M, int N, double *A, int LDA, int *IPIV);
44 int PLASMA_dgetrf_incpiv(int M, int N, double *A, int LDA, double *L, int *IPIV);
45 int PLASMA_dgetri(int N, double *A, int LDA, int *IPIV);
46 int PLASMA_dgetrs(PLASMA_enum trans, int N, int NRHS, double *A, int LDA, int *IPIV, double *B, int LDB);
47 int PLASMA_dgetrs_incpiv(PLASMA_enum trans, int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB);
48 #ifdef COMPLEX
49 int PLASMA_dsymm(PLASMA_enum side, PLASMA_enum uplo, int M, int N, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC);
50 int PLASMA_dsyrk(PLASMA_enum uplo, PLASMA_enum trans, int N, int K, double alpha, double *A, int LDA, double beta, double *C, int LDC);
51 int PLASMA_dsyr2k(PLASMA_enum uplo, PLASMA_enum trans, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC);
52 #endif
53 int PLASMA_dsyev(PLASMA_enum jobz, PLASMA_enum uplo, int N, double *A, int LDA, double *W, PLASMA_desc *T, double *Q, int LDQ);
54 int PLASMA_dsygv(PLASMA_enum itype, PLASMA_enum jobz, PLASMA_enum uplo, int N, double *A, int LDA, double *B, int LDB, double *W, PLASMA_desc *T, double *Q, int LDQ);
55 int PLASMA_dsygst(PLASMA_enum itype, PLASMA_enum uplo, int N, double *A, int LDA, double *B, int LDB);
56 int PLASMA_dsytrd(PLASMA_enum jobz, PLASMA_enum uplo, int N, double *A, int LDA, double *D, double *E, PLASMA_desc *T, double *Q, int LDQ);
57 int PLASMA_dlacpy(PLASMA_enum uplo, int M, int N, double *A, int LDA, double *B, int LDB);
58 double PLASMA_dlange(PLASMA_enum norm, int M, int N, double *A, int LDA, double *work);
59 #ifdef COMPLEX
60 double PLASMA_dlansy(PLASMA_enum norm, PLASMA_enum uplo, int N, double *A, int LDA, double *work);
61 #endif
62 double PLASMA_dlansy(PLASMA_enum norm, PLASMA_enum uplo, int N, double *A, int LDA, double *work);
63 int PLASMA_dlaset(PLASMA_enum uplo, int M, int N, double alpha, double beta, double *A, int LDA);
64 int PLASMA_dlaswp(int N, double *A, int LDA, int K1, int K2, int *IPIV, int INCX);
65 int PLASMA_dlaswpc(int N, double *A, int LDA, int K1, int K2, int *IPIV, int INCX);
66 int PLASMA_dlauum(PLASMA_enum uplo, int N, double *A, int LDA);
67 #ifdef COMPLEX
68 int PLASMA_dplgsy( double bump, int N, double *A, int LDA, unsigned long long int seed );
69 #endif
70 int PLASMA_dplgsy( double bump, int N, double *A, int LDA, unsigned long long int seed );
71 int PLASMA_dplrnt( int M, int N, double *A, int LDA, unsigned long long int seed );
72 int PLASMA_dposv(PLASMA_enum uplo, int N, int NRHS, double *A, int LDA, double *B, int LDB);
73 int PLASMA_dpotrf(PLASMA_enum uplo, int N, double *A, int LDA);
74 int PLASMA_dpotri(PLASMA_enum uplo, int N, double *A, int LDA);
75 int PLASMA_dpotrs(PLASMA_enum uplo, int N, int NRHS, double *A, int LDA, double *B, int LDB);
76 int PLASMA_dsymm(PLASMA_enum side, PLASMA_enum uplo, int M, int N, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC);
77 int PLASMA_dsyrk(PLASMA_enum uplo, PLASMA_enum trans, int N, int K, double alpha, double *A, int LDA, double beta, double *C, int LDC);
78 int PLASMA_dsyr2k(PLASMA_enum uplo, PLASMA_enum trans, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC);
79 int PLASMA_dtrmm(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, double alpha, double *A, int LDA, double *B, int LDB);
80 int PLASMA_dtrsm(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, double alpha, double *A, int LDA, double *B, int LDB);
81 int PLASMA_dtrsmpl(int N, int NRHS, double *A, int LDA, double *L, int *IPIV, double *B, int LDB);
82 int PLASMA_dtrsmrv(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, int N, int NRHS, double alpha, double *A, int LDA, double *B, int LDB);
83 int PLASMA_dtrtri(PLASMA_enum uplo, PLASMA_enum diag, int N, double *A, int LDA);
84 int PLASMA_dorgbr(PLASMA_enum side, int M, int N, int K, double *A, int LDA, double *T, double *Q, int LDQ);
85 int PLASMA_dorghr(int N, int ILO, int IHI, double *A, int LDA, double *T, double *Q, int LDQ);
86 int PLASMA_dorglq(int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB);
87 int PLASMA_dorgqr(int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB);
88 int PLASMA_dorgtr(PLASMA_enum uplo, int N, double *A, int LDA, double *T, double *B, int LDB);
89 int PLASMA_dormlq(PLASMA_enum side, PLASMA_enum trans, int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB);
90 int PLASMA_dormqr(PLASMA_enum side, PLASMA_enum trans, int M, int N, int K, double *A, int LDA, double *T, double *B, int LDB);
91 
92 int PLASMA_dgecfi(int m, int n, double *A, PLASMA_enum fin, int imb, int inb, PLASMA_enum fout, int omb, int onb);
93 int PLASMA_dgetmi(int m, int n, double *A, PLASMA_enum fin, int mb, int nb);
94 
98 int PLASMA_dgebrd_Tile(PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *D, double *E, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T);
99 int PLASMA_dgeev_Tile(PLASMA_enum jobvl, PLASMA_enum jobvr, PLASMA_desc *A, double *W, PLASMA_desc *VL, PLASMA_desc *VR, PLASMA_desc *T);
104 int PLASMA_dgemm_Tile(PLASMA_enum transA, PLASMA_enum transB, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C);
107 int PLASMA_dgesv_Tile(PLASMA_desc *A, int *IPIV, PLASMA_desc *B);
109 int PLASMA_dgesvd_Tile(PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *S, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T);
110 int PLASMA_dgetrf_Tile(PLASMA_desc *A, int *IPIV);
111 int PLASMA_dgetrf_incpiv_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV);
112 int PLASMA_dgetri_Tile(PLASMA_desc *A, int *IPIV);
113 int PLASMA_dgetrs_Tile(PLASMA_enum trans, PLASMA_desc *A, int *IPIV, PLASMA_desc *B);
115 #ifdef COMPLEX
116 int PLASMA_dsymm_Tile(PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C);
117 int PLASMA_dsyrk_Tile(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, double beta, PLASMA_desc *C);
118 int PLASMA_dsyr2k_Tile(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C);
119 #endif
120 int PLASMA_dsyev_Tile(PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *W, PLASMA_desc *T, PLASMA_desc *Q);
121 int PLASMA_dsygv_Tile(PLASMA_enum itype, PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, double *W, PLASMA_desc *T, PLASMA_desc *Q);
123 int PLASMA_dsytrd_Tile(PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *D, double *E, PLASMA_desc *T, PLASMA_desc *Q);
125 double PLASMA_dlange_Tile(PLASMA_enum norm, PLASMA_desc *A, double *work);
126 #ifdef COMPLEX
127 double PLASMA_dlansy_Tile(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc *A, double *work);
128 #endif
129 double PLASMA_dlansy_Tile(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc *A, double *work);
130 int PLASMA_dlaset_Tile(PLASMA_enum uplo, double alpha, double beta, PLASMA_desc *A);
131 int PLASMA_dlaswp_Tile(PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX);
132 int PLASMA_dlaswpc_Tile(PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX);
134 #ifdef COMPLEX
135 int PLASMA_dplgsy_Tile(double bump, PLASMA_desc *A, unsigned long long int seed );
136 #endif
137 int PLASMA_dplgsy_Tile(double bump, PLASMA_desc *A, unsigned long long int seed );
138 int PLASMA_dplrnt_Tile(PLASMA_desc *A, unsigned long long int seed );
143 int PLASMA_dsymm_Tile(PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C);
144 int PLASMA_dsyrk_Tile(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, double beta, PLASMA_desc *C);
145 int PLASMA_dsyr2k_Tile(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C);
146 int PLASMA_dtrmm_Tile(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B);
147 int PLASMA_dtrsm_Tile(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B);
148 int PLASMA_dtrsmpl_Tile(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B);
149 int PLASMA_dtrsmrv_Tile(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B);
158 
162 int PLASMA_dgebrd_Tile_Async(PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *D, double *E, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request);
163 int PLASMA_dgeev_Tile_Async(PLASMA_enum jobvl, PLASMA_enum jobvr, PLASMA_desc *A, double *W, PLASMA_desc *VL, PLASMA_desc *VR, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request);
168 int PLASMA_dgemm_Tile_Async(PLASMA_enum transA, PLASMA_enum transB, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request);
171 int PLASMA_dgesv_Tile_Async(PLASMA_desc *A, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request);
173 int PLASMA_dgesvd_Tile_Async(PLASMA_enum jobu, PLASMA_enum jobvt, PLASMA_desc *A, double *S, PLASMA_desc *U, PLASMA_desc *VT, PLASMA_desc *T, PLASMA_sequence *sequence, PLASMA_request *request);
174 int PLASMA_dgetrf_Tile_Async(PLASMA_desc *A, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
175 int PLASMA_dgetrf_incpiv_Tile_Async(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
176 int PLASMA_dgetri_Tile_Async(PLASMA_desc *A, int *IPIV, PLASMA_desc *W, PLASMA_sequence *sequence, PLASMA_request *request);
177 int PLASMA_dgetrs_Tile_Async(PLASMA_enum trans, PLASMA_desc *A, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request);
179 #ifdef COMPLEX
180 int PLASMA_dsymm_Tile_Async(PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request);
181 int PLASMA_dsyrk_Tile_Async(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request);
182 int PLASMA_dsyr2k_Tile_Async(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request);
183 #endif
184 int PLASMA_dsyev_Tile_Async(PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *W, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request);
185 int PLASMA_dsygv_Tile_Async(PLASMA_enum itype, PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, PLASMA_desc *B, double *W, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request);
187 int PLASMA_dsytrd_Tile_Async(PLASMA_enum jobz, PLASMA_enum uplo, PLASMA_desc *A, double *D, double *E, PLASMA_desc *T, PLASMA_desc *Q, PLASMA_sequence *sequence, PLASMA_request *request);
189 int PLASMA_dlange_Tile_Async(PLASMA_enum norm, PLASMA_desc *A, double *work, double *value, PLASMA_sequence *sequence, PLASMA_request *request);
190 #ifdef COMPLEX
191 int PLASMA_dlansy_Tile_Async(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc *A, double *work, double *value, PLASMA_sequence *sequence, PLASMA_request *request);
192 #endif
193 int PLASMA_dlansy_Tile_Async(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc *A, double *work, double *value, PLASMA_sequence *sequence, PLASMA_request *request);
194 int PLASMA_dlaset_Tile_Async(PLASMA_enum uplo, double alpha, double beta, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request);
195 int PLASMA_dlaswp_Tile_Async(PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX, PLASMA_sequence *sequence, PLASMA_request *request);
196 int PLASMA_dlaswpc_Tile_Async(PLASMA_desc *A, int K1, int K2, int *IPIV, int INCX, PLASMA_sequence *sequence, PLASMA_request *request);
198 #ifdef COMPLEX
199 int PLASMA_dplgsy_Tile_Async(double bump, PLASMA_desc *A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
200 #endif
201 int PLASMA_dplgsy_Tile_Async(double bump, PLASMA_desc *A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
202 int PLASMA_dplrnt_Tile_Async(PLASMA_desc *A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
207 int PLASMA_dsymm_Tile_Async(PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request);
208 int PLASMA_dsyrk_Tile_Async(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request);
209 int PLASMA_dsyr2k_Tile_Async(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc *A, PLASMA_desc *B, double beta, PLASMA_desc *C, PLASMA_sequence *sequence, PLASMA_request *request);
210 int PLASMA_dtrmm_Tile_Async(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request);
211 int PLASMA_dtrsm_Tile_Async(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request);
212 int PLASMA_dtrsmpl_Tile_Async(PLASMA_desc *A, PLASMA_desc *L, int *IPIV, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request);
213 int PLASMA_dtrsmrv_Tile_Async(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, double alpha, PLASMA_desc *A, PLASMA_desc *B, PLASMA_sequence *sequence, PLASMA_request *request);
222 
223 int PLASMA_dgecfi_Async(int m, int n, double *A, PLASMA_enum f_in, int imb, int inb, PLASMA_enum f_out, int omb, int onb, PLASMA_sequence *sequence, PLASMA_request *request);
224 int PLASMA_dgetmi_Async(int m, int n, double *A, PLASMA_enum f_in, int mb, int inb, PLASMA_sequence *sequence, PLASMA_request *request);
225 
229 int PLASMA_Alloc_Workspace_dgelqf(int M, int N, double **T);
230 int PLASMA_Alloc_Workspace_dgels( int M, int N, double **T);
231 int PLASMA_Alloc_Workspace_dgeqrf(int M, int N, double **T);
232 int PLASMA_Alloc_Workspace_dgesv_incpiv( int N, double **L, int **IPIV);
233 int PLASMA_Alloc_Workspace_dgetrf_incpiv(int M, int N, double **L, int **IPIV);
234 
235 int PLASMA_Alloc_Workspace_dgebrd(int M, int N, PLASMA_desc **descT);
236 int PLASMA_Alloc_Workspace_dgeev( int N, PLASMA_desc **descT);
237 int PLASMA_Alloc_Workspace_dgehrd(int N, PLASMA_desc **descT);
238 int PLASMA_Alloc_Workspace_dgesvd(int M, int N, PLASMA_desc **descT);
239 int PLASMA_Alloc_Workspace_dsyev( int M, int N, PLASMA_desc **descT);
240 int PLASMA_Alloc_Workspace_dsygv( int M, int N, PLASMA_desc **descT);
241 int PLASMA_Alloc_Workspace_dsytrd(int M, int N, PLASMA_desc **descT);
242 
246 int PLASMA_Alloc_Workspace_dgelqf_Tile(int M, int N, PLASMA_desc **descT);
247 int PLASMA_Alloc_Workspace_dgels_Tile( int M, int N, PLASMA_desc **descT);
248 int PLASMA_Alloc_Workspace_dgeqrf_Tile(int M, int N, PLASMA_desc **descT);
249 int PLASMA_Alloc_Workspace_dgesv_incpiv_Tile (int N, PLASMA_desc **descL, int **IPIV);
250 int PLASMA_Alloc_Workspace_dgetrf_incpiv_Tile(int N, PLASMA_desc **descL, int **IPIV);
252 
256 int PLASMA_dLapack_to_Tile(double *Af77, int LDA, PLASMA_desc *A);
257 int PLASMA_dTile_to_Lapack(PLASMA_desc *A, double *Af77, int LDA);
258 int PLASMA_dLapack_to_Tile_Async(double *Af77, int LDA, PLASMA_desc *A, PLASMA_sequence *sequence, PLASMA_request *request);
259 int PLASMA_dTile_to_Lapack_Async(PLASMA_desc *A, double *Af77, int LDA, PLASMA_sequence *sequence, PLASMA_request *request);
260 
261 #ifdef __cplusplus
262 }
263 #endif
264 
265 #undef COMPLEX
266 
267 #endif