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_c.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 REAL
27 #define COMPLEX
28 
29 /*****************************************************************
30  * Core functions
31  */
32 
33 FUNCTION_VOID( CORE_scasum, ASUM, void ,
34  (int storev, int uplo, int M, int N, PLASMA_Complex32_t *A, int lda, float *work),
35  (storev, uplo, M, N, A, lda, work) )
36 FUNCTION_VOID( CORE_cgeadd, GEADD, void ,
37  (int M, int N, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB),
38  (M, N, alpha, A, LDA, B, LDB) )
39 FUNCTION_VOID( CORE_cbrdalg, BRDALG, void ,
40  (PLASMA_enum uplo, int N, int NB, PLASMA_desc *pA, PLASMA_Complex32_t *V, PLASMA_Complex32_t *TAU, int i, int j, int m, int grsiz),
41  (uplo, N, NB, pA, V, TAU, i, j, m, grsiz) )
42 FUNCTION_TYPE( CORE_cgelqt, GELQT, int ,
43  (int M, int N, int IB, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *TAU, PLASMA_Complex32_t *WORK),
44  (M, N, IB, A, LDA, T, LDT, TAU, WORK) )
45 FUNCTION_VOID( CORE_cgemm, GEMM, void ,
46  (int transA, int transB, int M, int N, int K, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB, PLASMA_Complex32_t beta, PLASMA_Complex32_t *C, int LDC),
47  (transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
48 FUNCTION_TYPE( CORE_cgeqrt, GEQRT, int ,
49  (int M, int N, int IB, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *TAU, PLASMA_Complex32_t *WORK),
50  (M, N, IB, A, LDA, T, LDT, TAU, WORK) )
51 FUNCTION_TYPE( CORE_cgessm, GESSM, int ,
52  (int M, int N, int K, int IB, int *IPIV, PLASMA_Complex32_t *L, int LDL, PLASMA_Complex32_t *A, int LDA),
53  (M, N, K, IB, IPIV, L, LDL, A, LDA) )
54 FUNCTION_TYPE( CORE_cgetrf, GETRF, int ,
55  (int m, int n, PLASMA_Complex32_t *A, int lda, int *IPIV, int *info),
56  (m, n, A, lda, IPIV, info) )
57 FUNCTION_TYPE( CORE_cgetrf_incpiv, GETRF, int ,
58  (int M, int N, int IB, PLASMA_Complex32_t *A, int LDA, int *IPIV, int *INFO),
59  (M, N, IB, A, LDA, IPIV, INFO) )
60 FUNCTION_TYPE( CORE_cgetrf_reclap, GETRF, int ,
61  (int M, int N, PLASMA_Complex32_t *A, int LDA, int *IPIV, int *info),
62  (M, N, A, LDA, IPIV, info) )
63 FUNCTION_TYPE( CORE_cgetrf_rectil, GETRF, int ,
64  (const PLASMA_desc A, int *IPIV, int *info),
65  (A, IPIV, info) )
66 FUNCTION_VOID( CORE_cgetrip, GETRIP, void ,
67  (int m, int n, PLASMA_Complex32_t *A, PLASMA_Complex32_t *W) ,
68  (m, n, A, W) )
69 FUNCTION_VOID( CORE_chegst, HEGST, void ,
70  (int itype, PLASMA_enum uplo, int N, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB, int *INFO),
71  (itype, uplo, N, A, LDA, B, LDB, INFO) )
72 #ifdef COMPLEX
73 FUNCTION_VOID( CORE_chemm, HEMM, void ,
74  (int side, int uplo, int M, int N, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB, PLASMA_Complex32_t beta, PLASMA_Complex32_t *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_cher2k, HER2K, void ,
79  (int uplo, int trans, int N, int K, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB, float beta, PLASMA_Complex32_t *C, int LDC),
80  (uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
81 #endif
82 FUNCTION_TYPE( CORE_cherfb, HERFB, int ,
83  ( PLASMA_enum uplo, int n, int k, int ib, int nb, PLASMA_Complex32_t *A, int lda, PLASMA_Complex32_t *T, int ldt, PLASMA_Complex32_t *C, int ldc, PLASMA_Complex32_t *WORK, int ldwork ),
84  (uplo, n, k, ib, nb, A, lda, T, ldt, C, ldc, WORK, ldwork) )
85 #ifdef COMPLEX
86 FUNCTION_VOID( CORE_cherk, HERK, void ,
87  (int uplo, int trans, int N, int K, float alpha, PLASMA_Complex32_t *A, int LDA, float beta, PLASMA_Complex32_t *C, int LDC),
88  (uplo, trans, N, K, alpha, A, LDA, beta, C, LDC) )
89 #endif
90 FUNCTION_VOID( CORE_clacpy, LACPY, void ,
91  (PLASMA_enum uplo, int M, int N, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB),
92  (uplo, M, N, A, LDA, B, LDB) )
93 FUNCTION_VOID( CORE_clange, LANGE, void ,
94  (int norm, int M, int N, PLASMA_Complex32_t *A, int LDA, float *work, float *normA),
95  (norm, M, N, A, LDA, work, normA) )
96 #ifdef COMPLEX
97 FUNCTION_VOID( CORE_clanhe, LANHE, void ,
98  (int norm, int uplo, int N, PLASMA_Complex32_t *A, int LDA, float *work, float *normA),
99  (norm, uplo, N, A, LDA, work, normA) )
100 #endif
101 FUNCTION_VOID( CORE_clansy, LANSY, void ,
102  (int norm, int uplo, int N, PLASMA_Complex32_t *A, int LDA, float *work, float *normA),
103  (norm, uplo, N, A, LDA, work, normA) )
104 FUNCTION_VOID( CORE_claset2, LASET, void ,
105  (PLASMA_enum uplo, int M, int N, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA),
106  (uplo, M, N, alpha, A, LDA) )
107 FUNCTION_VOID( CORE_claset, LASET, void ,
108  (PLASMA_enum uplo, int M, int N, PLASMA_Complex32_t alpha, PLASMA_Complex32_t beta, PLASMA_Complex32_t *A, int LDA),
109  (uplo, M, N, alpha, beta, A, LDA) )
110 FUNCTION_VOID( CORE_claswp, LASWP, void ,
111  (int N, PLASMA_Complex32_t *A, int LDA, int I1, int I2, int *IPIV, int INC),
112  (N, A, LDA, I1, I2, IPIV, INC) )
113 FUNCTION_TYPE( CORE_claswp_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_cswptr_ontile, TRSM, int ,
117  (PLASMA_desc descA, int i1, int i2, int *ipiv, int inc, PLASMA_Complex32_t *Akk, int ldak),
118  (descA, i1, i2, ipiv, inc, Akk, ldak) )
119 FUNCTION_TYPE( CORE_claswpc_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_clauum, LAUUM, void ,
123  (int uplo, int N, PLASMA_Complex32_t *A, int LDA),
124  (uplo, N, A, LDA) )
125 #ifdef COMPLEX
126 FUNCTION_VOID( CORE_cplghe, PLGHE, void ,
127  ( float bump, int m, int n, PLASMA_Complex32_t *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_cplgsy, PLGSY, void ,
131  ( PLASMA_Complex32_t bump, int m, int n, PLASMA_Complex32_t *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_cplrnt, PLRNT, void ,
134  ( int m, int n, PLASMA_Complex32_t *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_cpotrf, POTRF, void ,
137  (int uplo, int N, PLASMA_Complex32_t *A, int LDA, int *INFO),
138  (uplo, N, A, LDA, INFO) )
139 FUNCTION_VOID( CORE_cshiftw, SHIFTW, void ,
140  (int s, int cl, int m, int n, int L, PLASMA_Complex32_t *A, PLASMA_Complex32_t *W) ,
141  (s, cl, m, n, L, A, W) )
142 FUNCTION_VOID( CORE_cshift, SHIFT, void ,
143  (int s, int m, int n, int L, PLASMA_Complex32_t *A) ,
144  (s, m, n, L, A) )
145 FUNCTION_TYPE( CORE_cssssm, SSSSM, int ,
146  (int M1, int N1, int M2, int N2, int K, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *L1, int LDL1, PLASMA_Complex32_t *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_cswpab, SWPAB, void ,
149  (int i, int n1, int n2, PLASMA_Complex32_t *A, PLASMA_Complex32_t *work) ,
150  (i, n1, n2, A, work) )
151 FUNCTION_VOID( CORE_csymm, SYMM, void ,
152  (int side, int uplo, int M, int N, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB, PLASMA_Complex32_t beta, PLASMA_Complex32_t *C, int LDC),
153  (side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC) )
154 FUNCTION_VOID( CORE_csyr2k, SYR2K, void ,
155  (int uplo, int trans, int N, int K, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB, PLASMA_Complex32_t beta, PLASMA_Complex32_t *C, int LDC),
156  (uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
157 FUNCTION_VOID( CORE_csyrk, SYRK, void ,
158  (int uplo, int trans, int N, int K, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t beta, PLASMA_Complex32_t *C, int LDC),
159  (uplo, trans, N, K, alpha, A, LDA, beta, C, LDC) )
160 FUNCTION_VOID( CORE_ctrdalg, TRDALG, void ,
161  (PLASMA_enum uplo, int N, int NB, PLASMA_desc *pA, PLASMA_Complex32_t *V, PLASMA_Complex32_t *TAU, int i, int j, int m, int grsiz),
162  (uplo, N, NB, pA, V, TAU, i, j, m, grsiz) )
163 FUNCTION_VOID( CORE_ctrmm, TRMM, void ,
164  (int side, int uplo, int transA, int diag, int M, int N, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB),
165  (side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB) )
166 FUNCTION_VOID( CORE_ctrsm, TRSM, void ,
167  (int side, int uplo, int transA, int diag, int M, int N, PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *B, int LDB),
168  (side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB) )
169 FUNCTION_VOID( CORE_ctrtri, TRTRI, void ,
170  (int uplo, int diag, int N, PLASMA_Complex32_t *A, int LDA, int *info),
171  (uplo, diag, N, A, LDA, info) )
172 FUNCTION_TYPE( CORE_ctslqt, TSLQT, int ,
173  (int M, int N, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *TAU, PLASMA_Complex32_t *WORK),
174  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
175 FUNCTION_TYPE( CORE_ctsmlq, TSMLQ, int ,
176  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *V, int LDV, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *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_ctsmlq_corner, TSMLQ, int ,
179  ( int m1, int n1, int m2, int n2, int m3, int n3, int k, int ib, int nb, PLASMA_Complex32_t *A1, int lda1, PLASMA_Complex32_t *A2, int lda2, PLASMA_Complex32_t *A3, int lda3, PLASMA_Complex32_t *V, int ldv, PLASMA_Complex32_t *T, int ldt, PLASMA_Complex32_t *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_ctsmlq_hetra1, TSMLQ, int ,
182  ( int side, int trans, int m1, int n1, int m2, int n2, int k, int ib, PLASMA_Complex32_t *A1, int lda1, PLASMA_Complex32_t *A2, int lda2, PLASMA_Complex32_t *V, int ldv, PLASMA_Complex32_t *T, int ldt, PLASMA_Complex32_t *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_ctsmqr, TSMQR, int ,
185  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *V, int LDV, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *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_ctsmqr_corner, TSMQR, int ,
188  ( int m1, int n1, int m2, int n2, int m3, int n3, int k, int ib, int nb, PLASMA_Complex32_t *A1, int lda1, PLASMA_Complex32_t *A2, int lda2, PLASMA_Complex32_t *A3, int lda3, PLASMA_Complex32_t *V, int ldv, PLASMA_Complex32_t *T, int ldt, PLASMA_Complex32_t *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_ctsmqr_hetra1, TSMQR, int ,
191  ( int side, int trans, int m1, int n1, int m2, int n2, int k, int ib, PLASMA_Complex32_t *A1, int lda1, PLASMA_Complex32_t *A2, int lda2, PLASMA_Complex32_t *V, int ldv, PLASMA_Complex32_t *T, int ldt, PLASMA_Complex32_t *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_ctsqrt, TSQRT, int ,
194  (int M, int N, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *TAU, PLASMA_Complex32_t *WORK),
195  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
196 FUNCTION_TYPE( CORE_ctstrf, TSTRF, int ,
197  (int M, int N, int IB, int NB, PLASMA_Complex32_t *U, int LDU, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *L, int LDL, int *IPIV, PLASMA_Complex32_t *WORK, int LDWORK, int *INFO),
198  (M, N, IB, NB, U, LDU, A, LDA, L, LDL, IPIV, WORK, LDWORK, INFO) )
199 FUNCTION_TYPE( CORE_cttlqt, TTLQT, int ,
200  (int M, int N, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *TAU, PLASMA_Complex32_t *WORK),
201  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
202 FUNCTION_TYPE( CORE_cttmlq, TTMLQ, int ,
203  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *V, int LDV, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *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_cttmqr, TTMQR, int ,
206  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *V, int LDV, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *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_cttqrt, TTQRT, int ,
209  (int M, int N, int IB, PLASMA_Complex32_t *A1, int LDA1, PLASMA_Complex32_t *A2, int LDA2, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *TAU, PLASMA_Complex32_t *WORK),
210  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
211 FUNCTION_TYPE( CORE_cunmlq, UNMLQ, int ,
212  (int side, int trans, int M, int N, int K, int IB, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *C, int LDC, PLASMA_Complex32_t *WORK, int LDWORK),
213  (side, trans, M, N, K, IB, A, LDA, T, LDT, C, LDC, WORK, LDWORK) )
214 FUNCTION_TYPE( CORE_cunmqr, UNMQR, int ,
215  (int side, int trans, int M, int N, int K, int IB, PLASMA_Complex32_t *A, int LDA, PLASMA_Complex32_t *T, int LDT, PLASMA_Complex32_t *C, int LDC, PLASMA_Complex32_t *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
270 #ifdef COMPLEX
272 #endif
303