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 |
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) << "\t"; |
485 |
+ |
} |
486 |
+ |
o << ")" << std::endl; |
487 |
+ |
} |
488 |
+ |
return o; |
489 |
+ |
} |
490 |
|
} |
491 |
|
#endif //MATH_RECTMATRIX_HPP |