NNLSMatrixSolver.h

Classes

NNLSMatrixSolver -- NNLSMatrixSolver.h: the base class for NNLS solvers of linear equations AX=B (full description)

class NNLSMatrixSolver : public MatrixSolver

Interface

Public Members
NNLSMatrixSolver()
NNLSMatrixSolver(const NNLSMatrixSolver & other)
NNLSMatrixSolver(const Matrix<FType> & A, const Vector<FType> & B)
~NNLSMatrixSolver()
Bool solve()

Description

Review Status

Date Reviewed:
",

Prerequisite

Etymology

NNLS stands for Projection Onto Convex Sets. The idea is very simple: to find a solution to AX=B simply take the residual vector B-AX and operate on it to keep only the bits that obey some constraint e.g. positivity. Add this part to the current estimate of the solution vector and iterate. Both CLEAN and Gerchberg-Saxon are NNLS algorithms. If the projection Operators are convex then the process is guaranteed to converge (Youla, 1970).

Synopsis

NNLSMatrixSolver is a complete class. To use it, simply add Operators
  1. I do not know how to do this yet but it should look something like NNLSMatrixSolver NNLS(amatrix, bvector);NNLS.addOperator(foo);

To Do

Member Description

NNLSMatrixSolver()

Default Constructor

NNLSMatrixSolver(const NNLSMatrixSolver & other)

Copy Constructor

NNLSMatrixSolver(const Matrix<FType> & A, const Vector<FType> & B)

Create a NNLSMatrixSolver from a matrix A and a Vector B

Warning A and B are accessed by reference, so don't modify them during the lifetime of the NNLSMatrixSolver

~NNLSMatrixSolver()

Destructor

Bool solve()

Solve for the X vector.