20#ifndef _DEMUXSOLVER_HPP
21#define _DEMUXSOLVER_HPP
37 typedef boost::shared_ptr<DemuxSolver>
ptr;
40 typedef boost::shared_ptr<const DemuxSolver>
const_ptr;
Interface for solver that can be used for demultiplexing.
boost::shared_ptr< DemuxSolver > ptr
Shared pointer definition.
virtual void Solve(const MatrixPtr &masks, const MatrixPtr &signal, MatrixPtr &solution)=0
Perform the least squares solve.
boost::shared_ptr< const DemuxSolver > const_ptr
Constant shared pointer definition.
Implementation of the DemuxSolver interface as a non-negative least squares (NNLS) problem.
NNLSSolver(int numIters=50, double eps=1e-10)
Constructor for non-negative least squares solver.
int numIters_
maximum number of iterations allowed for convergence
void Solve(const MatrixPtr &masks, const MatrixPtr &signal, MatrixPtr &solution) override
Implementation of DemuxSolver interface.
double eps_
tolerance for convergence
boost::shared_ptr< MatrixType > MatrixPtr