PLASMA  2.6.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Functions Variables Groups
plasma.h
1 
14 #ifndef _PLASMA_H_
15 #define _PLASMA_H_
16 
17 #include <quark.h>
18 #include "plasmatypes.h"
19 #include "descriptor.h"
20 
24 typedef struct plasma_request_t {
25  PLASMA_enum status;
27 
28 #define PLASMA_REQUEST_INITIALIZER {PLASMA_SUCCESS}
29 
34 typedef struct plasma_sequence_t {
35  Quark_Sequence *quark_sequence;
36  PLASMA_bool status;
39 
40 #define plasma_const_neg(const) (((const-1)^0x01)+1)
41 
45 #define PLASMA_FALSE 0
46 #define PLASMA_TRUE 1
47 
51 #define PLASMA_WARNINGS 1
52 #define PLASMA_ERRORS 2
53 #define PLASMA_AUTOTUNING 3
54 #define PLASMA_DAG 4
55 
59 #define PLASMA_CONCURRENCY 1
60 #define PLASMA_TILE_SIZE 2
61 #define PLASMA_INNER_BLOCK_SIZE 3
62 #define PLASMA_SCHEDULING_MODE 4
63 #define PLASMA_HOUSEHOLDER_MODE 5
64 #define PLASMA_HOUSEHOLDER_SIZE 6
65 #define PLASMA_TRANSLATION_MODE 7
66 #define PLASMA_TNTPIVOTING_MODE 8
67 #define PLASMA_TNTPIVOTING_SIZE 9
68 
69 #define PLASMA_STATIC_SCHEDULING 1
70 #define PLASMA_DYNAMIC_SCHEDULING 2
71 
72 #define PLASMA_FLAT_HOUSEHOLDER 1
73 #define PLASMA_TREE_HOUSEHOLDER 2
74 
75 #define PLASMA_TOURNAMENT_LU 1
76 #define PLASMA_TOURNAMENT_QR 2
77 
78 #define PLASMA_INPLACE 1
79 #define PLASMA_OUTOFPLACE 2
80 
84 #include <plasma_z.h>
85 #include <plasma_d.h>
86 #include <plasma_c.h>
87 #include <plasma_s.h>
88 #include <plasma_zc.h>
89 #include <plasma_ds.h>
90 
91 #ifdef __cplusplus
92 extern "C" {
93 #endif
94 
98 int PLASMA_Version(int *ver_major, int *ver_minor, int *ver_micro);
99 int PLASMA_Enable(PLASMA_enum lever);
100 int PLASMA_Disable(PLASMA_enum lever);
101 int PLASMA_Set(PLASMA_enum param, int value);
102 int PLASMA_Get(PLASMA_enum param, int *value);
103 int PLASMA_Init(int cores);
104 int PLASMA_Init_Affinity(int cores, int *bindtab);
105 int PLASMA_Finalize();
106 int PLASMA_Desc_Create(PLASMA_desc **desc, void *mat, PLASMA_enum dtyp, int mb, int nb, int bsiz, int lm, int ln, int i, int j, int m, int n);
107 int PLASMA_Desc_Destroy(PLASMA_desc **desc);
108 int PLASMA_Lapack_to_Tile(void *Af77, int LDA, PLASMA_desc *A);
109 int PLASMA_Tile_to_Lapack(PLASMA_desc *A, void *Af77, int LDA);
110 
114 int PLASMA_Dealloc_Handle(void **handle);
115 int PLASMA_Dealloc_Handle_Tile(PLASMA_desc **desc);
116 
120 int PLASMA_Sequence_Create(PLASMA_sequence **sequence);
121 int PLASMA_Sequence_Destroy(PLASMA_sequence *sequence);
122 int PLASMA_Sequence_Wait(PLASMA_sequence *sequence);
123 int PLASMA_Sequence_Flush(PLASMA_sequence *sequence, PLASMA_request *request);
124 
125 #ifdef __cplusplus
126 }
127 #endif
128 
129 #endif