64 #ifndef SpMapMatrixHandler_hh
65 #define SpMapMatrixHandler_hh
85 void IsValid(
void)
const {
96 mutable row_cont_type::const_iterator
i;
100 void reset(
bool is_end =
false);
131 "Error in SpMapMatrixHandler::operator(), "
132 "row index out of range");
134 "Error in SpMapMatrixHandler::operator(), "
135 "col index out of range");
138 row_cont_type::iterator i;
141 if (i == row.end()) {
155 "Error in SpMapMatrixHandler::IncCoef(), "
156 "row index out of range");
158 "Error in SpMapMatrixHandler::IncCoef(), "
159 "col index out of range");
160 #ifdef MBDYN_X_KEEP_SPARSITY
165 #ifdef MBDYN_X_KEEP_SPARSITY
172 "Error in SpMapMatrixHandler::DecCoef(), "
173 "row index out of range");
175 "Error in SpMapMatrixHandler::DecCoef(), "
176 "col index out of range");
177 #ifdef MBDYN_X_KEEP_SPARSITY
182 #ifdef MBDYN_X_KEEP_SPARSITY
189 "Error in SpMapMatrixHandler::PutCoef(), "
190 "row index out of range");
192 "Error in SpMapMatrixHandler::PutCoef(), "
193 "col index out of range");
194 #ifdef MBDYN_X_KEEP_SPARSITY
199 #ifdef MBDYN_X_KEEP_SPARSITY
201 row_cont_type::iterator i;
203 i = row.find(ix - 1);
204 if (i != row.end()) {
213 "Error in SpMapMatrixHandler::dGetCoef(), "
214 "row index out of range");
216 "Error in SpMapMatrixHandler::dGetCoef(), "
217 "col index out of range");
218 row_cont_type::iterator i;
220 i = row.find(ix - 1);
221 if (i == row.end()) {
231 "Error in SpMapMatrixHandler::operator(), "
232 "row index out of range");
234 "Error in SpMapMatrixHandler::operator(), "
235 "col index out of range");
236 row_cont_type::iterator i;
238 i = row.find(ix - 1);
239 if (i == row.end()) {
249 int offset = 0)
const;
252 std::vector<integer>& Ai, std::vector<integer>& Ap,
253 int offset = 0)
const;
258 int offset = 0)
const;
261 std::vector<integer>& Arow, std::vector<integer>& Acol,
262 std::vector<integer>& AcolSt,
263 int offset = 0)
const;
std::vector< row_cont_type > col_indices
#define ASSERTMSGBREAK(expr, msg)
const SparseMatrixHandler::SparseMatrixElement * operator->(void) const
void DecCoef(integer ix, integer iy, const doublereal &inc)
const SpMapMatrixHandler::const_iterator & operator++(void) const
const SparseMatrixHandler::SparseMatrixElement & operator*(void) const
const_iterator(const SpMapMatrixHandler &m, bool is_end=false)
integer MakeCompressedColumnForm(doublereal *const Ax, integer *const Ai, integer *const Ap, int offset=0) const
SparseMatrixHandler::SparseMatrixElement elem
SpMapMatrixHandler(const SpMapMatrixHandler &)
std::map< integer, doublereal > row_cont_type
const SpMapMatrixHandler::const_iterator & end(void) const
row_cont_type::const_iterator i
integer MakeIndexForm(doublereal *const Ax, integer *const Arow, integer *const Acol, integer *const AcolSt, int offset=0) const
MatrixHandler & MulAndSumWithShift(MatrixHandler &out, doublereal s=1., integer drow=0, integer dcol=0) const
void Resize(integer ir, integer ic)
SpMapMatrixHandler::const_iterator begin(void) const
MatrixHandler & FakeThirdOrderMulAndSumWithShift(MatrixHandler &out, std::vector< bool > b, doublereal s=1., integer drow=0, integer dcol=0) const
MatrixHandler & MatTMatMul_base(void(MatrixHandler::*op)(integer iRow, integer iCol, const doublereal &dCoef), MatrixHandler &out, const MatrixHandler &in) const
doublereal & operator()(integer i_row, integer i_col)
const doublereal & dGetCoef(integer ix, integer iy) const
void PutCoef(integer ix, integer iy, const doublereal &val)
const SpMapMatrixHandler & m
MatrixHandler & MatMatMul_base(void(MatrixHandler::*op)(integer iRow, integer iCol, const doublereal &dCoef), MatrixHandler &out, const MatrixHandler &in) const
VectorHandler & GetCol(integer icol, VectorHandler &out) const
void reset(bool is_end=false)
virtual VectorHandler & MatVecMul_base(void(VectorHandler::*op)(integer iRow, const doublereal &dCoef), VectorHandler &out, const VectorHandler &in) const
virtual ~SpMapMatrixHandler(void)
virtual VectorHandler & MatTVecMul_base(void(VectorHandler::*op)(integer iRow, const doublereal &dCoef), VectorHandler &out, const VectorHandler &in) const
bool operator==(const SpMapMatrixHandler::const_iterator &op) const
bool operator!=(const SpMapMatrixHandler::const_iterator &op) const
void IncCoef(integer ix, integer iy, const doublereal &inc)