25#ifndef _nmrNNLSSolver_h
26#define _nmrNNLSSolver_h
72 CISSTNETLIB_INTEGER
M;
73 CISSTNETLIB_INTEGER
N;
74 CISSTNETLIB_INTEGER
Mda;
125 inline void Allocate(CISSTNETLIB_INTEGER m, CISSTNETLIB_INTEGER n) {
161 if ((
M !=
static_cast<CISSTNETLIB_INTEGER
>(C.rows()))
162 || (
N !=
static_cast<CISSTNETLIB_INTEGER
>(C.cols()))) {
163 cmnThrow(std::runtime_error(
"nmrNNLSSolver Solve: Sizes used for Allocate were different"));
167 if (C.rows() != d.rows()) {
168 cmnThrow(std::runtime_error(
"nmrNNLSSolver Solve: Sizes of parameters are incompatible"));
174 cmnThrow(std::runtime_error(
"nmrNNLSSolver Solve: All parameters must be Fortran compatible"));
177#if defined(CISSTNETLIB_VERSION_MAJOR)
178#if (CISSTNETLIB_VERSION_MAJOR >= 3)
179 cisstNetlib_nnls_(C.Pointer(), &
Mda, &
M, &
N, d.Pointer(),
X.Pointer(), &
RNorm,
183 nnls_(C.Pointer(), &
Mda, &
M, &
N, d.Pointer(),
X.Pointer(), &
RNorm,
CISSTNETLIB_INTEGER Mda
Definition nmrNNLSSolver.h:74
CISSTNETLIB_INTEGER M
Definition nmrNNLSSolver.h:72
nmrNNLSSolver(vctDynamicMatrix< CISSTNETLIB_DOUBLE > &C, vctDynamicMatrix< CISSTNETLIB_DOUBLE > &d)
Definition nmrNNLSSolver.h:113
CISSTNETLIB_INTEGER N
Definition nmrNNLSSolver.h:73
const vctDynamicMatrix< CISSTNETLIB_DOUBLE > & GetX(void) const
Definition nmrNNLSSolver.h:192
void Solve(vctDynamicMatrix< CISSTNETLIB_DOUBLE > &C, vctDynamicMatrix< CISSTNETLIB_DOUBLE > d) CISST_THROW(std
Definition nmrNNLSSolver.h:157
void Allocate(CISSTNETLIB_INTEGER m, CISSTNETLIB_INTEGER n)
Definition nmrNNLSSolver.h:125
CISSTNETLIB_DOUBLE RNorm
Definition nmrNNLSSolver.h:76
CISSTNETLIB_DOUBLE GetRNorm(void) const
Definition nmrNNLSSolver.h:204
CISSTNETLIB_INTEGER Mode
Definition nmrNNLSSolver.h:75
vctDynamicMatrix< CISSTNETLIB_INTEGER > Index
Definition nmrNNLSSolver.h:80
nmrNNLSSolver(CISSTNETLIB_INTEGER m, CISSTNETLIB_INTEGER n)
Definition nmrNNLSSolver.h:103
void Allocate(vctDynamicMatrix< CISSTNETLIB_DOUBLE > &C, vctDynamicMatrix< CISSTNETLIB_DOUBLE > &CMN_UNUSED(d))
Definition nmrNNLSSolver.h:140
vctDynamicMatrix< CISSTNETLIB_DOUBLE > W
Definition nmrNNLSSolver.h:78
const vctDynamicMatrix< CISSTNETLIB_DOUBLE > & GetDual(void) const
Definition nmrNNLSSolver.h:198
vctDynamicMatrix< CISSTNETLIB_DOUBLE > Zz
Definition nmrNNLSSolver.h:79
nmrNNLSSolver(void)
Definition nmrNNLSSolver.h:87
vctDynamicMatrix< CISSTNETLIB_DOUBLE > X
Definition nmrNNLSSolver.h:77
Definition vctForwardDeclarations.h:157
#define CMN_UNUSED(argument)
Definition cmnPortability.h:497
#define CISST_THROW(exceptionParameter)
Somewhat portable compilation warning message. This works with very recent versions of gcc (4....
Definition cmnPortability.h:559
void cmnThrow(const _exceptionType &except, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_ERROR)
Definition cmnThrow.h:76
Declaration of vctDynamicMatrix.
const bool VCT_COL_MAJOR
Definition vctForwardDeclarations.h:44