PLASMA
Parallel Linear Algebra Software for Multicore Architectures
All Classes Functions Variables Modules
plasma_tree.h
1 
10 #ifndef ICL_PLASMA_TREE_H
11 #define ICL_PLASMA_TREE_H
12 
13 enum {
14  PlasmaGeKernel = 1,
15  PlasmaTtKernel = 2,
16  PlasmaTsKernel = 3
17 };
18 
19 /***************************************************************************/
24 static inline int plasma_tree_insert_operation(int *operations,
25  int loperations,
26  int ind_op,
27  plasma_enum_t kernel,
28  int col, int row, int rowpiv)
29 {
30  assert(ind_op < loperations);
31 
32  operations[ind_op*4] = kernel;
33  operations[ind_op*4+1] = col;
34  operations[ind_op*4+2] = row;
35  operations[ind_op*4+3] = rowpiv;
36 
37  ind_op++;
38 
39  return ind_op;
40 }
41 
42 /***************************************************************************/
47 static inline void plasma_tree_get_operation(int *operations,
48  int ind_op,
49  plasma_enum_t *kernel,
50  int *col, int *row, int *rowpiv)
51 {
52  *kernel = operations[ind_op*4];
53  *col = operations[ind_op*4+1];
54  *row = operations[ind_op*4+2];
55  *rowpiv = operations[ind_op*4+3];
56 }
57 
58 void plasma_tree_operations(int mt, int nt,
59  int **operations, int *num_operations);
60 
61 #endif // ICL_PLASMA_TREE_H