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_zlange.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_zlange = PCORE_zlange
27 #define CORE_zlange PCORE_zlange
28 #endif
29 void CORE_zlange(int norm, int M, int N,
30  PLASMA_Complex64_t *A, int LDA,
31  double *work, double *normA)
32 {
33  *normA = LAPACKE_zlange_work(
34  LAPACK_COL_MAJOR,
35  lapack_const(norm),
36  M, N, A, LDA, work);
37 }
38 
39 /***************************************************************************/
42 void QUARK_CORE_zlange(Quark *quark, Quark_Task_Flags *task_flags,
43  int norm, int M, int N,
44  PLASMA_Complex64_t *A, int LDA, int szeA,
45  int szeW, double *result)
46 {
47  szeW = max(1, szeW);
49  QUARK_Insert_Task(quark, CORE_zlange_quark, task_flags,
50  sizeof(PLASMA_enum), &norm, VALUE,
51  sizeof(int), &M, VALUE,
52  sizeof(int), &N, VALUE,
53  sizeof(PLASMA_Complex64_t)*szeA, A, INPUT,
54  sizeof(int), &LDA, VALUE,
55  sizeof(double)*szeW, NULL, SCRATCH,
56  sizeof(double), result, OUTPUT,
57  0);
58 }
59 
60 /***************************************************************************/
63 #if defined(PLASMA_HAVE_WEAK)
64 #pragma weak CORE_zlange_quark = PCORE_zlange_quark
65 #define CORE_zlange_quark PCORE_zlange_quark
66 #endif
68 {
69  double *normA;
70  int norm;
71  int M;
72  int N;
74  int LDA;
75  double *work;
76 
77  quark_unpack_args_7(quark, norm, M, N, A, LDA, work, normA);
78  *normA = LAPACKE_zlange_work(
79  LAPACK_COL_MAJOR,
80  lapack_const(norm),
81  M, N, A, LDA, work);
82 }
83 
84 /***************************************************************************/
87 void QUARK_CORE_zlange_f1(Quark *quark, Quark_Task_Flags *task_flags,
88  PLASMA_enum norm, int M, int N,
89  PLASMA_Complex64_t *A, int LDA, int szeA,
90  int szeW, double *result,
91  double *fake, int szeF)
92 {
93  szeW = max(1, szeW);
95  QUARK_Insert_Task(quark, CORE_zlange_f1_quark, task_flags,
96  sizeof(PLASMA_enum), &norm, VALUE,
97  sizeof(int), &M, VALUE,
98  sizeof(int), &N, VALUE,
99  sizeof(PLASMA_Complex64_t)*szeA, A, INPUT,
100  sizeof(int), &LDA, VALUE,
101  sizeof(double)*szeW, NULL, SCRATCH,
102  sizeof(double), result, OUTPUT,
103  sizeof(double)*szeF, fake, OUTPUT | GATHERV,
104  0);
105 }
106 
107 /***************************************************************************/
110 #if defined(PLASMA_HAVE_WEAK)
111 #pragma weak CORE_zlange_f1_quark = PCORE_zlange_f1_quark
112 #define CORE_zlange_f1_quark PCORE_zlange_f1_quark
113 #endif
115 {
116  double *normA;
117  int norm;
118  int M;
119  int N;
121  int LDA;
122  double *work;
123  double *fake;
124 
125  quark_unpack_args_8(quark, norm, M, N, A, LDA, work, normA, fake);
126  *normA = LAPACKE_zlange_work(
127  LAPACK_COL_MAJOR,
128  lapack_const(norm),
129  M, N, A, LDA, work);
130 }
131