cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
nmrSVDFixedSizeData< _rows, _cols, _storageOrder > Class Template Reference

Data of SVD problem (Fixed size). More...

#include <nmrSVD.h>

Classes

class  Friend
 

Public Types

enum  { M = (_storageOrder == VCT_COL_MAJOR) ? _rows : _cols }
 
enum  { N = (_storageOrder == VCT_COL_MAJOR) ? _cols : _rows }
 
enum  { MIN_MN }
 
enum  { LWORK_1 }
 
enum  { LWORK_2 = 5 * MIN_MN }
 
enum  { LWORK }
 
typedef vct::size_type size_type
 
typedef vctFixedSizeMatrix
< CISSTNETLIB_DOUBLE, _rows,
_cols, _storageOrder > 
MatrixTypeA
 
typedef vctFixedSizeMatrix
< CISSTNETLIB_DOUBLE, _rows,
_rows, _storageOrder > 
MatrixTypeU
 
typedef vctFixedSizeVector
< CISSTNETLIB_DOUBLE, MIN_MN
VectorTypeS
 
typedef vctFixedSizeMatrix
< CISSTNETLIB_DOUBLE, _rows,
_cols, _storageOrder > 
MatrixTypeS
 
typedef vctFixedSizeMatrix
< CISSTNETLIB_DOUBLE, _cols,
_cols, _storageOrder > 
MatrixTypeVt
 
typedef vctFixedSizeVector
< CISSTNETLIB_DOUBLE, LWORK
VectorTypeWorkspace
 

Public Member Functions

 nmrSVDFixedSizeData ()
 
const VectorTypeSS (void) const
 
const MatrixTypeUU (void) const
 
const MatrixTypeVtVt (void) const
 

Static Public Member Functions

static MatrixTypeSUpdateMatrixS (const VectorTypeS &vectorS, MatrixTypeS &matrixS)
 

Protected Attributes

MatrixTypeU UMember
 
MatrixTypeVt VtMember
 
VectorTypeS SMember
 
VectorTypeWorkspace WorkspaceMember
 

Friends

class Friend
 

Detailed Description

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
class nmrSVDFixedSizeData< _rows, _cols, _storageOrder >

Data of SVD problem (Fixed size).

This class is similar to nmrSVDDynamicData except that it is dedicated to fixed size containers. While nmrSVDDynamicData is designed to be modified dynamically, nmrSVDFixedSizeData is fully defined at compilation time using template parameters. The required parameters are the dimension of the input matrix and its storage order:

Note
An object of type nmrSVDFixedSizeData contains the memory required for the output and the workspace, i.e. its actual size will be equal to the memory required to store the matrices U and Vt as the vectors S and workspace.
There is no dynamic memory allocation (no new) and the memory can not be used by reference. To use memory by reference, one must use nmrSVDDynamicData with vctDynamicMatrixRef and vctDynamicVectorRef (these dynamic references can actually be used to overlay a fixed size container).

Member Typedef Documentation

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _rows, _cols, _storageOrder> nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeA

Type of the input matrix A (size and storage order computed from the data template parameters).

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _rows, _cols, _storageOrder> nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeS

Type of matrix to be filled from vector S (size and storage order computed from the data template parameters).

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _rows, _rows, _storageOrder> nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeU

Type of the output matrix U (size and storage order computed from the data template parameters).

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _cols, _cols, _storageOrder> nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeVt

Type of the output matrix Vt (size and storage order computed from the data template parameters).

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
typedef vct::size_type nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::size_type
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, MIN_MN> nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::VectorTypeS

Type of the output vector S (size and storage order computed from the data template parameters).

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, LWORK> nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::VectorTypeWorkspace

Type of the workspace vector (size and storage order computed from the data template parameters).

Member Enumeration Documentation

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
M 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
N 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
MIN_MN 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
LWORK_1 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
LWORK_2 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
LWORK 

Constructor & Destructor Documentation

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::nmrSVDFixedSizeData ( )
inline

Default constructor. Does nothing since the allocation is performed on the stack.

Member Function Documentation

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
const VectorTypeS& nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::S ( void  ) const
inline

Const reference to the result vector S. This method must be called after the data has been computed by the nmrSVD function.

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
const MatrixTypeU& nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::U ( void  ) const
inline

Const reference to the result matrix U. This method must be called after the data has been computed by the nmrSVD function.

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
static MatrixTypeS& nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::UpdateMatrixS ( const VectorTypeS vectorS,
MatrixTypeS matrixS 
)
inlinestatic

Fill a matrix from the singular values. Sets all the elements to zero and then replace the diagonal by the singular values (provided by vectorS).

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
const MatrixTypeVt& nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::Vt ( void  ) const
inline

Const reference to the result matrix Vt (V transposed). This method must be called after the data has been computed by the nmrSVD function.

Friends And Related Function Documentation

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
friend class Friend
friend

Member Data Documentation

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
VectorTypeS nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::SMember
protected

Data member used to store the output vector S.

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
MatrixTypeU nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::UMember
protected

Data member used to store the output matrix U.

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
MatrixTypeVt nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::VtMember
protected

Data member used to store the output matrix Vt.

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
VectorTypeWorkspace nmrSVDFixedSizeData< _rows, _cols, _storageOrder >::WorkspaceMember
protected

Data member used to store the workspace vector.


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