SVD Class Template Reference
[SVD module]

List of all members.


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:
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.

See also:
MatrixBase::SVD()

Public Member Functions

void compute (const MatrixType &matrix)
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
SVDsort ()
 SVD (const MatrixType &matrix)

Protected Attributes

MatrixUType m_matU
MatrixVType m_matV
SingularValuesType m_sigma

Member Function Documentation

void compute ( const MatrixType &  matrix  )  [inline]

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 [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.

See also:
computeUnitaryPositive(), computeRotationScaling()

void 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.

See also:
computeScalingRotation(), computeUnitaryPositive()

void 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.

See also:
computeRotationScaling(), computeUnitaryPositive()

void 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.

See also:
computePositiveUnitary(), computeRotationScaling()

bool solve ( const MatrixBase< OtherDerived > &  b,
ResultType *  result 
) const [inline]

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:

Generated on Thu Apr 9 10:10:02 2009 for Eigen by  doxygen 1.5.5