PLASMA  2.7.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Functions Variables Modules
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_free_quark(Quark *quark);
73 void CORE_foo_quark(Quark *quark);
74 void CORE_foo2_quark(Quark *quark);
75 
76 void QUARK_CORE_free(Quark *quark, Quark_Task_Flags *task_flags,
77  void *A, int szeA);
78 
79 void CORE_pivot_update(int m, int n, int *ipiv, int *indices,
80  int offset, int init);
81 void CORE_pivot_update_quark(Quark *quark);
82 void QUARK_CORE_pivot_update(Quark *quark, Quark_Task_Flags *task_flags,
83  int m, int n, int *ipiv, int *indices,
84  int offset, int init);
85 #endif /* defined(QUARK_H) */
86 
87 #ifdef __cplusplus
88 }
89 #endif
90 
91 #endif /* _PLASMA_CORE_BLAS_H_ */