Householder QR decomposition of a matrix. More...
#include <ForwardDeclarations.h>
Public Types | |
enum | { RowsAtCompileTime = MatrixType::RowsAtCompileTime, ColsAtCompileTime = MatrixType::ColsAtCompileTime, MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime, MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime } |
typedef internal::plain_diag_type< MatrixType >::type | HCoeffsType |
typedef HouseholderSequence< MatrixType, typename internal::remove_all< typename HCoeffsType::ConjugateReturnType >::type > | HouseholderSequenceType |
typedef Matrix< Scalar, RowsAtCompileTime, RowsAtCompileTime,(MatrixType::Flags &RowMajorBit)?RowMajor:ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime > | MatrixQType |
typedef _MatrixType | MatrixType |
typedef MatrixType::RealScalar | RealScalar |
typedef internal::plain_row_type< MatrixType >::type | RowVectorType |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::StorageIndex | StorageIndex |
Public Member Functions | |
template<typename RhsType , typename DstType > | |
EIGEN_DEVICE_FUNC void | _solve_impl (const RhsType &rhs, DstType &dst) const |
template<typename RhsType , typename DstType > | |
void | _solve_impl (const RhsType &rhs, DstType &dst) const |
MatrixType::RealScalar | absDeterminant () const |
Index | cols () const |
template<typename InputType > | |
HouseholderQR & | compute (const EigenBase< InputType > &matrix) |
const HCoeffsType & | hCoeffs () const |
HouseholderSequenceType | householderQ () const |
HouseholderQR () | |
Default Constructor. More... | |
HouseholderQR (Index rows, Index cols) | |
Default Constructor with memory preallocation. More... | |
template<typename InputType > | |
HouseholderQR (const EigenBase< InputType > &matrix) | |
Constructs a QR factorization from a given matrix. More... | |
template<typename InputType > | |
HouseholderQR (EigenBase< InputType > &matrix) | |
Constructs a QR factorization from a given matrix. More... | |
MatrixType::RealScalar | logAbsDeterminant () const |
const MatrixType & | matrixQR () const |
Index | rows () const |
template<typename Rhs > | |
const Solve< HouseholderQR, Rhs > | solve (const MatrixBase< Rhs > &b) const |
Protected Member Functions | |
void | computeInPlace () |
Static Protected Member Functions | |
static void | check_template_parameters () |
Protected Attributes | |
HCoeffsType | m_hCoeffs |
bool | m_isInitialized |
MatrixType | m_qr |
RowVectorType | m_temp |
Householder QR decomposition of a matrix.
_MatrixType | the type of the matrix of which we are computing the QR decomposition |
This class performs a QR decomposition of a matrix A into matrices Q and R such that
by using Householder transformations. Here, Q a unitary matrix and R an upper triangular matrix. The result is stored in a compact way compatible with LAPACK.
Note that no pivoting is performed. This is not a rank-revealing decomposition. If you want that feature, use FullPivHouseholderQR or ColPivHouseholderQR instead.
This Householder QR decomposition is faster, but less numerically stable and less feature-full than FullPivHouseholderQR or ColPivHouseholderQR.
This class supports the inplace decomposition mechanism.
Definition at line 254 of file ForwardDeclarations.h.
typedef internal::plain_diag_type<MatrixType>::type Eigen::HouseholderQR< _MatrixType >::HCoeffsType |
Definition at line 60 of file HouseholderQR.h.
typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename HCoeffsType::ConjugateReturnType>::type> Eigen::HouseholderQR< _MatrixType >::HouseholderSequenceType |
Definition at line 62 of file HouseholderQR.h.
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, (MatrixType::Flags&RowMajorBit) ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> Eigen::HouseholderQR< _MatrixType >::MatrixQType |
Definition at line 59 of file HouseholderQR.h.
typedef _MatrixType Eigen::HouseholderQR< _MatrixType >::MatrixType |
Definition at line 48 of file HouseholderQR.h.
typedef MatrixType::RealScalar Eigen::HouseholderQR< _MatrixType >::RealScalar |
Definition at line 56 of file HouseholderQR.h.
typedef internal::plain_row_type<MatrixType>::type Eigen::HouseholderQR< _MatrixType >::RowVectorType |
Definition at line 61 of file HouseholderQR.h.
typedef MatrixType::Scalar Eigen::HouseholderQR< _MatrixType >::Scalar |
Definition at line 55 of file HouseholderQR.h.
typedef MatrixType::StorageIndex Eigen::HouseholderQR< _MatrixType >::StorageIndex |
Definition at line 58 of file HouseholderQR.h.
anonymous enum |
Enumerator | |
---|---|
RowsAtCompileTime | |
ColsAtCompileTime | |
MaxRowsAtCompileTime | |
MaxColsAtCompileTime |
Definition at line 49 of file HouseholderQR.h.
|
inline |
Default Constructor.
The default constructor is useful in cases in which the user intends to perform decompositions via HouseholderQR::compute(const MatrixType&).
Definition at line 70 of file HouseholderQR.h.
|
inline |
Default Constructor with memory preallocation.
Like the default constructor but with preallocation of the internal data according to the specified problem size.
Definition at line 78 of file HouseholderQR.h.
|
inlineexplicit |
Constructs a QR factorization from a given matrix.
This constructor computes the QR factorization of the matrix matrix by calling the method compute(). It is a short cut for:
Definition at line 97 of file HouseholderQR.h.
|
inlineexplicit |
Constructs a QR factorization from a given matrix.
This overloaded constructor is provided for inplace decomposition when MatrixType
is a Eigen::Ref.
Definition at line 115 of file HouseholderQR.h.
EIGEN_DEVICE_FUNC void Eigen::HouseholderQR< _MatrixType >::_solve_impl | ( | const RhsType & | rhs, |
DstType & | dst | ||
) | const |
void Eigen::HouseholderQR< _MatrixType >::_solve_impl | ( | const RhsType & | rhs, |
DstType & | dst | ||
) | const |
Definition at line 350 of file HouseholderQR.h.
MatrixType::RealScalar Eigen::HouseholderQR< MatrixType >::absDeterminant | ( | ) | const |
Definition at line 236 of file HouseholderQR.h.
|
inlinestaticprotected |
Definition at line 222 of file HouseholderQR.h.
|
inline |
Definition at line 206 of file HouseholderQR.h.
|
inline |
Definition at line 170 of file HouseholderQR.h.
|
protected |
Performs the QR factorization of the given matrix matrix. The result of the factorization is stored into *this
, and a reference to *this
is returned.
Definition at line 379 of file HouseholderQR.h.
|
inline |
Q
.For advanced uses only.
Definition at line 212 of file HouseholderQR.h.
|
inline |
This method returns an expression of the unitary matrix Q as a sequence of Householder transformations.
The returned expression can directly be used to perform matrix products. It can also be assigned to a dense Matrix object. Here is an example showing how to recover the full or thin matrix Q, as well as how to perform matrix products using operator*:
Example:
Output:
Definition at line 154 of file HouseholderQR.h.
MatrixType::RealScalar Eigen::HouseholderQR< MatrixType >::logAbsDeterminant | ( | ) | const |
Definition at line 245 of file HouseholderQR.h.
|
inline |
Definition at line 163 of file HouseholderQR.h.
|
inline |
Definition at line 205 of file HouseholderQR.h.
|
inline |
This method finds a solution x to the equation Ax=b, where A is the matrix of which *this is the QR decomposition, if any exists.
b | the right-hand-side of the equation to solve. |
Example:
Output:
Definition at line 140 of file HouseholderQR.h.
|
protected |
Definition at line 230 of file HouseholderQR.h.
|
protected |
Definition at line 232 of file HouseholderQR.h.
|
protected |
Definition at line 229 of file HouseholderQR.h.
|
protected |
Definition at line 231 of file HouseholderQR.h.