casacore
|
MatrixSolver.h: the base class for solvers of linear equations AX=B. More...
#include <MatrixSolver.h>
Public Member Functions | |
MatrixSolver () | |
Default Constructor. More... | |
MatrixSolver (const MatrixSolver &other) | |
Copy Constructor. More... | |
MatrixSolver (const Matrix< FType > &A, const Vector< FType > &B) | |
Create a MatrixSolver from a matrix A and a Vector B Warning: A and B are accessed by reference, so do not modify them during the lifetime of the MatrixSolver More... | |
virtual | ~MatrixSolver () |
Virtual destructor: calls all derived class destructors. More... | |
MatrixSolver & | operator= (const MatrixSolver &other) |
Assignment operator: uses reference semantics, i.e., it references the internal arrays of other. More... | |
void | setAB (const Matrix< FType > &A, const Vector< FType > &B) |
Set A matrix and B vector. More... | |
void | setX (const Vector< FType > &X) |
Set initial value of X. More... | |
virtual Bool | solve () |
Solve for the X vector. More... | |
Bool | accurateSolution () |
Is the current solution good enough? More... | |
const Vector< FType > & | getResidual () |
Return residual vector B-AX. More... | |
const Vector< FType > & | getSolution () |
Return solution vector. More... | |
void | setTolerance (FType tol) |
Set the tolerance for solution. More... | |
FType | Tolerance () |
Return the tolerance for solution. More... | |
void | setMaxIters (uInt maxiters) |
Set the maximum number of iterations. More... | |
uInt | MaxIters () |
Return the maximum number of iterations. More... | |
void | setGain (FType g) |
Set the gain for solution. More... | |
FType | Gain () |
Return the gain for solution. More... | |
void | setSolved (Bool s) |
Set status of solution. More... | |
Bool | Solved () |
Return status of solution. More... | |
FType | getNorm () |
Return norm of solution i.e. More... | |
Protected Member Functions | |
virtual LogSink & | logSink () |
Protected Attributes | |
LogSink | logSink_p |
Matrix< FType > | AMatrix |
the A matrix data member More... | |
Vector< FType > | BVector |
the constraint vector data member More... | |
Vector< FType > | RVector |
The residual vector data member. More... | |
Vector< FType > | XVector |
The solution vector data member. More... | |
FType | RNorm |
The solution norm i.e. More... | |
FType | BNorm |
The data norm i.e. More... | |
Private Attributes | |
FType | SolTolerance |
Tolerance for solution i.e. More... | |
uInt | MaxIterations |
Maximum number of iterations. More... | |
Bool | solved |
Has a solution been found? More... | |
FType | gain |
Gain. More... | |
MatrixSolver.h: the base class for solvers of linear equations AX=B.
Internal
The MatrixSolver class name reflects its use as the base class for solving Linear Equations of the form AX=B. This class is purely virtual and provides the essential implementation for derived solvers classes.
The MatrixSolver class is a purely virtual base class. The programmer needs to define the following functions in a class derived from MatrixSolver:
void setImageAndPsf(const Array<FType> & image, const Array<FType> & psf);
Set the image and the Point Spread Function (beam). Setting this should reset the internal state, e.g. CurrentIter()==0. Bool solve();
Perform solution of AX=B. Returns True if algorithm has converged or stop criterium reached. Definition at line 82 of file MatrixSolver.h.
casacore::MatrixSolver::MatrixSolver | ( | ) |
Default Constructor.
casacore::MatrixSolver::MatrixSolver | ( | const MatrixSolver & | other | ) |
Copy Constructor.
Create a MatrixSolver from a matrix A and a Vector B
Warning: A and B are accessed by reference, so do not modify them during the lifetime of the MatrixSolver
|
virtual |
Virtual destructor: calls all derived class destructors.
Bool casacore::MatrixSolver::accurateSolution | ( | ) |
Is the current solution good enough?
|
inline |
|
inline |
Return norm of solution i.e.
||B-AX||
Definition at line 211 of file MatrixSolver.h.
References RNorm.
|
inlineprotectedvirtual |
Definition at line 151 of file MatrixSolver.h.
References logSink_p.
|
inline |
Return the maximum number of iterations.
Definition at line 196 of file MatrixSolver.h.
References MaxIterations.
MatrixSolver& casacore::MatrixSolver::operator= | ( | const MatrixSolver & | other | ) |
Assignment operator: uses reference semantics, i.e., it references the internal arrays of other.
Set A matrix and B vector.
|
inline |
|
inline |
Set the maximum number of iterations.
Definition at line 193 of file MatrixSolver.h.
References MaxIterations.
|
inline |
|
inline |
Set the tolerance for solution.
Definition at line 187 of file MatrixSolver.h.
References SolTolerance.
|
virtual |
Solve for the X vector.
Reimplemented in casacore::NNLSMatrixSolver.
|
inline |
|
inline |
Return the tolerance for solution.
Definition at line 190 of file MatrixSolver.h.
References SolTolerance.
the A matrix data member
Definition at line 154 of file MatrixSolver.h.
|
protected |
the constraint vector data member
Definition at line 157 of file MatrixSolver.h.
|
private |
|
protected |
Definition at line 150 of file MatrixSolver.h.
Referenced by logSink().
|
private |
Maximum number of iterations.
Definition at line 177 of file MatrixSolver.h.
Referenced by MaxIters(), and setMaxIters().
|
protected |
The solution norm i.e.
||B-AX||
Definition at line 166 of file MatrixSolver.h.
Referenced by getNorm().
The residual vector data member.
Definition at line 160 of file MatrixSolver.h.
|
private |
Tolerance for solution i.e.
||B-AX||/||B|| must be less than this
Definition at line 174 of file MatrixSolver.h.
Referenced by setTolerance(), and Tolerance().
|
private |
Has a solution been found?
Definition at line 180 of file MatrixSolver.h.
Referenced by setSolved(), and Solved().
The solution vector data member.
Definition at line 163 of file MatrixSolver.h.