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_clanhe.c
Go to the documentation of this file.
1 
17 #include <lapacke.h>
18 #include "common.h"
19 
20 /***************************************************************************/
25 #if defined(PLASMA_HAVE_WEAK)
26 #pragma weak CORE_clanhe = PCORE_clanhe
27 #define CORE_clanhe PCORE_clanhe
28 #endif
29 void CORE_clanhe(int norm, int uplo, int N,
30  PLASMA_Complex32_t *A, int LDA,
31  float *work, float *normA)
32 {
33  *normA = LAPACKE_clanhe_work(
34  LAPACK_COL_MAJOR,
35  lapack_const(norm), lapack_const(uplo),
36  N, A, LDA, work);
37 }
38 
39 /***************************************************************************/
42 void QUARK_CORE_clanhe(Quark *quark, Quark_Task_Flags *task_flags,
43  int norm, int uplo, int N,
44  PLASMA_Complex32_t *A, int LDA, int szeA,
45  int szeW, float *result)
46 {
47  szeW = max(1, szeW);
49  QUARK_Insert_Task(quark, CORE_clanhe_quark, task_flags,
50  sizeof(PLASMA_enum), &norm, VALUE,
51  sizeof(PLASMA_enum), &uplo, VALUE,
52  sizeof(int), &N, VALUE,
53  sizeof(PLASMA_Complex32_t)*szeA, A, INPUT,
54  sizeof(int), &LDA, VALUE,
55  sizeof(float)*szeW, NULL, SCRATCH,
56  sizeof(float), result, OUTPUT,
57  0);
58 }
59 
60 /***************************************************************************/
63 #if defined(PLASMA_HAVE_WEAK)
64 #pragma weak CORE_clanhe_quark = PCORE_clanhe_quark
65 #define CORE_clanhe_quark PCORE_clanhe_quark
66 #endif
68 {
69  float *normA;
70  int norm;
71  int uplo;
72  int N;
74  int LDA;
75  float *work;
76 
77  quark_unpack_args_7(quark, normA, norm, uplo, N, A, LDA, work);
78  *normA = LAPACKE_clanhe_work(
79  LAPACK_COL_MAJOR,
80  lapack_const(norm), lapack_const(uplo),
81  N, A, LDA, work);
82 }
83 
84 /***************************************************************************/
87 void QUARK_CORE_clanhe_f1(Quark *quark, Quark_Task_Flags *task_flags,
89  PLASMA_Complex32_t *A, int LDA, int szeA,
90  int szeW, float *result,
91  float *fake, int szeF)
92 {
93  szeW = max(1, szeW);
95  QUARK_Insert_Task(quark, CORE_clanhe_f1_quark, task_flags,
96  sizeof(PLASMA_enum), &norm, VALUE,
97  sizeof(PLASMA_enum), &uplo, VALUE,
98  sizeof(int), &N, VALUE,
99  sizeof(PLASMA_Complex32_t)*szeA, A, INPUT,
100  sizeof(int), &LDA, VALUE,
101  sizeof(float)*szeW, NULL, SCRATCH,
102  sizeof(float), result, OUTPUT,
103  sizeof(float)*szeF, fake, OUTPUT | GATHERV,
104  0);
105 }
106 /***************************************************************************/
109 #if defined(PLASMA_HAVE_WEAK)
110 #pragma weak CORE_clanhe_f1_quark = PCORE_clanhe_f1_quark
111 #define CORE_clanhe_f1_quark PCORE_clanhe_f1_quark
112 #endif
114 {
115  float *normA;
116  int norm;
117  int uplo;
118  int N;
120  int LDA;
121  float *work;
122  float *fake;
123 
124  quark_unpack_args_8(quark, norm, uplo, N, A, LDA, work, normA, fake);
125  *normA = LAPACKE_clanhe_work(
126  LAPACK_COL_MAJOR,
127  lapack_const(norm), lapack_const(uplo),
128  N, A, LDA, work);
129 }
130