| 151 |  | Vector<Real, Row> getRow(unsigned int row) { | 
| 152 |  | Vector<Real, Row> v; | 
| 153 |  |  | 
| 154 | < | for (unsigned int i = 0; i < Row; i++) | 
| 154 | > | for (unsigned int i = 0; i < Col; i++) | 
| 155 |  | v[i] = this->data_[row][i]; | 
| 156 |  |  | 
| 157 |  | return v; | 
| 164 |  | */ | 
| 165 |  | void setRow(unsigned int row, const Vector<Real, Row>& v) { | 
| 166 |  |  | 
| 167 | < | for (unsigned int i = 0; i < Row; i++) | 
| 167 | > | for (unsigned int i = 0; i < Col; i++) | 
| 168 |  | this->data_[row][i] = v[i]; | 
| 169 |  | } | 
| 170 |  |  | 
| 176 |  | Vector<Real, Col> getColumn(unsigned int col) { | 
| 177 |  | Vector<Real, Col> v; | 
| 178 |  |  | 
| 179 | < | for (unsigned int j = 0; j < Col; j++) | 
| 179 | > | for (unsigned int j = 0; j < Row; j++) | 
| 180 |  | v[j] = this->data_[j][col]; | 
| 181 |  |  | 
| 182 |  | return v; | 
| 189 |  | */ | 
| 190 |  | void setColumn(unsigned int col, const Vector<Real, Col>& v){ | 
| 191 |  |  | 
| 192 | < | for (unsigned int j = 0; j < Col; j++) | 
| 192 | > | for (unsigned int j = 0; j < Row; j++) | 
| 193 |  | this->data_[j][col] = v[j]; | 
| 194 |  | } | 
| 195 |  |  | 
| 389 |  |  | 
| 390 |  | return result; | 
| 391 |  | } | 
| 392 | < |  | 
| 392 | > |  | 
| 393 | > | template<class MatrixType> | 
| 394 | > | void setSubMatrix(unsigned int beginRow, unsigned int beginCol, const MatrixType& m) { | 
| 395 | > | assert(beginRow + m.getNRow() -1 <= getNRow()); | 
| 396 | > | assert(beginCol + m.getNCol() -1 <= getNCol()); | 
| 397 | > |  | 
| 398 | > | for (unsigned int i = 0; i < m.getNRow(); ++i) | 
| 399 | > | for (unsigned int j = 0; j < m.getNCol(); ++j) | 
| 400 | > | this->data_[beginRow+i][beginCol+j] = m(i, j); | 
| 401 | > | } | 
| 402 | > |  | 
| 403 | > | template<class MatrixType> | 
| 404 | > | void getSubMatrix(unsigned int beginRow, unsigned int beginCol, MatrixType& m) { | 
| 405 | > | assert(beginRow + m.getNRow() -1 <= getNRow()); | 
| 406 | > | assert(beginCol + m.getNCol() - 1 <= getNCol()); | 
| 407 | > |  | 
| 408 | > | for (unsigned int i = 0; i < m.getNRow(); ++i) | 
| 409 | > | for (unsigned int j = 0; j < m.getNCol(); ++j) | 
| 410 | > | m(i, j) = this->data_[beginRow+i][beginCol+j]; | 
| 411 | > | } | 
| 412 | > |  | 
| 413 | > | unsigned int getNRow() const {return Row;} | 
| 414 | > | unsigned int getNCol() const {return Col;} | 
| 415 | > |  | 
| 416 |  | protected: | 
| 417 |  | Real data_[Row][Col]; | 
| 418 |  | }; |