casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
casa::AWVisResampler Class Reference

#include <AWVisResampler.h>

Inheritance diagram for casa::AWVisResampler:
casa::VisibilityResampler casa::VisibilityResamplerBase

Public Member Functions

 AWVisResampler ()
 
virtual ~AWVisResampler ()
 AWVisResampler(const CFStore& cfs): VisibilityResampler(cfs) {}. More...
 
virtual VisibilityResamplerBaseclone ()
 
virtual void copyMaps (const AWVisResampler &other)
 AWVisResampler(const AWVisResampler& other): VisibilityResampler(other),cfMap_p(), conjCFMap_p() {copy(other);}. More...
 
virtual void copy (const VisibilityResamplerBase &other)
 VisibilityResampler& operator=(const VisibilityResampler& other);. More...
 
virtual void copy (const AWVisResampler &other)
 
AWVisResampleroperator= (const AWVisResampler &other)
 
virtual void setCFMaps (const casacore::Vector< casacore::Int > &cfMap, const casacore::Vector< casacore::Int > &conjCFMap)
 
virtual void DataToGrid (casacore::Array< casacore::DComplex > &griddedData, VBStore &vbs, casacore::Matrix< casacore::Double > &sumwt, const casacore::Bool &dopsf, casacore::Bool useConjFreqCF=false)
 virtual void setConvFunc(const CFStore& cfs) {convFuncStore_p = cfs;}; More...
 
virtual void DataToGrid (casacore::Array< casacore::Complex > &griddedData, VBStore &vbs, casacore::Matrix< casacore::Double > &sumwt, const casacore::Bool &dopsf, casacore::Bool useConjFreqCF=false)
 
virtual void GridToData (VBStore &vbs, const casacore::Array< casacore::Complex > &griddedData)
 
More...
 
- Public Member Functions inherited from casa::VisibilityResampler
 VisibilityResampler ()
 
 VisibilityResampler (const VisibilityResampler &other)
 VisibilityResampler(const CFStore& cfs): VisibilityResamplerBase(cfs) {};. More...
 
virtual ~VisibilityResampler ()
 {setConvFunc(cfs);}; More...
 
virtual void getParams (casacore::Vector< casacore::Double > &uvwScale, casacore::Vector< casacore::Double > &offset, casacore::Vector< casacore::Double > &dphase)
 
virtual void setParams (const casacore::Vector< casacore::Double > &uvwScale, const casacore::Vector< casacore::Double > &offset, const casacore::Vector< casacore::Double > &dphase)
 
virtual void setMaps (const casacore::Vector< casacore::Int > &chanMap, const casacore::Vector< casacore::Int > &polMap)
 
virtual void setFreqMaps (const casacore::Matrix< casacore::Double > &spwChanFreqs, const casacore::Matrix< casacore::Double > &spwChanConjFreqs)
 
virtual void setConvFunc (const CFStore &cfs)
 
virtual void setPATolerance (const double &dPA)
 
virtual void ComputeResiduals (VBStore &vbs)
 virtual void GridToData(VBStore& vbs, casacore::Array<casacore::Complex>& griddedData); More...
 
virtual void setMutex (async::Mutex *mu)
 
virtual void init (const casacore::Bool &doublePrecision)
 Genealogical baggage – required for the MultiThreadedVisibilityResampler – that everyone else has to carray around. More...
 
virtual void GatherGrids (casacore::Array< casacore::DComplex > &griddedData, casacore::Matrix< casacore::Double > &sumwt)
 
virtual void GatherGrids (casacore::Array< casacore::Complex > &griddedData, casacore::Matrix< casacore::Double > &sumwt)
 
virtual void initializePutBuffers (const casacore::Array< casacore::DComplex > &griddedData, const casacore::Matrix< casacore::Double > &sumwt)
 
virtual void initializePutBuffers (const casacore::Array< casacore::Complex > &griddedData, const casacore::Matrix< casacore::Double > &sumwt)
 
virtual void initializeDataBuffers (VBStore &vbs)
 
virtual void releaseBuffers ()
 
- Public Member Functions inherited from casa::VisibilityResamplerBase
 VisibilityResamplerBase ()
 
 VisibilityResamplerBase (const VisibilityResamplerBase &other)
 VisibilityResamplerBase(const CFStore& cfs): uvwScale_p(), offset_p(), chanMap_p(), polMap_p(), convFuncStore_p(), inc_p(), cfMap_p(), conjCFMap_p() {setConvFunc(cfs);};. More...
 
virtual ~VisibilityResamplerBase ()
 
VisibilityResamplerBaseoperator= (const VisibilityResamplerBase &other)
 
void finalizeToSky (casacore::Array< casacore::DComplex > &griddedData, casacore::Matrix< casacore::Double > &sumwt)
 Aliases for more readable code at the FTMachine layer. More...
 
void finalizeToSky (casacore::Array< casacore::Complex > &griddedData, casacore::Matrix< casacore::Double > &sumwt)
 
void initializeToSky (const casacore::Array< casacore::DComplex > &griddedData, const casacore::Matrix< casacore::Double > &sumwt)
 
void initializeToSky (const casacore::Array< casacore::Complex > &griddedData, const casacore::Matrix< casacore::Double > &sumwt)
 
const casacore::Vector
< casacore::Int
getCFMap ()
 
const casacore::Vector
< casacore::Int
getConjCFMap ()
 
VBRow2CFMapTypegetVBRow2CFMap ()
 
VBRow2CFBMapTypegetVBRow2CFBMap ()
 
virtual casacore::Int makeVBRow2CFMap (CFStore2 &cfs, ConvolutionFunction &cf, const VisBuffer &vb, const casacore::Quantity &dPA, const casacore::Vector< casacore::Int > &dataChan2ImChanMap, const casacore::Vector< casacore::Int > &dataPol2ImPolMap, const casacore::Vector< casacore::Double > &pointingOffset)
 

Protected Member Functions

virtual casacore::Complex getConvFuncVal (const casacore::Cube< casacore::Double > &convFunc, const casacore::Matrix< casacore::Double > &uvw, const casacore::Int &irow, const casacore::Vector< casacore::Int > &pixel)
 virtual void GridToData(VBStore& vbs, casacore::Array<casacore::Complex>& griddedData); More...
 
casacore::Complex getCFArea (casacore::Complex *__restrict__ &convFuncV, casacore::Double &wVal, casacore::Vector< casacore::Int > &scaledSupport, casacore::Vector< casacore::Float > &scaledSampling, casacore::Vector< casacore::Double > &off, casacore::Vector< casacore::Int > &convOrigin, casacore::Vector< casacore::Int > &cfShape, casacore::Double &sinDPA, casacore::Double &cosDPA)
 
template<class T >
casacore::Complex accumulateOnGrid (casacore::Array< T > &grid, casacore::Complex *__restrict__ &convFuncV, casacore::Complex &nvalue, casacore::Double &wVal, casacore::Vector< casacore::Int > &scaledSupport, casacore::Vector< casacore::Float > &scaledSampling, casacore::Vector< casacore::Double > &off, casacore::Vector< casacore::Int > &convOrigin, casacore::Vector< casacore::Int > &, casacore::Vector< casacore::Int > &loc, casacore::Vector< casacore::Int > &igrdpos, casacore::Double &, casacore::Double &, casacore::Bool &finitePointingOffset, casacore::Bool dopsf)
 
template<class T >
void XInnerLoop (const casacore::Int *scaleSupport, const casacore::Float *scaledSampling, const casacore::Double *off, const casacore::Int *loc, casacore::Complex &cfArea, const casacore::Int *__restrict__ iGrdPosPtr, casacore::Complex *__restrict__ &convFuncV, const casacore::Int *convOrigin, casacore::Complex &nvalue, casacore::Double &wVal, casacore::Bool &, casacore::Bool &, T *__restrict__ gridStore, casacore::Int *iloc, casacore::Complex &norm, casacore::Int *igrdpos)
 
template<class T >
void accumulateFromGrid (T &nvalue, const T *__restrict__ &grid, casacore::Vector< casacore::Int > &iGrdPos, casacore::Complex *__restrict__ &convFuncV, casacore::Double &wVal, casacore::Vector< casacore::Int > &scaledSupport, casacore::Vector< casacore::Float > &scaledSampling, casacore::Vector< casacore::Double > &off, casacore::Vector< casacore::Int > &convOrigin, casacore::Vector< casacore::Int > &cfShape, casacore::Vector< casacore::Int > &loc, casacore::Complex &phasor, casacore::Double &sinDPA, casacore::Double &cosDPA, casacore::Bool &finitePointingOffset, casacore::Matrix< casacore::Complex > &cached_phaseGrad_p)
 
- Protected Member Functions inherited from casa::VisibilityResampler
template<class T >
void DataToGridImpl_p (casacore::Array< T > &griddedData, VBStore &vb, const casacore::Bool &dopsf, casacore::Matrix< casacore::Double > &sumwt, casacore::Bool useConjFreqCF=false)
 casacore::Vector<casacore::Double> uvwScale_p, offset_p, dphase_p; casacore::Vector<casacore::Int> chanMap_p, polMap_p; CFStore convFuncStore_p; casacore::Int inc0_p, inc1_p, inc2_p, inc3_p; More...
 
void cacheAxisIncrements (casacore::Int &n0, casacore::Int &n1, casacore::Int &n2, casacore::Int &n3)
 void sgrid(casacore::Vector<casacore::Double>& pos, casacore::Vector<casacore::Int>& loc, casacore::Vector<casacore::Int>& off, casacore::Complex& phasor, const casacore::Int& irow, const casacore::Matrix<casacore::Double>& uvw, const casacore::Double& dphase, const casacore::Double& freq, const casacore::Vector<casacore::Double>& scale, const casacore::Vector<casacore::Double>& offset, const casacore::Vector<casacore::Float>& sampling); More...
 
casacore::Complex getFrom4DArray (const casacore::Complex *__restrict__ store, const casacore::Int *__restrict__ iPos) __restrict__
 The following two methods are called in the innermost loop. More...
 
template<class T >
void addTo4DArray (T *__restrict__ store, const casacore::Int *__restrict__ iPos, casacore::Complex &nvalue, casacore::Double &wt) __restrict__
 
- Protected Member Functions inherited from casa::VisibilityResamplerBase
void sgrid (casacore::Int &ndim, casacore::Double *__restrict__ pos, casacore::Int *__restrict__ loc, casacore::Int *__restrict__ off, casacore::Complex &phasor, const casacore::Int &irow, const casacore::Double *__restrict__ uvw, const casacore::Double &dphase, const casacore::Double &freq, const casacore::Double *__restrict__ scale, const casacore::Double *__restrict__ offset, const casacore::Float *__restrict__ sampling)
 
casacore::Bool onGrid (const casacore::Int &nx, const casacore::Int &ny, const casacore::Vector< casacore::Int > &__restrict__ loc, const casacore::Vector< casacore::Int > &__restrict__ support) __restrict__
 
casacore::Bool onGrid (const casacore::Int &nx, const casacore::Int &ny, const casacore::Int &loc0, const casacore::Int &loc1, const casacore::Int &support) __restrict__
 
void cacheAxisIncrements (const casacore::Int &n0, const casacore::Int &n1, const casacore::Int &n2, const casacore::Int &n3)
 casacore::Array assignment operator in CASACore requires lhs.nelements() == 0 or lhs.nelements()=rhs.nelements() template <class t>=""> inline void SETVEC(casacore::Vector<T>& lhs, const casacore::Vector<T>& rhs) {lhs.resize(rhs.shape()); lhs = rhs;}; More...
 
void cacheAxisIncrements (const casacore::Vector< casacore::Int > &n)
 
void cacheAxisIncrements (const casacore::Vector< casacore::Int > &n, casacore::Vector< casacore::Int > &inc)
 
void cacheAxisIncrements (const casacore::Int n[4], casacore::Int inc[4])
 
void addTo4DArray (casacore::DComplex *__restrict__ &store, casacore::Int *__restrict__ &iPos, casacore::Complex &nvalue, casacore::Double &wt) __restrict__
 Version that use internally cached inc_p template <class t>=""> More...
 
void addTo4DArray (casacore::Complex *__restrict__ &store, casacore::Int *__restrict__ &iPos, casacore::Complex &nvalue, casacore::Double &wt) __restrict__
 
void addTo4DArray (casacore::DComplex *__restrict__ &store, casacore::Int *__restrict__ &iPos, casacore::Int *__restrict__ inc, casacore::Complex &nvalue, casacore::Double &wt) __restrict__
 Version where inc_p is supplied from outside. More...
 
void addTo4DArray (casacore::Complex *__restrict__ &store, casacore::Int *__restrict__ &iPos, casacore::Int *__restrict__ inc, casacore::Complex &nvalue, casacore::Double &wt) __restrict__
 
casacore::Complex getFrom4DArray (const casacore::Complex *__restrict__ &store, const casacore::Int *__restrict__ &iPos, const casacore::Vector< casacore::Int > &inc)
 restrict More...
 
casacore::Complex getFrom4DArray (const casacore::Complex *__restrict__ &store, const casacore::Vector< casacore::Int > iPos, const casacore::Vector< casacore::Int > &inc)
 restrict More...
 
casacore::DComplex getFrom4DArray (const casacore::DComplex *__restrict__ &store, const casacore::Int *__restrict__ &iPos, const casacore::Vector< casacore::Int > &inc)
 restrict More...
 
casacore::DComplex getFrom4DArray (const casacore::DComplex *__restrict__ &store, const casacore::Vector< casacore::Int > iPos, const casacore::Vector< casacore::Int > &inc)
 restrict More...
 
casacore::Complex getFrom4DArray (const casacore::Complex *__restrict__ &store, const casacore::Int *__restrict__ &iPos)
 The following two methods are called in the innermost loop. More...
 
casacore::DComplex getFrom4DArray (const casacore::DComplex *__restrict__ &store, const casacore::Int *__restrict__ &iPos)
 restrict More...
 

Private Member Functions

template<class T >
void DataToGridImpl_p (casacore::Array< T > &griddedData, VBStore &vb, casacore::Matrix< casacore::Double > &sumwt, const casacore::Bool &dopsf, casacore::Bool)
 Re-sample the griddedData on the VisBuffer (a.k.a de-gridding). More...
 
void sgrid (casacore::Vector< casacore::Double > &pos, casacore::Vector< casacore::Int > &loc, casacore::Vector< casacore::Double > &off, casacore::Complex &phasor, const casacore::Int &irow, const casacore::Matrix< casacore::Double > &uvw, const casacore::Double &dphase, const casacore::Double &freq, const casacore::Vector< casacore::Double > &scale, const casacore::Vector< casacore::Double > &offset, const casacore::Vector< casacore::Float > &sampling)
 
casacore::Bool onGrid (const casacore::Int &nx, const casacore::Int &ny, const casacore::Int &nw, const casacore::Vector< casacore::Int > &loc, const casacore::Vector< casacore::Int > &support)
 
template<class T >
void SETVEC (casacore::Vector< T > &lhs, const casacore::Vector< T > &rhs)
 casacore::Array assignment operator in CASACore requires lhs.nelements() == 0 or lhs.nelements()=rhs.nelements() More...
 
casacore::Complex getFrom4DArray (const casacore::Complex *__restrict__ &store, const casacore::Int *iPos, const casacore::Int *inc)
 Internal methods to address a 4D array. More...
 
casacore::Complex getFrom4DArray (const casacore::Complex *__restrict__ &store, const casacore::Vector< casacore::Int > &iPos, const casacore::Vector< casacore::Int > &inc)
 The following two methods are called in the innermost loop. More...
 
casacore::DComplex getFrom4DArray (const casacore::DComplex *__restrict__ &store, const casacore::Vector< casacore::Int > &iPos, const casacore::Vector< casacore::Int > &inc)
 
template<class T >
void addTo4DArray (T *__restrict__ &store, const casacore::Int *__restrict__ &iPos, const casacore::Vector< casacore::Int > &inc, casacore::Complex &nvalue, casacore::Complex &wt) __restrict__
 
casacore::Bool reindex (const casacore::Vector< casacore::Int > &in, casacore::Vector< casacore::Int > &out, const casacore::Double &sinDPA, const casacore::Double &cosDPA, const casacore::Vector< casacore::Int > &Origin, const casacore::Vector< casacore::Int > &size)
 This rotates the convolution function by rotating the co-ordinate system. More...
 
casacore::Complex * getConvFunc_p (const double &vbPA, casacore::Vector< casacore::Int > &cfShape, casacore::Vector< int > &support, int &muellerElement, CFBuffer &cfb, casacore::Double &wVal, casacore::Int &fndx, casacore::Int &wndx, PolMapType &mNdx, PolMapType &conjMNdx, casacore::Int &ipol, casacore::uInt &mRow)
 
void cachePhaseGrad_p (const casacore::Vector< casacore::Double > &pointingOffset, const casacore::Vector< casacore::Int > &cfShape, const casacore::Vector< casacore::Int > &convOrigin, const casacore::Double &cfRefFreq, const casacore::Double &imRefFreq, const casacore::Int &spwID=0, const casacore::Int &fieldId=0)
 

Private Attributes

casacore::Vector< casacore::IntgridInc_p
 

----------------------——Private parts-------------------------------——

More...
 
casacore::Vector< casacore::IntcfInc_p
 
casacore::Matrix
< casacore::Complex > 
cached_phaseGrad_p
 
casacore::Vector
< casacore::Double
cached_PointingOffset_p
 

Additional Inherited Members

- Public Attributes inherited from casa::VisibilityResamplerBase
casacore::Double runTimeG_p
 
casacore::Double runTimeDG_p
 
casacore::Double runTimeG1_p
 
casacore::Double runTimeG2_p
 
casacore::Double runTimeG3_p
 
casacore::Double runTimeG4_p
 
casacore::Double runTimeG5_p
 
casacore::Double runTimeG6_p
 
casacore::Double runTimeG7_p
 
casacore::Timer timer_p
 
- Protected Attributes inherited from casa::VisibilityResampler
async::MutexmyMutex_p
 

-------------------------—Private parts----------------------------------—

More...
 
- Protected Attributes inherited from casa::VisibilityResamplerBase
casacore::Vector
< casacore::Double
uvwScale_p
 

-------------------------—Private parts----------------------------------—

More...
 
casacore::Vector
< casacore::Double
offset_p
 
casacore::Vector
< casacore::Double
dphase_p
 
casacore::Vector< casacore::IntchanMap_p
 
casacore::Vector< casacore::IntpolMap_p
 
casacore::Matrix
< casacore::Double
spwChanFreq_p
 
casacore::Matrix
< casacore::Double
spwChanConjFreq_p
 
CFStore convFuncStore_p
 
casacore::Vector< casacore::Intinc_p
 casacore::Int inc0_p, inc1_p, inc2_p, inc3_p; More...
 
casacore::Int *__restrict__ incPtr_p
 
casacore::Vector< casacore::IntcfMap_p
 
casacore::Vector< casacore::IntconjCFMap_p
 
VBRow2CFMapType vbRow2CFMap_p
 
VBRow2CFBMapType vbRow2CFBMap_p
 
double paTolerance_p
 

Detailed Description

Definition at line 45 of file AWVisResampler.h.

Constructor & Destructor Documentation

casa::AWVisResampler::AWVisResampler ( )
inline

Definition at line 48 of file AWVisResampler.h.

virtual casa::AWVisResampler::~AWVisResampler ( )
inlinevirtual

AWVisResampler(const CFStore& cfs): VisibilityResampler(cfs) {}.

Definition at line 53 of file AWVisResampler.h.

Member Function Documentation

template<class T >
void casa::AWVisResampler::accumulateFromGrid ( T &  nvalue,
const T *__restrict__ &  grid,
casacore::Vector< casacore::Int > &  iGrdPos,
casacore::Complex *__restrict__ &  convFuncV,
casacore::Double wVal,
casacore::Vector< casacore::Int > &  scaledSupport,
casacore::Vector< casacore::Float > &  scaledSampling,
casacore::Vector< casacore::Double > &  off,
casacore::Vector< casacore::Int > &  convOrigin,
casacore::Vector< casacore::Int > &  cfShape,
casacore::Vector< casacore::Int > &  loc,
casacore::Complex &  phasor,
casacore::Double sinDPA,
casacore::Double cosDPA,
casacore::Bool finitePointingOffset,
casacore::Matrix< casacore::Complex > &  cached_phaseGrad_p 
)
protected
template<class T >
casacore::Complex casa::AWVisResampler::accumulateOnGrid ( casacore::Array< T > &  grid,
casacore::Complex *__restrict__ &  convFuncV,
casacore::Complex &  nvalue,
casacore::Double wVal,
casacore::Vector< casacore::Int > &  scaledSupport,
casacore::Vector< casacore::Float > &  scaledSampling,
casacore::Vector< casacore::Double > &  off,
casacore::Vector< casacore::Int > &  convOrigin,
casacore::Vector< casacore::Int > &  ,
casacore::Vector< casacore::Int > &  loc,
casacore::Vector< casacore::Int > &  igrdpos,
casacore::Double ,
casacore::Double ,
casacore::Bool finitePointingOffset,
casacore::Bool  dopsf 
)
protected
template<class T >
void casa::AWVisResampler::addTo4DArray ( T *__restrict__ &  store,
const casacore::Int *__restrict__ &  iPos,
const casacore::Vector< casacore::Int > &  inc,
casacore::Complex &  nvalue,
casacore::Complex &  wt 
)
inlineprivate

T *tmp=store+(iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]); tmp += nvalue*wt;

Definition at line 261 of file AWVisResampler.h.

void casa::AWVisResampler::cachePhaseGrad_p ( const casacore::Vector< casacore::Double > &  pointingOffset,
const casacore::Vector< casacore::Int > &  cfShape,
const casacore::Vector< casacore::Int > &  convOrigin,
const casacore::Double cfRefFreq,
const casacore::Double imRefFreq,
const casacore::Int spwID = 0,
const casacore::Int fieldId = 0 
)
private
virtual VisibilityResamplerBase* casa::AWVisResampler::clone ( )
inlinevirtual

Reimplemented from casa::VisibilityResampler.

Definition at line 55 of file AWVisResampler.h.

virtual void casa::AWVisResampler::copy ( const VisibilityResamplerBase other)
inlinevirtual

VisibilityResampler& operator=(const VisibilityResampler& other);.

const casacore::Vector<casacore::Int> cfmap=other.getCFMap(); const casacore::Vector<casacore::Int> conjcfmap = other.getConjCFMap();

setCFMaps(cfmap,conjcfmap);

Reimplemented from casa::VisibilityResampler.

Definition at line 63 of file AWVisResampler.h.

References casa::VisibilityResampler::copy().

virtual void casa::AWVisResampler::copy ( const AWVisResampler other)
inlinevirtual
virtual void casa::AWVisResampler::copyMaps ( const AWVisResampler other)
inlinevirtual

AWVisResampler(const AWVisResampler& other): VisibilityResampler(other),cfMap_p(), conjCFMap_p() {copy(other);}.

Definition at line 61 of file AWVisResampler.h.

References casa::VisibilityResamplerBase::cfMap_p, and casa::VisibilityResamplerBase::conjCFMap_p.

virtual void casa::AWVisResampler::DataToGrid ( casacore::Array< casacore::DComplex > &  griddedData,
VBStore vbs,
casacore::Matrix< casacore::Double > &  sumwt,
const casacore::Bool dopsf,
casacore::Bool  useConjFreqCF = false 
)
inlinevirtual

virtual void setConvFunc(const CFStore& cfs) {convFuncStore_p = cfs;};


Re-sample the griddedData on the VisBuffer (a.k.a gridding).

In this class, these just call the private templated version. The first variant grids onto a double precision grid while the second one does it on a single precision grid.

Note that the following calls allow using any CFStore object for gridding while de-gridding uses the internal convFuncStore_p object. virtual void DataToGrid(casacore::Array<casacore::DComplex>& griddedData, VBStore& vbs, casacore::Matrix<casacore::Double>& sumwt, const casacore::Bool& dopsf, CFStore& cfs) {DataToGridImpl_p(griddedData, vbs, sumwt,dopsf,cfs);}

virtual void DataToGrid(casacore::Array<casacore::Complex>& griddedData, VBStore& vbs, casacore::Matrix<casacore::Double>& sumwt, const casacore::Bool& dopsf, CFStore& cfs) {DataToGridImpl_p(griddedData, vbs, sumwt,dopsf,cfs);}

Simulating defaulting CFStore arguemnt in the above calls to convFuncStore_p

TEMP REMOVAL OF casacore::DComplex gridder*****

Reimplemented from casa::VisibilityResampler.

Definition at line 116 of file AWVisResampler.h.

virtual void casa::AWVisResampler::DataToGrid ( casacore::Array< casacore::Complex > &  griddedData,
VBStore vbs,
casacore::Matrix< casacore::Double > &  sumwt,
const casacore::Bool dopsf,
casacore::Bool  useConjFreqCF = false 
)
inlinevirtual

Reimplemented from casa::VisibilityResampler.

Definition at line 120 of file AWVisResampler.h.

template<class T >
void casa::AWVisResampler::DataToGridImpl_p ( casacore::Array< T > &  griddedData,
VBStore vb,
casacore::Matrix< casacore::Double > &  sumwt,
const casacore::Bool dopsf,
casacore::Bool   
)
private

Re-sample the griddedData on the VisBuffer (a.k.a de-gridding).

casacore::Complex casa::AWVisResampler::getCFArea ( casacore::Complex *__restrict__ &  convFuncV,
casacore::Double wVal,
casacore::Vector< casacore::Int > &  scaledSupport,
casacore::Vector< casacore::Float > &  scaledSampling,
casacore::Vector< casacore::Double > &  off,
casacore::Vector< casacore::Int > &  convOrigin,
casacore::Vector< casacore::Int > &  cfShape,
casacore::Double sinDPA,
casacore::Double cosDPA 
)
protected
casacore::Complex* casa::AWVisResampler::getConvFunc_p ( const double &  vbPA,
casacore::Vector< casacore::Int > &  cfShape,
casacore::Vector< int > &  support,
int &  muellerElement,
CFBuffer cfb,
casacore::Double wVal,
casacore::Int fndx,
casacore::Int wndx,
PolMapType mNdx,
PolMapType conjMNdx,
casacore::Int ipol,
casacore::uInt mRow 
)
private
virtual casacore::Complex casa::AWVisResampler::getConvFuncVal ( const casacore::Cube< casacore::Double > &  convFunc,
const casacore::Matrix< casacore::Double > &  uvw,
const casacore::Int irow,
const casacore::Vector< casacore::Int > &  pixel 
)
inlineprotectedvirtual

virtual void GridToData(VBStore& vbs, casacore::Array<casacore::Complex>& griddedData);

Definition at line 132 of file AWVisResampler.h.

casacore::Complex casa::AWVisResampler::getFrom4DArray ( const casacore::Complex *__restrict__ &  store,
const casacore::Int iPos,
const casacore::Int inc 
)
inlineprivate

Internal methods to address a 4D array.

These should ulimately moved to a Array4D class in CASACore

This is called less frequently. Currently once per VisBuffer inline void cacheAxisIncrements(const casacore::Vector<casacore::Int>& n, casacore::Vector<casacore::Int>& inc) {inc.resize(4);inc[0]=1, inc[1]=inc[0]*n[0], inc[2]=inc[1]*n[1], inc[3]=inc[2]*n[2];(void)n[3];}

The following method is also called from the inner loop, but does not use CASA casacore::Vector (which are not thread safe, I (SB) am told).

return store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]];

Definition at line 239 of file AWVisResampler.h.

casacore::Complex casa::AWVisResampler::getFrom4DArray ( const casacore::Complex *__restrict__ &  store,
const casacore::Vector< casacore::Int > &  iPos,
const casacore::Vector< casacore::Int > &  inc 
)
inlineprivate

The following two methods are called in the innermost loop.

return store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]];

Definition at line 247 of file AWVisResampler.h.

casacore::DComplex casa::AWVisResampler::getFrom4DArray ( const casacore::DComplex *__restrict__ &  store,
const casacore::Vector< casacore::Int > &  iPos,
const casacore::Vector< casacore::Int > &  inc 
)
inlineprivate

return store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]];

Definition at line 253 of file AWVisResampler.h.

virtual void casa::AWVisResampler::GridToData ( VBStore vbs,
const casacore::Array< casacore::Complex > &  griddedData 
)
virtual


Re-sample VisBuffer to a regular grid (griddedData) (a.k.a. de-gridding)

Reimplemented from casa::VisibilityResampler.

casacore::Bool casa::AWVisResampler::onGrid ( const casacore::Int nx,
const casacore::Int ny,
const casacore::Int nw,
const casacore::Vector< casacore::Int > &  loc,
const casacore::Vector< casacore::Int > &  support 
)
inlineprivate

Definition at line 210 of file AWVisResampler.h.

AWVisResampler& casa::AWVisResampler::operator= ( const AWVisResampler other)
inline
casacore::Bool casa::AWVisResampler::reindex ( const casacore::Vector< casacore::Int > &  in,
casacore::Vector< casacore::Int > &  out,
const casacore::Double sinDPA,
const casacore::Double cosDPA,
const casacore::Vector< casacore::Int > &  Origin,
const casacore::Vector< casacore::Int > &  size 
)
private

This rotates the convolution function by rotating the co-ordinate system.

For the accuracies already required for EVLA and ALMA, this is not useful. Leaving it hear for now....

virtual void casa::AWVisResampler::setCFMaps ( const casacore::Vector< casacore::Int > &  cfMap,
const casacore::Vector< casacore::Int > &  conjCFMap 
)
inlinevirtual

Reimplemented from casa::VisibilityResampler.

Definition at line 87 of file AWVisResampler.h.

References casa::SynthesisUtils::SETVEC().

template<class T >
void casa::AWVisResampler::SETVEC ( casacore::Vector< T > &  lhs,
const casacore::Vector< T > &  rhs 
)
inlineprivate

casacore::Array assignment operator in CASACore requires lhs.nelements() == 0 or lhs.nelements()=rhs.nelements()

Definition at line 222 of file AWVisResampler.h.

References casacore::Vector< T >::resize(), and casacore::Vector< T >::shape().

void casa::AWVisResampler::sgrid ( casacore::Vector< casacore::Double > &  pos,
casacore::Vector< casacore::Int > &  loc,
casacore::Vector< casacore::Double > &  off,
casacore::Complex &  phasor,
const casacore::Int irow,
const casacore::Matrix< casacore::Double > &  uvw,
const casacore::Double dphase,
const casacore::Double freq,
const casacore::Vector< casacore::Double > &  scale,
const casacore::Vector< casacore::Double > &  offset,
const casacore::Vector< casacore::Float > &  sampling 
)
private
template<class T >
void casa::AWVisResampler::XInnerLoop ( const casacore::Int scaleSupport,
const casacore::Float scaledSampling,
const casacore::Double off,
const casacore::Int loc,
casacore::Complex &  cfArea,
const casacore::Int *__restrict__  iGrdPosPtr,
casacore::Complex *__restrict__ &  convFuncV,
const casacore::Int convOrigin,
casacore::Complex &  nvalue,
casacore::Double wVal,
casacore::Bool ,
casacore::Bool ,
T *__restrict__  gridStore,
casacore::Int iloc,
casacore::Complex &  norm,
casacore::Int igrdpos 
)
protected

Member Data Documentation

casacore::Matrix<casacore::Complex> casa::AWVisResampler::cached_phaseGrad_p
private

Definition at line 194 of file AWVisResampler.h.

Referenced by copy(), and operator=().

casacore::Vector<casacore::Double> casa::AWVisResampler::cached_PointingOffset_p
private

Definition at line 195 of file AWVisResampler.h.

Referenced by copy(), and operator=().

casacore::Vector<casacore::Int> casa::AWVisResampler::cfInc_p
private

Definition at line 193 of file AWVisResampler.h.

casacore::Vector<casacore::Int> casa::AWVisResampler::gridInc_p
private


----------------------——Private parts-------------------------------——

casacore::Vector<casacore::Double> uvwScale_p, offset_p, dphase_p;

casacore::Vector<casacore::Int> chanMap_p, polMap_p; CFStore convFuncStore_p; casacore::Int inc0_p, inc1_p, inc2_p, inc3_p; casacore::Vector<casacore::Int> inc_p; casacore::Vector<casacore::Int> cfMap_p, conjCFMap_p;

Definition at line 193 of file AWVisResampler.h.


The documentation for this class was generated from the following file: