const Float gain, const Quantity& threshold, const Int masksupp, const Int memType, const Float numsigma){
#include <synthesis/MeasurementEquations/MatrixNACleaner.h>
#include <synthesis/MeasurementEquations/ImageNACleaner.h>
#include <images/Images/ImageInterface.h>
#include <images/Images/PagedImage.h>
#include <images/Images/TempImage.h>
#include <coordinates/Coordinates/CoordinateSystem.h>
#include <coordinates/Coordinates/CoordinateUtil.h>
using namespace casacore;
ImageNACleaner::ImageNACleaner(): psf_p(nullptr), dirty_p(nullptr), mask_p(nullptr), nPsfChan_p(0),
nImChan_p(0), nPsfPol_p(0), nImPol_p(0), chanAxis_p(-1),
polAxis_p(-1), nMaskChan_p(0), nMaskPol_p(0), maxResidual_p(0.0)
ImageNACleaner::ImageNACleaner(ImageInterface<Float>& psf,
ImageInterface<Float>& dirty): mask_p(nullptr),
nMaskChan_p(0), nMaskPol_p(0),maxResidual_p(0.0){
psf_p=CountedPtr<ImageInterface<Float> >(&psf, false);
dirty_p=CountedPtr<ImageInterface<Float> >(&dirty, false);
chanAxis_p=CoordinateUtil::findSpectralAxis(dirty_p->coordinates());
Vector<Stokes::StokesTypes> whichPols;
polAxis_p=CoordinateUtil::findStokesAxis(whichPols, dirty_p->coordinates());
nPsfChan_p=psf_p->shape()(chanAxis_p);
nImChan_p=dirty_p->shape()(chanAxis_p);
nPsfPol_p=psf_p->shape()(polAxis_p);
nImPol_p=dirty_p->shape()(polAxis_p);
ImageNACleaner::ImageNACleaner(const ImageNACleaner& other){