PLASMA  2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
core_blas.h
1 
15 #ifndef _PLASMA_CORE_BLAS_H_
16 #define _PLASMA_CORE_BLAS_H_
17 
18 #include <cblas.h>
19 #include "plasmatypes.h"
20 #include "descriptor.h"
21 
22 #include "core_zblas.h"
23 #include "core_dblas.h"
24 #include "core_cblas.h"
25 #include "core_sblas.h"
26 #include "core_zcblas.h"
27 #include "core_dsblas.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33  /*
34  * Coreblas Error
35  */
36 #define coreblas_error(k, str) fprintf(stderr, "%s: Parameter %d / %s\n", __func__, k, str);
37 
41 extern char *plasma_lapack_constants[];
42 #define lapack_const(plasma_const) plasma_lapack_constants[plasma_const][0]
43 
44  /*
45  * CBlas enum
46  */
47 #define CBLAS_TRANSPOSE enum CBLAS_TRANSPOSE
48 #define CBLAS_UPLO enum CBLAS_UPLO
49 #define CBLAS_DIAG enum CBLAS_DIAG
50 #define CBLAS_SIDE enum CBLAS_SIDE
51 
52 /* CBLAS requires for scalar arguments to be passed by address rather than by value */
53 #ifndef CBLAS_SADDR
54 #define CBLAS_SADDR( _val_ ) &(_val_)
55 #endif
56 
60 int GKK_minloc(int n, int *T);
61 void GKK_BalanceLoad(int thrdnbr, int *Tp, int *leaders, int nleaders, int L);
62 int GKK_getLeaderNbr(int me, int ne, int *nleaders, int **leaders);
63 
68 #if defined(QUARK_H)
69  /*
70  * Functions which don't depend on precision
71  */
72 void CORE_foo_quark(Quark *quark);
73 void CORE_foo2_quark(Quark *quark);
74 
75 void QUARK_CORE_free(Quark *quark, Quark_Task_Flags *task_flags,
76  void *A, int szeA);
77 
78 void QUARK_CORE_pivot_update(Quark *quark, Quark_Task_Flags *task_flags,
79  int m, int n, int *ipiv, int *indices,
80  int offset, int init);
81 #endif /* defined(QUARK_H) */
82 
83 void CORE_pivot_update(int m, int n, int *ipiv, int *indices,
84  int offset, int init);
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif /* _PLASMA_CORE_BLAS_H_ */