cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | List of all members
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

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
 
class Friend
 
 nmrPInverseFixedSizeData ()
 

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

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

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

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

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

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
typedef vct::size_type nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::size_type
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

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

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

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
anonymous enum
Enumerator
MIN_MN 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
anonymous enum
Enumerator
LWORK_1 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
anonymous enum
Enumerator
LWORK_2 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
anonymous enum
Enumerator
LWORK_3 
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
anonymous enum
Enumerator
LWORK 

Constructor & Destructor Documentation

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

template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
const MatrixTypeP& nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::P ( void  ) const
inline
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
const MatrixTypePInverse& nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::PInverse ( void  ) const
inline
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
const VectorTypeS& nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::S ( void  ) const
inline
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
const MatrixTypeU& nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::U ( void  ) const
inline
template<vct::size_type _rows, vct::size_type _cols, bool _storageOrder>
const MatrixTypeVt& nmrPInverseFixedSizeData< _rows, _cols, _storageOrder >::Vt ( void  ) const
inline

Friends And Related Function Documentation

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: