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
core_chemm.c
Go to the documentation of this file.
1 
17 #include "common.h"
18 
19 #undef REAL
20 #define COMPLEX
21 #ifdef COMPLEX
22 /***************************************************************************/
27 #if defined(PLASMA_HAVE_WEAK)
28 #pragma weak CORE_chemm = PCORE_chemm
29 #define CORE_chemm PCORE_chemm
30 #endif
31 void CORE_chemm(int side, int uplo,
32  int M, int N,
33  PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int LDA,
34  PLASMA_Complex32_t *B, int LDB,
35  PLASMA_Complex32_t beta, PLASMA_Complex32_t *C, int LDC)
36 {
39  (CBLAS_SIDE)side, (CBLAS_UPLO)uplo,
40  M, N,
41  CBLAS_SADDR(alpha), A, LDA,
42  B, LDB,
43  CBLAS_SADDR(beta), C, LDC);
44 }
45 
46 /***************************************************************************/
49 void QUARK_CORE_chemm(Quark *quark, Quark_Task_Flags *task_flags,
50  int side, int uplo,
51  int m, int n, int nb,
52  PLASMA_Complex32_t alpha, PLASMA_Complex32_t *A, int lda,
53  PLASMA_Complex32_t *B, int ldb,
54  PLASMA_Complex32_t beta, PLASMA_Complex32_t *C, int ldc)
55 {
57  QUARK_Insert_Task(quark, CORE_chemm_quark, task_flags,
58  sizeof(PLASMA_enum), &side, VALUE,
59  sizeof(PLASMA_enum), &uplo, VALUE,
60  sizeof(int), &m, VALUE,
61  sizeof(int), &n, VALUE,
62  sizeof(PLASMA_Complex32_t), &alpha, VALUE,
63  sizeof(PLASMA_Complex32_t)*nb*nb, A, INPUT,
64  sizeof(int), &lda, VALUE,
65  sizeof(PLASMA_Complex32_t)*nb*nb, B, INPUT,
66  sizeof(int), &ldb, VALUE,
67  sizeof(PLASMA_Complex32_t), &beta, VALUE,
68  sizeof(PLASMA_Complex32_t)*nb*nb, C, INOUT,
69  sizeof(int), &ldc, VALUE,
70  0);
71 }
72 
73 /***************************************************************************/
76 #if defined(PLASMA_HAVE_WEAK)
77 #pragma weak CORE_chemm_quark = PCORE_chemm_quark
78 #define CORE_chemm_quark PCORE_chemm_quark
79 #endif
80 void CORE_chemm_quark(Quark *quark)
81 {
82  int side;
83  int uplo;
84  int M;
85  int N;
86  PLASMA_Complex32_t alpha;
88  int LDA;
90  int LDB;
91  PLASMA_Complex32_t beta;
93  int LDC;
94 
95  quark_unpack_args_12(quark, side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC);
98  (CBLAS_SIDE)side, (CBLAS_UPLO)uplo,
99  M, N,
100  CBLAS_SADDR(alpha), A, LDA,
101  B, LDB,
102  CBLAS_SADDR(beta), C, LDC);
103 }
104 #endif