|
cisst-saw
|
#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 TypeX & | GetX (void) const |
| const TypeRNormL & | GetRNorm (void) const |
| const TypeRNormE & | GetRNormE (void) const |
Protected Attributes | |
| TypeWork | WorkspaceMemory |
| TypeIWork | IWorkspaceMemory |
| TypeRNorm | RNorm |
| TypeInput | InputMemory |
| TypeX | X |
| TypeRNormL | RNormL |
| TypeRNormE | RNormE |
Friends | |
| class | Friend |
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.
| typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, _ma, _n, 1, _ma> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeA |
| typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, _ma, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typeb |
| typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, _n, 1, (_me==0)?1:_me> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeE |
| typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typef |
| typedef vctFixedSizeMatrixRef<CISSTNETLIB_DOUBLE, (_mg==0)?1:_mg, _n, 1, (_mg==0)?1:_mg> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeG |
| typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_mg==0)?1:_mg, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::Typeh |
| typedef vctFixedSizeMatrix<CISSTNETLIB_DOUBLE, _ma + _me + _mg, _n + 1, VCT_COL_MAJOR> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeInput |
| typedef vctFixedSizeVector<CISSTNETLIB_INTEGER, LIWORK> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeIWork |
| typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, _ma + _me> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNorm |
| typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, (_me==0)?1:_me, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNormE |
| typedef vctFixedSizeVectorRef<CISSTNETLIB_DOUBLE, _ma, 1> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeRNormL |
| typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, LWORK> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeWork |
| typedef vctFixedSizeVector<CISSTNETLIB_DOUBLE, _n> nmrLSqLinSolutionFixedSize< _ma, _me, _mg, _n >::TypeX |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
|
inline |
|
inline |
|
inline |
|
inline |
In order to get access to X, after it has been computed by calling the nmrLSqLin function, use the following methods.
|
friend |
|
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.
|
protected |
|
protected |
Memory allocated for norms if needed.
|
protected |
|
protected |
|
protected |
Memory allocated for Workspace matrices if needed
|
protected |
References to work or return or input types, these point either to user allocated memory or our memory chunks if needed