casacore
ExprFuncNode.h
Go to the documentation of this file.
1 //# ExprFuncNode.h: Class representing a function in table select expression
2 //# Copyright (C) 1994,1995,1996,1997,1998,2000,2001,2003
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 addressed 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 //# $Id: ExprFuncNode.h 21277 2012-10-31 16:07:31Z gervandiepen $
27 
28 #ifndef TABLES_EXPRFUNCNODE_H
29 #define TABLES_EXPRFUNCNODE_H
30 
31 //# Includes
32 #include <casacore/casa/aips.h>
33 #include <casacore/tables/TaQL/ExprNodeRep.h>
34 #include <casacore/casa/Quanta/MVAngle.h>
35 
36 namespace casacore { //# NAMESPACE CASACORE - BEGIN
37 
38 //# Forward Declarations
39 class TableExprNodeSet;
40 
41 
42 // <summary>
43 // Class representing a function in table select expression
44 // </summary>
45 
46 // <use visibility=local>
47 
48 // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
49 // </reviewed>
50 // <prerequisite>
51 //# Classes you should understand before using this one.
52 // <li> <linkto class=TableExprNodeMulti>TableExprNodeMulti</linkto>
53 // </prerequisite>
54 
55 // <synopsis>
56 // This class represents a function in a table select tree.
57 // The <src>rownumber</src> function is represented by class
58 // <linkto class=TableExprNodeRownr>TableExprNodeRownr</linkto>.
59 // The <src>rowid</src> function is represented by class
60 // <linkto class=TableExprNodeRowid>TableExprNodeRowid</linkto>.
61 // The <src>rand</src> function is represented by class
62 // <linkto class=TableExprNodeRandom>TableExprNodeRandom</linkto>.
63 // <p>
64 // When one wants to add a function to the table selection grammar,
65 // the following has to be done:
66 // <ul>
67 // <li> Add the function to the enum below.
68 // <li> Implement the function in the get functions in ExprFuncNode(Array).cc.
69 // <li> Implement the function in the checkOperands in ExprFuncNode.cc.
70 // <li> Declare and define the function in ExprNode.h (for C++ binding).
71 // <li> Add the function to findFunc in TableParse.cc (for TaQL).
72 // </ul>
73 // </synopsis>
74 
75 
77 {
78 public:
79  //# Define the function types.
80  enum FunctionType {
81  piFUNC, //# 0
82  eFUNC, //# 1
83  cFUNC, //# 2
84  // for Int, or Double or Complex returning Bool
85  // (2 is with default tolerance)
86  near2FUNC, //# 3
87  near3FUNC, //# 4
88  nearabs2FUNC, //# 5
89  nearabs3FUNC, //# 6
90  // for Int, Double or DComplex returning Double or Complex
91  sinFUNC, //# 7
92  sinhFUNC, //# 8
93  cosFUNC, //# 9
94  coshFUNC, //# 10
95  expFUNC, //# 11
96  logFUNC, //# 12
97  log10FUNC, //# 13
98  sqrtFUNC, //# 14
99  powFUNC, //# 15
100  conjFUNC, //# 16
101  // for Int, Double or DComplex returning Int, Double or Complex
102  squareFUNC, //# 17
103  cubeFUNC, //# 18
104  minFUNC, //# 19
105  maxFUNC, //# 20
106  // for Int, Double or DComplex returning Int or Double
107  normFUNC, //# 21
108  absFUNC, //# 22
109  // for Int, Double or DComplex returning Double
110  argFUNC, //# 23
111  // for Int, Double, DComplex, Bool or String returning Double
112  realFUNC, //# 24
113  // for Double or DComplex returning Double
114  imagFUNC, //# 25
115  // for Int, Double, Bool or String returning Int (using floor)
116  intFUNC, //# 26
117  // for Int, Double or Complex returning Double or Complex
118  asinFUNC, //# 27
119  acosFUNC, //# 28
120  atanFUNC, //# 29
121  atan2FUNC, //# 30
122  tanFUNC, //# 31
123  tanhFUNC, //# 32
124  // for Int or Double returning Int or Double
125  signFUNC, //# 33
126  roundFUNC, //# 34
127  floorFUNC, //# 35
128  ceilFUNC, //# 36
129  fmodFUNC, //# 37
130  // for DComplex or String returning DComplex
131  complexFUNC, //# 38
132  // for Int, Double or Complex array returning the same
133  arrsumFUNC, //# 39
134  arrsumsFUNC, //# 40
135  runsumFUNC, //# 41
136  boxsumFUNC, //# 42
145  // for Int or Double array returning Int or Double
146  arrminFUNC, //# 51
147  arrminsFUNC, //# 52
148  runminFUNC, //# 53
149  boxminFUNC, //# 54
150  arrmaxFUNC, //# 55
151  arrmaxsFUNC, //# 56
152  runmaxFUNC, //# 57
153  boxmaxFUNC, //# 58
154  // for Int or Double array returning Double
155  arrmeanFUNC, //# 59
156  arrmeansFUNC, //# 60
157  runmeanFUNC, //# 61
158  boxmeanFUNC, //# 62
175  arravdevFUNC, //# 79
177  runavdevFUNC, //# 81
178  boxavdevFUNC, //# 82
179  arrrmsFUNC, //# 83
180  arrrmssFUNC, //# 84
181  runrmsFUNC, //# 85
182  boxrmsFUNC, //# 86
191  // for Bool array returning Bool
192  arranyFUNC, //# 95
193  arranysFUNC, //# 96
194  runanyFUNC, //# 97
195  boxanyFUNC, //# 98
196  arrallFUNC, //# 99
197  arrallsFUNC, //# 100
198  runallFUNC, //# 101
199  boxallFUNC, //# 102
200  // for Bool array returning Int scalar
201  arrntrueFUNC, //# 103
202  arrntruesFUNC, //# 104
203  runntrueFUNC, //# 105
204  boxntrueFUNC, //# 106
205  arrnfalseFUNC, //# 107
206  arrnfalsesFUNC, //# 108
207  runnfalseFUNC, //# 109
208  boxnfalseFUNC, //# 110
209  // for any type returning array of that type
210  arrayFUNC, //# 111
211  transposeFUNC, //# 112
212  areverseFUNC, //# 113
213  resizeFUNC, //# 114
214  diagonalFUNC, //# 115
215  // for Int, Double or DComplex array returning Bool
216  isnanFUNC, //# 116
217  isinfFUNC, //# 117
218  isfiniteFUNC, //# 118
219  // for any array returning Bool scalar
220  isdefFUNC, //# 119
221  isnullFUNC, //# 120
222  iscolFUNC, //# 121
223  iskeyFUNC, //# 122
224  // for any array returning Int scalar
225  ndimFUNC, //# 123
226  nelemFUNC, //# 124
227  // for any array returning Int array
228  shapeFUNC, //# 125
229  // for String
230  strlengthFUNC, //# 126 returning Int
231  upcaseFUNC, //# 127 returning String
232  downcaseFUNC, //# 128 returning String
233  capitalizeFUNC, //# 129 returning String
234  sreverseFUNC, //# 130
235  trimFUNC, //# 131 returning String
236  ltrimFUNC, //# 132 returning String
237  rtrimFUNC, //# 133 returning String
238  substrFUNC, //# 134 returning String
239  replaceFUNC, //# 135 returning String
240  regexFUNC, //# 136 returning TaqlRegex
241  patternFUNC, //# 137 returning TaqlRegex
242  sqlpatternFUNC, //# 138 returning TaqlRegex
243  // for Date
244  datetimeFUNC, //# 139 returning Date
245  mjdtodateFUNC, //# 140 returning Date
246  mjdFUNC, //# 141 returning Double
247  dateFUNC, //# 142 returning Date
248  timeFUNC, //# 143 returning Double (in radians)
249  yearFUNC, //# 144 returning Int
250  monthFUNC, //# 145 returning Int
251  dayFUNC, //# 146 returning Int
252  cmonthFUNC, //# 147 returning String
253  weekdayFUNC, //# 148 returning Int
254  cdowFUNC, //# 149 returning String
255  weekFUNC, //# 150 returning Int
256  ctodFUNC, //# 151 returning String
257  cdateFUNC, //# 152 returning String
258  ctimeFUNC, //# 153 returning String
259  // return values as strings
260  stringFUNC, //# 154
261  // return angles as hms strings
262  hmsFUNC, //# 155
263  // return angles as dms strings
264  dmsFUNC, //# 156
265  // return angles as hms/dms strings
266  hdmsFUNC, //# 157
267  // special function returning a random Double number
268  randFUNC, //# 158
269  // special function returning Int row number
270  rownrFUNC, //# 159
271  // special function returning Int row id (meant for GIVING)
272  rowidFUNC, //# 160
273  // special function resembling if statement
274  iifFUNC, //# 161
275  // angular distance returning radians
276  angdistFUNC, //# 162
277  angdistxFUNC, //# 163
278  // cone search functions, implemented in derived class
279  conesFUNC, //# 164
280  cones3FUNC, //# 165
281  anyconeFUNC, //# 166
282  anycone3FUNC, //# 167
283  findconeFUNC, //# 168
284  findcone3FUNC, //# 169
285  // normalize angle between -pi and pi
286  normangleFUNC, //# 170
287  // for Int, Double, Complex or String returning Bool
288  boolFUNC, //# 171
289  // masked array functions
290  nullarrayFUNC, //# 172
291  marrayFUNC, //# 173
292  arrdataFUNC, //# 174
293  arrmaskFUNC, //# 175
294  negatemaskFUNC, //# 176
295  replmaskedFUNC, //# 177
297  arrflatFUNC, //# 179
298  //# AGGREGATE functions must be the last ones.
299  FirstAggrFunc, //# 180
304  //# Grouping doing aggregation on the fly; reducing to a scalar per group
305  gminFUNC, //# 184
320  //# Grouping doing aggregation on the fly; reducing to an array per group
339  //# Grouping requiring aggregation of rows when getting result
340  gaggrFUNC, //# 215
344  gexpridFUNC, //# special function (can be inserted by TableParse)
345  NRFUNC //# 220 should be last
346  };
347 
348  // Constructor
350  const TableExprNodeSet& source,
351  const vector<TENShPtr>& nodes,
352  const Block<Int>& dtypeOper,
353  const Table& = Table());
354 
355  // Destructor
357 
358  // 'get' Functions to get the desired result of a function
359  // <group>
360  Bool getBool (const TableExprId& id);
361  Int64 getInt (const TableExprId& id);
362  Double getDouble (const TableExprId& id);
363  DComplex getDComplex (const TableExprId& id);
364  String getString (const TableExprId& id);
365  TaqlRegex getRegex (const TableExprId& id);
366  MVTime getDate (const TableExprId& id);
367  // </group>
368 
369  // Check the data and value types of the operands.
370  // It sets the exptected data and value types of the operands.
371  // Set the value type of the function result and returns
372  // the data type of the function result.
373  static NodeDataType checkOperands (Block<Int>& dtypeOper,
374  ValueType& resVT,
375  Block<Int>& vtypeOper,
376  FunctionType,
377  std::vector<TENShPtr>&);
378 
379  // Fill the result unit in the node.
380  // Adapt the children nodes if their units need to be converted.
381  // It returns a possible scale factor in case result unit is SI (for sqrt).
382  void fillUnits();
383 
384  // Link the children to the node and convert the children
385  // to constants if possible.
386  void fillChildNodes (const vector<TENShPtr>& nodes,
387  const Block<Int>& dtypeOper);
388 
389  // Get possible unit scale factor (needed for sqrt).
390  Double getScale() const
391  { return scale_p; }
392 
393  // Some functions to be used by TableExprNodeFuncArray.
394  // <group>
395  const std::vector<TENShPtr>& operands() const
396  { return operands_p; }
397  std::vector<TENShPtr>& rwOperands()
398  { return operands_p; }
400  { return funcType_p; }
402  { return argDataType_p; }
403  // </group>
404 
405  // Get the possible print format, width, and/or precision.
406  static void getPrintFormat (String& fmt, Int& width, Int& prec,
407  const std::vector<TENShPtr>& operands,
408  const TableExprId& id);
409 
410  // Convert the date and/or time to a string.
411  // <group>
412  static String stringDT (const MVTime& dt, Int prec, MVTime::formatTypes);
413  static String stringDateTime (const MVTime& dt, Int prec);
414  static String stringDate (const MVTime& dt);
415  static String stringTime (const MVTime& dt, Int prec);
416  // </group>
417 
418  // Convert a value to a string.
419  // If <src>fmt</src> is empty, ostringstream is used.
420  // Otherwise the printf-like format is used.
421  // If possible, a double value is converted to radians if formatted as angle.
422  // <group>
423  static String stringValue (Bool val, const String& fmt, Int width);
424  static String stringValue (Int64 val, const String& fmt, Int width);
425  static String stringValue (Double val, const String& fmt,
426  Int width, Int prec,
427  const std::pair<int,int>& mvFormat,
428  const Unit& unit);
429  static String stringValue (const DComplex& val, const String& fmt,
430  Int width, Int prec);
431  static String stringValue (const String& val, const String& fmt,
432  Int width);
433  static String stringValue (const MVTime& val, const String& fmt,
434  Int width,
435  const std::pair<int,int>& mvFormat);
436 
437  // Convert angle to a string (hms or dms).
438  // <group>
439  static String stringAngle (double val, Int prec,
440  MVAngle::formatTypes type);
441  static String stringHMS (double val, Int prec);
442  static String stringDMS (double val, Int prec);
443  // </group>
444 
445  // Get the MVTime/Angle format and optional precision.
446  // 0,0 is returned if empty or unknown format.
447  static std::pair<int,int> getMVFormat (const String& fmt);
448 
449  // Get the angular distance between two positions on a sphere.
450  static double angdist (double ra1, double dec1, double ra2, double dec2)
451  { return acos (sin(dec1)*sin(dec2) + cos(dec1)*cos(dec2)*cos(ra1-ra2)); }
452 
453  // Read a string as an integer, double, complex or bool.
454  static Int64 string2Int (const String&);
455  static Double string2Real (const String&);
456  static DComplex string2Complex (const String&);
457  static Bool string2Bool (const String&);
458 
459 private:
460  // Try if the function gives a constant result.
461  // If so, set the expression type to Constant.
462  void tryToConst();
463 
464  // Make the units of nodes from <src>starg</src> till <src>endarg</src>
465  // equal. Return the unit found.
466  static const Unit& makeEqualUnits (std::vector<TENShPtr>& nodes,
467  uInt starg, uInt endarg);
468 
469  //# Data members.
470  FunctionType funcType_p; // which function
471  NodeDataType argDataType_p; // common argument data type
472  Double scale_p; // possible scaling for unit conversion
473  // (needed for sqrt)
474  Table table_p; // table (for iscolumn and iskeyword)
475 };
476 
477 
478 } //# NAMESPACE CASACORE - END
479 
480 #endif
casacore::TableExprFuncNode::arrntruesFUNC
Definition: ExprFuncNode.h:202
casacore::TableExprFuncNode::arrmediansFUNC
Definition: ExprFuncNode.h:184
casacore::TableExprFuncNode::dayFUNC
Definition: ExprFuncNode.h:251
casacore::TableExprFuncNode::arrmeanFUNC
for Int or Double array returning Double
Definition: ExprFuncNode.h:155
casacore::TableExprFuncNode::weekdayFUNC
Definition: ExprFuncNode.h:253
casacore::TableExprFuncNode::boxanyFUNC
Definition: ExprFuncNode.h:195
casacore::TableExprFuncNode::grmsFUNC
Definition: ExprFuncNode.h:315
casacore::TableExprFuncNode::gstddev0FUNC
Definition: ExprFuncNode.h:313
casacore::acos
LatticeExprNode acos(const LatticeExprNode &expr)
casacore::TableExprFuncNode::tanFUNC
Definition: ExprFuncNode.h:122
casacore::TableExprFuncNode::TableExprFuncNode
TableExprFuncNode(FunctionType, NodeDataType, ValueType, const TableExprNodeSet &source, const vector< TENShPtr > &nodes, const Block< Int > &dtypeOper, const Table &=Table())
Constructor.
casacore::TableExprFuncNode::gntruesFUNC
Definition: ExprFuncNode.h:335
casacore::TableExprFuncNode::boxstddev0FUNC
Definition: ExprFuncNode.h:170
casacore::TableExprFuncNode::arranyFUNC
for Bool array returning Bool
Definition: ExprFuncNode.h:192
casacore::TableExprFuncNode::gmedianFUNC
Definition: ExprFuncNode.h:342
casacore::TableExprFuncNode::anycone3FUNC
Definition: ExprFuncNode.h:282
casacore::TableExprNodeMulti::operands_p
std::vector< TENShPtr > operands_p
Definition: ExprNodeRep.h:698
casacore::TableExprFuncNode::arrfractileFUNC
Definition: ExprFuncNode.h:187
casacore::TableExprNodeRep::ValueType
ValueType
Define the value types.
Definition: ExprNodeRep.h:176
casacore::TableExprFuncNode::floorFUNC
Definition: ExprFuncNode.h:127
casacore::TableExprFuncNode::runminFUNC
Definition: ExprFuncNode.h:148
casacore::TableExprFuncNode::marrayFUNC
Definition: ExprFuncNode.h:291
casacore::TableExprFuncNode::mjdFUNC
Definition: ExprFuncNode.h:246
casacore::TableExprFuncNode::logFUNC
Definition: ExprFuncNode.h:96
casacore::TableExprFuncNode::fmodFUNC
Definition: ExprFuncNode.h:129
casacore::TableExprFuncNode::runmedianFUNC
Definition: ExprFuncNode.h:185
casacore::TableExprFuncNode::getScale
Double getScale() const
Get possible unit scale factor (needed for sqrt).
Definition: ExprFuncNode.h:390
casacore::TableExprFuncNode::conjFUNC
Definition: ExprFuncNode.h:100
casacore::TableExprFuncNode::FirstAggrArrayFunc
Definition: ExprFuncNode.h:321
casacore::TableExprFuncNode::powFUNC
Definition: ExprFuncNode.h:99
casacore::TableExprFuncNode::monthFUNC
Definition: ExprFuncNode.h:250
casacore::TableExprFuncNode::intFUNC
for Int, Double, Bool or String returning Int (using floor)
Definition: ExprFuncNode.h:116
casacore::TableExprFuncNode::gsumsqrsFUNC
Definition: ExprFuncNode.h:326
casacore::TableExprFuncNode::ctimeFUNC
Definition: ExprFuncNode.h:258
casacore::TableExprFuncNode::regexFUNC
Definition: ExprFuncNode.h:240
casacore::TableExprFuncNode::rowidFUNC
special function returning Int row id (meant for GIVING)
Definition: ExprFuncNode.h:272
casacore::TableExprFuncNode::arrfractilesFUNC
Definition: ExprFuncNode.h:188
casacore::TableExprFuncNode::getDate
MVTime getDate(const TableExprId &id)
casacore::TableExprFuncNode::gfirstFUNC
Definition: ExprFuncNode.h:302
casacore::TableExprFuncNode::datetimeFUNC
for Date
Definition: ExprFuncNode.h:244
casacore::TableExprFuncNode::boxvariance0FUNC
Definition: ExprFuncNode.h:162
casacore::TableExprFuncNode::runsumsqrFUNC
Definition: ExprFuncNode.h:143
Complexfwd_global_functions_Complexfwd::casacore::DComplex
std::complex< Double > DComplex
Definition: Complexfwd.h:50
casacore::MVTime
Class to handle date/time type conversions and I/O.
Definition: MVTime.h:269
casacore::TableExprFuncNode::capitalizeFUNC
Definition: ExprFuncNode.h:233
casacore::TableExprFuncNode::angdist
static double angdist(double ra1, double dec1, double ra2, double dec2)
Get the angular distance between two positions on a sphere.
Definition: ExprFuncNode.h:450
casacore::TableExprFuncNode::arravdevFUNC
Definition: ExprFuncNode.h:175
casacore::TableExprFuncNode::strlengthFUNC
for String
Definition: ExprFuncNode.h:230
casacore::TableExprFuncNode::stringFUNC
return values as strings
Definition: ExprFuncNode.h:260
casacore::TableExprFuncNode::piFUNC
Definition: ExprFuncNode.h:81
casacore::TableExprFuncNode::stringDateTime
static String stringDateTime(const MVTime &dt, Int prec)
casacore::TableExprFuncNode::boxntrueFUNC
Definition: ExprFuncNode.h:204
casacore::TableExprFuncNode::gcountFUNC
Definition: ExprFuncNode.h:301
casacore::MVAngle::formatTypes
formatTypes
Format types.
Definition: MVAngle.h:251
casacore::TableExprFuncNode::arrrmsFUNC
Definition: ExprFuncNode.h:179
casacore::TableExprFuncNode::rtrimFUNC
Definition: ExprFuncNode.h:237
casacore::TableExprFuncNode::replaceFUNC
Definition: ExprFuncNode.h:239
casacore::TableExprFuncNode::stringDMS
static String stringDMS(double val, Int prec)
casacore::TableExprFuncNode::downcaseFUNC
Definition: ExprFuncNode.h:232
casacore::TableExprFuncNode::arrmaxFUNC
Definition: ExprFuncNode.h:150
casacore::TableExprFuncNode::rwOperands
std::vector< TENShPtr > & rwOperands()
Definition: ExprFuncNode.h:397
casacore::TableExprFuncNode::roundFUNC
Definition: ExprFuncNode.h:126
casacore::TableExprFuncNode::NRFUNC
Definition: ExprFuncNode.h:345
casacore::TableExprFuncNode::findconeFUNC
Definition: ExprFuncNode.h:283
casacore::TableExprFuncNode::string2Bool
static Bool string2Bool(const String &)
casacore::TableExprFuncNode::conesFUNC
cone search functions, implemented in derived class
Definition: ExprFuncNode.h:279
casacore::TableExprFuncNode::absFUNC
Definition: ExprFuncNode.h:108
casacore::TableExprFuncNode::maxFUNC
Definition: ExprFuncNode.h:105
casacore::TableExprFuncNode::getInt
Int64 getInt(const TableExprId &id)
casacore::TableExprFuncNode::arrvariances0FUNC
Definition: ExprFuncNode.h:160
casacore::TableExprFuncNode::runsumFUNC
Definition: ExprFuncNode.h:135
casacore::TableExprFuncNode::runvariance1FUNC
Definition: ExprFuncNode.h:165
casacore::TableExprFuncNode::argFUNC
for Int, Double or DComplex returning Double
Definition: ExprFuncNode.h:110
casacore::TableExprFuncNode::gmaxsFUNC
Definition: ExprFuncNode.h:323
casacore::TableExprFuncNode::boxsumFUNC
Definition: ExprFuncNode.h:136
casacore::TableExprFuncNode::arrmaxsFUNC
Definition: ExprFuncNode.h:151
casacore::TableExprFuncNode::imagFUNC
for Double or DComplex returning Double
Definition: ExprFuncNode.h:114
casacore::TableExprFuncNode::gvariances1FUNC
Definition: ExprFuncNode.h:329
casacore::TableExprFuncNode::arrsumsFUNC
Definition: ExprFuncNode.h:134
casacore::TableExprFuncNode::runrmsFUNC
Definition: ExprFuncNode.h:181
casacore::TableExprFuncNode::gsumFUNC
Definition: ExprFuncNode.h:307
casacore::TableExprFuncNode::angdistxFUNC
Definition: ExprFuncNode.h:277
casacore::TableExprFuncNode::getString
String getString(const TableExprId &id)
casacore::TableExprFuncNode::boxstddev1FUNC
Definition: ExprFuncNode.h:174
casacore::TableExprFuncNode::cosFUNC
Definition: ExprFuncNode.h:93
casacore::TableExprFuncNode::shapeFUNC
for any array returning Int array
Definition: ExprFuncNode.h:228
casacore::TableExprFuncNode::cdowFUNC
Definition: ExprFuncNode.h:254
casacore::TableExprFuncNode::operands
const std::vector< TENShPtr > & operands() const
Some functions to be used by TableExprNodeFuncArray.
Definition: ExprFuncNode.h:395
casacore::TableExprFuncNode::boxfractileFUNC
Definition: ExprFuncNode.h:190
casacore::TableExprNodeRep::unit
const Unit & unit() const
Get the unit.
Definition: ExprNodeRep.h:731
casacore::TableExprFuncNode::fillUnits
void fillUnits()
Fill the result unit in the node.
casacore::TableExprFuncNode::boolFUNC
for Int, Double, Complex or String returning Bool
Definition: ExprFuncNode.h:288
casacore::TableExprFuncNode::cFUNC
Definition: ExprFuncNode.h:83
casacore::TableExprFuncNode::boxnfalseFUNC
Definition: ExprFuncNode.h:208
casacore::TableExprFuncNode::getDComplex
DComplex getDComplex(const TableExprId &id)
casacore::TableExprFuncNode::rownrFUNC
special function returning Int row number
Definition: ExprFuncNode.h:270
casacore::TableExprFuncNode::arrayFUNC
for any type returning array of that type
Definition: ExprFuncNode.h:210
casacore::TableExprFuncNode::ltrimFUNC
Definition: ExprFuncNode.h:236
casacore::TableExprFuncNode::mjdtodateFUNC
Definition: ExprFuncNode.h:245
casacore::TableExprFuncNode::gminsFUNC
Definition: ExprFuncNode.h:322
casacore::TableExprFuncNode::growidFUNC
Definition: ExprFuncNode.h:341
casacore::TableExprFuncNode::stringTime
static String stringTime(const MVTime &dt, Int prec)
casacore::TableExprFuncNode::FirstAggrFunc
Definition: ExprFuncNode.h:299
casacore::TableExprFuncNode::arrstddev0FUNC
Definition: ExprFuncNode.h:167
casacore::TableExprFuncNode::realFUNC
for Int, Double, DComplex, Bool or String returning Double
Definition: ExprFuncNode.h:112
casacore::TableExprFuncNode
Class representing a function in table select expression.
Definition: ExprFuncNode.h:76
casacore::TableExprFuncNode::cdateFUNC
Definition: ExprFuncNode.h:257
casacore::TableExprFuncNode::nelemFUNC
Definition: ExprFuncNode.h:226
casacore::TableExprFuncNode::isinfFUNC
Definition: ExprFuncNode.h:217
casacore::TableExprFuncNode::gnfalsesFUNC
Definition: ExprFuncNode.h:336
casacore::TableExprFuncNode::squareFUNC
for Int, Double or DComplex returning Int, Double or Complex
Definition: ExprFuncNode.h:102
casacore::TableExprFuncNode::countallFUNC
Definition: ExprFuncNode.h:300
casacore::TableExprFuncNode::sinhFUNC
Definition: ExprFuncNode.h:92
casacore::TableExprFuncNode::near2FUNC
for Int, or Double or Complex returning Bool (2 is with default tolerance)
Definition: ExprFuncNode.h:86
casacore::TableExprFuncNode::arrntrueFUNC
for Bool array returning Int scalar
Definition: ExprFuncNode.h:201
casacore::TableExprFuncNode::near3FUNC
Definition: ExprFuncNode.h:87
casacore::TableExprFuncNode::diagonalFUNC
Definition: ExprFuncNode.h:214
casacore::TableExprFuncNode::iifFUNC
special function resembling if statement
Definition: ExprFuncNode.h:274
casacore::TableExprFuncNode::getRegex
TaqlRegex getRegex(const TableExprId &id)
casacore::TableExprFuncNode::gstddevs0FUNC
Definition: ExprFuncNode.h:330
casacore::TableExprFuncNode::gsumsFUNC
Definition: ExprFuncNode.h:324
casacore::TableExprFuncNode::arrmeansFUNC
Definition: ExprFuncNode.h:156
casacore::TableExprFuncNode::funcType
FunctionType funcType() const
Definition: ExprFuncNode.h:399
casacore::TableExprFuncNode::dateFUNC
Definition: ExprFuncNode.h:247
casacore::TableExprFuncNode::acosFUNC
Definition: ExprFuncNode.h:119
casacore::TableExprFuncNode::gnfalseFUNC
Definition: ExprFuncNode.h:319
casacore::TableExprFuncNode::getDouble
Double getDouble(const TableExprId &id)
casacore::cos
LatticeExprNode cos(const LatticeExprNode &expr)
casacore::TableExprFuncNode::nearabs3FUNC
Definition: ExprFuncNode.h:89
casacore::TableExprFuncNode::gallFUNC
Definition: ExprFuncNode.h:317
casacore::TableExprFuncNode::boxproductFUNC
Definition: ExprFuncNode.h:140
casacore::Table
Main interface class to a read/write table.
Definition: Table.h:153
casacore::MVTime::formatTypes
formatTypes
Format types.
Definition: MVTime.h:275
casacore::TableExprFuncNode::arrnfalseFUNC
Definition: ExprFuncNode.h:205
casacore::TableExprFuncNode::glastFUNC
Definition: ExprFuncNode.h:303
casacore::TableExprFuncNode::makeEqualUnits
static const Unit & makeEqualUnits(std::vector< TENShPtr > &nodes, uInt starg, uInt endarg)
Make the units of nodes from starg till endarg equal.
casacore::TableExprFuncNode::asinFUNC
for Int, Double or Complex returning Double or Complex
Definition: ExprFuncNode.h:118
casacore::Double
double Double
Definition: aipstype.h:55
casacore::TableExprFuncNode::tryToConst
void tryToConst()
Try if the function gives a constant result.
casacore::TableExprFuncNode::runntrueFUNC
Definition: ExprFuncNode.h:203
casacore::TableExprFuncNode::resizeFUNC
Definition: ExprFuncNode.h:213
casacore::TableExprFuncNode::signFUNC
for Int or Double returning Int or Double
Definition: ExprFuncNode.h:125
casacore::TableExprFuncNode::arrvariance0FUNC
Definition: ExprFuncNode.h:159
casacore::TableExprFuncNode::atan2FUNC
Definition: ExprFuncNode.h:121
casacore::TableExprFuncNode::complexFUNC
for DComplex or String returning DComplex
Definition: ExprFuncNode.h:131
casacore::TableExprFuncNode::arrdataFUNC
Definition: ExprFuncNode.h:292
casacore::TableExprFuncNode::arrsumsqrsFUNC
Definition: ExprFuncNode.h:142
casacore::TableExprFuncNode::sreverseFUNC
Definition: ExprFuncNode.h:234
casacore::uInt
unsigned int uInt
Definition: aipstype.h:51
casacore::TableExprFuncNode::arrmaskFUNC
Definition: ExprFuncNode.h:293
casacore::TableExprFuncNode::arranysFUNC
Definition: ExprFuncNode.h:193
casacore::sin
LatticeExprNode sin(const LatticeExprNode &expr)
Numerical 1-argument functions.
casacore::TableExprFuncNode::arrproductFUNC
Definition: ExprFuncNode.h:137
casacore::TableExprFuncNode::arrvariance1FUNC
Definition: ExprFuncNode.h:163
casacore::TableExprFuncNode::trimFUNC
Definition: ExprFuncNode.h:235
casacore::TableExprFuncNode::arrminFUNC
for Int or Double array returning Int or Double
Definition: ExprFuncNode.h:146
casacore::TableExprFuncNode::gproductsFUNC
Definition: ExprFuncNode.h:325
casacore::TableExprFuncNode::transposeFUNC
Definition: ExprFuncNode.h:211
casacore::TableExprFuncNode::angdistFUNC
angular distance returning radians
Definition: ExprFuncNode.h:276
casacore::TableExprFuncNode::getBool
Bool getBool(const TableExprId &id)
'get' Functions to get the desired result of a function
casacore::TableExprFuncNode::runnfalseFUNC
Definition: ExprFuncNode.h:207
casacore::TableExprFuncNode::cones3FUNC
Definition: ExprFuncNode.h:280
casacore::TableExprFuncNode::runmaxFUNC
Definition: ExprFuncNode.h:152
casacore::TableExprFuncNode::arrstddev1FUNC
Definition: ExprFuncNode.h:171
casacore::TableExprFuncNode::string2Complex
static DComplex string2Complex(const String &)
casacore::TableExprFuncNode::stringHMS
static String stringHMS(double val, Int prec)
casacore::TableExprFuncNode::arrsumFUNC
for Int, Double or Complex array returning the same
Definition: ExprFuncNode.h:133
casacore::TableExprFuncNode::atanFUNC
Definition: ExprFuncNode.h:120
casacore::TableExprFuncNode::boxminFUNC
Definition: ExprFuncNode.h:149
casacore::TableExprFuncNode::arrproductsFUNC
Definition: ExprFuncNode.h:138
casacore::TableExprFuncNode::gaggrFUNC
Definition: ExprFuncNode.h:340
casacore::TableExprFuncNode::arrmedianFUNC
Definition: ExprFuncNode.h:183
casacore::TableExprFuncNode::gmeanFUNC
Definition: ExprFuncNode.h:310
casacore::TableExprFuncNode::boxmeanFUNC
Definition: ExprFuncNode.h:158
casacore::TableExprFuncNode::gvariance0FUNC
Definition: ExprFuncNode.h:311
casacore::TableExprFuncNode::boxrmsFUNC
Definition: ExprFuncNode.h:182
casacore::Int
int Int
Definition: aipstype.h:50
casacore::TableExprFuncNode::boxvariance1FUNC
Definition: ExprFuncNode.h:166
casacore
this file contains all the compiler specific defines
Definition: mainpage.dox:28
casacore::TableExprFuncNode::patternFUNC
Definition: ExprFuncNode.h:241
casacore::TableExprFuncNode::runproductFUNC
Definition: ExprFuncNode.h:139
casacore::TableExprFuncNode::FunctionType
FunctionType
Definition: ExprFuncNode.h:80
casacore::TableExprFuncNode::gsumsqrFUNC
Definition: ExprFuncNode.h:309
casacore::TableExprFuncNode::arrstddevs1FUNC
Definition: ExprFuncNode.h:172
casacore::TableExprFuncNode::hmsFUNC
return angles as hms strings
Definition: ExprFuncNode.h:262
casacore::TableExprFuncNode::cubeFUNC
Definition: ExprFuncNode.h:103
casacore::TableExprFuncNode::string2Real
static Double string2Real(const String &)
casacore::TableExprFuncNode::stringValue
static String stringValue(Bool val, const String &fmt, Int width)
Convert a value to a string.
casacore::TableExprFuncNode::gntrueFUNC
Definition: ExprFuncNode.h:318
casacore::TableExprId
The identification of a TaQL selection subject.
Definition: TableExprId.h:97
casacore::TableExprFuncNode::arravdevsFUNC
Definition: ExprFuncNode.h:176
casacore::TableExprNodeSet
Class to hold multiple table expression nodes.
Definition: ExprNodeSet.h:311
casacore::TableExprFuncNode::cmonthFUNC
Definition: ExprFuncNode.h:252
casacore::TableExprFuncNode::nullarrayFUNC
masked array functions
Definition: ExprFuncNode.h:290
casacore::TableExprFuncNode::boxsumsqrFUNC
Definition: ExprFuncNode.h:144
casacore::TableExprFuncNode::getMVFormat
static std::pair< int, int > getMVFormat(const String &fmt)
Get the MVTime/Angle format and optional precision.
casacore::TableExprFuncNode::gminFUNC
Definition: ExprFuncNode.h:305
casacore::TableExprFuncNode::upcaseFUNC
Definition: ExprFuncNode.h:231
casacore::TableExprFuncNode::runavdevFUNC
Definition: ExprFuncNode.h:177
casacore::TableExprFuncNode::argDataType_p
NodeDataType argDataType_p
Definition: ExprFuncNode.h:471
casacore::TableExprFuncNode::gvariances0FUNC
Definition: ExprFuncNode.h:328
casacore::TableExprFuncNode::normangleFUNC
normalize angle between -pi and pi
Definition: ExprFuncNode.h:286
casacore::TableExprFuncNode::log10FUNC
Definition: ExprFuncNode.h:97
casacore::TableExprFuncNode::arrstddevs0FUNC
Definition: ExprFuncNode.h:168
casacore::TableExprFuncNode::stringAngle
static String stringAngle(double val, Int prec, MVAngle::formatTypes type)
Convert angle to a string (hms or dms).
casacore::TableExprFuncNode::weekFUNC
Definition: ExprFuncNode.h:255
casacore::TableExprFuncNode::gstddevs1FUNC
Definition: ExprFuncNode.h:331
casacore::TableExprFuncNode::isnanFUNC
for Int, Double or DComplex array returning Bool
Definition: ExprFuncNode.h:216
casacore::TableExprFuncNode::ctodFUNC
Definition: ExprFuncNode.h:256
casacore::TableExprFuncNode::negatemaskFUNC
Definition: ExprFuncNode.h:294
casacore::TableExprFuncNode::areverseFUNC
Definition: ExprFuncNode.h:212
casacore::TableExprFuncNode::coshFUNC
Definition: ExprFuncNode.h:94
casacore::TableExprFuncNode::argDataType
NodeDataType argDataType() const
Definition: ExprFuncNode.h:401
casacore::TableExprFuncNode::table_p
Table table_p
(needed for sqrt)
Definition: ExprFuncNode.h:474
casacore::TableExprFuncNode::sqrtFUNC
Definition: ExprFuncNode.h:98
casacore::TableExprFuncNode::findcone3FUNC
Definition: ExprFuncNode.h:284
casacore::TableExprFuncNode::boxallFUNC
Definition: ExprFuncNode.h:199
casacore::TableExprFuncNode::ndimFUNC
for any array returning Int scalar
Definition: ExprFuncNode.h:225
casacore::TableExprFuncNode::randFUNC
special function returning a random Double number
Definition: ExprFuncNode.h:268
casacore::TableExprFuncNode::isfiniteFUNC
Definition: ExprFuncNode.h:218
casacore::TableExprFuncNode::boxavdevFUNC
Definition: ExprFuncNode.h:178
casacore::TableExprFuncNode::boxmaxFUNC
Definition: ExprFuncNode.h:153
casacore::TableExprFuncNode::ceilFUNC
Definition: ExprFuncNode.h:128
casacore::TableExprFuncNode::arrsumsqrFUNC
Definition: ExprFuncNode.h:141
casacore::TableExprFuncNode::string2Int
static Int64 string2Int(const String &)
Read a string as an integer, double, complex or bool.
casacore::TableExprNodeRep::NodeDataType
NodeDataType
Define the data types of a node.
Definition: ExprNodeRep.h:161
casacore::TableExprFuncNode::runmeanFUNC
Definition: ExprFuncNode.h:157
casacore::TableExprFuncNode::sinFUNC
for Int, Double or DComplex returning Double or Complex
Definition: ExprFuncNode.h:91
casacore::Int64
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
Definition: aipsxtype.h:38
casacore::TableExprFuncNode::arrvariances1FUNC
Definition: ExprFuncNode.h:164
casacore::TableExprFuncNode::runfractileFUNC
Definition: ExprFuncNode.h:189
casacore::TableExprFuncNode::arrflatFUNC
Definition: ExprFuncNode.h:297
casacore::TableExprFuncNode::normFUNC
for Int, Double or DComplex returning Int or Double
Definition: ExprFuncNode.h:107
casacore::TableExprFuncNode::scale_p
Double scale_p
Definition: ExprFuncNode.h:472
casacore::TableExprFuncNode::gstddev1FUNC
Definition: ExprFuncNode.h:314
casacore::TableExprFuncNode::stringDT
static String stringDT(const MVTime &dt, Int prec, MVTime::formatTypes)
Convert the date and/or time to a string.
casacore::TableExprFuncNode::runvariance0FUNC
Definition: ExprFuncNode.h:161
casacore::String
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::TableExprFuncNode::substrFUNC
Definition: ExprFuncNode.h:238
casacore::TableExprFuncNode::funcType_p
FunctionType funcType_p
Definition: ExprFuncNode.h:470
casacore::TableExprFuncNode::~TableExprFuncNode
~TableExprFuncNode()
Destructor.
casacore::Bool
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::Block< Int >
casacore::TableExprFuncNode::gmeansFUNC
Definition: ExprFuncNode.h:327
casacore::TableExprFuncNode::grmssFUNC
Definition: ExprFuncNode.h:332
casacore::TableExprFuncNode::iskeyFUNC
Definition: ExprFuncNode.h:223
casacore::TableExprFuncNode::checkOperands
static NodeDataType checkOperands(Block< Int > &dtypeOper, ValueType &resVT, Block< Int > &vtypeOper, FunctionType, std::vector< TENShPtr > &)
Check the data and value types of the operands.
casacore::TableExprFuncNode::tanhFUNC
Definition: ExprFuncNode.h:123
casacore::TableExprFuncNode::getPrintFormat
static void getPrintFormat(String &fmt, Int &width, Int &prec, const std::vector< TENShPtr > &operands, const TableExprId &id)
Get the possible print format, width, and/or precision.
casacore::TableExprFuncNode::sqlpatternFUNC
Definition: ExprFuncNode.h:242
casacore::TableExprFuncNode::arrallFUNC
Definition: ExprFuncNode.h:196
casacore::Unit
defines physical units
Definition: Unit.h:189
casacore::TableExprFuncNode::fillChildNodes
void fillChildNodes(const vector< TENShPtr > &nodes, const Block< Int > &dtypeOper)
Link the children to the node and convert the children to constants if possible.
casacore::TableExprFuncNode::runallFUNC
Definition: ExprFuncNode.h:198
casacore::TableExprFuncNode::boxmedianFUNC
Definition: ExprFuncNode.h:186
casacore::TableExprFuncNode::gproductFUNC
Definition: ExprFuncNode.h:308
casacore::TableExprFuncNode::ganysFUNC
Definition: ExprFuncNode.h:333
casacore::TableExprFuncNode::minFUNC
Definition: ExprFuncNode.h:104
casacore::TableExprFuncNode::hdmsFUNC
return angles as hms/dms strings
Definition: ExprFuncNode.h:266
casacore::TableExprFuncNode::isdefFUNC
for any array returning Bool scalar
Definition: ExprFuncNode.h:220
casacore::TableExprFuncNode::ganyFUNC
Definition: ExprFuncNode.h:316
casacore::TableExprFuncNode::anyconeFUNC
Definition: ExprFuncNode.h:281
casacore::TableExprFuncNode::stringDate
static String stringDate(const MVTime &dt)
casacore::TableExprFuncNode::gallsFUNC
Definition: ExprFuncNode.h:334
casacore::TableExprFuncNode::LastAggrArrayFunc
Definition: ExprFuncNode.h:337
casacore::TableExprFuncNode::runstddev1FUNC
Definition: ExprFuncNode.h:173
casacore::TableExprFuncNode::iscolFUNC
Definition: ExprFuncNode.h:222
casacore::TableExprFuncNode::arrminsFUNC
Definition: ExprFuncNode.h:147
casacore::TableExprFuncNode::gfractileFUNC
Definition: ExprFuncNode.h:343
casacore::TableExprFuncNode::isnullFUNC
Definition: ExprFuncNode.h:221
casacore::TableExprFuncNode::expFUNC
Definition: ExprFuncNode.h:95
casacore::TableExprFuncNode::replmaskedFUNC
Definition: ExprFuncNode.h:295
casacore::TableExprFuncNode::runstddev0FUNC
Definition: ExprFuncNode.h:169
casacore::TableExprFuncNode::gmaxFUNC
Definition: ExprFuncNode.h:306
casacore::TableExprFuncNode::arrallsFUNC
Definition: ExprFuncNode.h:197
casacore::TableExprFuncNode::replunmaskedFUNC
Definition: ExprFuncNode.h:296
casacore::TableExprFuncNode::arrrmssFUNC
Definition: ExprFuncNode.h:180
casacore::TableExprFuncNode::runanyFUNC
Definition: ExprFuncNode.h:194
casacore::TableExprFuncNode::ghistFUNC
Definition: ExprFuncNode.h:338
casacore::TableExprFuncNode::gexpridFUNC
Definition: ExprFuncNode.h:344
casacore::TableExprFuncNode::timeFUNC
Definition: ExprFuncNode.h:248
casacore::TableExprNodeMulti
Abstract base class for a node having multiple child nodes.
Definition: ExprNodeRep.h:660
casacore::TableExprFuncNode::nearabs2FUNC
Definition: ExprFuncNode.h:88
casacore::TableExprFuncNode::gvariance1FUNC
Definition: ExprFuncNode.h:312
casacore::TableExprFuncNode::arrnfalsesFUNC
Definition: ExprFuncNode.h:206
casacore::TaqlRegex
Class to handle a Regex or StringDistance.
Definition: ExprNodeRep.h:81
casacore::TableExprFuncNode::yearFUNC
Definition: ExprFuncNode.h:249
casacore::TableExprFuncNode::dmsFUNC
return angles as dms strings
Definition: ExprFuncNode.h:264
casacore::TableExprFuncNode::eFUNC
Definition: ExprFuncNode.h:82