28 #ifndef __PASO_SPARSEMATRIX_H__ 29 #define __PASO_SPARSEMATRIX_H__ 46 bool patternIsUnrolled);
61 const double* b)
const;
65 SparseMatrix_ptr
unroll(SparseMatrixType type)
const;
69 const index_t* new_col_index)
const;
71 SparseMatrix_ptr
getBlock(
int blockid)
const;
77 void saveMM(
const char* filename)
const;
81 return pattern->borrowMainDiagonalPointer();
86 return pattern->borrowColoringPointer();
91 return pattern->getNumColors();
96 return pattern->maxDeg();
129 static SparseMatrix_ptr
loadMM_toCSR(
const char* filename);
133 const double* mask_col,
134 double main_diagonal_value);
137 const double* mask_col,
138 double main_diagonal_value);
141 double main_diagonal_value);
144 double main_diagonal_value);
147 double main_diagonal_value);
149 void nullifyRows_CSR(
const double* mask_row,
double main_diagonal_value);
181 const_SparseMatrix_ptr A,
183 const double beta,
double* out);
186 const_SparseMatrix_ptr A,
188 const double beta,
double* out);
191 const_SparseMatrix_ptr A,
193 const double beta,
double* out);
196 const_SparseMatrix_ptr A,
198 const double beta,
double* out);
201 const_SparseMatrix_ptr A,
203 const double beta,
double* out);
206 const_SparseMatrix_ptr B);
209 const_SparseMatrix_ptr B,
210 const_SparseMatrix_ptr T);
214 #endif // __PASO_SPARSEMATRIX_H__ void copyBlockToMainDiagonal(const double *in)
Definition: SparseMatrix.cpp:399
void SparseMatrix_MatrixVector_CSC_OFFSET0(const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
Definition: SparseMatrix_MatrixVector.cpp:43
boost::shared_ptr< Pattern > Pattern_ptr
Definition: Pattern.h:37
void SparseMatrix_MatrixVector_CSR_OFFSET1(const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
Definition: SparseMatrix_MatrixVector.cpp:191
dim_t block_size
Definition: SparseMatrix.h:162
SparseMatrixType type
Definition: SparseMatrix.h:159
index_t * borrowMainDiagonalPointer() const
Definition: SparseMatrix.h:79
boost::shared_ptr< const SparseMatrix > const_SparseMatrix_ptr
Definition: SparseMatrix.h:37
int SparseMatrixType
Definition: SparseMatrix.h:39
index_t * borrowColoringPointer() const
Definition: SparseMatrix.h:84
void addRow_CSR_OFFSET0(double *array) const
Definition: SparseMatrix.cpp:381
double getSize() const
Definition: SparseMatrix.h:119
SparseMatrix_ptr getSubmatrix(dim_t n_row_sub, dim_t n_col_sub, const index_t *row_list, const index_t *new_col_index) const
Definition: SparseMatrix_getSubmatrix.cpp:43
void setValues(double value)
Definition: SparseMatrix.cpp:476
void nullifyRows_CSR(const double *mask_row, double main_diagonal_value)
Definition: SparseMatrix_nullifyRowsAndCols.cpp:141
void copyFromMainDiagonal(double *out) const
Definition: SparseMatrix.cpp:423
dim_t getNumColors() const
Definition: SparseMatrix.h:89
dim_t numCols
Definition: SparseMatrix.h:164
static SparseMatrix_ptr loadMM_toCSR(const char *filename)
Definition: SparseMatrix.cpp:202
void SparseMatrix_MatrixVector_CSR_OFFSET0(const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
Definition: SparseMatrix_MatrixVector.cpp:279
void * solver_p
pointer to data needed by a solver
Definition: SparseMatrix.h:175
boost::shared_ptr< SparseMatrix > SparseMatrix_ptr
Definition: SparseMatrix.h:35
dim_t row_block_size
Definition: SparseMatrix.h:160
dim_t getNumCols() const
Definition: SparseMatrix.h:114
dim_t col_block_size
Definition: SparseMatrix.h:161
void nullifyRowsAndCols_CSC(const double *mask_row, const double *mask_col, double main_diagonal_value)
Definition: SparseMatrix_nullifyRowsAndCols.cpp:76
void SparseMatrix_MatrixVector_CSC_OFFSET1(const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
Definition: SparseMatrix_MatrixVector.cpp:119
void applyBlockMatrix(double *block_diag, index_t *pivot, double *x, const double *b) const
Definition: SparseMatrix.cpp:541
SparseMatrix_ptr getBlock(int blockid) const
Definition: SparseMatrix_getSubmatrix.cpp:79
dim_t numRows
Definition: SparseMatrix.h:163
void nullifyRowsAndCols_CSR_BLK1(const double *mask_row, const double *mask_col, double main_diagonal_value)
Definition: SparseMatrix_nullifyRowsAndCols.cpp:58
dim_t maxDeg() const
Definition: SparseMatrix.h:94
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:59
void invMain(double *inv_diag, index_t *pivot) const
Definition: SparseMatrix.cpp:491
void nullifyRows_CSR_BLK1(const double *mask_row, double main_diagonal_value)
Definition: SparseMatrix_nullifyRowsAndCols.cpp:124
dim_t len
Definition: SparseMatrix.h:166
void addAbsRow_CSR_OFFSET0(double *array) const
Definition: SparseMatrix.cpp:343
SparseMatrix_ptr getTranspose() const
Definition: SparseMatrix.cpp:550
dim_t getTotalNumCols() const
Definition: SparseMatrix.h:104
dim_t getNumRows() const
Definition: SparseMatrix.h:109
void copyToMainDiagonal(const double *in)
Definition: SparseMatrix.cpp:437
void SparseMatrix_MatrixVector_CSR_OFFSET0_DIAG(const double alpha, const_SparseMatrix_ptr A, const double *in, const double beta, double *out)
Definition: SparseMatrix_MatrixVector.cpp:426
Definition: SparseMatrix.h:42
void saveHB_CSC(const char *filename) const
Definition: SparseMatrix_saveHB.cpp:179
~SparseMatrix()
Definition: SparseMatrix.cpp:184
SparseMatrix_ptr SparseMatrix_MatrixMatrixTranspose(const_SparseMatrix_ptr A, const_SparseMatrix_ptr B, const_SparseMatrix_ptr T)
Definition: SparseMatrix_MatrixMatrixTranspose.cpp:52
double * val
this is used for classical CSR or CSC
Definition: SparseMatrix.h:169
SparseMatrix_ptr SparseMatrix_MatrixMatrix(const_SparseMatrix_ptr A, const_SparseMatrix_ptr B)
Definition: SparseMatrix_MatrixMatrix.cpp:44
void maxAbsRow_CSR_OFFSET0(double *array) const
Definition: SparseMatrix.cpp:362
void applyDiagonal_CSR_OFFSET0(const double *left, const double *right)
Definition: SparseMatrix.cpp:451
index_t solver_package
package controlling the solver pointer
Definition: SparseMatrix.h:172
void nullifyRowsAndCols_CSR(const double *mask_row, const double *mask_col, double main_diagonal_value)
Definition: SparseMatrix_nullifyRowsAndCols.cpp:100
SparseMatrix_ptr unroll(SparseMatrixType type) const
Definition: SparseMatrix.cpp:626
SparseMatrix(SparseMatrixType type, Pattern_ptr pattern, dim_t rowBlockSize, dim_t colBlockSize, bool patternIsUnrolled)
Definition: SparseMatrix.cpp:107
double getSparsity() const
Definition: SparseMatrix.h:124
dim_t getTotalNumRows() const
Definition: SparseMatrix.h:99
Pattern_ptr pattern
Definition: SparseMatrix.h:165
void nullifyRowsAndCols_CSC_BLK1(const double *mask_row, const double *mask_col, double main_diagonal_value)
Definition: SparseMatrix_nullifyRowsAndCols.cpp:40
index_t dim_t
Definition: DataTypes.h:64
void copyBlockFromMainDiagonal(double *out) const
Definition: SparseMatrix.cpp:411
void saveMM(const char *filename) const
Definition: SparseMatrix.cpp:280