fix HouseholderSequence API, bug #50:

* remove ctors taking more than 2 ints
 * rename actualVectors to length
 * add length/shift/trans accessors/mutators
This commit is contained in:
Benoit Jacob
2010-12-30 04:18:40 -05:00
parent e112ad8124
commit dbd9c5fd50
6 changed files with 78 additions and 49 deletions

View File

@@ -483,13 +483,10 @@ struct solve_retval<ColPivHouseholderQR<_MatrixType>, Rhs>
typename Rhs::PlainObject c(rhs());
// Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
c.applyOnTheLeft(householderSequence(
dec().matrixQR(),
dec().hCoeffs(),
true,
dec().nonzeroPivots(),
0
));
c.applyOnTheLeft(householderSequence(dec().matrixQR(), dec().hCoeffs())
.setTrans(true)
.setLength(dec().nonzeroPivots())
);
dec().matrixQR()
.topLeftCorner(nonzero_pivots, nonzero_pivots)
@@ -517,7 +514,7 @@ typename ColPivHouseholderQR<MatrixType>::HouseholderSequenceType ColPivHousehol
::householderQ() const
{
eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate(), false, m_nonzero_pivots, 0);
return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate()).setLength(m_nonzero_pivots);
}
/** \return the column-pivoting Householder QR decomposition of \c *this.