casa
5.7.0-16
|
#include <AWVisResampler.h>
Public Member Functions | |
AWVisResampler () | |
virtual | ~AWVisResampler () |
AWVisResampler(const CFStore& cfs): VisibilityResampler(cfs) {}. More... | |
virtual VisibilityResamplerBase * | clone () |
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) |
AWVisResampler & | operator= (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 () |
VisibilityResamplerBase & | operator= (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 () |
VBRow2CFMapType & | getVBRow2CFMap () |
VBRow2CFBMapType & | getVBRow2CFBMap () |
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::Int > | gridInc_p |
----------------------——Private parts-------------------------------——More... | |
casacore::Vector< casacore::Int > | cfInc_p |
casacore::Matrix < casacore::Complex > | cached_phaseGrad_p |
casacore::Vector < casacore::Double > | cached_PointingOffset_p |
Definition at line 45 of file AWVisResampler.h.
|
inline |
Definition at line 48 of file AWVisResampler.h.
|
inlinevirtual |
AWVisResampler(const CFStore& cfs): VisibilityResampler(cfs) {}.
Definition at line 53 of file AWVisResampler.h.
|
protected |
|
protected |
|
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.
|
private |
|
inlinevirtual |
Reimplemented from casa::VisibilityResampler.
Definition at line 55 of file AWVisResampler.h.
|
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().
|
inlinevirtual |
Definition at line 72 of file AWVisResampler.h.
References cached_phaseGrad_p, cached_PointingOffset_p, casa::VisibilityResampler::copy(), and casa::SynthesisUtils::SETVEC().
|
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.
|
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.
|
inlinevirtual |
Reimplemented from casa::VisibilityResampler.
Definition at line 120 of file AWVisResampler.h.
|
private |
Re-sample the griddedData on the VisBuffer (a.k.a de-gridding).
|
protected |
|
private |
|
inlineprotectedvirtual |
virtual void GridToData(VBStore& vbs, casacore::Array<casacore::Complex>& griddedData);
Definition at line 132 of file AWVisResampler.h.
|
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.
|
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.
|
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 |
Re-sample VisBuffer to a regular grid (griddedData) (a.k.a. de-gridding)
Reimplemented from casa::VisibilityResampler.
|
inlineprivate |
Definition at line 210 of file AWVisResampler.h.
|
inline |
Definition at line 79 of file AWVisResampler.h.
References cached_phaseGrad_p, cached_PointingOffset_p, casacore::copy(), and casa::SynthesisUtils::SETVEC().
|
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....
|
inlinevirtual |
Reimplemented from casa::VisibilityResampler.
Definition at line 87 of file AWVisResampler.h.
References casa::SynthesisUtils::SETVEC().
|
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().
|
private |
|
protected |
|
private |
Definition at line 194 of file AWVisResampler.h.
Referenced by copy(), and operator=().
|
private |
Definition at line 195 of file AWVisResampler.h.
Referenced by copy(), and operator=().
|
private |
Definition at line 193 of file AWVisResampler.h.
|
private |
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.