ParMooN
 All Classes Functions Variables Friends Pages
hmatrix.h
1 #ifndef HMATRIX
2 #define HMATRIX
3 
4 #include "rkmatrix.h"
5 #include "fullmatrix.h"
6 
7 typedef enum {
8  hs_strong,
9  hs_weak
10 } HStrategy;
11 
12 typedef struct _hmatrix hmatrix;
13 typedef hmatrix *phmatrix;
14 
15 struct _hmatrix {
16  int rows;
17  int cols;
18  int block_rows;
19  int block_cols;
20  int l;
21  prkmatrix r;
22  pfullmatrix f;
23  phmatrix* sons;
24 };
25 
26 phmatrix new_hmatrix(int r, int c);
27 void del_hmatrix(phmatrix h);
28 
29 int create_hmatrix(phmatrix h, double (*entry)(int row, int col, void* data), void* data, int row_start, int col_start);
30 int create_rkmatrix(phmatrix h, double (*entry)(int row, int col, void* data), void* data, int row_start, int col_start);
31 int create_fullmatrix(phmatrix h, double (*entry)(int row, int col, void* data), void* data, int row_start, int col_start);
32 
33 int hmvm(phmatrix h, double* b, double* c);
34 int hmmm(phmatrix h, double* B, int B_cols, double* C);
35 int trihmvm(phmatrix h, char* uplo, double* b,double* c);
36 int trihmmm(phmatrix h, char* uplo, double* B,int B_cols, double* C);
37 
38 #endif
39 
Definition: hmatrix.h:15
Definition: fullmatrix.h:9