std::tuple<TcleanProcessingInfo, casacore::Vector<casacore::Int>, casacore::Vector<casacore::Int> > nSubCubeFitInMemory(const casacore::Int fudge_factor, const casacore::IPosition& imshape, const casacore::Float padding=1.0);
#ifndef SYNTHESIS_SYNTHESISIMAGERVI2_H
#define SYNTHESIS_SYNTHESISIMAGERVI2_H
#include <synthesis/ImagerObjects/SynthesisImager.h>
#include <synthesis/TransformMachines2/FTMachine.h>
#include <msvis/MSVis/ViFrequencySelection.h>
#include <msvis/MSVis/VisibilityIterator2.h>
#include <msvis/MSVis/VisBuffer2.h>
template<class T> class ImageInterface;
class SynthesisImagerVi2 : public SynthesisImager
virtual ~SynthesisImagerVi2();
using SynthesisImager::selectData;
virtual casacore::Bool selectData(const SynthesisParamsSelect& selpars);
virtual casacore::Bool defineImage(SynthesisParamsImage& impars, const SynthesisParamsGrid& gridpars);
virtual casacore::Vector<SynthesisParamsSelect> tuneSelectData();
virtual casacore::Bool defineImage(casacore::CountedPtr<SIImageStore> imstor, const casacore::String& ftmachine);
virtual casacore::Bool defineImage(casacore::CountedPtr<SIImageStore> imstor,
const casacore::Record& ftmachine, const casacore::Record& invftmachine);
virtual casacore::Bool defineImage(casacore::CountedPtr<SIImageStore> imstor,
SynthesisParamsImage& impars, const SynthesisParamsGrid& gridpars);
virtual casacore::Bool weight(const casacore::String& type="natural",
const casacore::String& rmode="norm",
const casacore::Quantity& noise=casacore::Quantity(0.0, "Jy"),
const casacore::Double robust=0.0,
const casacore::Quantity& fieldofview=casacore::Quantity(0.0, "arcsec"),
const casacore::Int npixels=0,
const casacore::Bool multiField=false,
const casacore::Bool useCubeBriggs=false,
const casacore::String& filtertype=casacore::String("Gaussian"),
const casacore::Quantity& filterbmaj=casacore::Quantity(0.0,"deg"),
const casacore::Quantity& filterbmin=casacore::Quantity(0.0,"deg"),
const casacore::Quantity& filterbpa=casacore::Quantity(0.0,"deg"),
casacore::Double fracBW=0.0);
virtual casacore::Bool weight(const Record& inrec);
casacore::Bool setWeightDensity(const casacore::String& imagename=casacore::String(""));
virtual void makeSdImage(casacore::Bool dopsf=false);