Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
Eigen::SVDBase< _MatrixType > Class Template Reference

Mother class of SVD classes algorithms. More...

#include <SVDBase.h>

Inheritance diagram for Eigen::SVDBase< _MatrixType >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  {
  RowsAtCompileTime = MatrixType::RowsAtCompileTime, ColsAtCompileTime = MatrixType::ColsAtCompileTime, DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime), MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
  MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime, MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime), MatrixOptions = MatrixType::Options
}
typedef
internal::plain_col_type
< MatrixType >::type 
ColType
typedef MatrixType::Index Index
typedef _MatrixType MatrixType
typedef Matrix< Scalar,
RowsAtCompileTime,
RowsAtCompileTime,
MatrixOptions,
MaxRowsAtCompileTime,
MaxRowsAtCompileTime
MatrixUType
typedef Matrix< Scalar,
ColsAtCompileTime,
ColsAtCompileTime,
MatrixOptions,
MaxColsAtCompileTime,
MaxColsAtCompileTime
MatrixVType
typedef NumTraits< typename
MatrixType::Scalar >::Real 
RealScalar
typedef
internal::plain_row_type
< MatrixType >::type 
RowType
typedef MatrixType::Scalar Scalar
typedef
internal::plain_diag_type
< MatrixType, RealScalar >
::type 
SingularValuesType
typedef Matrix< Scalar,
DiagSizeAtCompileTime,
DiagSizeAtCompileTime,
MatrixOptions,
MaxDiagSizeAtCompileTime,
MaxDiagSizeAtCompileTime
WorkMatrixType

Public Member Functions

Index cols () const
SVDBasecompute (const MatrixType &matrix, unsigned int computationOptions)
 Method performing the decomposition of given matrix using custom options.
SVDBasecompute (const MatrixType &matrix)
 Method performing the decomposition of given matrix using current options.
bool computeU () const
bool computeV () const
const MatrixUTypematrixU () const
const MatrixVTypematrixV () const
Index nonzeroSingularValues () const
Index rows () const
const SingularValuesTypesingularValues () const

Protected Member Functions

bool allocate (Index rows, Index cols, unsigned int computationOptions)
 SVDBase ()
 Default Constructor.

Protected Attributes

Index m_cols
unsigned int m_computationOptions
bool m_computeFullU
bool m_computeFullV
bool m_computeThinU
bool m_computeThinV
Index m_diagSize
bool m_isAllocated
bool m_isInitialized
MatrixUType m_matrixU
MatrixVType m_matrixV
Index m_nonzeroSingularValues
Index m_rows
SingularValuesType m_singularValues

Detailed Description

template<typename _MatrixType>
class Eigen::SVDBase< _MatrixType >

Mother class of SVD classes algorithms.

Parameters:
MatrixTypethe type of the matrix of which we are computing the SVD decomposition SVD decomposition consists in decomposing any n-by-p matrix A as a product

\[ A = U S V^* \]

where U is a n-by-n unitary, V is a p-by-p unitary, and S is a n-by-p real positive matrix which is zero outside of its main diagonal; the diagonal entries of S are known as the singular values of A and the columns of U and V are known as the left and right singular vectors of A respectively.

Singular values are always sorted in decreasing order.

You can ask for only thin U or V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting m be the smaller value among n and p, there are only m singular vectors; the remaining columns of U and V do not correspond to actual singular vectors. Asking for thin U or V means asking for only their m first columns to be formed. So U is then a n-by-m matrix, and V is then a p-by-m matrix. Notice that thin U and V are all you need for (least squares) solving.

If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to terminate in finite (and reasonable) time.

See also:
MatrixBase::genericSvd()

Definition at line 46 of file SVDBase.h.


Member Typedef Documentation

template<typename _MatrixType>
typedef internal::plain_col_type<MatrixType>::type Eigen::SVDBase< _MatrixType >::ColType
template<typename _MatrixType>
typedef MatrixType::Index Eigen::SVDBase< _MatrixType >::Index
template<typename _MatrixType>
typedef _MatrixType Eigen::SVDBase< _MatrixType >::MatrixType
template<typename _MatrixType>
typedef NumTraits<typename MatrixType::Scalar>::Real Eigen::SVDBase< _MatrixType >::RealScalar
template<typename _MatrixType>
typedef internal::plain_row_type<MatrixType>::type Eigen::SVDBase< _MatrixType >::RowType
template<typename _MatrixType>
typedef MatrixType::Scalar Eigen::SVDBase< _MatrixType >::Scalar
template<typename _MatrixType>
typedef internal::plain_diag_type<MatrixType, RealScalar>::type Eigen::SVDBase< _MatrixType >::SingularValuesType

Member Enumeration Documentation

template<typename _MatrixType>
anonymous enum
Enumerator:
RowsAtCompileTime 
ColsAtCompileTime 
DiagSizeAtCompileTime 
MaxRowsAtCompileTime 
MaxColsAtCompileTime 
MaxDiagSizeAtCompileTime 
MatrixOptions 

Definition at line 54 of file SVDBase.h.


Constructor & Destructor Documentation

template<typename _MatrixType>
Eigen::SVDBase< _MatrixType >::SVDBase ( ) [inline, protected]

Default Constructor.

Default constructor of SVDBase

Definition at line 182 of file SVDBase.h.


Member Function Documentation

template<typename MatrixType >
bool Eigen::SVDBase< MatrixType >::allocate ( Index  rows,
Index  cols,
unsigned int  computationOptions 
) [protected]
template<typename _MatrixType>
Index Eigen::SVDBase< _MatrixType >::cols ( void  ) const [inline]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 161 of file SVDBase.h.

template<typename _MatrixType>
SVDBase& Eigen::SVDBase< _MatrixType >::compute ( const MatrixType matrix,
unsigned int  computationOptions 
)

Method performing the decomposition of given matrix using custom options.

Parameters:
matrixthe matrix to decompose
computationOptionsoptional parameter allowing to specify if you want full or thin U or V unitaries to be computed. By default, none is computed. This is a bit-field, the possible bits are ComputeFullU, ComputeThinU, ComputeFullV, ComputeThinV.

Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not available with the (non-default) FullPivHouseholderQR preconditioner.

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >, Eigen::JacobiSVD< _MatrixType, QRPreconditioner >, Eigen::BDCSVD< _MatrixType >, and Eigen::BDCSVD< _MatrixType >.

template<typename _MatrixType>
SVDBase& Eigen::SVDBase< _MatrixType >::compute ( const MatrixType matrix)

Method performing the decomposition of given matrix using current options.

Parameters:
matrixthe matrix to decompose

This method uses the current computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >, Eigen::JacobiSVD< _MatrixType, QRPreconditioner >, and Eigen::BDCSVD< _MatrixType >.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::computeU ( ) const [inline]
Returns:
true if U (full or thin) is asked for in this SVD decomposition

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 155 of file SVDBase.h.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::computeV ( ) const [inline]
Returns:
true if V (full or thin) is asked for in this SVD decomposition

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 157 of file SVDBase.h.

template<typename _MatrixType>
const MatrixUType& Eigen::SVDBase< _MatrixType >::matrixU ( ) const [inline]
Returns:
the U matrix.

For the SVDBase decomposition of a n-by-p matrix, letting m be the minimum of n and p, the U matrix is n-by-n if you asked for ComputeFullU, and is n-by-m if you asked for ComputeThinU.

The m first columns of U are the left singular vectors of the matrix being decomposed.

This method asserts that you asked for U to be computed.

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >, and Eigen::BDCSVD< _MatrixType >.

Definition at line 110 of file SVDBase.h.

template<typename _MatrixType>
const MatrixVType& Eigen::SVDBase< _MatrixType >::matrixV ( ) const [inline]
Returns:
the V matrix.

For the SVD decomposition of a n-by-p matrix, letting m be the minimum of n and p, the V matrix is p-by-p if you asked for ComputeFullV, and is p-by-m if you asked for ComputeThinV.

The m first columns of V are the right singular vectors of the matrix being decomposed.

This method asserts that you asked for V to be computed.

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >, and Eigen::BDCSVD< _MatrixType >.

Definition at line 126 of file SVDBase.h.

template<typename _MatrixType>
Index Eigen::SVDBase< _MatrixType >::nonzeroSingularValues ( ) const [inline]
Returns:
the number of singular values that are not exactly 0

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 147 of file SVDBase.h.

template<typename _MatrixType>
Index Eigen::SVDBase< _MatrixType >::rows ( void  ) const [inline]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 160 of file SVDBase.h.

template<typename _MatrixType>
const SingularValuesType& Eigen::SVDBase< _MatrixType >::singularValues ( ) const [inline]
Returns:
the vector of singular values.

For the SVD decomposition of a n-by-p matrix, letting m be the minimum of n and p, the returned vector has size m. Singular values are always sorted in decreasing order.

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 138 of file SVDBase.h.


Member Data Documentation

template<typename _MatrixType>
Index Eigen::SVDBase< _MatrixType >::m_cols [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 175 of file SVDBase.h.

template<typename _MatrixType>
unsigned int Eigen::SVDBase< _MatrixType >::m_computationOptions [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 174 of file SVDBase.h.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::m_computeFullU [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 172 of file SVDBase.h.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::m_computeFullV [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 173 of file SVDBase.h.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::m_computeThinU [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 172 of file SVDBase.h.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::m_computeThinV [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 173 of file SVDBase.h.

template<typename _MatrixType>
Index Eigen::SVDBase< _MatrixType >::m_diagSize [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 175 of file SVDBase.h.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::m_isAllocated [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 171 of file SVDBase.h.

template<typename _MatrixType>
bool Eigen::SVDBase< _MatrixType >::m_isInitialized [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 171 of file SVDBase.h.

template<typename _MatrixType>
MatrixUType Eigen::SVDBase< _MatrixType >::m_matrixU [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 168 of file SVDBase.h.

template<typename _MatrixType>
MatrixVType Eigen::SVDBase< _MatrixType >::m_matrixV [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 169 of file SVDBase.h.

template<typename _MatrixType>
Index Eigen::SVDBase< _MatrixType >::m_nonzeroSingularValues [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 175 of file SVDBase.h.

template<typename _MatrixType>
Index Eigen::SVDBase< _MatrixType >::m_rows [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 175 of file SVDBase.h.

template<typename _MatrixType>
SingularValuesType Eigen::SVDBase< _MatrixType >::m_singularValues [protected]

Reimplemented in Eigen::JacobiSVD< _MatrixType, QRPreconditioner >.

Definition at line 170 of file SVDBase.h.


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


shape_reconstruction
Author(s): Roberto Martín-Martín
autogenerated on Sat Jun 8 2019 18:40:33