11 template <
class MATTYPE,
class VECTYPE>
24 NNLS(MATTYPE& inputMat, VECTYPE& rhs,
bool prodSent) {
25 this->inputProd = prodSent;
31 this->CtC = inputMat.t() * inputMat;
32 this->Ctb = inputMat.t() * rhs;
33 this->p = inputMat.n_rows;
34 this->q = inputMat.n_cols;
39 INFO <<
"NNLS::Constructor with RHS vector" << endl;
41 this->cleared =
false;
43 NNLS(MATTYPE& inputMat, MATTYPE& RHS,
bool prodSent) {
44 this->inputProd = prodSent;
45 if (this->inputProd) {
52 this->Ctb = RHS.col(0);
58 this->CtC = inputMat.t() * inputMat;
59 this->CtB = inputMat.t() * RHS;
60 this->p = inputMat.n_rows;
61 this->q = inputMat.n_cols;
64 X.resize(this->q, this->r);
67 INFO <<
"NNLS::Constructor with multiple RHS vector" <<
"r=" << r << endl;
69 this->cleared =
false;
93 #endif // NNLS_NNLS_HPP_ MATTYPE getSolutionMatrix()
NNLS(MATTYPE &inputMat, MATTYPE &RHS, bool prodSent)
NNLS(MATTYPE &inputMat, VECTYPE &rhs, bool prodSent)
VECTYPE getSolutionVector()
virtual int solveNNLS()=0