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
coreblas_d.c
Go to the documentation of this file.
1 
21 #include <eztrace.h>
22 #include <ev_codes.h>
23 #include "common.h"
24 #include "coreblas_ev_codes.h"
25 #include "coreblas_macros.h"
26 #undef COMPLEX
27 #define REAL
28 
29 /*****************************************************************
30  * Core functions
31  */
32 
33 FUNCTION_VOID( CORE_dasum, ASUM, void ,
34  (int storev, int uplo, int M, int N, double *A, int lda, double *work),
35  (storev, uplo, M, N, A, lda, work) )
36 FUNCTION_VOID( CORE_dgeadd, GEADD, void ,
37  (int M, int N, double alpha, double *A, int LDA, double *B, int LDB),
38  (M, N, alpha, A, LDA, B, LDB) )
39 FUNCTION_VOID( CORE_dbrdalg, BRDALG, void ,
40  (PLASMA_enum uplo, int N, int NB, PLASMA_desc *pA, double *V, double *TAU, int i, int j, int m, int grsiz),
41  (uplo, N, NB, pA, V, TAU, i, j, m, grsiz) )
42 FUNCTION_TYPE( CORE_dgelqt, GELQT, int ,
43  (int M, int N, int IB, double *A, int LDA, double *T, int LDT, double *TAU, double *WORK),
44  (M, N, IB, A, LDA, T, LDT, TAU, WORK) )
45 FUNCTION_VOID( CORE_dgemm, GEMM, void ,
46  (int transA, int transB, int M, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC),
47  (transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
48 FUNCTION_TYPE( CORE_dgeqrt, GEQRT, int ,
49  (int M, int N, int IB, double *A, int LDA, double *T, int LDT, double *TAU, double *WORK),
50  (M, N, IB, A, LDA, T, LDT, TAU, WORK) )
51 FUNCTION_TYPE( CORE_dgessm, GESSM, int ,
52  (int M, int N, int K, int IB, int *IPIV, double *L, int LDL, double *A, int LDA),
53  (M, N, K, IB, IPIV, L, LDL, A, LDA) )
54 FUNCTION_TYPE( CORE_dgetrf, GETRF, int ,
55  (int m, int n, double *A, int lda, int *IPIV, int *info),
56  (m, n, A, lda, IPIV, info) )
57 FUNCTION_TYPE( CORE_dgetrf_incpiv, GETRF, int ,
58  (int M, int N, int IB, double *A, int LDA, int *IPIV, int *INFO),
59  (M, N, IB, A, LDA, IPIV, INFO) )
60 FUNCTION_TYPE( CORE_dgetrf_reclap, GETRF, int ,
61  (int M, int N, double *A, int LDA, int *IPIV, int *info),
62  (M, N, A, LDA, IPIV, info) )
63 FUNCTION_TYPE( CORE_dgetrf_rectil, GETRF, int ,
64  (const PLASMA_desc A, int *IPIV, int *info),
65  (A, IPIV, info) )
66 FUNCTION_VOID( CORE_dgetrip, GETRIP, void ,
67  (int m, int n, double *A, double *W) ,
68  (m, n, A, W) )
69 FUNCTION_VOID( CORE_dsygst, HEGST, void ,
70  (int itype, PLASMA_enum uplo, int N, double *A, int LDA, double *B, int LDB, int *INFO),
71  (itype, uplo, N, A, LDA, B, LDB, INFO) )
72 #ifdef COMPLEX
73 FUNCTION_VOID( CORE_dsymm, HEMM, void ,
74  (int side, int uplo, int M, int N, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC),
75  (side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC) )
76 #endif
77 #ifdef COMPLEX
78 FUNCTION_VOID( CORE_dsyr2k, HER2K, void ,
79  (int uplo, int trans, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC),
80  (uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
81 #endif
82 FUNCTION_TYPE( CORE_dsyrfb, HERFB, int ,
83  ( PLASMA_enum uplo, int n, int k, int ib, int nb, double *A, int lda, double *T, int ldt, double *C, int ldc, double *WORK, int ldwork ),
84  (uplo, n, k, ib, nb, A, lda, T, ldt, C, ldc, WORK, ldwork) )
85 #ifdef COMPLEX
86 FUNCTION_VOID( CORE_dsyrk, HERK, void ,
87  (int uplo, int trans, int N, int K, double alpha, double *A, int LDA, double beta, double *C, int LDC),
88  (uplo, trans, N, K, alpha, A, LDA, beta, C, LDC) )
89 #endif
90 FUNCTION_VOID( CORE_dlacpy, LACPY, void ,
91  (PLASMA_enum uplo, int M, int N, double *A, int LDA, double *B, int LDB),
92  (uplo, M, N, A, LDA, B, LDB) )
93 FUNCTION_VOID( CORE_dlange, LANGE, void ,
94  (int norm, int M, int N, double *A, int LDA, double *work, double *normA),
95  (norm, M, N, A, LDA, work, normA) )
96 #ifdef COMPLEX
97 FUNCTION_VOID( CORE_dlansy, LANHE, void ,
98  (int norm, int uplo, int N, double *A, int LDA, double *work, double *normA),
99  (norm, uplo, N, A, LDA, work, normA) )
100 #endif
101 FUNCTION_VOID( CORE_dlansy, LANSY, void ,
102  (int norm, int uplo, int N, double *A, int LDA, double *work, double *normA),
103  (norm, uplo, N, A, LDA, work, normA) )
104 FUNCTION_VOID( CORE_dlaset2, LASET, void ,
105  (PLASMA_enum uplo, int M, int N, double alpha, double *A, int LDA),
106  (uplo, M, N, alpha, A, LDA) )
107 FUNCTION_VOID( CORE_dlaset, LASET, void ,
108  (PLASMA_enum uplo, int M, int N, double alpha, double beta, double *A, int LDA),
109  (uplo, M, N, alpha, beta, A, LDA) )
110 FUNCTION_VOID( CORE_dlaswp, LASWP, void ,
111  (int N, double *A, int LDA, int I1, int I2, int *IPIV, int INC),
112  (N, A, LDA, I1, I2, IPIV, INC) )
113 FUNCTION_TYPE( CORE_dlaswp_ontile, LASWP, int ,
114  (PLASMA_desc descA, int i1, int i2, int *ipiv, int inc),
115  (descA, i1, i2, ipiv, inc) )
116 FUNCTION_TYPE( CORE_dswptr_ontile, TRSM, int ,
117  (PLASMA_desc descA, int i1, int i2, int *ipiv, int inc, double *Akk, int ldak),
118  (descA, i1, i2, ipiv, inc, Akk, ldak) )
119 FUNCTION_TYPE( CORE_dlaswpc_ontile, LASWP, int ,
120  (PLASMA_desc descA, int i1, int i2, int *ipiv, int inc),
121  (descA, i1, i2, ipiv, inc) )
122 FUNCTION_VOID( CORE_dlauum, LAUUM, void ,
123  (int uplo, int N, double *A, int LDA),
124  (uplo, N, A, LDA) )
125 #ifdef COMPLEX
126 FUNCTION_VOID( CORE_dplgsy, PLGHE, void ,
127  ( double bump, int m, int n, double *A, int lda, int bigM, int m0, int n0, unsigned long long int seed ),
128  (bump, m, n, A, lda, bigM, m0, n0, seed) )
129 #endif
130 FUNCTION_VOID( CORE_dplgsy, PLGSY, void ,
131  ( double bump, int m, int n, double *A, int lda, int bigM, int m0, int n0, unsigned long long int seed ),
132  (bump, m, n, A, lda, bigM, m0, n0, seed) )
133 FUNCTION_VOID( CORE_dplrnt, PLRNT, void ,
134  ( int m, int n, double *A, int lda, int bigM, int m0, int n0, unsigned long long int seed ),
135  (m, n, A, lda, bigM, m0, n0, seed) )
136 FUNCTION_VOID( CORE_dpotrf, POTRF, void ,
137  (int uplo, int N, double *A, int LDA, int *INFO),
138  (uplo, N, A, LDA, INFO) )
139 FUNCTION_VOID( CORE_dshiftw, SHIFTW, void ,
140  (int s, int cl, int m, int n, int L, double *A, double *W) ,
141  (s, cl, m, n, L, A, W) )
142 FUNCTION_VOID( CORE_dshift, SHIFT, void ,
143  (int s, int m, int n, int L, double *A) ,
144  (s, m, n, L, A) )
145 FUNCTION_TYPE( CORE_dssssm, SSSSM, int ,
146  (int M1, int N1, int M2, int N2, int K, int IB, double *A1, int LDA1, double *A2, int LDA2, double *L1, int LDL1, double *L2, int LDL2, int *IPIV),
147  (M1, N1, M2, N2, K, IB, A1, LDA1, A2, LDA2, L1, LDL1, L2, LDL2, IPIV) )
148 FUNCTION_VOID( CORE_dswpab, SWPAB, void ,
149  (int i, int n1, int n2, double *A, double *work) ,
150  (i, n1, n2, A, work) )
151 FUNCTION_VOID( CORE_dsymm, SYMM, void ,
152  (int side, int uplo, int M, int N, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC),
153  (side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC) )
154 FUNCTION_VOID( CORE_dsyr2k, SYR2K, void ,
155  (int uplo, int trans, int N, int K, double alpha, double *A, int LDA, double *B, int LDB, double beta, double *C, int LDC),
156  (uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
157 FUNCTION_VOID( CORE_dsyrk, SYRK, void ,
158  (int uplo, int trans, int N, int K, double alpha, double *A, int LDA, double beta, double *C, int LDC),
159  (uplo, trans, N, K, alpha, A, LDA, beta, C, LDC) )
160 FUNCTION_VOID( CORE_dtrdalg, TRDALG, void ,
161  (PLASMA_enum uplo, int N, int NB, PLASMA_desc *pA, double *V, double *TAU, int i, int j, int m, int grsiz),
162  (uplo, N, NB, pA, V, TAU, i, j, m, grsiz) )
163 FUNCTION_VOID( CORE_dtrmm, TRMM, void ,
164  (int side, int uplo, int transA, int diag, int M, int N, double alpha, double *A, int LDA, double *B, int LDB),
165  (side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB) )
166 FUNCTION_VOID( CORE_dtrsm, TRSM, void ,
167  (int side, int uplo, int transA, int diag, int M, int N, double alpha, double *A, int LDA, double *B, int LDB),
168  (side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB) )
169 FUNCTION_VOID( CORE_dtrtri, TRTRI, void ,
170  (int uplo, int diag, int N, double *A, int LDA, int *info),
171  (uplo, diag, N, A, LDA, info) )
172 FUNCTION_TYPE( CORE_dtslqt, TSLQT, int ,
173  (int M, int N, int IB, double *A1, int LDA1, double *A2, int LDA2, double *T, int LDT, double *TAU, double *WORK),
174  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
175 FUNCTION_TYPE( CORE_dtsmlq, TSMLQ, int ,
176  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, double *A1, int LDA1, double *A2, int LDA2, double *V, int LDV, double *T, int LDT, double *WORK, int LDWORK),
177  (side, trans, M1, N1, M2, N2, K, IB, A1, LDA1, A2, LDA2, V, LDV, T, LDT, WORK, LDWORK) )
178 FUNCTION_TYPE( CORE_dtsmlq_corner, TSMLQ, int ,
179  ( int m1, int n1, int m2, int n2, int m3, int n3, int k, int ib, int nb, double *A1, int lda1, double *A2, int lda2, double *A3, int lda3, double *V, int ldv, double *T, int ldt, double *WORK, int ldwork),
180  (m1, n1, m2, n2, m3, n3, k, ib, nb, A1, lda1, A2, lda2, A3, lda3, V, ldv, T, ldt, WORK, ldwork) )
181 FUNCTION_TYPE( CORE_dtsmlq_sytra1, TSMLQ, int ,
182  ( int side, int trans, int m1, int n1, int m2, int n2, int k, int ib, double *A1, int lda1, double *A2, int lda2, double *V, int ldv, double *T, int ldt, double *WORK, int ldwork),
183  (side, trans, m1, n1, m2, n2, k, ib, A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork) )
184 FUNCTION_TYPE( CORE_dtsmqr, TSMQR, int ,
185  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, double *A1, int LDA1, double *A2, int LDA2, double *V, int LDV, double *T, int LDT, double *WORK, int LDWORK),
186  (side, trans, M1, N1, M2, N2, K, IB, A1, LDA1, A2, LDA2, V, LDV, T, LDT, WORK, LDWORK) )
187 FUNCTION_TYPE( CORE_dtsmqr_corner, TSMQR, int ,
188  ( int m1, int n1, int m2, int n2, int m3, int n3, int k, int ib, int nb, double *A1, int lda1, double *A2, int lda2, double *A3, int lda3, double *V, int ldv, double *T, int ldt, double *WORK, int ldwork),
189  (m1, n1, m2, n2, m3, n3, k, ib, nb, A1, lda1, A2, lda2, A3, lda3, V, ldv, T, ldt, WORK, ldwork) )
190 FUNCTION_TYPE( CORE_dtsmqr_sytra1, TSMQR, int ,
191  ( int side, int trans, int m1, int n1, int m2, int n2, int k, int ib, double *A1, int lda1, double *A2, int lda2, double *V, int ldv, double *T, int ldt, double *WORK, int ldwork),
192  (side, trans, m1, n1, m2, n2, k, ib, A1, lda1, A2, lda2, V, ldv, T, ldt, WORK, ldwork) )
193 FUNCTION_TYPE( CORE_dtsqrt, TSQRT, int ,
194  (int M, int N, int IB, double *A1, int LDA1, double *A2, int LDA2, double *T, int LDT, double *TAU, double *WORK),
195  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
196 FUNCTION_TYPE( CORE_dtstrf, TSTRF, int ,
197  (int M, int N, int IB, int NB, double *U, int LDU, double *A, int LDA, double *L, int LDL, int *IPIV, double *WORK, int LDWORK, int *INFO),
198  (M, N, IB, NB, U, LDU, A, LDA, L, LDL, IPIV, WORK, LDWORK, INFO) )
199 FUNCTION_TYPE( CORE_dttlqt, TTLQT, int ,
200  (int M, int N, int IB, double *A1, int LDA1, double *A2, int LDA2, double *T, int LDT, double *TAU, double *WORK),
201  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
202 FUNCTION_TYPE( CORE_dttmlq, TTMLQ, int ,
203  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, double *A1, int LDA1, double *A2, int LDA2, double *V, int LDV, double *T, int LDT, double *WORK, int LDWORK),
204  (side, trans, M1, N1, M2, N2, K, IB, A1, LDA1, A2, LDA2, V, LDV, T, LDT, WORK, LDWORK) )
205 FUNCTION_TYPE( CORE_dttmqr, TTMQR, int ,
206  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, double *A1, int LDA1, double *A2, int LDA2, double *V, int LDV, double *T, int LDT, double *WORK, int LDWORK),
207  (side, trans, M1, N1, M2, N2, K, IB, A1, LDA1, A2, LDA2, V, LDV, T, LDT, WORK, LDWORK) )
208 FUNCTION_TYPE( CORE_dttqrt, TTQRT, int ,
209  (int M, int N, int IB, double *A1, int LDA1, double *A2, int LDA2, double *T, int LDT, double *TAU, double *WORK),
210  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
211 FUNCTION_TYPE( CORE_dormlq, UNMLQ, int ,
212  (int side, int trans, int M, int N, int K, int IB, double *A, int LDA, double *T, int LDT, double *C, int LDC, double *WORK, int LDWORK),
213  (side, trans, M, N, K, IB, A, LDA, T, LDT, C, LDC, WORK, LDWORK) )
214 FUNCTION_TYPE( CORE_dormqr, UNMQR, int ,
215  (int side, int trans, int M, int N, int K, int IB, double *A, int LDA, double *T, int LDT, double *C, int LDC, double *WORK, int LDWORK),
216  (side, trans, M, N, K, IB, A, LDA, T, LDT, C, LDC, WORK, LDWORK) )
217 
218 /*****************************************************************
219  * QUARK Wrapper functions
220  */
221 
242 #ifdef COMPLEX
244 #endif
245 #ifdef COMPLEX
247 #endif
249 #ifdef COMPLEX
251 #endif
255 #ifdef COMPLEX
258 #endif
260 FUNCTION_QUARK( CORE_dlansy_f1_quark, LANSY )
270 #ifdef COMPLEX
272 #endif
303