casacore
|
#include <MatrixSolver.h>
Public Member Functions | |
MatrixSolver () | |
Default Constructor. | |
MatrixSolver (const MatrixSolver &other) | |
Copy Constructor. | |
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 | |
virtual | ~MatrixSolver () |
Virtual destructor: calls all derived class destructors. | |
MatrixSolver & | operator= (const MatrixSolver &other) |
Assignment operator: uses reference semantics, i.e., it references the internal arrays of other. | |
void | setAB (const Matrix< FType > &A, const Vector< FType > &B) |
Set A matrix and B vector. | |
void | setX (const Vector< FType > &X) |
Set initial value of X. | |
virtual Bool | solve () |
Solve for the X vector. | |
Bool | accurateSolution () |
Is the current solution good enough? | |
const Vector< FType > & | getResidual () |
Return residual vector B-AX. | |
const Vector< FType > & | getSolution () |
Return solution vector. | |
void | setTolerance (FType tol) |
Set the tolerance for solution. | |
FType | Tolerance () |
Return the tolerance for solution. | |
void | setMaxIters (uInt maxiters) |
Set the maximum number of iterations. | |
uInt | MaxIters () |
Return the maximum number of iterations. | |
void | setGain (FType g) |
Set the gain for solution. | |
FType | Gain () |
Return the gain for solution. | |
void | setSolved (Bool s) |
Set status of solution. | |
Bool | Solved () |
Return status of solution. | |
FType | getNorm () |
Return norm of solution i.e. | |
Protected Member Functions | |
virtual LogSink & | logSink () |
Protected Attributes | |
LogSink | logSink_p |
Matrix< FType > | AMatrix |
the A matrix data member | |
Vector< FType > | BVector |
the constraint vector data member | |
Vector< FType > | RVector |
The residual vector data member. | |
Vector< FType > | XVector |
The solution vector data member. | |
FType | RNorm |
The solution norm i.e. | |
FType | BNorm |
The data norm i.e. | |
Private Attributes | |
FType | SolTolerance |
Tolerance for solution i.e. | |
uInt | MaxIterations |
Maximum number of iterations. | |
Bool | solved |
Has a solution been found? | |
FType | gain |
Gain. | |
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 80 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 209 of file MatrixSolver.h.
References RNorm.
|
inlineprotectedvirtual |
Definition at line 149 of file MatrixSolver.h.
References logSink_p.
|
inline |
Return the maximum number of iterations.
Definition at line 194 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 191 of file MatrixSolver.h.
References MaxIterations.
|
inline |
|
inline |
Set the tolerance for solution.
Definition at line 185 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 188 of file MatrixSolver.h.
References SolTolerance.
the A matrix data member
Definition at line 152 of file MatrixSolver.h.
|
protected |
the constraint vector data member
Definition at line 155 of file MatrixSolver.h.
|
private |
|
protected |
Definition at line 148 of file MatrixSolver.h.
Referenced by logSink().
|
private |
Maximum number of iterations.
Definition at line 175 of file MatrixSolver.h.
Referenced by MaxIters(), and setMaxIters().
|
protected |
The solution norm i.e.
||B-AX||
Definition at line 164 of file MatrixSolver.h.
Referenced by getNorm().
The residual vector data member.
Definition at line 158 of file MatrixSolver.h.
|
private |
Tolerance for solution i.e.
||B-AX||/||B|| must be less than this
Definition at line 172 of file MatrixSolver.h.
Referenced by setTolerance(), and Tolerance().
|
private |
Has a solution been found?
Definition at line 178 of file MatrixSolver.h.
Referenced by setSolved(), and Solved().
The solution vector data member.
Definition at line 161 of file MatrixSolver.h.