{
eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
.setLength(m_matrix.rows() - 1)
.setShift(1);
}
eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
subdiag = mat.template diagonal<-1>().real();
if(extractQ)
mat = HouseholderSequenceType(mat, hCoeffs.conjugate())
.setLength(mat.rows() - 1)
};
> ConjugateReturnType;
HouseholderSequence(const VectorsType& v, const CoeffsType& h)
: m_vectors(v), m_coeffs(h), m_trans(false), m_length(v.diagonalSize()),
: m_vectors(v), m_coeffs(h), m_trans(false), m_length(h.size()),
m_shift(0)
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())
c.applyOnTheLeft(householderSequence(dec().matrixQR(), dec().hCoeffs().head(dec().nonzeroPivots()))
.setTrans(true)
.setLength(dec().nonzeroPivots())
);
dec().matrixQR()
::householderQ() const
eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate()).setLength(m_nonzero_pivots);
return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate().head(m_nonzero_pivots));
/** \return the column-pivoting Householder QR decomposition of \c *this.