ProteoWizard
Public Member Functions | Private Attributes | List of all members
pwiz::analysis::NNLSSolver Class Reference

Implementation of the DemuxSolver interface as a non-negative least squares (NNLS) problem. More...

#include <DemuxSolver.hpp>

Inheritance diagram for pwiz::analysis::NNLSSolver:
pwiz::analysis::DemuxSolver

Public Member Functions

 NNLSSolver (int numIters=50, double eps=1e-10)
 Constructor for non-negative least squares solver. More...
 
void Solve (const MatrixPtr &masks, const MatrixPtr &signal, MatrixPtr &solution) override
 Implementation of DemuxSolver interface. More...
 
- Public Member Functions inherited from pwiz::analysis::DemuxSolver
virtual ~DemuxSolver ()
 

Private Attributes

int numIters_
 maximum number of iterations allowed for convergence More...
 
double eps_
 tolerance for convergence More...
 

Additional Inherited Members

- Public Types inherited from pwiz::analysis::DemuxSolver
typedef boost::shared_ptr< DemuxSolverptr
 Shared pointer definition. More...
 
typedef boost::shared_ptr< const DemuxSolverconst_ptr
 Constant shared pointer definition. More...
 

Detailed Description

Implementation of the DemuxSolver interface as a non-negative least squares (NNLS) problem.

That is, the least squares is problem is constrained such that the solution is not negative, or

\[ \min \left\Vert Ax-b\right\Vert_2^2\quad s.t.\, x\ge 0 \]

Definition at line 55 of file DemuxSolver.hpp.

Constructor & Destructor Documentation

◆ NNLSSolver()

pwiz::analysis::NNLSSolver::NNLSSolver ( int  numIters = 50,
double  eps = 1e-10 
)
inline

Constructor for non-negative least squares solver.

Parameters
[in]numItersThe maximum number of iterations allowed for convergence
[in]epsEpsilon value for convergence criterion of NNLS solver

Definition at line 62 of file DemuxSolver.hpp.

62 : numIters_(numIters), eps_(eps) {}
double eps_
tolerance for convergence
Definition: DemuxSolver.hpp:71
int numIters_
maximum number of iterations allowed for convergence
Definition: DemuxSolver.hpp:69

Member Function Documentation

◆ Solve()

void pwiz::analysis::NNLSSolver::Solve ( const MatrixPtr masks,
const MatrixPtr signal,
MatrixPtr solution 
)
overridevirtual

Implementation of DemuxSolver interface.

Implements pwiz::analysis::DemuxSolver.

Referenced by DemuxSolverTest::TestNNLSGivenSolution().

Member Data Documentation

◆ numIters_

int pwiz::analysis::NNLSSolver::numIters_
private

maximum number of iterations allowed for convergence

Definition at line 69 of file DemuxSolver.hpp.

◆ eps_

double pwiz::analysis::NNLSSolver::eps_
private

tolerance for convergence

Definition at line 71 of file DemuxSolver.hpp.


The documentation for this class was generated from the following file: