Public Member Functions | Protected Attributes | List of all members
SVD< MatrixType > Class Template Reference

Standard SVD decomposition of a matrix and associated features. More...

Public Member Functions

void compute (const MatrixType &matrix)
template<typename PositiveType , typename UnitaryType >
void computePositiveUnitary (PositiveType *positive, UnitaryType *unitary) const
template<typename UnitaryType , typename PositiveType >
void computePositiveUnitary (UnitaryType *positive, PositiveType *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 MatrixUTypematrixU () const
const MatrixVTypematrixV () const
const SingularValuesTypesingularValues () const
template<typename OtherDerived , typename ResultType >
bool solve (const MatrixBase< OtherDerived > &b, ResultType *result) const
SVDsort ()
 SVD (const MatrixType &matrix)

Protected Attributes

MatrixUType m_matU
MatrixVType m_matV
SingularValuesType m_sigma

Detailed Description

template<typename MatrixType>
class Eigen::SVD< MatrixType >

Standard SVD decomposition of a matrix and associated features.

Warning
This is not considered to be part of the stable public API yet. Changes may happen in future releases. See Experimental parts of Eigen
Parameters
MatrixTypethe 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.

See Also
MatrixBase::SVD()

Member Function Documentation

void compute ( const MatrixType &  matrix)

Computes / recomputes the SVD decomposition A = U S V^* of matrix

Note
this code has been adapted from JAMA (public domain)
void computePositiveUnitary ( UnitaryType *  positive,
PositiveType *  unitary 
) const

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.

See Also
computeUnitaryPositive(), computeRotationScaling()
void computeRotationScaling ( RotationType *  rotation,
ScalingType *  scaling 
) const

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.

See Also
computeScalingRotation(), computeUnitaryPositive()
void computeScalingRotation ( ScalingType *  scaling,
RotationType *  rotation 
) const

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.

See Also
computeRotationScaling(), computeUnitaryPositive()
void computeUnitaryPositive ( UnitaryType *  unitary,
PositiveType *  positive 
) const

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.

See Also
computePositiveUnitary(), computeRotationScaling()
bool solve ( const MatrixBase< OtherDerived > &  b,
ResultType *  result 
) const
Returns
the solution of $ A x = b $ using the current SVD decomposition of A. The parts of the solution corresponding to zero singular values are ignored.
See Also
MatrixBase::svd(), LU::solve(), LLT::solve()

The documentation for this class was generated from the following file: