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_dlaset2.c
Go to the documentation of this file.
1 
15 #include <lapacke.h>
16 #include "common.h"
17 
18 /***************************************************************************/
52 #if defined(PLASMA_HAVE_WEAK)
53 #pragma weak CORE_dlaset2 = PCORE_dlaset2
54 #define CORE_dlaset2 PCORE_dlaset2
55 #endif
56 void CORE_dlaset2(PLASMA_enum uplo, int M, int N,
57  double alpha, double *A, int LDA)
58 {
59  if (uplo == PlasmaUpper) {
60  LAPACKE_dlaset_work(
61  LAPACK_COL_MAJOR,
62  lapack_const(uplo),
63  M, N-1, alpha, alpha, A+LDA, LDA);
64  }
65  else if (uplo == PlasmaLower) {
66  LAPACKE_dlaset_work(
67  LAPACK_COL_MAJOR,
68  lapack_const(uplo),
69  M-1, N, alpha, alpha, A+1, LDA);
70  }
71  else {
72  LAPACKE_dlaset_work(
73  LAPACK_COL_MAJOR,
74  lapack_const(uplo),
75  M, N, alpha, alpha, A, LDA);
76  }
77 }
78 
79 /***************************************************************************/
82 void QUARK_CORE_dlaset2(Quark *quark, Quark_Task_Flags *task_flags,
83  PLASMA_enum uplo, int M, int N,
84  double alpha, double *A, int LDA)
85 {
86  QUARK_Insert_Task(quark, CORE_dlaset2_quark, task_flags,
87  sizeof(PLASMA_enum), &uplo, VALUE,
88  sizeof(int), &M, VALUE,
89  sizeof(int), &N, VALUE,
90  sizeof(double), &alpha, VALUE,
91  sizeof(double)*M*N, A, OUTPUT,
92  sizeof(int), &LDA, VALUE,
93  0);
94 }
95 
96 /***************************************************************************/
99 #if defined(PLASMA_HAVE_WEAK)
100 #pragma weak CORE_dlaset2_quark = PCORE_dlaset2_quark
101 #define CORE_dlaset2_quark PCORE_dlaset2_quark
102 #endif
104 {
105  int uplo;
106  int M;
107  int N;
108  double alpha;
109  double *A;
110  int LDA;
111 
112  quark_unpack_args_6(quark, uplo, M, N, alpha, A, LDA);
113  CORE_dlaset2(uplo, M, N, alpha, A, LDA);
114 }