void takeOneStep( casacore::Float loopgain, casacore::Int cycleNiter, casacore::Float cycleThreshold, casacore::Float &peakresidual, casacore::Float &modelflux, casacore::Int &iterdone );
#ifndef SYNTHESIS_SDALGORITHMMSMFS_H
#define SYNTHESIS_SDALGORITHMMSMFS_H
#include <ms/MeasurementSets/MeasurementSet.h>
#include <synthesis/MeasurementComponents/SkyModel.h>
#include <casa/Arrays/Matrix.h>
#include <images/Images/ImageInterface.h>
#include <images/Images/PagedImage.h>
#include <images/Images/TempImage.h>
#include <casa/Logging/LogMessage.h>
#include <casa/Logging/LogSink.h>
#include <casa/System/PGPlotter.h>
#include<synthesis/ImagerObjects/SDAlgorithmBase.h>
#include <synthesis/MeasurementEquations/MultiTermMatrixCleaner.h>
class SIMinorCycleController;
class SDAlgorithmMSMFS : public SDAlgorithmBase
SDAlgorithmMSMFS(casacore::uInt nTaylorTerms, casacore::Vector<casacore::Float> scalesizes, casacore::Float smallscalebias);
virtual ~SDAlgorithmMSMFS();
void restore( std::shared_ptr<SIImageStore> imagestore );
virtual casacore::Long estimateRAM(const std::vector<int>& imsize);