casacore
Loading...
Searching...
No Matches
ExprMathNode.h
Go to the documentation of this file.
1//# ExprMathNode.h: Nodes representing scalar mathematical operators in table select expression tree
2//# Copyright (C) 1994,1995,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 addressed as follows:
20//# Internet email: casa-feedback@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#ifndef TABLES_EXPRMATHNODE_H
27#define TABLES_EXPRMATHNODE_H
28
29//# Includes
30#include <casacore/casa/aips.h>
31#include <casacore/tables/TaQL/ExprNodeRep.h>
32
33
34namespace casacore { //# NAMESPACE CASACORE - BEGIN
35
36//# This file defines classes derived from TableExprNode representing
37//# the data type and operator in a table expression.
38//#
39//# Data types Bool, Int64, Double, DComplex and String are used.
40//# Char, uChar, Short, uShort, Int, and uInt are converted to Int64,
41//# Float to Double, and Complex to DComplex.
42//# Binary operators +, -, *, /, ==, >=, >, <, <= and != are recognized.
43//# Also &&, ||, parentheses and unary +, - and ! are recognized.
44
45
46
47// <summary>
48// Addition in table select expression tree
49// </summary>
50
51// <use visibility=local>
52
53// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
54// </reviewed>
55
56// <prerequisite>
57//# Classes you should understand before using this one.
58// <li> TableExprNode
59// <li> TableExprNodeRep
60// </prerequisite>
61
62// <synopsis>
63// This abstract class represents an addition in a table expression tree.
64// </synopsis>
65
72
73
74// <summary>
75// Int addition in table select expression tree
76// </summary>
77
78// <use visibility=local>
79
80// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
81// </reviewed>
82
83// <prerequisite>
84//# Classes you should understand before using this one.
85// <li> TableExprNode
86// <li> TableExprNodeRep
87// </prerequisite>
88
89// <synopsis>
90// This class represents an addition in a table select expression tree.
91// Strings can also be added (ie. concatenated).
92// Numeric data types will be promoted if possible, so for instance
93// an addition of Int and Complex is possible.
94// </synopsis>
95
105
106
107// <summary>
108// Double addition in table select expression tree
109// </summary>
110
111// <use visibility=local>
112
113// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
114// </reviewed>
115
116// <prerequisite>
117//# Classes you should understand before using this one.
118// <li> TableExprNode
119// <li> TableExprNodeRep
120// </prerequisite>
121
122// <synopsis>
123// This class represents an addition in a table select expression tree.
124// Strings can also be added (ie. concatenated).
125// Numeric data types will be promoted if possible, so for instance
126// an addition of Int and Complex is possible.
127// </synopsis>
128
137
138
139// <summary>
140// DComplex addition in table select expression tree
141// </summary>
142
143// <use visibility=local>
144
145// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
146// </reviewed>
147
148// <prerequisite>
149//# Classes you should understand before using this one.
150// <li> TableExprNode
151// <li> TableExprNodeRep
152// </prerequisite>
153
154// <synopsis>
155// This class represents an addition in a table select expression tree.
156// Strings can also be added (ie. concatenated).
157// Numeric data types will be promoted if possible, so for instance
158// an addition of Int and Complex is possible.
159// </synopsis>
160
168
169
170// <summary>
171// String addition in table select expression tree
172// </summary>
173
174// <use visibility=local>
175
176// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
177// </reviewed>
178
179// <prerequisite>
180//# Classes you should understand before using this one.
181// <li> TableExprNode
182// <li> TableExprNodeRep
183// </prerequisite>
184
185// <synopsis>
186// This class represents an addition in a table select expression tree.
187// Strings can also be added (ie. concatenated).
188// Numeric data types will be promoted if possible, so for instance
189// an addition of Int and Complex is possible.
190// </synopsis>
191
199
200
201// <summary>
202// Date addition in table select expression tree
203// </summary>
204
205// <use visibility=local>
206
207// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
208// </reviewed>
209
210// <prerequisite>
211//# Classes you should understand before using this one.
212// <li> TableExprNode
213// <li> TableExprNodeRep
214// </prerequisite>
215
216// <synopsis>
217// This class represents an addition in a table select expression tree.
218// Strings can also be added (ie. concatenated).
219// Numeric data types will be promoted if possible, so for instance
220// an addition of Int and Complex is possible.
221// </synopsis>
222
232
233
234
235// <summary>
236// Subtraction in table select expression tree
237// </summary>
238
239// <use visibility=local>
240
241// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
242// </reviewed>
243
244// <prerequisite>
245//# Classes you should understand before using this one.
246// <li> TableExprNode
247// <li> TableExprNodeRep
248// </prerequisite>
249
250// <synopsis>
251// This abstract class represents a subtraction in a table expression tree.
252// </synopsis>
253
260
261
262// <summary>
263// Int subtraction in table select expression tree
264// </summary>
265
266// <use visibility=local>
267
268// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
269// </reviewed>
270
271// <prerequisite>
272//# Classes you should understand before using this one.
273// <li> TableExprNode
274// <li> TableExprNodeRep
275// </prerequisite>
276
277// <synopsis>
278// This class represents a subtraction in a table select expression tree.
279// Numeric data types will be promoted if possible, so for instance
280// a subtraction of Int and Complex is possible.
281// </synopsis>
282
293
294
295// <summary>
296// Double subtraction in table select expression tree
297// </summary>
298
299// <use visibility=local>
300
301// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
302// </reviewed>
303
304// <prerequisite>
305//# Classes you should understand before using this one.
306// <li> TableExprNode
307// <li> TableExprNodeRep
308// </prerequisite>
309
310// <synopsis>
311// This class represents a subtraction in a table select expression tree.
312// Numeric data types will be promoted if possible, so for instance
313// a subtraction of Int and Complex is possible.
314// </synopsis>
315
325
326
327// <summary>
328// DComplex subtraction in table select expression tree
329// </summary>
330
331// <use visibility=local>
332
333// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
334// </reviewed>
335
336// <prerequisite>
337//# Classes you should understand before using this one.
338// <li> TableExprNode
339// <li> TableExprNodeRep
340// </prerequisite>
341
342// <synopsis>
343// This class represents a subtraction in a table select expression tree.
344// Numeric data types will be promoted if possible, so for instance
345// a subtraction of Int and Complex is possible.
346// </synopsis>
347
355
356
357// <summary>
358// Date subtraction in table select expression tree
359// </summary>
360
361// <use visibility=local>
362
363// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
364// </reviewed>
365
366// <prerequisite>
367//# Classes you should understand before using this one.
368// <li> TableExprNode
369// <li> TableExprNodeRep
370// </prerequisite>
371
372// <synopsis>
373// This class represents a subtraction in a table select expression tree.
374// Numeric data types will be promoted if possible, so for instance
375// a subtraction of Int and Complex is possible.
376// </synopsis>
377
387
388
389
390// <summary>
391// Multiplication in table select expression tree
392// </summary>
393
394// <use visibility=local>
395
396// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
397// </reviewed>
398
399// <prerequisite>
400//# Classes you should understand before using this one.
401// <li> TableExprNode
402// <li> TableExprNodeRep
403// </prerequisite>
404
405// <synopsis>
406// This abstract class represents a multiplication in a table expression tree.
407// </synopsis>
408
416
417
418// <summary>
419// Int multiplication in table select expression tree
420// </summary>
421
422// <use visibility=local>
423
424// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
425// </reviewed>
426
427// <prerequisite>
428//# Classes you should understand before using this one.
429// <li> TableExprNode
430// <li> TableExprNodeRep
431// </prerequisite>
432
433// <synopsis>
434// This class represents a multiplication in a table select expression tree.
435// Numeric data types will be promoted if possible, so for instance
436// a multiplication of Int and Complex is possible.
437// </synopsis>
438
448
449
450// <summary>
451// Double multiplication in table select expression tree
452// </summary>
453
454// <use visibility=local>
455
456// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
457// </reviewed>
458
459// <prerequisite>
460//# Classes you should understand before using this one.
461// <li> TableExprNode
462// <li> TableExprNodeRep
463// </prerequisite>
464
465// <synopsis>
466// This class represents a multiplication in a table select expression tree.
467// Numeric data types will be promoted if possible, so for instance
468// a multiplication of Int and Complex is possible.
469// </synopsis>
470
479
480
481// <summary>
482// DComplex multiplication in table select expression tree
483// </summary>
484
485// <use visibility=local>
486
487// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
488// </reviewed>
489
490// <prerequisite>
491//# Classes you should understand before using this one.
492// <li> TableExprNode
493// <li> TableExprNodeRep
494// </prerequisite>
495
496// <synopsis>
497// This class represents a multiplication in a table select expression tree.
498// Numeric data types will be promoted if possible, so for instance
499// a multiplication of Int and Complex is possible.
500// </synopsis>
501
509
510
511
512// <summary>
513// Division in table select expression tree
514// </summary>
515
516// <use visibility=local>
517
518// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
519// </reviewed>
520
521// <prerequisite>
522//# Classes you should understand before using this one.
523// <li> TableExprNode
524// <li> TableExprNodeRep
525// </prerequisite>
526
527// <synopsis>
528// This abstract class represents a division in a table expression tree.
529// </synopsis>
530
538
539
540// <summary>
541// Double division in table select expression tree
542// </summary>
543
544// <use visibility=local>
545
546// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
547// </reviewed>
548
549// <prerequisite>
550//# Classes you should understand before using this one.
551// <li> TableExprNode
552// <li> TableExprNodeRep
553// </prerequisite>
554
555// <synopsis>
556// This class represents a division in a table select expression tree.
557// Numeric data types will be promoted if possible, so for instance
558// a division of Int and Complex is possible.
559// </synopsis>
560
569
570
571// <summary>
572// DComplex division in table select expression tree
573// </summary>
574
575// <use visibility=local>
576
577// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
578// </reviewed>
579
580// <prerequisite>
581//# Classes you should understand before using this one.
582// <li> TableExprNode
583// <li> TableExprNodeRep
584// </prerequisite>
585
586// <synopsis>
587// This class represents a division in a table select expression tree.
588// Numeric data types will be promoted if possible, so for instance
589// a division of Int and Complex is possible.
590// </synopsis>
591
599
600
601// <summary>
602// Modulo in table select expression tree
603// </summary>
604
605// <use visibility=local>
606
607// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
608// </reviewed>
609
610// <prerequisite>
611//# Classes you should understand before using this one.
612// <li> TableExprNode
613// <li> TableExprNodeRep
614// </prerequisite>
615
616// <synopsis>
617// This abstract class represents a modulo in a table expression tree.
618// </synopsis>
619
627
628
629// <summary>
630// Int modulo in table select expression tree
631// </summary>
632
633// <use visibility=local>
634
635// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
636// </reviewed>
637
638// <prerequisite>
639//# Classes you should understand before using this one.
640// <li> TableExprNode
641// <li> TableExprNodeRep
642// </prerequisite>
643
644// <synopsis>
645// This class represents a modulo operation in a table select expression tree.
646// It is only possible for datatype Int.
647// </synopsis>
648
658
659
660// <summary>
661// Double modulo in table select expression tree
662// </summary>
663
664// <use visibility=local>
665
666// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
667// </reviewed>
668
669// <prerequisite>
670//# Classes you should understand before using this one.
671// <li> TableExprNode
672// <li> TableExprNodeRep
673// </prerequisite>
674
675// <synopsis>
676// This class represents a modulo operation in a table select expression tree.
677// It is only possible for datatype Double.
678// </synopsis>
679
688
689
690// <summary>
691// Bitwise and in table select expression tree
692// </summary>
693
694// <use visibility=local>
695
696// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
697// </reviewed>
698
699// <prerequisite>
700//# Classes you should understand before using this one.
701// <li> TableExprNode
702// <li> TableExprNodeRep
703// </prerequisite>
704
705// <synopsis>
706// This class represents a bitwise and operation in a table select expression
707// tree. It is only possible for datatype Int.
708// </synopsis>
709
719
720
721// <summary>
722// Bitwise or in table select expression tree
723// </summary>
724
725// <use visibility=local>
726
727// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
728// </reviewed>
729
730// <prerequisite>
731//# Classes you should understand before using this one.
732// <li> TableExprNode
733// <li> TableExprNodeRep
734// </prerequisite>
735
736// <synopsis>
737// This class represents a bitwise or operation in a table select expression
738// tree. It is only possible for datatype Int.
739// </synopsis>
740
750
751
752// <summary>
753// Bitwise xor in table select expression tree
754// </summary>
755
756// <use visibility=local>
757
758// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
759// </reviewed>
760
761// <prerequisite>
762//# Classes you should understand before using this one.
763// <li> TableExprNode
764// <li> TableExprNodeRep
765// </prerequisite>
766
767// <synopsis>
768// This class represents a bitwise xor operation in a table select expression
769// tree. It is only possible for datatype Int.
770// </synopsis>
771
781
782
783
784// <summary>
785// Unary minus in table select expression tree
786// </summary>
787
788// <use visibility=local>
789
790// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
791// </reviewed>
792
793// <prerequisite>
794//# Classes you should understand before using this one.
795// <li> TableExprNode
796// </prerequisite>
797
798// <synopsis>
799// This class represents a unary minus in a table select expression tree.
800// This is defined for numeric data types only.
801// </synopsis>
802
812
813
814// <summary>
815// Bitwise negate in table select expression tree
816// </summary>
817
818// <use visibility=local>
819
820// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
821// </reviewed>
822
823// <prerequisite>
824//# Classes you should understand before using this one.
825// <li> TableExprNode
826// </prerequisite>
827
828// <synopsis>
829// This class represents a bitwise negate in a table select expression tree.
830// This is defined for integer data types only.
831// </synopsis>
832
842
843
844} //# NAMESPACE CASACORE - END
845
846#endif
String: the storage and methods of handling collections of characters.
Definition String.h:223
Abstract base class for a node having 0, 1, or 2 child nodes.
Bitwise and in table select expression tree.
Int64 getInt(const TableExprId &id)
Double getDouble(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
TableExprNodeBitAndInt(const TableExprNodeRep &)
Bitwise negate in table select expression tree.
TableExprNodeBitNegate(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
Bitwise or in table select expression tree.
Int64 getInt(const TableExprId &id)
TableExprNodeBitOrInt(const TableExprNodeRep &)
Double getDouble(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
Bitwise xor in table select expression tree.
Double getDouble(const TableExprId &id)
TableExprNodeBitXorInt(const TableExprNodeRep &)
Int64 getInt(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
DComplex division in table select expression tree.
TableExprNodeDivideDComplex(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double division in table select expression tree.
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
TableExprNodeDivideDouble(const TableExprNodeRep &)
Division in table select expression tree.
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
TableExprNodeDivide(NodeDataType, const TableExprNodeRep &)
Unary minus in table select expression tree.
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
TableExprNodeMIN(const TableExprNodeRep &)
DComplex subtraction in table select expression tree.
DComplex getDComplex(const TableExprId &id)
TableExprNodeMinusDComplex(const TableExprNodeRep &)
Date subtraction in table select expression tree.
MVTime getDate(const TableExprId &id)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
TableExprNodeMinusDate(const TableExprNodeRep &)
Double getDouble(const TableExprId &id)
Double subtraction in table select expression tree.
TableExprNodeMinusDouble(const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
Double getDouble(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
Int subtraction in table select expression tree.
Double getDouble(const TableExprId &id)
TableExprNodeMinusInt(const TableExprNodeRep &)
Int64 getInt(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
Subtraction in table select expression tree.
TableExprNodeMinus(NodeDataType, const TableExprNodeRep &)
Double modulo in table select expression tree.
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
TableExprNodeModuloDouble(const TableExprNodeRep &)
Int modulo in table select expression tree.
DComplex getDComplex(const TableExprId &id)
TableExprNodeModuloInt(const TableExprNodeRep &)
Int64 getInt(const TableExprId &id)
Double getDouble(const TableExprId &id)
Modulo in table select expression tree.
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
TableExprNodeModulo(NodeDataType, const TableExprNodeRep &)
DComplex addition in table select expression tree.
TableExprNodePlusDComplex(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Date addition in table select expression tree.
MVTime getDate(const TableExprId &id)
TableExprNodePlusDate(const TableExprNodeRep &)
Double getDouble(const TableExprId &id)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
Double addition in table select expression tree.
TableExprNodePlusDouble(const TableExprNodeRep &)
Double getDouble(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
Int addition in table select expression tree.
TableExprNodePlusInt(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
String addition in table select expression tree.
String getString(const TableExprId &id)
TableExprNodePlusString(const TableExprNodeRep &)
TableExprNodePlus(NodeDataType, const TableExprNodeRep &)
Abstract base class for a node in a table column expression tree.
NodeDataType
Define the data types of a node.
DComplex multiplication in table select expression tree.
DComplex getDComplex(const TableExprId &id)
TableExprNodeTimesDComplex(const TableExprNodeRep &)
Double multiplication in table select expression tree.
TableExprNodeTimesDouble(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int multiplication in table select expression tree.
TableExprNodeTimesInt(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
Multiplication in table select expression tree.
TableExprNodeTimes(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
this file contains all the compiler specific defines
Definition mainpage.dox:28
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
Definition aipsxtype.h:36
double Double
Definition aipstype.h:53