# | Line 153 | Line 153 | namespace oopse { | |
---|---|---|
153 | } | |
154 | ||
155 | /** | |
156 | + | * swap two rows of this matrix |
157 | + | * @param i the first row |
158 | + | * @param j the second row |
159 | + | */ |
160 | + | void swapRow(unsigned int i, unsigned int j){ |
161 | + | assert(i < Row && j < Row); |
162 | + | |
163 | + | for (unsigned int k = 0; k < Col; k++) |
164 | + | std::swap(data_[i][k], data_[j][k]); |
165 | + | } |
166 | + | |
167 | + | /** |
168 | + | * swap two colums of this matrix |
169 | + | * @param i the first colum |
170 | + | * @param j the second colum |
171 | + | */ |
172 | + | void swapColum(unsigned int i, unsigned int j){ |
173 | + | assert(i < Col && j < Col); |
174 | + | |
175 | + | for (unsigned int k = 0; k < Row; k++) |
176 | + | std::swap(data_[k][i], data_[k][j]); |
177 | + | } |
178 | + | |
179 | + | /** |
180 | * Tests if this matrix is identical to matrix m | |
181 | * @return true if this matrix is equal to the matrix m, return false otherwise | |
182 | * @m matrix to be compared | |
# | Line 447 | Line 471 | namespace oopse { | |
471 | result.div(s, m); | |
472 | ||
473 | return result; | |
474 | + | } |
475 | + | |
476 | + | /** |
477 | + | * Write to an output stream |
478 | + | */ |
479 | + | template<typename Real, unsigned int Row, unsigned int Col> |
480 | + | std::ostream &operator<< ( std::ostream& o, const RectMatrix<Real, Row, Col>& m) { |
481 | + | for (unsigned int i = 0; i < Row ; i++) { |
482 | + | o << "("; |
483 | + | for (unsigned int j = 0; j < Col ; j++) { |
484 | + | o << m(i, j); |
485 | + | if (j != Col -1) |
486 | + | o << "\t"; |
487 | + | } |
488 | + | o << ")" << std::endl; |
489 | + | } |
490 | + | return o; |
491 | } | |
492 | } | |
493 | #endif //MATH_RECTMATRIX_HPP |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |