PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

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_ */