cisst-saw
Loading...
Searching...
No Matches
nmrPInverseFixedSizeData< _rows, _cols, _storageOrder > Class Template Reference

#include <nmrPInverse.h>

Classes

class  Friend

Public Types

enum  { MIN_MN = (_rows < _cols) ? _rows : _cols }
enum  { LWORK_1 = (3 * MIN_MN + (_rows > _cols)) ? _rows : _cols }
enum  { LWORK_2 = 5 * MIN_MN }
enum  { LWORK_3 }
enum  { LWORK = _rows * _rows + _cols * _cols + static_cast<size_type>(MIN_MN) + static_cast<size_type>(LWORK_3) + _rows * _cols }
typedef vct::size_type size_type
typedef vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _rows, _cols, _storageOrder > MatrixTypeA
typedef vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _cols, _rows, _storageOrder > MatrixTypePInverse
typedef vctFixedSizeVector< CISSTNETLIB_DOUBLE, LWORKVectorTypeWorkspace
typedef vctFixedSizeMatrixRef< CISSTNETLIB_DOUBLE, _rows, _rows, _storageOrder ? _rows :1, _storageOrder ? 1 :_rows > MatrixTypeU
typedef vctFixedSizeMatrixRef< CISSTNETLIB_DOUBLE, _cols, _cols, _storageOrder ? _cols :1, _storageOrder ? 1 :_cols > MatrixTypeVt
typedef vctFixedSizeVectorRef< CISSTNETLIB_DOUBLE, MIN_MN, 1 > VectorTypeS
typedef vctFixedSizeVectorRef< CISSTNETLIB_DOUBLE, LWORK_3, 1 > VectorTypeSVDWorkspace
typedef vctFixedSizeMatrixRef< CISSTNETLIB_DOUBLE, _cols, _rows, _storageOrder? _cols :1, _storageOrder ? 1 :_rows > MatrixTypeP

Public Member Functions

 nmrPInverseFixedSizeData ()
Retrieving results

In order to get access to U, V^t and S, after the have been computed by calling nmrPInverse function, use the following methods.

const MatrixTypePInversePInverse (void) const
const VectorTypeSS (void) const
const MatrixTypeUU (void) const
const MatrixTypeVtVt (void) const
const MatrixTypePP (void) const

Friends

class Friend

Detailed Description

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
class nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >

This provides the data class for fixed size matrices and provides a easy to use template. That is nmrPInverseFixedSizeData<4, 3, VCT_COL_MAJOR> vs. nmrPInverseDataBase<vctFixedSizeMatrix<4, 3, VCT_COL_MAJOR> No extra workspace of allocation etc is required for fixed size.

Member Typedef Documentation

◆ MatrixTypeA

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _rows, _cols, _storageOrder> nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeA

Type of the input matrix

◆ MatrixTypeP

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, _cols, _rows, _storageOrder? _cols : 1, _storageOrder ? 1 : _rows> nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeP

◆ MatrixTypePInverse

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _cols, _rows, _storageOrder> nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypePInverse

Type of the pseudo inverse matrix

◆ MatrixTypeU

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, _rows, _rows, _storageOrder ? _rows : 1, _storageOrder ? 1 : _rows> nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeU

Type used for the U matrix of the SVD

◆ MatrixTypeVt

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, _cols, _cols, _storageOrder ? _cols : 1, _storageOrder ? 1 : _cols> nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::MatrixTypeVt

Type used for the Vt matrix of the SVD

◆ size_type

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vct::size_type nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::size_type

◆ VectorTypeS

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, MIN_MN, 1> nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::VectorTypeS

Type used for the S vector of the SVD

◆ VectorTypeSVDWorkspace

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, LWORK_3, 1> nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::VectorTypeSVDWorkspace

Type used for the workspace of SVD

◆ VectorTypeWorkspace

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

Type used for the workspace

Member Enumeration Documentation

◆ anonymous enum

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

◆ anonymous enum

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

◆ anonymous enum

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

◆ anonymous enum

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

◆ anonymous enum

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

Constructor & Destructor Documentation

◆ nmrPInverseFixedSizeData()

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::nmrPInverseFixedSizeData ( )
inline

Default constructor. This constructor sets all the references used to call the SVD routines using a contiguous block of memory (aka workspace). The memory is stack allocated but the references are computed at runtime.

Member Function Documentation

◆ P()

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
const MatrixTypeP & nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::P ( void ) const
inline

◆ PInverse()

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
const MatrixTypePInverse & nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::PInverse ( void ) const
inline

◆ S()

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

◆ U()

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

◆ Vt()

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

◆ Friend

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

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