Detailed Description
template<typename _MatrixType>
class Eigen::FullPivHouseholderQR< _MatrixType >
Householder rank-revealing QR decomposition of a matrix with full pivoting.
- Parameters:
-
| MatrixType | the type of the matrix of which we are computing the QR decomposition |
This class performs a rank-revealing QR decomposition of a matrix A into matrices P, Q and R such that
by using Householder transformations. Here, P is a permutation matrix, Q a unitary matrix and R an upper triangular matrix.
This decomposition performs a very prudent full pivoting in order to be rank-revealing and achieve optimal numerical stability. The trade-off is that it is slower than HouseholderQR and ColPivHouseholderQR.
- See also:
- MatrixBase::fullPivHouseholderQr()
Definition at line 51 of file QR.
List of all members.
Public Types |
enum | {
RowsAtCompileTime = MatrixType::RowsAtCompileTime,
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
Options = MatrixType::Options,
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
} |
typedef _MatrixType | MatrixType |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType::Index | Index |
typedef Matrix< Scalar,
RowsAtCompileTime,
RowsAtCompileTime, Options,
MaxRowsAtCompileTime,
MaxRowsAtCompileTime > | MatrixQType |
typedef
internal::plain_diag_type
< MatrixType >::type | HCoeffsType |
typedef Matrix< Index,
1, ColsAtCompileTime, RowMajor,
1, MaxColsAtCompileTime > | IntRowVectorType |
typedef PermutationMatrix
< ColsAtCompileTime,
MaxColsAtCompileTime > | PermutationType |
typedef
internal::plain_col_type
< MatrixType, Index >::type | IntColVectorType |
typedef
internal::plain_row_type
< MatrixType >::type | RowVectorType |
typedef
internal::plain_col_type
< MatrixType >::type | ColVectorType |
Public Member Functions |
| FullPivHouseholderQR () |
| Default Constructor.
|
| FullPivHouseholderQR (Index rows, Index cols) |
| Default Constructor with memory preallocation.
|
| FullPivHouseholderQR (const MatrixType &matrix) |
template<typename Rhs > |
const internal::solve_retval
< FullPivHouseholderQR, Rhs > | solve (const MatrixBase< Rhs > &b) const |
| 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.
|
MatrixQType | matrixQ (void) const |
const MatrixType & | matrixQR () const |
FullPivHouseholderQR & | compute (const MatrixType &matrix) |
const PermutationType & | colsPermutation () const |
const IntColVectorType & | rowsTranspositions () const |
MatrixType::RealScalar | absDeterminant () const |
MatrixType::RealScalar | logAbsDeterminant () const |
Index | rank () const |
Index | dimensionOfKernel () const |
bool | isInjective () const |
bool | isSurjective () const |
bool | isInvertible () const |
const internal::solve_retval
< FullPivHouseholderQR,
typename
MatrixType::IdentityReturnType > | inverse () const |
Index | rows () const |
Index | cols () const |
const HCoeffsType & | hCoeffs () const |
Protected Attributes |
MatrixType | m_qr |
HCoeffsType | m_hCoeffs |
IntColVectorType | m_rows_transpositions |
IntRowVectorType | m_cols_transpositions |
PermutationType | m_cols_permutation |
RowVectorType | m_temp |
bool | m_isInitialized |
RealScalar | m_precision |
Index | m_rank |
Index | m_det_pq |
Member Typedef Documentation
template<typename _MatrixType>
Definition at line 72 of file QR.
template<typename _MatrixType>
Definition at line 67 of file QR.
template<typename _MatrixType>
Definition at line 65 of file QR.
template<typename _MatrixType>
Definition at line 70 of file QR.
template<typename _MatrixType>
Definition at line 68 of file QR.
template<typename _MatrixType>
Definition at line 66 of file QR.
template<typename _MatrixType>
Definition at line 55 of file QR.
template<typename _MatrixType>
Definition at line 69 of file QR.
template<typename _MatrixType>
Definition at line 64 of file QR.
template<typename _MatrixType>
Definition at line 71 of file QR.
template<typename _MatrixType>
Definition at line 63 of file QR.
Member Enumeration Documentation
template<typename _MatrixType>
- Enumerator:
RowsAtCompileTime |
|
ColsAtCompileTime |
|
Options |
|
MaxRowsAtCompileTime |
|
MaxColsAtCompileTime |
|
Definition at line 56 of file QR.
Constructor & Destructor Documentation
template<typename _MatrixType>
template<typename _MatrixType>
Default Constructor with memory preallocation.
Like the default constructor but with preallocation of the internal data according to the specified problem size.
- See also:
- FullPivHouseholderQR()
Definition at line 94 of file QR.
template<typename _MatrixType>
Definition at line 103 of file QR.
Member Function Documentation
template<typename MatrixType >
- Returns:
- the absolute value of the determinant of the matrix of which *this is the QR decomposition. It has only linear complexity (that is, O(n) where n is the dimension of the square matrix) as the QR decomposition has already been computed.
- Note:
- This is only for square matrices.
- Warning:
- a determinant can be very big or small, so for matrices of large enough dimension, there is a risk of overflow/underflow. One way to work around that is to use logAbsDeterminant() instead.
- See also:
- logAbsDeterminant(), MatrixBase::determinant()
Definition at line 281 of file QR.
template<typename _MatrixType>
Definition at line 264 of file QR.
template<typename _MatrixType>
Definition at line 152 of file QR.
template<typename MatrixType >
Definition at line 297 of file QR.
template<typename _MatrixType>
- Returns:
- the dimension of the kernel of the matrix of which *this is the QR decomposition.
- Note:
- Since the rank is computed at the time of the construction of the QR decomposition, this method almost does not perform any further computation.
Definition at line 209 of file QR.
template<typename _MatrixType>
Definition at line 265 of file QR.
template<typename _MatrixType>
- Returns:
- the inverse of the matrix of which *this is the QR decomposition.
- Note:
- If this matrix is not invertible, the returned matrix has undefined coefficients. Use isInvertible() to first determine whether this matrix is invertible.
Definition at line 256 of file QR.
template<typename _MatrixType>
- Returns:
- true if the matrix of which *this is the QR decomposition represents an injective linear map, i.e. has trivial kernel; false otherwise.
- Note:
- Since the rank is computed at the time of the construction of the QR decomposition, this method almost does not perform any further computation.
Definition at line 221 of file QR.
template<typename _MatrixType>
- Returns:
- true if the matrix of which *this is the QR decomposition is invertible.
- Note:
- Since the rank is computed at the time of the construction of the QR decomposition, this method almost does not perform any further computation.
Definition at line 244 of file QR.
template<typename _MatrixType>
- Returns:
- true if the matrix of which *this is the QR decomposition represents a surjective linear map; false otherwise.
- Note:
- Since the rank is computed at the time of the construction of the QR decomposition, this method almost does not perform any further computation.
Definition at line 233 of file QR.
template<typename MatrixType >
- Returns:
- the natural log of the absolute value of the determinant of the matrix of which *this is the QR decomposition. It has only linear complexity (that is, O(n) where n is the dimension of the square matrix) as the QR decomposition has already been computed.
- Note:
- This is only for square matrices.
-
This method is useful to work around the risk of overflow/underflow that's inherent to determinant computation.
- See also:
- absDeterminant(), MatrixBase::determinant()
Definition at line 289 of file QR.
template<typename MatrixType >
- Returns:
- the matrix Q
Definition at line 429 of file QR.
template<typename _MatrixType>
- Returns:
- a reference to the matrix where the Householder QR decomposition is stored
Definition at line 144 of file QR.
template<typename _MatrixType>
- Returns:
- the rank of the matrix of which *this is the QR decomposition.
- Note:
- This is computed at the time of the construction of the QR decomposition. This method does not perform any further computation.
Definition at line 198 of file QR.
template<typename _MatrixType>
Definition at line 263 of file QR.
template<typename _MatrixType>
Definition at line 158 of file QR.
template<typename _MatrixType>
template<typename Rhs >
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.
- Parameters:
-
| b | the right-hand-side of the equation to solve. |
- Returns:
- a solution.
- Note:
- The case where b is a matrix is not yet implemented. Also, this code is space inefficient.
Example:
Output:
Definition at line 134 of file QR.
Member Data Documentation
template<typename _MatrixType>
Definition at line 272 of file QR.
template<typename _MatrixType>
Definition at line 271 of file QR.
template<typename _MatrixType>
Definition at line 277 of file QR.
template<typename _MatrixType>
Definition at line 269 of file QR.
template<typename _MatrixType>
Definition at line 274 of file QR.
template<typename _MatrixType>
Definition at line 275 of file QR.
template<typename _MatrixType>
Definition at line 268 of file QR.
template<typename _MatrixType>
Definition at line 276 of file QR.
template<typename _MatrixType>
Definition at line 270 of file QR.
template<typename _MatrixType>
Definition at line 273 of file QR.