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_s.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_sasum, ASUM, void ,
34  (int storev, int uplo, int M, int N, float *A, int lda, float *work),
35  (storev, uplo, M, N, A, lda, work) )
36 FUNCTION_VOID( CORE_sgeadd, GEADD, void ,
37  (int M, int N, float alpha, float *A, int LDA, float *B, int LDB),
38  (M, N, alpha, A, LDA, B, LDB) )
39 FUNCTION_VOID( CORE_sbrdalg, BRDALG, void ,
40  (PLASMA_enum uplo, int N, int NB, PLASMA_desc *pA, float *V, float *TAU, int i, int j, int m, int grsiz),
41  (uplo, N, NB, pA, V, TAU, i, j, m, grsiz) )
42 FUNCTION_TYPE( CORE_sgelqt, GELQT, int ,
43  (int M, int N, int IB, float *A, int LDA, float *T, int LDT, float *TAU, float *WORK),
44  (M, N, IB, A, LDA, T, LDT, TAU, WORK) )
45 FUNCTION_VOID( CORE_sgemm, GEMM, void ,
46  (int transA, int transB, int M, int N, int K, float alpha, float *A, int LDA, float *B, int LDB, float beta, float *C, int LDC),
47  (transA, transB, M, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
48 FUNCTION_TYPE( CORE_sgeqrt, GEQRT, int ,
49  (int M, int N, int IB, float *A, int LDA, float *T, int LDT, float *TAU, float *WORK),
50  (M, N, IB, A, LDA, T, LDT, TAU, WORK) )
51 FUNCTION_TYPE( CORE_sgessm, GESSM, int ,
52  (int M, int N, int K, int IB, int *IPIV, float *L, int LDL, float *A, int LDA),
53  (M, N, K, IB, IPIV, L, LDL, A, LDA) )
54 FUNCTION_TYPE( CORE_sgetrf, GETRF, int ,
55  (int m, int n, float *A, int lda, int *IPIV, int *info),
56  (m, n, A, lda, IPIV, info) )
57 FUNCTION_TYPE( CORE_sgetrf_incpiv, GETRF, int ,
58  (int M, int N, int IB, float *A, int LDA, int *IPIV, int *INFO),
59  (M, N, IB, A, LDA, IPIV, INFO) )
60 FUNCTION_TYPE( CORE_sgetrf_reclap, GETRF, int ,
61  (int M, int N, float *A, int LDA, int *IPIV, int *info),
62  (M, N, A, LDA, IPIV, info) )
63 FUNCTION_TYPE( CORE_sgetrf_rectil, GETRF, int ,
64  (const PLASMA_desc A, int *IPIV, int *info),
65  (A, IPIV, info) )
66 FUNCTION_VOID( CORE_sgetrip, GETRIP, void ,
67  (int m, int n, float *A, float *W) ,
68  (m, n, A, W) )
69 FUNCTION_VOID( CORE_ssygst, HEGST, void ,
70  (int itype, PLASMA_enum uplo, int N, float *A, int LDA, float *B, int LDB, int *INFO),
71  (itype, uplo, N, A, LDA, B, LDB, INFO) )
72 #ifdef COMPLEX
73 FUNCTION_VOID( CORE_ssymm, HEMM, void ,
74  (int side, int uplo, int M, int N, float alpha, float *A, int LDA, float *B, int LDB, float beta, float *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_ssyr2k, HER2K, void ,
79  (int uplo, int trans, int N, int K, float alpha, float *A, int LDA, float *B, int LDB, float beta, float *C, int LDC),
80  (uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
81 #endif
82 FUNCTION_TYPE( CORE_ssyrfb, HERFB, int ,
83  ( PLASMA_enum uplo, int n, int k, int ib, int nb, float *A, int lda, float *T, int ldt, float *C, int ldc, float *WORK, int ldwork ),
84  (uplo, n, k, ib, nb, A, lda, T, ldt, C, ldc, WORK, ldwork) )
85 #ifdef COMPLEX
86 FUNCTION_VOID( CORE_ssyrk, HERK, void ,
87  (int uplo, int trans, int N, int K, float alpha, float *A, int LDA, float beta, float *C, int LDC),
88  (uplo, trans, N, K, alpha, A, LDA, beta, C, LDC) )
89 #endif
90 FUNCTION_VOID( CORE_slacpy, LACPY, void ,
91  (PLASMA_enum uplo, int M, int N, float *A, int LDA, float *B, int LDB),
92  (uplo, M, N, A, LDA, B, LDB) )
93 FUNCTION_VOID( CORE_slange, LANGE, void ,
94  (int norm, int M, int N, float *A, int LDA, float *work, float *normA),
95  (norm, M, N, A, LDA, work, normA) )
96 #ifdef COMPLEX
97 FUNCTION_VOID( CORE_slansy, LANHE, void ,
98  (int norm, int uplo, int N, float *A, int LDA, float *work, float *normA),
99  (norm, uplo, N, A, LDA, work, normA) )
100 #endif
101 FUNCTION_VOID( CORE_slansy, LANSY, void ,
102  (int norm, int uplo, int N, float *A, int LDA, float *work, float *normA),
103  (norm, uplo, N, A, LDA, work, normA) )
104 FUNCTION_VOID( CORE_slaset2, LASET, void ,
105  (PLASMA_enum uplo, int M, int N, float alpha, float *A, int LDA),
106  (uplo, M, N, alpha, A, LDA) )
107 FUNCTION_VOID( CORE_slaset, LASET, void ,
108  (PLASMA_enum uplo, int M, int N, float alpha, float beta, float *A, int LDA),
109  (uplo, M, N, alpha, beta, A, LDA) )
110 FUNCTION_VOID( CORE_slaswp, LASWP, void ,
111  (int N, float *A, int LDA, int I1, int I2, int *IPIV, int INC),
112  (N, A, LDA, I1, I2, IPIV, INC) )
113 FUNCTION_TYPE( CORE_slaswp_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_sswptr_ontile, TRSM, int ,
117  (PLASMA_desc descA, int i1, int i2, int *ipiv, int inc, float *Akk, int ldak),
118  (descA, i1, i2, ipiv, inc, Akk, ldak) )
119 FUNCTION_TYPE( CORE_slaswpc_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_slauum, LAUUM, void ,
123  (int uplo, int N, float *A, int LDA),
124  (uplo, N, A, LDA) )
125 #ifdef COMPLEX
126 FUNCTION_VOID( CORE_splgsy, PLGHE, void ,
127  ( float bump, int m, int n, float *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_splgsy, PLGSY, void ,
131  ( float bump, int m, int n, float *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_splrnt, PLRNT, void ,
134  ( int m, int n, float *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_spotrf, POTRF, void ,
137  (int uplo, int N, float *A, int LDA, int *INFO),
138  (uplo, N, A, LDA, INFO) )
139 FUNCTION_VOID( CORE_sshiftw, SHIFTW, void ,
140  (int s, int cl, int m, int n, int L, float *A, float *W) ,
141  (s, cl, m, n, L, A, W) )
142 FUNCTION_VOID( CORE_sshift, SHIFT, void ,
143  (int s, int m, int n, int L, float *A) ,
144  (s, m, n, L, A) )
145 FUNCTION_TYPE( CORE_sssssm, SSSSM, int ,
146  (int M1, int N1, int M2, int N2, int K, int IB, float *A1, int LDA1, float *A2, int LDA2, float *L1, int LDL1, float *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_sswpab, SWPAB, void ,
149  (int i, int n1, int n2, float *A, float *work) ,
150  (i, n1, n2, A, work) )
151 FUNCTION_VOID( CORE_ssymm, SYMM, void ,
152  (int side, int uplo, int M, int N, float alpha, float *A, int LDA, float *B, int LDB, float beta, float *C, int LDC),
153  (side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC) )
154 FUNCTION_VOID( CORE_ssyr2k, SYR2K, void ,
155  (int uplo, int trans, int N, int K, float alpha, float *A, int LDA, float *B, int LDB, float beta, float *C, int LDC),
156  (uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, C, LDC) )
157 FUNCTION_VOID( CORE_ssyrk, SYRK, void ,
158  (int uplo, int trans, int N, int K, float alpha, float *A, int LDA, float beta, float *C, int LDC),
159  (uplo, trans, N, K, alpha, A, LDA, beta, C, LDC) )
160 FUNCTION_VOID( CORE_strdalg, TRDALG, void ,
161  (PLASMA_enum uplo, int N, int NB, PLASMA_desc *pA, float *V, float *TAU, int i, int j, int m, int grsiz),
162  (uplo, N, NB, pA, V, TAU, i, j, m, grsiz) )
163 FUNCTION_VOID( CORE_strmm, TRMM, void ,
164  (int side, int uplo, int transA, int diag, int M, int N, float alpha, float *A, int LDA, float *B, int LDB),
165  (side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB) )
166 FUNCTION_VOID( CORE_strsm, TRSM, void ,
167  (int side, int uplo, int transA, int diag, int M, int N, float alpha, float *A, int LDA, float *B, int LDB),
168  (side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB) )
169 FUNCTION_VOID( CORE_strtri, TRTRI, void ,
170  (int uplo, int diag, int N, float *A, int LDA, int *info),
171  (uplo, diag, N, A, LDA, info) )
172 FUNCTION_TYPE( CORE_stslqt, TSLQT, int ,
173  (int M, int N, int IB, float *A1, int LDA1, float *A2, int LDA2, float *T, int LDT, float *TAU, float *WORK),
174  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
175 FUNCTION_TYPE( CORE_stsmlq, TSMLQ, int ,
176  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, float *A1, int LDA1, float *A2, int LDA2, float *V, int LDV, float *T, int LDT, float *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_stsmlq_corner, TSMLQ, int ,
179  ( int m1, int n1, int m2, int n2, int m3, int n3, int k, int ib, int nb, float *A1, int lda1, float *A2, int lda2, float *A3, int lda3, float *V, int ldv, float *T, int ldt, float *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_stsmlq_sytra1, TSMLQ, int ,
182  ( int side, int trans, int m1, int n1, int m2, int n2, int k, int ib, float *A1, int lda1, float *A2, int lda2, float *V, int ldv, float *T, int ldt, float *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_stsmqr, TSMQR, int ,
185  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, float *A1, int LDA1, float *A2, int LDA2, float *V, int LDV, float *T, int LDT, float *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_stsmqr_corner, TSMQR, int ,
188  ( int m1, int n1, int m2, int n2, int m3, int n3, int k, int ib, int nb, float *A1, int lda1, float *A2, int lda2, float *A3, int lda3, float *V, int ldv, float *T, int ldt, float *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_stsmqr_sytra1, TSMQR, int ,
191  ( int side, int trans, int m1, int n1, int m2, int n2, int k, int ib, float *A1, int lda1, float *A2, int lda2, float *V, int ldv, float *T, int ldt, float *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_stsqrt, TSQRT, int ,
194  (int M, int N, int IB, float *A1, int LDA1, float *A2, int LDA2, float *T, int LDT, float *TAU, float *WORK),
195  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
196 FUNCTION_TYPE( CORE_ststrf, TSTRF, int ,
197  (int M, int N, int IB, int NB, float *U, int LDU, float *A, int LDA, float *L, int LDL, int *IPIV, float *WORK, int LDWORK, int *INFO),
198  (M, N, IB, NB, U, LDU, A, LDA, L, LDL, IPIV, WORK, LDWORK, INFO) )
199 FUNCTION_TYPE( CORE_sttlqt, TTLQT, int ,
200  (int M, int N, int IB, float *A1, int LDA1, float *A2, int LDA2, float *T, int LDT, float *TAU, float *WORK),
201  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
202 FUNCTION_TYPE( CORE_sttmlq, TTMLQ, int ,
203  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, float *A1, int LDA1, float *A2, int LDA2, float *V, int LDV, float *T, int LDT, float *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_sttmqr, TTMQR, int ,
206  (int side, int trans, int M1, int N1, int M2, int N2, int K, int IB, float *A1, int LDA1, float *A2, int LDA2, float *V, int LDV, float *T, int LDT, float *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_sttqrt, TTQRT, int ,
209  (int M, int N, int IB, float *A1, int LDA1, float *A2, int LDA2, float *T, int LDT, float *TAU, float *WORK),
210  (M, N, IB, A1, LDA1, A2, LDA2, T, LDT, TAU, WORK) )
211 FUNCTION_TYPE( CORE_sormlq, UNMLQ, int ,
212  (int side, int trans, int M, int N, int K, int IB, float *A, int LDA, float *T, int LDT, float *C, int LDC, float *WORK, int LDWORK),
213  (side, trans, M, N, K, IB, A, LDA, T, LDT, C, LDC, WORK, LDWORK) )
214 FUNCTION_TYPE( CORE_sormqr, UNMQR, int ,
215  (int side, int trans, int M, int N, int K, int IB, float *A, int LDA, float *T, int LDT, float *C, int LDC, float *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_slansy_f1_quark, LANSY )
270 #ifdef COMPLEX
272 #endif
303