Householder rank-revealing QR decomposition of a matrix with full pivoting.
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.
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 |
typedef internal::plain_col_type<MatrixType>::type Eigen::FullPivHouseholderQR< _MatrixType >::ColVectorType |
typedef internal::plain_diag_type<MatrixType>::type Eigen::FullPivHouseholderQR< _MatrixType >::HCoeffsType |
typedef MatrixType::Index Eigen::FullPivHouseholderQR< _MatrixType >::Index |
typedef internal::plain_col_type<MatrixType, Index>::type Eigen::FullPivHouseholderQR< _MatrixType >::IntColVectorType |
typedef Matrix<Index, 1, ColsAtCompileTime, RowMajor, 1, MaxColsAtCompileTime> Eigen::FullPivHouseholderQR< _MatrixType >::IntRowVectorType |
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> Eigen::FullPivHouseholderQR< _MatrixType >::MatrixQType |
typedef _MatrixType Eigen::FullPivHouseholderQR< _MatrixType >::MatrixType |
typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> Eigen::FullPivHouseholderQR< _MatrixType >::PermutationType |
typedef MatrixType::RealScalar Eigen::FullPivHouseholderQR< _MatrixType >::RealScalar |
typedef internal::plain_row_type<MatrixType>::type Eigen::FullPivHouseholderQR< _MatrixType >::RowVectorType |
typedef MatrixType::Scalar Eigen::FullPivHouseholderQR< _MatrixType >::Scalar |
anonymous enum |
Eigen::FullPivHouseholderQR< _MatrixType >::FullPivHouseholderQR | ( | ) | [inline] |
Default Constructor.
The default constructor is useful in cases in which the user intends to perform decompositions via FullPivHouseholderQR::compute(const MatrixType&).
Eigen::FullPivHouseholderQR< _MatrixType >::FullPivHouseholderQR | ( | Index | rows, |
Index | cols | ||
) | [inline] |
Default Constructor with memory preallocation.
Like the default constructor but with preallocation of the internal data according to the specified problem size.
Eigen::FullPivHouseholderQR< _MatrixType >::FullPivHouseholderQR | ( | const MatrixType & | matrix | ) | [inline] |
MatrixType::RealScalar FullPivHouseholderQR< MatrixType >::absDeterminant | ( | ) | const |
Index Eigen::FullPivHouseholderQR< _MatrixType >::cols | ( | void | ) | const [inline] |
const PermutationType& Eigen::FullPivHouseholderQR< _MatrixType >::colsPermutation | ( | ) | const [inline] |
FullPivHouseholderQR< MatrixType > & FullPivHouseholderQR< MatrixType >::compute | ( | const MatrixType & | matrix | ) |
Index Eigen::FullPivHouseholderQR< _MatrixType >::dimensionOfKernel | ( | ) | const [inline] |
const HCoeffsType& Eigen::FullPivHouseholderQR< _MatrixType >::hCoeffs | ( | ) | const [inline] |
const internal::solve_retval<FullPivHouseholderQR, typename MatrixType::IdentityReturnType> Eigen::FullPivHouseholderQR< _MatrixType >::inverse | ( | ) | const [inline] |
bool Eigen::FullPivHouseholderQR< _MatrixType >::isInjective | ( | ) | const [inline] |
bool Eigen::FullPivHouseholderQR< _MatrixType >::isInvertible | ( | ) | const [inline] |
bool Eigen::FullPivHouseholderQR< _MatrixType >::isSurjective | ( | ) | const [inline] |
MatrixType::RealScalar FullPivHouseholderQR< MatrixType >::logAbsDeterminant | ( | ) | const |
FullPivHouseholderQR< MatrixType >::MatrixQType FullPivHouseholderQR< MatrixType >::matrixQ | ( | void | ) | const |
const MatrixType& Eigen::FullPivHouseholderQR< _MatrixType >::matrixQR | ( | ) | const [inline] |
Index Eigen::FullPivHouseholderQR< _MatrixType >::rank | ( | ) | const [inline] |
Index Eigen::FullPivHouseholderQR< _MatrixType >::rows | ( | void | ) | const [inline] |
const IntColVectorType& Eigen::FullPivHouseholderQR< _MatrixType >::rowsTranspositions | ( | ) | const [inline] |
const internal::solve_retval<FullPivHouseholderQR, Rhs> Eigen::FullPivHouseholderQR< _MatrixType >::solve | ( | const MatrixBase< Rhs > & | b | ) | const [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:
PermutationType Eigen::FullPivHouseholderQR< _MatrixType >::m_cols_permutation [protected] |
IntRowVectorType Eigen::FullPivHouseholderQR< _MatrixType >::m_cols_transpositions [protected] |
Index Eigen::FullPivHouseholderQR< _MatrixType >::m_det_pq [protected] |
HCoeffsType Eigen::FullPivHouseholderQR< _MatrixType >::m_hCoeffs [protected] |
bool Eigen::FullPivHouseholderQR< _MatrixType >::m_isInitialized [protected] |
RealScalar Eigen::FullPivHouseholderQR< _MatrixType >::m_precision [protected] |
MatrixType Eigen::FullPivHouseholderQR< _MatrixType >::m_qr [protected] |
Index Eigen::FullPivHouseholderQR< _MatrixType >::m_rank [protected] |
IntColVectorType Eigen::FullPivHouseholderQR< _MatrixType >::m_rows_transpositions [protected] |
RowVectorType Eigen::FullPivHouseholderQR< _MatrixType >::m_temp [protected] |
Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN: at Sat Mar 26 06:40:17 UTC 2011 |