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_dsygst.c
Go to the documentation of this file.
1 
15 #include <lapacke.h>
16 #include "common.h"
17 
18 /***************************************************************************/
23 #if defined(PLASMA_HAVE_WEAK)
24 #pragma weak CORE_dsygst = PCORE_dsygst
25 #define CORE_dsygst PCORE_dsygst
26 #endif
27 void CORE_dsygst(int itype, PLASMA_enum uplo, int N, double *A, int LDA, double *B, int LDB, int *INFO)
28 {
29  *INFO = LAPACKE_dsygst_work(
30  LAPACK_COL_MAJOR,
31  itype,
32  lapack_const(uplo),
33  N, A, LDA, B, LDB );
34 }
35 
36 /***************************************************************************/
39 void QUARK_CORE_dsygst(Quark *quark, Quark_Task_Flags *task_flags,
40  int itype, PLASMA_enum uplo, int n,
41  double *A, int lda,
42  double *B, int ldb,
43  PLASMA_sequence *sequence, PLASMA_request *request,
44  int iinfo)
45 {
46  QUARK_Insert_Task(quark, CORE_dsygst_quark, task_flags,
47  sizeof(int), &itype, VALUE,
48  sizeof(PLASMA_enum), &uplo, VALUE,
49  sizeof(int), &n, VALUE,
50  sizeof(double)*n*n, A, INOUT,
51  sizeof(int), &lda, VALUE,
52  sizeof(double)*n*n, B, INOUT,
53  sizeof(int), &ldb, 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_dsygst_quark = PCORE_dsygst_quark
65 #define CORE_dsygst_quark PCORE_dsygst_quark
66 #endif
68 {
69  int itype;
71  int n;
72  double *A;
73  int lda;
74  double *B;
75  int ldb;
76  PLASMA_sequence *sequence;
77  PLASMA_request *request;
78  int iinfo;
79 
80  int info;
81 
82  quark_unpack_args_10(quark, itype, uplo, n, A, lda, B, ldb, sequence, request, iinfo);
83  info = LAPACKE_dsygst_work(
84  LAPACK_COL_MAJOR,
85  itype,
86  lapack_const(uplo),
87  n, A, lda, B, ldb);
88  if (sequence->status == PLASMA_SUCCESS && info != 0)
89  plasma_sequence_flush(quark, sequence, request, iinfo+info);
90 }