casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
XCorr.h
Go to the documentation of this file.
1 //# XCorr.h: Definitions of interface for XCorr
2 //# Copyright (C) 1996,1997,1999,2000
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be adressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //#
27 //# $Id$
28 
29 #ifndef SYNTHESIS_XCORR_H
30 #define SYNTHESIS_XCORR_H
31 
32 #include <casa/aips.h>
33 #include <casa/BasicSL/Complex.h>
35 #include <msvis/MSVis/VisSet.h>
36 
37 namespace casa { //# NAMESPACE CASA - BEGIN
38 
39 // <summary> Model non-linear correlator function for the VisEquation </summary>
40 
41 // <use visibility=export>
42 
43 // <reviewed reviewer="" date="" tests="" demos="">
44 
45 // <prerequisite>
46 // <li> <linkto module="MeasurementComponents">MeasurementComponents</linkto> module
47 // <li> <linkto class="VisSet">VisSet</linkto> class
48 // <li> <linkto class="VisEquation">VisEquation</linkto> class
49 // </prerequisite>
50 //
51 // <etymology>
52 // XCorr describes an interface for a non-linear function to be used in
53 // the <linkto class="VisEquation">VisEquation</linkto>. It is an Abstract Base Class: most methods
54 // must be defined in derived classes.
55 // </etymology>
56 //
57 // <synopsis>
58 //
59 // See <linkto class="VisEquation">VisEquation</linkto> for definition of the
60 // Visibility Measurement Equation.
61 //
62 // The following examples illustrate how an XCorr can be
63 // used:
64 // <ul>
65 // <li> Simulation: van Vleck correction
66 // </ul>
67 // </synopsis>
68 //
69 // <example>
70 // <srcblock>
71 // // Read the VisSet from disk
72 // VisSet vs("3c84.MS");
73 //
74 // VisEquation ve(vs);
75 //
76 // // Make an XCorr
77 // CorrelatorXCorr coxc(vs);
78 //
79 // ve.SetXCorr(coxc);
80 //
81 // // Correct the visset
82 // ve.correct();
83 // </srcblock>
84 // </example>
85 //
86 // <motivation>
87 // The properties of a multiplicative component must be described
88 // for the <linkto class="VisEquation">VisEquation</linkto>.
89 // </motivation>
90 //
91 // <todo asof="97/10/01">
92 // <li> There are no derived classes!
93 // </todo>
94 
95 class XCorr {
96 public:
97 
98  XCorr();
99 
100  // Apply actual function and inverse
101  // <group>
102  virtual VisBuffer& apply(VisBuffer& vb) = 0;
103  virtual VisBuffer& applyInv(VisBuffer& vb) = 0;
104  // </group>
105 
106 };
107 
108 } //# NAMESPACE CASA - END
109 
110 #endif
virtual VisBuffer & apply(VisBuffer &vb)=0
Apply actual function and inverse.
virtual VisBuffer & applyInv(VisBuffer &vb)=0
Model non-linear correlator function for the VisEquation.
Definition: XCorr.h:95
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153