cisst-saw
Loading...
Searching...
No Matches
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_MNVectorTypeS
typedef vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _rows, _cols, _storageOrder > MatrixTypeS
typedef vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _cols, _cols, _storageOrder > MatrixTypeVt
typedef vctFixedSizeVector< CISSTNETLIB_DOUBLE, LWORKVectorTypeWorkspace

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

◆ MatrixTypeA

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

◆ MatrixTypeS

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

◆ MatrixTypeU

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

◆ MatrixTypeVt

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

◆ size_type

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

◆ VectorTypeS

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

◆ VectorTypeWorkspace

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

◆ anonymous enum

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
LWORK_2 

◆ anonymous enum

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
LWORK_1 

◆ anonymous enum

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
MIN_MN 

◆ anonymous enum

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator
LWORK 

◆ anonymous enum

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator

◆ anonymous enum

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
anonymous enum
Enumerator

Constructor & Destructor Documentation

◆ nmrSVDFixedSizeData()

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

◆ S()

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.

◆ U()

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.

◆ UpdateMatrixS()

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder = VCT_ROW_MAJOR>
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).

◆ Vt()

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.

◆ Friend

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

Member Data Documentation

◆ SMember

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.

◆ UMember

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.

◆ VtMember

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.

◆ WorkspaceMember

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: