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

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

#include <SVD.h>

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

Protected Attributes

MatrixUType m_matU
 
MatrixVType m_matV
 
SingularValuesType m_sigma
 

Private Types

enum  { PacketSize = internal::packet_traits<Scalar>::size, AlignmentMask = int(PacketSize)-1, MinSize = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime) }
 
typedef Matrix< Scalar, MatrixType::RowsAtCompileTime, 1 > ColVector
 
typedef Matrix< Scalar, MatrixType::RowsAtCompileTime, MinSizeMatrixUType
 
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
 

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()

Definition at line 30 of file SVD.h.

Member Typedef Documentation

template<typename MatrixType>
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> Eigen::SVD< MatrixType >::ColVector
private

Definition at line 42 of file SVD.h.

template<typename MatrixType>
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, MinSize> Eigen::SVD< MatrixType >::MatrixUType
private

Definition at line 45 of file SVD.h.

template<typename MatrixType>
typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime> Eigen::SVD< MatrixType >::MatrixVType
private

Definition at line 46 of file SVD.h.

template<typename MatrixType>
typedef NumTraits<typename MatrixType::Scalar>::Real Eigen::SVD< MatrixType >::RealScalar
private

Definition at line 34 of file SVD.h.

template<typename MatrixType>
typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, 1> Eigen::SVD< MatrixType >::RowVector
private

Definition at line 43 of file SVD.h.

template<typename MatrixType>
typedef MatrixType::Scalar Eigen::SVD< MatrixType >::Scalar
private

Definition at line 33 of file SVD.h.

template<typename MatrixType>
typedef Matrix<Scalar, MinSize, 1> Eigen::SVD< MatrixType >::SingularValuesType
private

Definition at line 47 of file SVD.h.

Member Enumeration Documentation

template<typename MatrixType>
anonymous enum
private
Enumerator
PacketSize 
AlignmentMask 
MinSize 

Definition at line 36 of file SVD.h.

Constructor & Destructor Documentation

template<typename MatrixType>
Eigen::SVD< MatrixType >::SVD ( )
inline

Definition at line 51 of file SVD.h.

template<typename MatrixType>
Eigen::SVD< MatrixType >::SVD ( const MatrixType &  matrix)
inline

Definition at line 53 of file SVD.h.

Member Function Documentation

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)

Definition at line 94 of file SVD.h.

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

Definition at line 565 of file SVD.h.

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()

Definition at line 584 of file SVD.h.

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()

Definition at line 610 of file SVD.h.

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()

Definition at line 547 of file SVD.h.

template<typename MatrixType>
const MatrixUType& Eigen::SVD< MatrixType >::matrixU ( ) const
inline

Definition at line 64 of file SVD.h.

template<typename MatrixType>
const MatrixVType& Eigen::SVD< MatrixType >::matrixV ( ) const
inline

Definition at line 66 of file SVD.h.

template<typename MatrixType>
const SingularValuesType& Eigen::SVD< MatrixType >::singularValues ( ) const
inline

Definition at line 65 of file SVD.h.

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()

Definition at line 513 of file SVD.h.

template<typename MatrixType >
SVD< MatrixType > & Eigen::SVD< MatrixType >::sort ( )

Definition at line 470 of file SVD.h.

Member Data Documentation

template<typename MatrixType>
MatrixUType Eigen::SVD< MatrixType >::m_matU
protected

Definition at line 82 of file SVD.h.

template<typename MatrixType>
MatrixVType Eigen::SVD< MatrixType >::m_matV
protected

Definition at line 84 of file SVD.h.

template<typename MatrixType>
SingularValuesType Eigen::SVD< MatrixType >::m_sigma
protected

Definition at line 86 of file SVD.h.


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


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Mon Jun 10 2019 12:35:41