cisst-saw
Loading...
Searching...
No Matches
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, LWORKTypeWork
typedef vctFixedSizeVector< CISSTNETLIB_INTEGER, LIWORKTypeIWork
typedef vctFixedSizeVector< CISSTNETLIB_DOUBLE, _n > TypeX
typedef vctFixedSizeVector< CISSTNETLIB_DOUBLE, _ma+_me > TypeRNorm
typedef vctFixedSizeMatrix< CISSTNETLIB_DOUBLE, _ma+_me+_mg, _n+1, VCT_COL_MAJORTypeInput

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

◆ TypeA

typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, _ma, _n, 1, _ma> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeA

◆ Typeb

typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, _ma, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typeb

◆ TypeE

typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, _n, 1, (_me==0)?1:_me> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeE

◆ Typef

typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typef

◆ TypeG

typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, (_mg==0)?1:_mg, _n, 1, (_mg==0)?1:_mg> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeG

◆ Typeh

typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_mg==0)?1:_mg, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typeh

◆ TypeInput

typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _ma + _me + _mg, _n + 1, VCT_COL_MAJOR> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeInput

◆ TypeIWork

typedef vctFixedSizeVector<CISSTNETLIB_INTEGER, LIWORK> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeIWork

◆ TypeRNorm

typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, _ma + _me> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNorm

◆ TypeRNormE

typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNormE

◆ TypeRNormL

typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, _ma, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNormL

◆ TypeWork

typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, LWORK> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeWork

◆ TypeX

typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, _n> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeX

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
LWORK_LS 

◆ anonymous enum

anonymous enum
Enumerator
MIN_MN 

◆ anonymous enum

anonymous enum
Enumerator
LIWORK 

◆ anonymous enum

anonymous enum
Enumerator
LWORK_TMP 

◆ anonymous enum

anonymous enum
Enumerator
LWORK_LSI 

◆ anonymous enum

anonymous enum
Enumerator

◆ anonymous enum

anonymous enum
Enumerator
LWORK 

◆ anonymous enum

anonymous enum
Enumerator
LWORK_LSEI 

Constructor & Destructor Documentation

◆ nmrLSqLinSolutionFixedSize()

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

Member Function Documentation

◆ GetRNorm()

const TypeRNormL & nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::GetRNorm ( void ) const
inline

◆ GetRNormE()

const TypeRNormE & nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::GetRNormE ( void ) const
inline

◆ GetX()

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.

◆ Friend

friend class Friend
friend

Member Data Documentation

◆ InputMemory

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.

◆ IWorkspaceMemory

TypeIWork nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::IWorkspaceMemory
protected

◆ RNorm

TypeRNorm nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::RNorm
protected

Memory allocated for norms if needed.

◆ RNormE

TypeRNormE nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::RNormE
protected

◆ RNormL

TypeRNormL nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::RNormL
protected

◆ WorkspaceMemory

TypeWork nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::WorkspaceMemory
protected

Memory allocated for Workspace matrices if needed

◆ X

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: