* revert the previous interface change in solveTriangular (pointer vs reference)

* remove the cast operators in the Geometry module: they are replaced by constructors
  and new operator= in Matrix
* extended the operations supported by Rotation2D
* rewrite in solveTriangular:
  - merge the Upper and Lower specializations
  - big optimization of the path for row-major triangular matrices
This commit is contained in:
Gael Guennebaud
2008-08-18 22:17:42 +00:00
parent e778ae2559
commit 95dd09bea6
9 changed files with 202 additions and 117 deletions

View File

@@ -399,7 +399,7 @@ void LU<MatrixType>::computeKernel(Matrix<typename MatrixType::Scalar,
m_lu.corner(TopLeft, m_rank, m_rank)
.template marked<Upper>()
.solveTriangularInPlace(&y);
.solveTriangularInPlace(y);
for(int i = 0; i < m_rank; i++)
result->row(m_q.coeff(i)) = y.row(i);
@@ -451,7 +451,7 @@ bool LU<MatrixType>::solve(
l.setZero();
l.corner(Eigen::TopLeft,rows,smalldim)
= m_lu.corner(Eigen::TopLeft,rows,smalldim);
l.template marked<UnitLower>().solveTriangularInPlace(&c);
l.template marked<UnitLower>().solveTriangularInPlace(c);
// Step 3
if(!isSurjective())
@@ -468,7 +468,7 @@ bool LU<MatrixType>::solve(
d(c.corner(TopLeft, m_rank, c.cols()));
m_lu.corner(TopLeft, m_rank, m_rank)
.template marked<Upper>()
.solveTriangularInPlace(&d);
.solveTriangularInPlace(d);
// Step 4
result->resize(m_lu.cols(), b.cols());