Standard SVD decomposition of a matrix and associated features. More...
#include <SVD.h>
Public Member Functions | |
| void | compute (const MatrixType &matrix) |
| template<typename UnitaryType , typename PositiveType > | |
| void | computePositiveUnitary (UnitaryType *positive, PositiveType *unitary) const |
| template<typename PositiveType , typename UnitaryType > | |
| void | computePositiveUnitary (PositiveType *positive, UnitaryType *unitary) const |
| template<typename RotationType , typename ScalingType > | |
| void | computeRotationScaling (RotationType *unitary, ScalingType *positive) const |
| template<typename ScalingType , typename RotationType > | |
| void | computeScalingRotation (ScalingType *positive, RotationType *unitary) const |
| template<typename UnitaryType , typename PositiveType > | |
| void | computeUnitaryPositive (UnitaryType *unitary, PositiveType *positive) const |
| const MatrixUType & | matrixU () const |
| const MatrixVType & | matrixV () const |
| const SingularValuesType & | singularValues () const |
| template<typename OtherDerived , typename ResultType > | |
| bool | solve (const MatrixBase< OtherDerived > &b, ResultType *result) const |
| SVD & | sort () |
| SVD (const MatrixType &matrix) | |
| SVD () | |
Protected Attributes | |
| MatrixUType | m_matU |
| MatrixVType | m_matV |
| SingularValuesType | m_sigma |
Private Types | |
| enum | { PacketSize = ei_packet_traits<Scalar>::size, AlignmentMask = int(PacketSize)-1, MinSize = EIGEN_SIZE_MIN(MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime) } |
| typedef Matrix< Scalar, MatrixType::RowsAtCompileTime, 1 > | ColVector |
| typedef Matrix< Scalar, MatrixType::RowsAtCompileTime, MinSize > | MatrixUType |
| typedef Matrix< Scalar, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime > | MatrixVType |
| typedef NumTraits< typename MatrixType::Scalar >::Real | RealScalar |
| typedef Matrix< Scalar, MatrixType::ColsAtCompileTime, 1 > | RowVector |
| typedef MatrixType::Scalar | Scalar |
| typedef Matrix< Scalar, MinSize, 1 > | SingularValuesType |
Standard SVD decomposition of a matrix and associated features.
| MatrixType | the type of the matrix of which we are computing the SVD decomposition |
This class performs a standard SVD decomposition of a real matrix A of size M x N with M >= N.
Definition at line 43 of file SVD.h.
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, MinSize> SVD< MatrixType >::MatrixUType [private] |
typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime> SVD< MatrixType >::MatrixVType [private] |
typedef NumTraits<typename MatrixType::Scalar>::Real SVD< MatrixType >::RealScalar [private] |
typedef Matrix<Scalar, MinSize, 1> SVD< MatrixType >::SingularValuesType [private] |
anonymous enum [private] |
| void SVD< MatrixType >::compute | ( | const MatrixType & | matrix | ) | [inline] |
| void SVD< MatrixType >::computePositiveUnitary | ( | UnitaryType * | positive, | |
| PositiveType * | unitary | |||
| ) | const [inline] |
Computes the polar decomposition of the matrix, as a product positive x unitary.
If either pointer is zero, the corresponding computation is skipped.
Only for square matrices.
| void SVD< MatrixType >::computePositiveUnitary | ( | PositiveType * | positive, | |
| UnitaryType * | unitary | |||
| ) | const [inline] |
| void SVD< MatrixType >::computeRotationScaling | ( | RotationType * | rotation, | |
| ScalingType * | scaling | |||
| ) | const [inline] |
decomposes the matrix as a product rotation x scaling, the scaling being not necessarily positive.
If either pointer is zero, the corresponding computation is skipped.
This method requires the Geometry module.
| void SVD< MatrixType >::computeScalingRotation | ( | ScalingType * | scaling, | |
| RotationType * | rotation | |||
| ) | const [inline] |
decomposes the matrix as a product scaling x rotation, the scaling being not necessarily positive.
If either pointer is zero, the corresponding computation is skipped.
This method requires the Geometry module.
| void SVD< MatrixType >::computeUnitaryPositive | ( | UnitaryType * | unitary, | |
| PositiveType * | positive | |||
| ) | const [inline] |
Computes the polar decomposition of the matrix, as a product unitary x positive.
If either pointer is zero, the corresponding computation is skipped.
Only for square matrices.
| const MatrixUType& SVD< MatrixType >::matrixU | ( | ) | const [inline] |
| const MatrixVType& SVD< MatrixType >::matrixV | ( | ) | const [inline] |
| const SingularValuesType& SVD< MatrixType >::singularValues | ( | ) | const [inline] |
| bool SVD< MatrixType >::solve | ( | const MatrixBase< OtherDerived > & | b, | |
| ResultType * | result | |||
| ) | const [inline] |
using the current SVD decomposition of A. The parts of the solution corresponding to zero singular values are ignored.MatrixUType SVD< MatrixType >::m_matU [protected] |
MatrixVType SVD< MatrixType >::m_matV [protected] |
SingularValuesType SVD< MatrixType >::m_sigma [protected] |