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_dtrmm.c
Go to the documentation of this file.
1 
17 #include "common.h"
18 
19 /***************************************************************************/
24 #if defined(PLASMA_HAVE_WEAK)
25 #pragma weak CORE_dtrmm = PCORE_dtrmm
26 #define CORE_dtrmm PCORE_dtrmm
27 #endif
28 void CORE_dtrmm(int side, int uplo,
29  int transA, int diag,
30  int M, int N,
31  double alpha,
32  double *A, int LDA,
33  double *B, int LDB)
34 {
37  (CBLAS_SIDE)side, (CBLAS_UPLO)uplo,
38  (CBLAS_TRANSPOSE)transA, (CBLAS_DIAG)diag,
39  M, N,
40  (alpha), A, LDA,
41  B, LDB);
42 }
43 
44 /***************************************************************************/
47 void QUARK_CORE_dtrmm(Quark *quark, Quark_Task_Flags *task_flags,
48  int side, int uplo, int transA, int diag,
49  int m, int n, int nb,
50  double alpha, double *A, int lda,
51  double *B, int ldb)
52 {
54  QUARK_Insert_Task(quark, CORE_dtrmm_quark, task_flags,
55  sizeof(PLASMA_enum), &side, VALUE,
56  sizeof(PLASMA_enum), &uplo, VALUE,
57  sizeof(PLASMA_enum), &transA, VALUE,
58  sizeof(PLASMA_enum), &diag, VALUE,
59  sizeof(int), &m, VALUE,
60  sizeof(int), &n, VALUE,
61  sizeof(double), &alpha, VALUE,
62  sizeof(double)*nb*nb, A, INPUT,
63  sizeof(int), &lda, VALUE,
64  sizeof(double)*nb*nb, B, INOUT,
65  sizeof(int), &ldb, VALUE,
66  0);
67 }
68 
69 /***************************************************************************/
72 #if defined(PLASMA_HAVE_WEAK)
73 #pragma weak CORE_dtrmm_quark = PCORE_dtrmm_quark
74 #define CORE_dtrmm_quark PCORE_dtrmm_quark
75 #endif
76 void CORE_dtrmm_quark(Quark *quark)
77 {
78  int side;
79  int uplo;
80  int transA;
81  int diag;
82  int M;
83  int N;
84  double alpha;
85  double *A;
86  int LDA;
87  double *B;
88  int LDB;
89 
90  quark_unpack_args_11(quark, side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB);
93  (CBLAS_SIDE)side, (CBLAS_UPLO)uplo,
94  (CBLAS_TRANSPOSE)transA, (CBLAS_DIAG)diag,
95  M, N,
96  (alpha), A, LDA,
97  B, LDB);
98 }
99 
100 /***************************************************************************/
103 void QUARK_CORE_dtrmm_p2(Quark *quark, Quark_Task_Flags *task_flags,
104  int side, int uplo, int transA, int diag,
105  int m, int n, int nb,
106  double alpha, double *A, int lda,
107  double **B, int ldb)
108 {
110  QUARK_Insert_Task(quark, CORE_dtrmm_p2_quark, task_flags,
111  sizeof(PLASMA_enum), &side, VALUE,
112  sizeof(PLASMA_enum), &uplo, VALUE,
113  sizeof(PLASMA_enum), &transA, VALUE,
114  sizeof(PLASMA_enum), &diag, VALUE,
115  sizeof(int), &m, VALUE,
116  sizeof(int), &n, VALUE,
117  sizeof(double), &alpha, VALUE,
118  sizeof(double)*lda*nb, A, INPUT,
119  sizeof(int), &lda, VALUE,
120  sizeof(double*), B, INOUT,
121  sizeof(int), &ldb, VALUE,
122  0);
123 }
124 
125 /***************************************************************************/
128 #if defined(PLASMA_HAVE_WEAK)
129 #pragma weak CORE_dtrmm_p2_quark = PCORE_dtrmm_p2_quark
130 #define CORE_dtrmm_p2_quark PCORE_dtrmm_p2_quark
131 #endif
133 {
134  int side;
135  int uplo;
136  int transA;
137  int diag;
138  int M;
139  int N;
140  double alpha;
141  double *A;
142  int LDA;
143  double **B;
144  int LDB;
145 
146  quark_unpack_args_11(quark, side, uplo, transA, diag, M, N, alpha, A, LDA, B, LDB);
147  cblas_dtrmm(
149  (CBLAS_SIDE)side, (CBLAS_UPLO)uplo,
150  (CBLAS_TRANSPOSE)transA, (CBLAS_DIAG)diag,
151  M, N,
152  (alpha), A, LDA,
153  *B, LDB);
154 }