cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n > Class Template Reference

#include <nmrLSqLin.h>

Classes

class  Friend
 

Public Types

enum  { MIN_MN = (_ma<_n) ? _ma : _n }
 
enum  { K = (_ma + _mg > _n)?(_ma + _mg) : _n }
 
enum  { LWORK_LS = 2*((vct::size_type)MIN_MN) }
 
enum  { LWORK_LSI = _n + (_mg + 2)*(_n + 7) + (vct::size_type)K }
 
enum  { LWORK_LSEI = 2*(_me + _n) + (_mg + 2)*(_n + 7) + (vct::size_type)K }
 
enum  { LWORK_TMP = ((vct::size_type)LWORK_LS > (vct::size_type)LWORK_LSI) ? (vct::size_type)LWORK_LS : (vct::size_type)LWORK_LSI }
 
enum  { LWORK = ((vct::size_type)LWORK_LSEI > (vct::size_type)LWORK_TMP) ? (vct::size_type)LWORK_LSEI : (vct::size_type)LWORK_TMP }
 
enum  { LIWORK = _mg + 2*_n + 2 }
 
typedef vctFixedSizeMatrixRef
< CISSTNETLIB_DOUBLE, _ma, _n,
1, _ma > 
TypeA
 
typedef vctFixedSizeMatrixRef
< CISSTNETLIB_DOUBLE,(_me==0)?1:_me,
_n, 1,(_me==0)?1:_me > 
TypeE
 
typedef vctFixedSizeMatrixRef
< CISSTNETLIB_DOUBLE,(_mg==0)?1:_mg,
_n, 1,(_mg==0)?1:_mg > 
TypeG
 
typedef vctFixedSizeVectorRef
< CISSTNETLIB_DOUBLE, _ma, 1 > 
Typeb
 
typedef vctFixedSizeVectorRef
< CISSTNETLIB_DOUBLE,(_me==0)?1:_me, 1 > 
Typef
 
typedef vctFixedSizeVectorRef
< CISSTNETLIB_DOUBLE,(_mg==0)?1:_mg, 1 > 
Typeh
 
typedef vctFixedSizeVectorRef
< CISSTNETLIB_DOUBLE,(_me==0)?1:_me, 1 > 
TypeRNormE
 
typedef vctFixedSizeVectorRef
< CISSTNETLIB_DOUBLE, _ma, 1 > 
TypeRNormL
 
typedef vctFixedSizeVector
< CISSTNETLIB_DOUBLE, LWORK
TypeWork
 
typedef vctFixedSizeVector
< CISSTNETLIB_INTEGER, LIWORK
TypeIWork
 
typedef vctFixedSizeVector
< CISSTNETLIB_DOUBLE, _n > 
TypeX
 
typedef vctFixedSizeVector
< CISSTNETLIB_DOUBLE, _ma+_me > 
TypeRNorm
 
typedef vctFixedSizeMatrix
< CISSTNETLIB_DOUBLE, _ma+_me+_mg,
_n+1, VCT_COL_MAJOR
TypeInput
 

Public Member Functions

 nmrLSqLinSolutionFixedSize ()
 
const TypeXGetX (void) const
 
const TypeRNormLGetRNorm (void) const
 
const TypeRNormEGetRNormE (void) const
 

Protected Attributes

TypeWork WorkspaceMemory
 
TypeIWork IWorkspaceMemory
 
TypeRNorm RNorm
 
TypeInput InputMemory
 
TypeX X
 
TypeRNormL RNormL
 
TypeRNormE RNormE
 

Friends

class Friend
 

Detailed Description

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
class nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >

This provides the solution class for fixed size matrices and provides an easy to use template. That is nmrSVDSolutionFixedSize<4, 3, VCT_COL_MAJOR> vs. nmrSVDSolutionBase<vctFixedSizeMatrix<4, 3, VCT_COL_MAJOR> No extra work of allocation etc is required for fixed size.

Member Typedef Documentation

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, _ma, _n, 1, _ma> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeA
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, _ma, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typeb
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, _n, 1, (_me==0)?1:_me> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeE
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typef
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, (_mg==0)?1:_mg, _n, 1, (_mg==0)?1:_mg> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeG
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_mg==0)?1:_mg, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typeh
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _ma + _me + _mg, _n + 1, VCT_COL_MAJOR> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeInput
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVector<CISSTNETLIB_INTEGER, LIWORK> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeIWork
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, _ma + _me> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNorm
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNormE
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, _ma, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNormL
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, LWORK> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeWork
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, _n> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeX

Member Enumeration Documentation

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
MIN_MN 
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
K 
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
LWORK_LS 
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
LWORK_LSI 
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
LWORK_LSEI 
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
LWORK_TMP 
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
LWORK 
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
anonymous enum
Enumerator
LIWORK 

Constructor & Destructor Documentation

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::nmrLSqLinSolutionFixedSize ( )
inline

Member Function Documentation

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
const TypeRNormL& nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::GetRNorm ( void  ) const
inline
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
const TypeRNormE& nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::GetRNormE ( void  ) const
inline
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
const TypeX& nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::GetX ( void  ) const
inline

In order to get access to X, after it has been computed by calling the nmrLSqLin function, use the following methods.

Friends And Related Function Documentation

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
friend class Friend
friend

Member Data Documentation

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
TypeInput nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::InputMemory
protected

Memory allocated for input if needed The LSEI (constrained least squares) requires that the input matrices be in one continuous memory block ordered according to fortran order (Column Major format), such that first Mc rows and N columns represent A, Ma rows and N+1 th column represent b, next Me rows represent (E, f) and last Mg rows represent (G, h) where the original LSEI problem is arg min || A x - b ||, s.t. E x = f and G x >= h. The input for LSI is similar other than Me == 0.

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
TypeIWork nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::IWorkspaceMemory
protected
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
TypeRNorm nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::RNorm
protected

Memory allocated for norms if needed.

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
TypeRNormE nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::RNormE
protected
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
TypeRNormL nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::RNormL
protected
template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
TypeWork nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::WorkspaceMemory
protected

Memory allocated for Workspace matrices if needed

template<vct::size_type _ma, vct::size_type _me, vct::size_type _mg, vct::size_type _n>
TypeX nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::X
protected

References to work or return or input types, these point either to user allocated memory or our memory chunks if needed


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