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, LWORK > VectorTypeWorkspace
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 MatrixTypePInverse & PInverse (void) const
const VectorTypeS & S (void) const
const MatrixTypeU & U (void) const
const MatrixTypeVt & Vt (void) const
const MatrixTypeP & P (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: