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_ztrtri.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_ztrtri = PCORE_ztrtri
27 #define CORE_ztrtri PCORE_ztrtri
28 #endif
29 void CORE_ztrtri(int uplo, int diag, int N, PLASMA_Complex64_t *A, int LDA, int *info)
30 {
31  *info = LAPACKE_ztrtri_work(
32  LAPACK_COL_MAJOR,
33  lapack_const(uplo), lapack_const(diag),
34  N, A, LDA);
35 }
36 
37 /***************************************************************************/
40 void QUARK_CORE_ztrtri(Quark *quark, Quark_Task_Flags *task_flags,
41  int uplo, int diag,
42  int n, int nb,
43  PLASMA_Complex64_t *A, int lda,
44  PLASMA_sequence *sequence, PLASMA_request *request,
45  int iinfo)
46 {
48  quark, CORE_ztrtri_quark, task_flags,
49  sizeof(PLASMA_enum), &uplo, VALUE,
50  sizeof(PLASMA_enum), &diag, VALUE,
51  sizeof(int), &n, VALUE,
52  sizeof(PLASMA_Complex64_t)*nb*nb, A, INOUT,
53  sizeof(int), &lda, VALUE,
54  sizeof(PLASMA_sequence*), &sequence, VALUE,
55  sizeof(PLASMA_request*), &request, VALUE,
56  sizeof(int), &iinfo, VALUE,
57  0);
58 }
59 
60 /***************************************************************************/
63 #if defined(PLASMA_HAVE_WEAK)
64 #pragma weak CORE_ztrtri_quark = PCORE_ztrtri_quark
65 #define CORE_ztrtri_quark PCORE_ztrtri_quark
66 #endif
68 {
69  int uplo;
70  int diag;
71  int N;
73  int LDA;
74  PLASMA_sequence *sequence;
75  PLASMA_request *request;
76  int iinfo;
77 
78  int info;
79 
80  quark_unpack_args_8(quark, uplo, diag, N, A, LDA, sequence, request, iinfo);
81  info = LAPACKE_ztrtri_work(
82  LAPACK_COL_MAJOR,
83  lapack_const(uplo), lapack_const(diag),
84  N, A, LDA);
85  if ((sequence->status == PLASMA_SUCCESS) && (info > 0))
86  plasma_sequence_flush(quark, sequence, request, iinfo + info);
87 }