OSVR-Core
Public Member Functions | Protected Attributes | List of all members
Eigen::SVD< MatrixType > Class Template Reference

More...

#include <SVD.h>

Public Member Functions

 SVD (const MatrixType &matrix)
 
template<typename OtherDerived , typename ResultType >
bool solve (const MatrixBase< OtherDerived > &b, ResultType *result) const
 
const MatrixUTypematrixU () const
 
const SingularValuesTypesingularValues () const
 
const MatrixVTypematrixV () const
 
void compute (const MatrixType &matrix)
 Computes / recomputes the SVD decomposition A = U S V^* of matrix. More...
 
SVDsort ()
 
template<typename UnitaryType , typename PositiveType >
void computeUnitaryPositive (UnitaryType *unitary, PositiveType *positive) const
 Computes the polar decomposition of the matrix, as a product unitary x positive. More...
 
template<typename PositiveType , typename UnitaryType >
void computePositiveUnitary (PositiveType *positive, UnitaryType *unitary) const
 
template<typename RotationType , typename ScalingType >
void computeRotationScaling (RotationType *unitary, ScalingType *positive) const
 decomposes the matrix as a product rotation x scaling, the scaling being not necessarily positive. More...
 
template<typename ScalingType , typename RotationType >
void computeScalingRotation (ScalingType *positive, RotationType *unitary) const
 decomposes the matrix as a product scaling x rotation, the scaling being not necessarily positive. More...
 
template<typename UnitaryType , typename PositiveType >
void computePositiveUnitary (UnitaryType *positive, PositiveType *unitary) const
 Computes the polar decomposition of the matrix, as a product positive x unitary. More...
 

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

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

§ compute()

template<typename MatrixType >
void Eigen::SVD< MatrixType >::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)

§ computePositiveUnitary()

template<typename MatrixType>
template<typename UnitaryType , typename PositiveType >
void Eigen::SVD< MatrixType >::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()

§ computeRotationScaling()

template<typename MatrixType >
template<typename RotationType , typename ScalingType >
void Eigen::SVD< MatrixType >::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()

§ computeScalingRotation()

template<typename MatrixType >
template<typename ScalingType , typename RotationType >
void Eigen::SVD< MatrixType >::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()

§ computeUnitaryPositive()

template<typename MatrixType >
template<typename UnitaryType , typename PositiveType >
void Eigen::SVD< MatrixType >::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()

§ solve()

template<typename MatrixType >
template<typename OtherDerived , typename ResultType >
bool Eigen::SVD< MatrixType >::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: