casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ProtoVR.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 //# ProtoVR.h: Definition of the ProtoVR class
3 //# Copyright (C) 1997,1998,1999,2000,2001,2002,2003
4 //# Associated Universities, Inc. Washington DC, USA.
5 //#
6 //# This library is free software; you can redistribute it and/or modify it
7 //# under the terms of the GNU Library General Public License as published by
8 //# the Free Software Foundation; either version 2 of the License, or (at your
9 //# option) any later version.
10 //#
11 //# This library is distributed in the hope that it will be useful, but WITHOUT
12 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
14 //# License for more details.
15 //#
16 //# You should have received a copy of the GNU Library General Public License
17 //# along with this library; if not, write to the Free Software Foundation,
18 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
19 //#
20 //# Correspondence concerning AIPS++ should be addressed as follows:
21 //# Internet email: aips2-request@nrao.edu.
22 //# Postal address: AIPS++ Project Office
23 //# National Radio Astronomy Observatory
24 //# 520 Edgemont Road
25 //# Charlottesville, VA 22903-2475 USA
26 //#
27 //# $Id$
28 
29 #ifndef SYNTHESIS_CUAWVISRESAMPLER_H
30 #define SYNTHESIS_CUAWVISRESAMPLER_H
31 
35 #include <msvis/MSVis/VisBuffer.h>
36 #include <casa/Arrays/Array.h>
37 #include <casa/Arrays/Vector.h>
38 
39 #include <casa/Logging/LogIO.h>
40 #include <casa/Logging/LogSink.h>
42 
43 namespace casa { //# NAMESPACE CASA - BEGIN
45  {
46  public:
51  // ProtoVR(const CFStore& cfs): VisibilityResampler(cfs) {}
52  virtual ~ProtoVR() {};
53 
55  {return new ProtoVR(*this);}
56 
57  // ProtoVR(const ProtoVR& other): VisibilityResampler(other),cfMap_p(), conjCFMap_p()
58  // {copy(other);}
59 
60  virtual void copyMaps(const ProtoVR& other)
61  {setCFMaps(other.cfMap_p, other.conjCFMap_p);}
62  virtual void copy(const VisibilityResamplerBase& other)
63  {
65  // const casacore::Vector<casacore::Int> cfmap=other.getCFMap();
66  // const casacore::Vector<casacore::Int> conjcfmap = other.getConjCFMap();
67 
68  // setCFMaps(cfmap,conjcfmap);
69  }
70 
71  virtual void copy(const ProtoVR& other)
72  {
76  }
77 
78  ProtoVR& operator=(const ProtoVR& other)
79  {
80  copy(other);
83  return *this;
84  }
85 
86  virtual void setCFMaps(const casacore::Vector<casacore::Int>& cfMap, const casacore::Vector<casacore::Int>& conjCFMap)
87  {SETVEC(cfMap_p,cfMap);SETVEC(conjCFMap_p,conjCFMap);}
88 
89  // virtual void setConvFunc(const CFStore& cfs) {convFuncStore_p = cfs;};
90  //
91  //------------------------------------------------------------------------------
92  //
93  // Re-sample the griddedData on the VisBuffer (a.k.a gridding).
94  //
95  // In this class, these just call the private templated version.
96  // The first variant grids onto a double precision grid while the
97  // second one does it on a single precision grid.
98  //
99  // Note that the following calls allow using any CFStore object
100  // for gridding while de-gridding uses the internal
101  // convFuncStore_p object.
102  // virtual void DataToGrid(casacore::Array<casacore::DComplex>& griddedData, VBStore& vbs, casacore::Matrix<casacore::Double>& sumwt,
103  // const casacore::Bool& dopsf, CFStore& cfs)
104  // {DataToGridImpl_p(griddedData, vbs, sumwt,dopsf,cfs);}
105 
106  // virtual void DataToGrid(casacore::Array<casacore::Complex>& griddedData, VBStore& vbs, casacore::Matrix<casacore::Double>& sumwt,
107  // const casacore::Bool& dopsf, CFStore& cfs)
108  // {DataToGridImpl_p(griddedData, vbs, sumwt,dopsf,cfs);}
109  //
110  // Simulating defaulting CFStore arguemnt in the above calls to convFuncStore_p
111  //
112 
113  //***TEMP REMOVAL OF casacore::DComplex gridder*****
114 
116  const casacore::Bool& dopsf
117  // casacore::Int& rowBegin, casacore::Int& rowEnd,
118  // casacore::Int& startChan, casacore::Int& endChan,
119  // casacore::Int& nDataPol, casacore::Int& nDataChan, casacore::Int& vbSpw,
120  // casacore::Bool useConjFreqCF=false
121  )
122  {
123  casacore::Vector<casacore::Int> gridShape=griddedData.shape().asVector();
124  casacore::Bool Dummy;
125  casacore::DComplex *store=griddedData.getStorage(Dummy);
126  casacore::Int* shp=gridShape.getStorage(Dummy);
127  DataToGridImpl_p(store, shp, vbs, sumwt,dopsf
128  // , rowBegin, rowEnd,
129  // startChan, endChan, nDataPol, nDataChan, vbSpw,useConjFreqCF
130  );}
131 
133  const casacore::Bool& dopsf
134  // , casacore::Int& rowBegin, casacore::Int& rowEnd,
135  // casacore::Int& startChan, casacore::Int& endChan,
136  // casacore::Int& nDataPol, casacore::Int& nDataChan, casacore::Int& vbSpw,
137  // casacore::Bool useConjFreqCF=false
138  )
139  {
140  casacore::Vector<casacore::Int> gridShape=griddedData.shape().asVector();
141  casacore::Bool Dummy;
142  casacore::Complex *store=griddedData.getStorage(Dummy);
143  casacore::Int* shp=gridShape.getStorage(Dummy);
144  DataToGridImpl_p(store, shp,vbs, sumwt,dopsf
145  // , rowBegin, rowEnd,
146  // startChan, endChan, nDataPol, nDataChan, vbSpw,useConjFreqCF
147  );}
148 
149  //
150  //------------------------------------------------------------------------------
151  //
152  // Re-sample VisBuffer to a regular grid (griddedData) (a.k.a. de-gridding)
153  //
154  virtual void GridToData(VBStore& vbs,const casacore::Array<casacore::Complex>& griddedData);
155  // virtual void GridToData(VBStore& vbs, casacore::Array<casacore::Complex>& griddedData);
156  protected:
158  const casacore::Int& irow, const casacore::Vector<casacore::Int>& pixel)
159  {
160  (void)uvw; (void)irow;return convFunc(pixel[0],pixel[1],pixel[2]);
161  }
162  casacore::Complex getCFArea(casacore::Complex* __restrict__& convFuncV, casacore::Double& wVal,
166  casacore::Double& sinDPA, casacore::Double& cosDPA);
167 
168  // template <class T>
169  // casacore::Complex accumulateOnGrid(casacore::Array<T>& grid, casacore::Complex* __restrict__& convFuncV,
170  // casacore::Complex& nvalue,
171  // casacore::Double& wVal, casacore::Vector<casacore::Int>& scaledSupport,
172  // casacore::Vector<casacore::Float>& scaledSampling, casacore::Vector<casacore::Double>& off,
173  // casacore::Vector<casacore::Int>& convOrigin, casacore::Vector<casacore::Int>& cfShape,
174  // casacore::Vector<casacore::Int>& loc, casacore::Vector<casacore::Int>& igrdpos,
175  // casacore::Double& sinDPA, casacore::Double& cosDPA,
176  // casacore::Bool& finitePointingOffset, casacore::Bool dopsf);
177  template <class T>
178  void XInnerLoop(const casacore::Int *scaleSupport, const casacore::Float* scaledSampling,
179  const casacore::Double* off,
180  const casacore::Int* loc, casacore::Complex& cfArea,
181  const casacore::Int * __restrict__ iGrdPosPtr,
182  casacore::Complex *__restrict__& convFuncV,
183  const casacore::Int* convOrigin,
184  casacore::Complex& nvalue,
185  casacore::Double& wVal,
186  casacore::Bool& /*finitePointingOffset*/,
187  casacore::Bool& /*doPSFOnly*/,
188  T* __restrict__ gridStore,
189  casacore::Int* iloc,
191  casacore::Int* igrdpos);
192 
193  template <class T>
194  casacore::Complex accumulateOnGrid(T* gridStore,
195  const casacore::Int* gridInc_p,
197  const casacore::Int cachedPhaseGradNX, const casacore::Int cachedPhaseGradNY,
198  const casacore::Complex* convFuncV,
199  const casacore::Int *cfInc_p,
200  casacore::Complex nvalue,casacore::Double wVal,
201  casacore::Int* scaledSupport_ptr, casacore::Float* scaledSampling_ptr,
202  casacore::Double* off_ptr, casacore::Int* convOrigin_ptr,
203  casacore::Int* cfShape, casacore::Int* loc_ptr, casacore::Int* iGrdpos_ptr,
204  casacore::Bool finitePointingOffset,
205  casacore::Bool doPSFOnly);
206  template <class T>
207  void accumulateFromGrid(T& nvalue, const T* __restrict__& grid,
209  casacore::Complex* __restrict__& convFuncV,
210  casacore::Double& wVal, casacore::Vector<casacore::Int>& scaledSupport,
214  casacore::Complex& phasor,
215  casacore::Double& sinDPA, casacore::Double& cosDPA,
216  casacore::Bool& finitePointingOffset,
218 
220  const casacore::Bool& dopsf,casacore::Bool useConjFreqCF=false);
222  const casacore::Bool& dopsf,casacore::Bool useConjFreqCF=false);
223  //
224  //------------------------------------------------------------------------------
225  //----------------------------Private parts-------------------------------------
226  //------------------------------------------------------------------------------
227  //
228  private:
229  // casacore::Vector<casacore::Double> uvwScale_p, offset_p, dphase_p;
230  // casacore::Vector<casacore::Int> chanMap_p, polMap_p;
231  // CFStore convFuncStore_p;
232  // // casacore::Int inc0_p, inc1_p, inc2_p, inc3_p;
233  // casacore::Vector<casacore::Int> inc_p;
234  // casacore::Vector<casacore::Int> cfMap_p, conjCFMap_p;
238 
239  //
240  // Re-sample the griddedData on the VisBuffer (a.k.a de-gridding).
241  //
242  template <class T>
243  void DataToGridImpl_p(T* gridStore, casacore::Int* gridShape /*4-elements*/,
244  VBStore& vbs,
246  const casacore::Bool& dopsf
247  // casacore::Int& rowBegin, casacore::Int& rowEnd,
248  // casacore::Int& startChan, casacore::Int& endChan,
249  // casacore::Int& nDataPol, casacore::Int& nDataChan,
250  // casacore::Int& vbSpw,
251  // const casacore::Bool accumCFs
252  );
253  // void DataToGridImpl_p(casacore::Array<T>& griddedData, VBStore& vb,
254  // casacore::Matrix<casacore::Double>& sumwt,const casacore::Bool& dopsf,
255  // casacore::Bool /*useConjFreqCF*/);
256 
257  void sgrid(casacore::Double pos[2], casacore::Int loc[3], casacore::Double off[3],
258  casacore::Complex& phasor, const casacore::Int& irow, const casacore::Matrix<casacore::Double>& uvw,
259  const casacore::Double& dphase, const casacore::Double& freq,
260  const casacore::Double* scale, const casacore::Double* offset,
261  const casacore::Float sampling[2]);
262 
263  inline casacore::Bool onGrid (const casacore::Int& nx, const casacore::Int& ny, const casacore::Int& nw,
264  const casacore::Int loc[3],
265  const casacore::Int support[2])
266  {
267  return (((loc[0]-support[0]) >= 0 ) && ((loc[0]+support[0]) < nx) &&
268  ((loc[1]-support[1]) >= 0 ) && ((loc[1]+support[1]) < ny) &&
269  (loc[2] >= 0) && (loc[2] <= nw));
270  };
271 
272  // casacore::Array assignment operator in CASACore requires lhs.nelements()
273  // == 0 or lhs.nelements()=rhs.nelements()
274  template <class T>
275  inline void SETVEC(casacore::Vector<T>& lhs, const casacore::Vector<T>& rhs)
276  {lhs.resize(rhs.shape()); lhs = rhs;};
277 
278 
279  //
280  // Internal methods to address a 4D array. These should ulimately
281  // moved to a Array4D class in CASACore
282  //
283 
284  // This is called less frequently. Currently once per VisBuffer
285  // inline void cacheAxisIncrements(const casacore::Vector<casacore::Int>& n, casacore::Vector<casacore::Int>& inc)
286  // {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];}
287 
288 
289  // The following method is also called from the inner loop, but
290  // does not use CASA casacore::Vector (which are not thread safe, I (SB) am
291  // told).
292  // inline casacore::Complex getFrom4DArray(const casacore::Complex *__restrict__& store,
293  // const casacore::Int* iPos, const casacore::Int* inc)
294  // {
295  // return *(store+(iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]));
296  // // return store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]];
297  // };
298 
300  const casacore::Int* iPos, const casacore::Int inc[4])
301  {
302  return *(store+(iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]));
303  // return store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]];
304  };
305 
306  // The following two methods are called in the innermost loop.
307  inline casacore::Complex getFrom4DArray(const casacore::Complex *__restrict__& store,
309  {
310  return *(store+(iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]));
311  // return store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]];
312  };
313  inline casacore::DComplex getFrom4DArray(const casacore::DComplex *__restrict__& store,
315  {
316  return *(store+(iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]));
317  // return store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]];
318  };
319 
320  template <class T>
321  void addTo4DArray(T *store,
322  const casacore::Int *iPos, const casacore::Int* inc,
324  {
325  // T *tmp=store+(iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]);
326  // *tmp += nvalue*wt;
327  store[iPos[0] + iPos[1]*inc[1] + iPos[2]*inc[2] +iPos[3]*inc[3]] += (nvalue*wt);
328  }
329 
330  //
331  // This rotates the convolution function by rotating the
332  // co-ordinate system. For the accuracies already required for
333  // EVLA and ALMA, this is not useful. Leaving it hear for now....
334  //
336  const casacore::Double& sinDPA, const casacore::Double& cosDPA,
338 
340  casacore::Double& wVal, casacore::Int& fndx, casacore::Int& wndx,
341  casacore::Int **mNdx, casacore::Int **conjMNdx,
342  casacore::Int& ipol, casacore::uInt& mRow);
343  // casacore::Complex* getConvFunc_p(casacore::Vector<casacore::Int>& cfShape,
344  // VBStorer& vbs,
345  // casacore::Double& wVal, casacore::Int& fndx,
346  // casacore::Int& wndx,
347  // PolMapType& mNdx, PolMapType& conjMNdx,
348  // casacore::Int& ipol, casacore::uInt& mRow);
349 
350 
352  casacore::Int phaseGradNX, casacore::Int phaseGradNY,
354  casacore::Double* pointingOffset,
355  casacore::Int cfShape[4],
356  casacore::Int convOrigin[4]);
357  // void cachePhaseGrad_p(const casacore::Vector<casacore::Double>& pointingOffset,
358  // const casacore::Vector<casacore::Int>&cfShape,
359  // const casacore::Vector<casacore::Int>& convOrigin,
360  // const casacore::Double& cfRefFreq,
361  // const casacore::Double& imRefFreq);
362  };
363 }; //# NAMESPACE CASA - END
364 
365 #endif //
ProtoVR & operator=(const ProtoVR &other)
Definition: ProtoVR.h:78
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()
Definition: ProtoVR.h:275
virtual void copy(const VisibilityResamplerBase &other)
VisibilityResampler&amp; operator=(const VisibilityResampler&amp; other);.
Definition: ProtoVR.h:62
int Int
Definition: aipstype.h:50
casacore::Vector< casacore::Int > cfMap_p
void copy(const VisibilityResamplerBase &other)
VisibilityResampler&amp; operator=(const VisibilityResampler&amp; other);.
virtual void copy(const ProtoVR &other)
Definition: ProtoVR.h:71
void SETVEC(casacore::Vector< T > &lhs, const casacore::Vector< T > &rhs)
Definition: Utils.h:89
casacore::Complex accumulateOnGrid(T *gridStore, const casacore::Int *gridInc_p, const casacore::Complex *cached_phaseGrad_p, const casacore::Int cachedPhaseGradNX, const casacore::Int cachedPhaseGradNY, const casacore::Complex *convFuncV, const casacore::Int *cfInc_p, casacore::Complex nvalue, casacore::Double wVal, casacore::Int *scaledSupport_ptr, casacore::Float *scaledSampling_ptr, casacore::Double *off_ptr, casacore::Int *convOrigin_ptr, casacore::Int *cfShape, casacore::Int *loc_ptr, casacore::Int *iGrdpos_ptr, casacore::Bool finitePointingOffset, casacore::Bool doPSFOnly)
casacore::DComplex getFrom4DArray(const casacore::DComplex *__restrict__ &store, const casacore::Vector< casacore::Int > &iPos, const casacore::Vector< casacore::Int > &inc)
Definition: ProtoVR.h:313
casacore::Vector< casacore::Double > cached_PointingOffset_p
Definition: ProtoVR.h:237
virtual void DataToGrid(casacore::Array< casacore::DComplex > &griddedData, VBStore &vbs, casacore::Matrix< casacore::Double > &sumwt, const casacore::Bool &dopsf)
virtual void setConvFunc(const CFStore&amp; cfs) {convFuncStore_p = cfs;};
Definition: ProtoVR.h:115
casacore::Vector< casacore::Int > conjCFMap_p
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.
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 &lt;class t&gt;=&quot;&quot;&gt; casacore::Complex accumulateOnGrid(casacore::Array&lt;T&gt;&amp; grid, casacore::Complex* restrict&amp; convFuncV, casacore::Complex&amp; nvalue, casacore::Double&amp; wVal, casacore::Vector&lt;casacore::Int&gt;&amp; scaledSupport, casacore::Vector&lt;casacore::Float&gt;&amp; scaledSampling, casacore::Vector&lt;casacore::Double&gt;&amp; off, casacore::Vector&lt;casacore::Int&gt;&amp; convOrigin, casacore::Vector&lt;casacore::Int&gt;&amp; cfShape, casacore::Vector&lt;casacore::Int&gt;&amp; loc, casacore::Vector&lt;casacore::Int&gt;&amp; igrdpos, casacore::Double&amp; sinDPA, casacore::Double&amp; cosDPA, casacore::Bool&amp; finitePointingOffset, casacore::Bool dopsf);
T norm(const casacore::Vector< T > &x)
The magnitude/norm of a vector.
virtual VisibilityResamplerBase * clone()
Definition: ProtoVR.h:54
size_t size() const
T * getStorage(Bool &deleteIt)
Generally use of this should be shunned, except to use a FORTRAN routine or something similar...
void DataToGridImpl_p(T *gridStore, casacore::Int *gridShape, VBStore &vbs, casacore::Matrix< casacore::Double > &sumwt, const casacore::Bool &dopsf)
Re-sample the griddedData on the VisBuffer (a.k.a de-gridding).
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)
virtual ~ProtoVR()
ProtoVR(const CFStore&amp; cfs): VisibilityResampler(cfs) {}.
Definition: ProtoVR.h:52
double Double
Definition: aipstype.h:55
void addTo4DArray(T *store, const casacore::Int *iPos, const casacore::Int *inc, casacore::Complex &nvalue, casacore::Complex &wt)
Definition: ProtoVR.h:321
const IPosition & shape() const
The length of the Vector.
Definition: Vector.h:293
virtual void copyMaps(const ProtoVR &other)
ProtoVR(const ProtoVR&amp; other): VisibilityResampler(other),cfMap_p(), conjCFMap_p() {copy(other);}...
Definition: ProtoVR.h:60
casacore::Int gridInc_p[4]
----------------------——Private parts-------------------------------——
Definition: ProtoVR.h:235
casacore::Bool onGrid(const casacore::Int &nx, const casacore::Int &ny, const casacore::Int &nw, const casacore::Int loc[3], const casacore::Int support[2])
Definition: ProtoVR.h:263
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
Origin
casacore::Data for raster plots, which can be thought of as three-dimensional.
Definition: PlotData.h:263
float Float
Definition: aipstype.h:54
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&amp; vbs, casacore::Array&lt;casacore::Complex&gt;&amp; griddedData); ...
Definition: ProtoVR.h:157
virtual void DataToGrid(casacore::Array< casacore::Complex > &griddedData, VBStore &vbs, casacore::Matrix< casacore::Double > &sumwt, const casacore::Bool &dopsf)
Definition: ProtoVR.h:132
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.
Definition: ProtoVR.h:307
virtual void GridToData(VBStore &vbs, const casacore::Array< casacore::Complex > &griddedData)
virtual void setCFMaps(const casacore::Vector< casacore::Int > &cfMap, const casacore::Vector< casacore::Int > &conjCFMap)
Definition: ProtoVR.h:86
casacore::Complex getFrom4DArray(const casacore::Complex *store, const casacore::Int *iPos, const casacore::Int inc[4])
Internal methods to address a 4D array.
Definition: ProtoVR.h:299
casacore::Int cfInc_p[4]
Definition: ProtoVR.h:235
*void sgrid(casacore::Double pos[2], casacore::Int loc[3], casacore::Double off[3], casacore::Complex &phasor, const casacore::Int &irow, const casacore::Matrix< casacore::Double > &uvw, const casacore::Double &dphase, const casacore::Double &freq, const casacore::Double *scale, const casacore::Double *offset, const casacore::Float sampling[2])
void DataToGridImpl_p(casacore::Array&lt;T&gt;&amp; griddedData, VBStore&amp; vb, casacore::Matrix&lt;casacore::Double...
casacore::Complex * getConvFunc_p(casacore::Int cfShape[4], VBStore &vbs, casacore::Double &wVal, casacore::Int &fndx, casacore::Int &wndx, casacore::Int **mNdx, casacore::Int **conjMNdx, casacore::Int &ipol, casacore::uInt &mRow)
void resize(size_t len, Bool copyValues=False)
Definition: Vector.h:167
casacore::Matrix< casacore::Complex > cached_phaseGrad_p
Definition: ProtoVR.h:236
Vector< Int > asVector() const
void cachePhaseGrad_g(casacore::Complex *cached_phaseGrad_p, casacore::Int phaseGradNX, casacore::Int phaseGradNY, casacore::Double *cached_PointingOffset_p, casacore::Double *pointingOffset, casacore::Int cfShape[4], casacore::Int convOrigin[4])
casacore::Complex* getConvFunc_p(casacore::Vector&lt;casacore::Int&gt;&amp; cfShape, VBStorer&amp; vbs...
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)
unsigned int uInt
Definition: aipstype.h:51
const IPosition & shape() const
The length of each axis.
Definition: ArrayBase.h:121