|
enum | { ColsAtCompileTime = MatrixType::ColsAtCompileTime,
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
} |
|
typedef _MatrixType | MatrixType |
|
typedef _OrderingType | OrderingType |
|
typedef MatrixType::Scalar | Scalar |
|
typedef MatrixType::RealScalar | RealScalar |
|
typedef MatrixType::StorageIndex | StorageIndex |
|
typedef SparseMatrix< Scalar, ColMajor, StorageIndex > | QRMatrixType |
|
typedef Matrix< StorageIndex, Dynamic, 1 > | IndexVector |
|
typedef Matrix< Scalar, Dynamic, 1 > | ScalarVector |
|
typedef PermutationMatrix< Dynamic, Dynamic, StorageIndex > | PermutationType |
|
|
| SparseQR (const MatrixType &mat) |
| Construct a QR factorization of the matrix mat. More...
|
|
void | compute (const MatrixType &mat) |
| Computes the QR factorization of the sparse matrix mat. More...
|
|
void | analyzePattern (const MatrixType &mat) |
| Preprocessing step of a QR factorization. More...
|
|
void | factorize (const MatrixType &mat) |
| Performs the numerical QR factorization of the input matrix. More...
|
|
Index | rows () const |
|
Index | cols () const |
|
const QRMatrixType & | matrixR () const |
|
Index | rank () const |
|
SparseQRMatrixQReturnType< SparseQR > | matrixQ () const |
|
const PermutationType & | colsPermutation () const |
|
std::string | lastErrorMessage () const |
|
template<typename Rhs , typename Dest > |
bool | _solve_impl (const MatrixBase< Rhs > &B, MatrixBase< Dest > &dest) const |
|
void | setPivotThreshold (const RealScalar &threshold) |
| Sets the threshold that is used to determine linearly dependent columns during the factorization. More...
|
|
template<typename Rhs > |
const Solve< SparseQR, Rhs > | solve (const MatrixBase< Rhs > &B) const |
|
template<typename Rhs > |
const Solve< SparseQR, Rhs > | solve (const SparseMatrixBase< Rhs > &B) const |
|
ComputationInfo | info () const |
| Reports whether previous computation was successful. More...
|
|
void | _sort_matrix_Q () |
|
| SparseSolverBase () |
| Default constructor.
|
|
SparseQR< _MatrixType, _OrderingType > & | derived () |
|
const SparseQR< _MatrixType, _OrderingType > & | derived () const |
|
const Solve< SparseQR< _MatrixType, _OrderingType >, Rhs > | solve (const MatrixBase< Rhs > &b) const |
|
const Solve< SparseQR< _MatrixType, _OrderingType >, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
|
void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
|
template<typename _MatrixType, typename _OrderingType>
class Eigen::SparseQR< _MatrixType, _OrderingType >
Sparse left-looking rank-revealing QR factorization.
This class implements a left-looking rank-revealing QR decomposition of sparse matrices. When a column has a norm less than a given tolerance it is implicitly permuted to the end. The QR factorization thus obtained is given by A*P = Q*R where R is upper triangular or trapezoidal.
P is the column permutation which is the product of the fill-reducing and the rank-revealing permutations. Use colsPermutation() to get it.
Q is the orthogonal matrix represented as products of Householder reflectors. Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose. You can then apply it to a vector.
R is the sparse triangular or trapezoidal matrix. The later occurs when A is rank-deficient. matrixR().topLeftCorner(rank(), rank()) always returns a triangular factor of full rank.
- Template Parameters
-
_MatrixType | The type of the sparse matrix A, must be a column-major SparseMatrix<> |
_OrderingType | The fill-reducing ordering method. See the OrderingMethods module for the list of built-in and external ordering methods. |
- Warning
- The input sparse matrix A must be in compressed mode (see SparseMatrix::makeCompressed()).
template<typename _MatrixType, typename _OrderingType>
- Returns
- an expression of the matrix Q as products of sparse Householder reflectors. The common usage of this function is to apply it to a dense matrix or vector
To get a plain SparseMatrix representation of Q:
SparseMatrix<double> Q;
Q = SparseQR<SparseMatrix<double> >(A).
matrixQ();
Internally, this call simply performs a sparse product between the matrix Q and a sparse identity matrix. However, due to the fact that the sparse reflectors are stored unsorted, two transpositions are needed to sort them before performing the product.
template<typename _MatrixType, typename _OrderingType>
void Eigen::SparseQR< _MatrixType, _OrderingType >::setPivotThreshold |
( |
const RealScalar & |
threshold | ) |
|
|
inline |
Sets the threshold that is used to determine linearly dependent columns during the factorization.
In practice, if during the factorization the norm of the column that has to be eliminated is below this threshold, then the entire column is treated as zero, and it is moved at the end.