Eigen
3.3.9

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
\[ \mathbf{A} = \mathbf{Q} \, \mathbf{R} \]
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 rankrevealing decomposition. If you want that feature, use FullPivHouseholderQR or ColPivHouseholderQR instead.
This Householder QR decomposition is faster, but less numerically stable and less featurefull than FullPivHouseholderQR or ColPivHouseholderQR.
This class supports the inplace decomposition mechanism.
Public Member Functions  
MatrixType::RealScalar  absDeterminant () const 
const HCoeffsType &  hCoeffs () const 
HouseholderSequenceType  householderQ () const 
HouseholderQR ()  
Default Constructor. 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...  
HouseholderQR (Index rows, Index cols)  
Default Constructor with memory preallocation. More...  
MatrixType::RealScalar  logAbsDeterminant () const 
const MatrixType &  matrixQR () const 
template<typename Rhs >  
const Solve< HouseholderQR, Rhs >  solve (const MatrixBase< Rhs > &b) const 
Protected Member Functions  
void  computeInPlace () 

inline 
Default Constructor.
The default constructor is useful in cases in which the user intends to perform decompositions via HouseholderQR::compute(const MatrixType&).

inline 
Default Constructor with memory preallocation.
Like the default constructor but with preallocation of the internal data according to the specified problem size.

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:

inlineexplicit 
Constructs a QR factorization from a given matrix.
This overloaded constructor is provided for inplace decomposition when MatrixType
is a Eigen::Ref.
MatrixType::RealScalar Eigen::HouseholderQR< MatrixType >::absDeterminant 

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.

inline 
Q
.For advanced uses only.

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:
The complete unitary matrix Q is: 0.0432 0.136 0.0214 0.546 0.825 0.249 0.521 0.745 0.229 0.244 0.715 0.264 0.562 0.271 0.171 0.169 0.744 0.211 0.56 0.245 0.629 0.296 0.29 0.512 0.413 The thin matrix Q is: 0.0432 0.136 0.0214 0.249 0.521 0.745 0.715 0.264 0.562 0.169 0.744 0.211 0.629 0.296 0.29
MatrixType::RealScalar Eigen::HouseholderQR< MatrixType >::logAbsDeterminant 

inline 

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 righthandside of the equation to solve. 
This method just tries to find as good a solution as possible. If you want to check whether a solution exists or if it is accurate, just call this function to get a result and then compute the error of this result, or use MatrixBase::isApprox() directly, for instance like this:
This method avoids dividing by zero, so that the nonexistence of a solution doesn't by itself mean that you'll get inf
or nan
values.
If there exists more than one solution, this method will arbitrarily choose one.
Example:
Output:
Here is the matrix m: 1 0.0827 0.906 0.737 0.0655 0.358 0.511 0.562 0.359 Here is the matrix y: 0.869 0.662 0.0594 0.233 0.931 0.342 0.0388 0.893 0.985 Here is a solution x to the equation mx=y: 0.117 0.626 0.278 0.667 1.18 1.56 0.77 1.53 0.0985