diff options
author | 2010-04-22 14:11:18 -0400 | |
---|---|---|
committer | 2010-04-22 14:11:18 -0400 | |
commit | 9962c59b56960569c8df332144190e62c1eb3b01 (patch) | |
tree | a3efa574460c6a08f4ed17a3896b497d5bfc374f /Eigen/src/QR/ColPivHouseholderQR.h | |
parent | 28dde19e40a3d758faa94f0fc228857f7b3192ea (diff) |
* implement the corner() API change: new methods topLeftCorner() etc
* get rid of BlockReturnType: it was not needed, and code was not always using it consistently anyway
* add topRows(), leftCols(), bottomRows(), rightCols()
* add corners unit-test covering all of that
* adapt docs, expand "porting from eigen 2 to 3"
* adapt Eigen2Support
Diffstat (limited to 'Eigen/src/QR/ColPivHouseholderQR.h')
-rw-r--r-- | Eigen/src/QR/ColPivHouseholderQR.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/Eigen/src/QR/ColPivHouseholderQR.h b/Eigen/src/QR/ColPivHouseholderQR.h index 5893125cd..8c9c8840b 100644 --- a/Eigen/src/QR/ColPivHouseholderQR.h +++ b/Eigen/src/QR/ColPivHouseholderQR.h @@ -411,7 +411,7 @@ ColPivHouseholderQR<MatrixType>& ColPivHouseholderQR<MatrixType>::compute(const { m_nonzero_pivots = k; m_hCoeffs.tail(size-k).setZero(); - m_qr.corner(BottomRight,rows-k,cols-k) + m_qr.bottomRightCorner(rows-k,cols-k) .template triangularView<StrictlyLower>() .setZero(); break; @@ -436,7 +436,7 @@ ColPivHouseholderQR<MatrixType>& ColPivHouseholderQR<MatrixType>::compute(const if(ei_abs(beta) > m_maxpivot) m_maxpivot = ei_abs(beta); // apply the householder transformation - m_qr.corner(BottomRight, rows-k, cols-k-1) + m_qr.bottomRightCorner(rows-k, cols-k-1) .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1)); // update our table of squared norms of the columns @@ -483,17 +483,17 @@ struct ei_solve_retval<ColPivHouseholderQR<_MatrixType>, Rhs> )); dec().matrixQR() - .corner(TopLeft, nonzero_pivots, nonzero_pivots) + .topLeftCorner(nonzero_pivots, nonzero_pivots) .template triangularView<Upper>() - .solveInPlace(c.corner(TopLeft, nonzero_pivots, c.cols())); + .solveInPlace(c.topRows(nonzero_pivots)); typename Rhs::PlainObject d(c); - d.corner(TopLeft, nonzero_pivots, c.cols()) + d.topRows(nonzero_pivots) = dec().matrixQR() - .corner(TopLeft, nonzero_pivots, nonzero_pivots) + .topLeftCorner(nonzero_pivots, nonzero_pivots) .template triangularView<Upper>() - * c.corner(TopLeft, nonzero_pivots, c.cols()); + * c.topRows(nonzero_pivots); for(int i = 0; i < nonzero_pivots; ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i); for(int i = nonzero_pivots; i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero(); |