#include <MultiTermMatrixCleaner.h>
Public Member Functions | |
| MultiTermMatrixCleaner () | |
| Create a cleaner. | |
| ~MultiTermMatrixCleaner () | |
| The copy constructor uses reference semantics MultiTermMatrixCleaner(const MultiTermMatrixCleaner & other);. | |
| Bool | setntaylorterms (const int &nterms) |
| Input : number of Taylor terms Reshapes PtrBlocks to hold the correct number of PSFs and Residual images. | |
| Bool | setscales (const Vector< Float > &scales) |
| Input : scales. | |
| Bool | initialise (Int nx, Int ny) |
| Initialize all the memory being used. | |
| Int | computeHessianPeak () |
| Calculate Hessian elements and check for invertibility Does not have to be called externally, but can be. | |
| Bool | setpsf (int order, Matrix< Float > &psf) |
| Input : psfs and dirty images. | |
| Bool | setresidual (int order, Matrix< Float > &dirty) |
| Input : psfs and dirty images. | |
| Bool | setmodel (int order, Matrix< Float > &model) |
| Input : model images. | |
| Bool | setmask (Matrix< Float > &mask) |
| Input : mask. | |
| Int | mtclean (Int maxniter, Float stopfraction, Float inputgain, Float userthreshold) |
| Run the minor cycle. | |
| Bool | getmodel (int order, Matrix< Float > &model) |
| Output : Model images. | |
| Bool | getresidual (int order, Matrix< Float > &residual) |
| Output : psfs and dirty images. | |
| Bool | computeprincipalsolution () |
| Compute principal solution - in-place on the residual images in vecDirty. | |
| Bool | getinvhessian (Matrix< Double > &invhessian) |
| Output : Hessian matrix. | |
| Float | getpeakresidual () |
| Output : Peak residual computed from matR_p (residual convolved with PSF). | |
Private Member Functions | |
| Int | verifyScaleSizes () |
| Initial setup functions. | |
| Int | allocateMemory () |
| Int | setupScaleFunctions () |
| Int | setupUserMask () |
| Setup per major cycle. | |
| Int | computeFluxLimit (Float &fluxlimit, Float threshold) |
| Int | computeRHS () |
| Int | solveMatrixEqn (Int ntaylor, Int scale, IPosition blc, IPosition trc) |
| Solver functions : minor-cycle iterations. | |
| Int | chooseComponent (Int ntaylor, Int scale, Int criterion, IPosition blc, IPosition trc) |
| Int | updateModelAndRHS (Float loopgain) |
| Int | updateRHS (Int ntaylor, Int scale, Float loopgain, Vector< Float > coeffs, IPosition blc, IPosition trc, IPosition blcPsf, IPosition trcPsf) |
| Int | checkConvergence (Int updatetype, Float &fluxlimit, Float &loopgain) |
| Bool | buildImagePatches () |
| Int | writeMatrixToDisk (String imagename, Matrix< Float > &themat) |
| Helper functions. | |
| Int | IND2 (Int taylor, Int scale) |
| Int | IND4 (Int taylor1, Int taylor2, Int scale1, Int scale2) |
Private Attributes | |
| LogIO | os |
| Int | ntaylor_p |
| using MatrixCleaner::makeScaleMasks; | |
| Int | psfntaylor_p |
| Int | nscales_p |
| Int | nx_p |
| Int | ny_p |
| Int | totalIters_p |
| Float | globalmaxval_p |
| Int | maxscaleindex_p |
| IPosition | globalmaxpos_p |
| Int | itercount_p |
| Int | maxniter_p |
| Float | stopfraction_p |
| Float | inputgain_p |
| Float | userthreshold_p |
| Float | prev_max_p |
| Float | min_max_p |
| Float | rmaxval_p |
| IPosition | psfsupport_p |
| IPosition | psfpeak_p |
| IPosition | blc_p |
| IPosition | trc_p |
| IPosition | blcPsf_p |
| IPosition | trcPsf_p |
| Vector< Float > | scaleSizes_p |
| Vector< Float > | scaleBias_p |
| Vector< Float > | totalScaleFlux_p |
| Vector< Float > | totalTaylorFlux_p |
| Vector< Float > | maxScaleVal_p |
| Vector< IPosition > | maxScalePos_p |
| IPosition | gip |
| Int | nx |
| Int | ny |
| Bool | donePSF_p |
| Bool | donePSP_p |
| Bool | doneCONV_p |
| Matrix< Complex > | dirtyFT_p |
| Block< Matrix< Float > > | vecScaleMasks_p |
| Matrix< Complex > | cWork_p |
| Block< Matrix< Float > > | vecWork_p |
| Block< Matrix< Float > > | vecScales_p |
| h(s) [nx,ny,nscales] | |
| Block< Matrix< Complex > > | vecScalesFT_p |
| Block< Matrix< Complex > > | vecPsfFT_p |
| B_k [nx,ny,ntaylor] Block<Matrix<Float> > vecPsf_p;. | |
| Block< Matrix< Float > > | vecDirty_p |
| I_D : Residual/Dirty Images [nx,ny,ntaylor]. | |
| Block< Matrix< Float > > | vecModel_p |
| I_M : Model Images [nx,ny,ntaylor]. | |
| Block< Matrix< Float > > | cubeA_p |
| Block <Matrix<Float> > vecScaleModel_p;. | |
| Block< Matrix< Float > > | matR_p |
| R_{sk} = I_D * B_{sk} [nx,ny,ntaylor,nscales]. | |
| Block< Matrix< Float > > | matCoeffs_p |
| a_{sk} = Solution vectors. | |
| Double | memoryMB_p |
| Memory to be allocated per Matrix. | |
| Block< Matrix< Double > > | matA_p |
| Solve [A][Coeffs] = [I_D * B] Shape of A : [ntaylor,ntaylor]. | |
| Block< Matrix< Double > > | invMatA_p |
| FFTServer< Float, Complex > | fftcomplex |
| FFTserver. | |
| Bool | adbg |
Definition at line 36 of file MultiTermMatrixCleaner.h.
| casa::MultiTermMatrixCleaner::MultiTermMatrixCleaner | ( | ) |
Create a cleaner.
| casa::MultiTermMatrixCleaner::~MultiTermMatrixCleaner | ( | ) |
The copy constructor uses reference semantics MultiTermMatrixCleaner(const MultiTermMatrixCleaner & other);.
The assignment operator also uses reference semantics MultiTermMatrixCleaner & operator=(const MultiTermMatrixCleaner & other);
The destructor resizes arrays to empty before destruction.
| Int casa::MultiTermMatrixCleaner::allocateMemory | ( | ) | [private] |
| Bool casa::MultiTermMatrixCleaner::buildImagePatches | ( | ) | [private] |
| Int casa::MultiTermMatrixCleaner::checkConvergence | ( | Int | updatetype, | |
| Float & | fluxlimit, | |||
| Float & | loopgain | |||
| ) | [private] |
| Int casa::MultiTermMatrixCleaner::chooseComponent | ( | Int | ntaylor, | |
| Int | scale, | |||
| Int | criterion, | |||
| IPosition | blc, | |||
| IPosition | trc | |||
| ) | [private] |
| Int casa::MultiTermMatrixCleaner::computeFluxLimit | ( | Float & | fluxlimit, | |
| Float | threshold | |||
| ) | [private] |
| Int casa::MultiTermMatrixCleaner::computeHessianPeak | ( | ) |
Calculate Hessian elements and check for invertibility Does not have to be called externally, but can be.
Either way, it executes only once.
| Bool casa::MultiTermMatrixCleaner::computeprincipalsolution | ( | ) |
Compute principal solution - in-place on the residual images in vecDirty.
| Int casa::MultiTermMatrixCleaner::computeRHS | ( | ) | [private] |
| Bool casa::MultiTermMatrixCleaner::getinvhessian | ( | Matrix< Double > & | invhessian | ) |
Output : Hessian matrix.
| Bool casa::MultiTermMatrixCleaner::getmodel | ( | int | order, | |
| Matrix< Float > & | model | |||
| ) |
Output : Model images.
| Float casa::MultiTermMatrixCleaner::getpeakresidual | ( | ) | [inline] |
Output : Peak residual computed from matR_p (residual convolved with PSF).
Definition at line 93 of file MultiTermMatrixCleaner.h.
References rmaxval_p.
| Bool casa::MultiTermMatrixCleaner::getresidual | ( | int | order, | |
| Matrix< Float > & | residual | |||
| ) |
Output : psfs and dirty images.
| Int casa::MultiTermMatrixCleaner::IND2 | ( | Int | taylor, | |
| Int | scale | |||
| ) | [private] |
| Int casa::MultiTermMatrixCleaner::IND4 | ( | Int | taylor1, | |
| Int | taylor2, | |||
| Int | scale1, | |||
| Int | scale2 | |||
| ) | [private] |
| Bool casa::MultiTermMatrixCleaner::initialise | ( | Int | nx, | |
| Int | ny | |||
| ) |
Initialize all the memory being used.
| Int casa::MultiTermMatrixCleaner::mtclean | ( | Int | maxniter, | |
| Float | stopfraction, | |||
| Float | inputgain, | |||
| Float | userthreshold | |||
| ) |
Run the minor cycle.
| Bool casa::MultiTermMatrixCleaner::setmask | ( | Matrix< Float > & | mask | ) |
Input : mask.
| Bool casa::MultiTermMatrixCleaner::setmodel | ( | int | order, | |
| Matrix< Float > & | model | |||
| ) |
Input : model images.
| Bool casa::MultiTermMatrixCleaner::setntaylorterms | ( | const int & | nterms | ) |
Input : number of Taylor terms Reshapes PtrBlocks to hold the correct number of PSFs and Residual images.
| Bool casa::MultiTermMatrixCleaner::setpsf | ( | int | order, | |
| Matrix< Float > & | psf | |||
| ) |
Input : psfs and dirty images.
| Bool casa::MultiTermMatrixCleaner::setresidual | ( | int | order, | |
| Matrix< Float > & | dirty | |||
| ) |
Input : psfs and dirty images.
| Bool casa::MultiTermMatrixCleaner::setscales | ( | const Vector< Float > & | scales | ) |
Input : scales.
Reimplemented from casa::MatrixCleaner.
| Int casa::MultiTermMatrixCleaner::setupScaleFunctions | ( | ) | [private] |
| Int casa::MultiTermMatrixCleaner::setupUserMask | ( | ) | [private] |
Setup per major cycle.
| Int casa::MultiTermMatrixCleaner::solveMatrixEqn | ( | Int | ntaylor, | |
| Int | scale, | |||
| IPosition | blc, | |||
| IPosition | trc | |||
| ) | [private] |
Solver functions : minor-cycle iterations.
Need to be efficient.
| Int casa::MultiTermMatrixCleaner::updateModelAndRHS | ( | Float | loopgain | ) | [private] |
| Int casa::MultiTermMatrixCleaner::updateRHS | ( | Int | ntaylor, | |
| Int | scale, | |||
| Float | loopgain, | |||
| Vector< Float > | coeffs, | |||
| IPosition | blc, | |||
| IPosition | trc, | |||
| IPosition | blcPsf, | |||
| IPosition | trcPsf | |||
| ) | [private] |
| Int casa::MultiTermMatrixCleaner::verifyScaleSizes | ( | ) | [private] |
Initial setup functions.
| Int casa::MultiTermMatrixCleaner::writeMatrixToDisk | ( | String | imagename, | |
| Matrix< Float > & | themat | |||
| ) | [private] |
Helper functions.
Bool casa::MultiTermMatrixCleaner::adbg [private] |
Definition at line 217 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::blc_p [private] |
Definition at line 139 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::blcPsf_p [private] |
Definition at line 139 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::cubeA_p [private] |
Block <Matrix<Float> > vecScaleModel_p;.
A_{smn} = B_{sm} * B{sn} [nx,ny,ntaylor,ntaylor,nscales,nscales] A_{s1s2mn} = B_{s1m} * B{s2n} [nx,ny,ntaylor,ntaylor,nscales,nscales]
Definition at line 175 of file MultiTermMatrixCleaner.h.
Matrix<Complex> casa::MultiTermMatrixCleaner::cWork_p [private] |
Definition at line 155 of file MultiTermMatrixCleaner.h.
Matrix<Complex> casa::MultiTermMatrixCleaner::dirtyFT_p [private] |
Definition at line 152 of file MultiTermMatrixCleaner.h.
Bool casa::MultiTermMatrixCleaner::doneCONV_p [private] |
Definition at line 150 of file MultiTermMatrixCleaner.h.
Bool casa::MultiTermMatrixCleaner::donePSF_p [private] |
Definition at line 150 of file MultiTermMatrixCleaner.h.
Bool casa::MultiTermMatrixCleaner::donePSP_p [private] |
Definition at line 150 of file MultiTermMatrixCleaner.h.
FFTServer<Float,Complex> casa::MultiTermMatrixCleaner::fftcomplex [private] |
FFTserver.
Definition at line 192 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::gip [private] |
Definition at line 148 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::globalmaxpos_p [private] |
Definition at line 127 of file MultiTermMatrixCleaner.h.
Float casa::MultiTermMatrixCleaner::globalmaxval_p [private] |
Definition at line 125 of file MultiTermMatrixCleaner.h.
Float casa::MultiTermMatrixCleaner::inputgain_p [private] |
Definition at line 131 of file MultiTermMatrixCleaner.h.
Block<Matrix<Double> > casa::MultiTermMatrixCleaner::invMatA_p [private] |
Definition at line 189 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::itercount_p [private] |
Definition at line 128 of file MultiTermMatrixCleaner.h.
Block<Matrix<Double> > casa::MultiTermMatrixCleaner::matA_p [private] |
Solve [A][Coeffs] = [I_D * B] Shape of A : [ntaylor,ntaylor].
Definition at line 188 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::matCoeffs_p [private] |
a_{sk} = Solution vectors.
[nx,ny,ntaylor,nscales]
Definition at line 181 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::matR_p [private] |
R_{sk} = I_D * B_{sk} [nx,ny,ntaylor,nscales].
Definition at line 178 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::maxniter_p [private] |
Definition at line 129 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::maxscaleindex_p [private] |
Definition at line 126 of file MultiTermMatrixCleaner.h.
Vector<IPosition> casa::MultiTermMatrixCleaner::maxScalePos_p [private] |
Definition at line 146 of file MultiTermMatrixCleaner.h.
Vector<Float> casa::MultiTermMatrixCleaner::maxScaleVal_p [private] |
Definition at line 145 of file MultiTermMatrixCleaner.h.
Double casa::MultiTermMatrixCleaner::memoryMB_p [private] |
Memory to be allocated per Matrix.
Definition at line 184 of file MultiTermMatrixCleaner.h.
Float casa::MultiTermMatrixCleaner::min_max_p [private] |
Definition at line 134 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::nscales_p [private] |
Definition at line 121 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::ntaylor_p [private] |
using MatrixCleaner::makeScaleMasks;
Definition at line 119 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::nx [private] |
Definition at line 149 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::nx_p [private] |
Definition at line 122 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::ny [private] |
Definition at line 149 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::ny_p [private] |
Definition at line 123 of file MultiTermMatrixCleaner.h.
LogIO casa::MultiTermMatrixCleaner::os [private] |
Definition at line 97 of file MultiTermMatrixCleaner.h.
Float casa::MultiTermMatrixCleaner::prev_max_p [private] |
Definition at line 133 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::psfntaylor_p [private] |
Definition at line 120 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::psfpeak_p [private] |
Definition at line 138 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::psfsupport_p [private] |
Definition at line 137 of file MultiTermMatrixCleaner.h.
Float casa::MultiTermMatrixCleaner::rmaxval_p [private] |
Definition at line 135 of file MultiTermMatrixCleaner.h.
Referenced by getpeakresidual().
Vector<Float> casa::MultiTermMatrixCleaner::scaleBias_p [private] |
Definition at line 142 of file MultiTermMatrixCleaner.h.
Vector<Float> casa::MultiTermMatrixCleaner::scaleSizes_p [private] |
Definition at line 141 of file MultiTermMatrixCleaner.h.
Float casa::MultiTermMatrixCleaner::stopfraction_p [private] |
Definition at line 130 of file MultiTermMatrixCleaner.h.
Int casa::MultiTermMatrixCleaner::totalIters_p [private] |
Definition at line 124 of file MultiTermMatrixCleaner.h.
Vector<Float> casa::MultiTermMatrixCleaner::totalScaleFlux_p [private] |
Definition at line 143 of file MultiTermMatrixCleaner.h.
Vector<Float> casa::MultiTermMatrixCleaner::totalTaylorFlux_p [private] |
Definition at line 144 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::trc_p [private] |
Definition at line 139 of file MultiTermMatrixCleaner.h.
IPosition casa::MultiTermMatrixCleaner::trcPsf_p [private] |
Definition at line 139 of file MultiTermMatrixCleaner.h.
Float casa::MultiTermMatrixCleaner::userthreshold_p [private] |
Definition at line 132 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::vecDirty_p [private] |
I_D : Residual/Dirty Images [nx,ny,ntaylor].
Definition at line 167 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::vecModel_p [private] |
I_M : Model Images [nx,ny,ntaylor].
Definition at line 170 of file MultiTermMatrixCleaner.h.
Block<Matrix<Complex> > casa::MultiTermMatrixCleaner::vecPsfFT_p [private] |
B_k [nx,ny,ntaylor] Block<Matrix<Float> > vecPsf_p;.
Definition at line 164 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::vecScaleMasks_p [private] |
Definition at line 153 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::vecScales_p [private] |
h(s) [nx,ny,nscales]
Definition at line 159 of file MultiTermMatrixCleaner.h.
Block<Matrix<Complex> > casa::MultiTermMatrixCleaner::vecScalesFT_p [private] |
Definition at line 160 of file MultiTermMatrixCleaner.h.
Block<Matrix<Float> > casa::MultiTermMatrixCleaner::vecWork_p [private] |
Definition at line 156 of file MultiTermMatrixCleaner.h.
1.6.1