36 |
|
|
37 |
#define MATRIX_FORMAT_DEFAULT 0 |
#define MATRIX_FORMAT_DEFAULT 0 |
38 |
#define MATRIX_FORMAT_CSC 1 |
#define MATRIX_FORMAT_CSC 1 |
|
#define MATRIX_FORMAT_SYM 2 |
|
39 |
#define MATRIX_FORMAT_BLK1 4 |
#define MATRIX_FORMAT_BLK1 4 |
40 |
#define MATRIX_FORMAT_OFFSET1 8 |
#define MATRIX_FORMAT_OFFSET1 8 |
41 |
#define MATRIX_FORMAT_TRILINOS_CRS 16 |
#define MATRIX_FORMAT_TRILINOS_CRS 16 |
56 |
dim_t len; |
dim_t len; |
57 |
|
|
58 |
double *val; /* this is used for classical CSR or CSC */ |
double *val; /* this is used for classical CSR or CSC */ |
59 |
void* solver; |
|
60 |
|
index_t solver_package; /* package controling the solver pointer */ |
61 |
|
void* solver_p; /* pointer to data needed by a solver */ |
62 |
|
|
63 |
} Paso_SparseMatrix; |
} Paso_SparseMatrix; |
64 |
|
|
65 |
/* interfaces: */ |
/* interfaces: */ |
92 |
Paso_SparseMatrix* Paso_SparseMatrix_MatrixMatrix(Paso_SparseMatrix* A, Paso_SparseMatrix* B); |
Paso_SparseMatrix* Paso_SparseMatrix_MatrixMatrix(Paso_SparseMatrix* A, Paso_SparseMatrix* B); |
93 |
Paso_SparseMatrix* Paso_SparseMatrix_RemovePositiveOffdiagonals(Paso_SparseMatrix* P); |
Paso_SparseMatrix* Paso_SparseMatrix_RemovePositiveOffdiagonals(Paso_SparseMatrix* P); |
94 |
Paso_SparseMatrix* Paso_SparseMatrix_unroll(Paso_SparseMatrix* A); |
Paso_SparseMatrix* Paso_SparseMatrix_unroll(Paso_SparseMatrix* A); |
95 |
|
Paso_SparseMatrix* Paso_SparseMatrix_getTranspose(Paso_SparseMatrix* P); |
96 |
|
|
97 |
void Paso_SparseMatrix_setValues(Paso_SparseMatrix*,double); |
void Paso_SparseMatrix_setValues(Paso_SparseMatrix*,double); |
98 |
void Paso_SparseMatrix_saveMM_CSC(Paso_SparseMatrix *, FILE *); |
void Paso_SparseMatrix_saveMM_CSC(Paso_SparseMatrix *, FILE *); |
107 |
void Paso_SparseMatrix_copyBlockToMainDiagonal(Paso_SparseMatrix * A_p, const double* in); |
void Paso_SparseMatrix_copyBlockToMainDiagonal(Paso_SparseMatrix * A_p, const double* in); |
108 |
void Paso_SparseMatrix_applyBlockMatrix(Paso_SparseMatrix * A_p, double* block_diag, int* pivot, double*x, double *b); |
void Paso_SparseMatrix_applyBlockMatrix(Paso_SparseMatrix * A_p, double* block_diag, int* pivot, double*x, double *b); |
109 |
void Paso_SparseMatrix_invMain(Paso_SparseMatrix * A_p, double* inv_diag, int* pivot); |
void Paso_SparseMatrix_invMain(Paso_SparseMatrix * A_p, double* inv_diag, int* pivot); |
110 |
|
dim_t Paso_SparseMatrix_maxDeg(Paso_SparseMatrix * A_p); |
111 |
|
|
112 |
/* |
/* |
113 |
void Paso_SparseMatrix_add(Paso_SparseMatrix*,dim_t,index_t*, dim_t,dim_t,index_t*,dim_t, double*); |
void Paso_SparseMatrix_add(Paso_SparseMatrix*,dim_t,index_t*, dim_t,dim_t,index_t*,dim_t, double*); |
114 |
Paso_SparseMatrix* Paso_SparseMatrix_loadMM_toCSR(char *); |
Paso_SparseMatrix* Paso_SparseMatrix_loadMM_toCSR(char *); |