#ifndef SYNTHESIS_MULTITHREADEDVISIBILITYRESAMPLER_H
#define SYNTHESIS_MULTITHREADEDVISIBILITYRESAMPLER_H
#include <synthesis/TransformMachines/VisibilityResamplerBase.h>
#include <synthesis/MeasurementComponents/ResamplerWorklet.h>
#include <synthesis/TransformMachines/CFStore.h>
#include <synthesis/TransformMachines/VBStore.h>
#include <synthesis/MeasurementComponents/MThWorkIDEnum.h>
#include <msvis/MSVis/UtilJ.h>
#include <msvis/MSVis/VisBuffer.h>
#include <casa/Arrays/Array.h>
#include <casa/Arrays/Vector.h>
#include <casa/Logging/LogIO.h>
#include <casa/Logging/LogSink.h>
#include <casa/Logging/LogMessage.h>
#define DEFAULTNOOFCORES -1
#define FTMachineNumThreadsEnvVar "ftmachine_num_threads"
class MultiThreadedVisibilityResampler: public VisibilityResamplerBase
MultiThreadedVisibilityResampler():
resamplers_p(), doubleGriddedData_p(), singleGriddedData_p(),
sumwt_p(), gridderWorklets_p(), vbsVec_p(), visResamplerCtor_p(),
whoLoadedVB_p(MThWorkID::NOONE), currentVBS_p(0)
nelements_p = SynthesisUtils::getenv(FTMachineNumThreadsEnvVar, 1);
if (nelements_p < 0) nelements_p = 1;
MultiThreadedVisibilityResampler(const casacore::Bool& doublePrecision,
const casacore::Int& n=DEFAULTNOOFCORES);