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: 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$
27
28#ifndef TABLES_EXPRMATHNODE_H
29#define TABLES_EXPRMATHNODE_H
30
31//# Includes
32#include <casacore/casa/aips.h>
33#include <casacore/tables/TaQL/ExprNodeRep.h>
34
35
36namespace casacore { //# NAMESPACE CASACORE - BEGIN
37
38//# This file defines classes derived from TableExprNode representing
39//# the data type and operator in a table expression.
40//#
41//# Data types Bool, Int64, Double, DComplex and String are used.
42//# Char, uChar, Short, uShort, Int, and uInt are converted to Int64,
43//# Float to Double, and Complex to DComplex.
44//# Binary operators +, -, *, /, ==, >=, >, <, <= and != are recognized.
45//# Also &&, ||, parentheses and unary +, - and ! are recognized.
46
47
48
49// <summary>
50// Addition in table select expression tree
51// </summary>
52
53// <use visibility=local>
54
55// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
56// </reviewed>
57
58// <prerequisite>
59//# Classes you should understand before using this one.
60// <li> TableExprNode
61// <li> TableExprNodeRep
62// </prerequisite>
63
64// <synopsis>
65// This abstract class represents an addition in a table expression tree.
66// </synopsis>
67
74
75
76// <summary>
77// Int addition in table select expression tree
78// </summary>
79
80// <use visibility=local>
81
82// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
83// </reviewed>
84
85// <prerequisite>
86//# Classes you should understand before using this one.
87// <li> TableExprNode
88// <li> TableExprNodeRep
89// </prerequisite>
90
91// <synopsis>
92// This class represents an addition in a table select expression tree.
93// Strings can also be added (ie. concatenated).
94// Numeric data types will be promoted if possible, so for instance
95// an addition of Int and Complex is possible.
96// </synopsis>
97
107
108
109// <summary>
110// Double addition in table select expression tree
111// </summary>
112
113// <use visibility=local>
114
115// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
116// </reviewed>
117
118// <prerequisite>
119//# Classes you should understand before using this one.
120// <li> TableExprNode
121// <li> TableExprNodeRep
122// </prerequisite>
123
124// <synopsis>
125// This class represents an addition in a table select expression tree.
126// Strings can also be added (ie. concatenated).
127// Numeric data types will be promoted if possible, so for instance
128// an addition of Int and Complex is possible.
129// </synopsis>
130
139
140
141// <summary>
142// DComplex addition in table select expression tree
143// </summary>
144
145// <use visibility=local>
146
147// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
148// </reviewed>
149
150// <prerequisite>
151//# Classes you should understand before using this one.
152// <li> TableExprNode
153// <li> TableExprNodeRep
154// </prerequisite>
155
156// <synopsis>
157// This class represents an addition in a table select expression tree.
158// Strings can also be added (ie. concatenated).
159// Numeric data types will be promoted if possible, so for instance
160// an addition of Int and Complex is possible.
161// </synopsis>
162
170
171
172// <summary>
173// String addition in table select expression tree
174// </summary>
175
176// <use visibility=local>
177
178// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
179// </reviewed>
180
181// <prerequisite>
182//# Classes you should understand before using this one.
183// <li> TableExprNode
184// <li> TableExprNodeRep
185// </prerequisite>
186
187// <synopsis>
188// This class represents an addition in a table select expression tree.
189// Strings can also be added (ie. concatenated).
190// Numeric data types will be promoted if possible, so for instance
191// an addition of Int and Complex is possible.
192// </synopsis>
193
201
202
203// <summary>
204// Date addition in table select expression tree
205// </summary>
206
207// <use visibility=local>
208
209// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
210// </reviewed>
211
212// <prerequisite>
213//# Classes you should understand before using this one.
214// <li> TableExprNode
215// <li> TableExprNodeRep
216// </prerequisite>
217
218// <synopsis>
219// This class represents an addition in a table select expression tree.
220// Strings can also be added (ie. concatenated).
221// Numeric data types will be promoted if possible, so for instance
222// an addition of Int and Complex is possible.
223// </synopsis>
224
234
235
236
237// <summary>
238// Subtraction in table select expression tree
239// </summary>
240
241// <use visibility=local>
242
243// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
244// </reviewed>
245
246// <prerequisite>
247//# Classes you should understand before using this one.
248// <li> TableExprNode
249// <li> TableExprNodeRep
250// </prerequisite>
251
252// <synopsis>
253// This abstract class represents a subtraction in a table expression tree.
254// </synopsis>
255
262
263
264// <summary>
265// Int subtraction in table select expression tree
266// </summary>
267
268// <use visibility=local>
269
270// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
271// </reviewed>
272
273// <prerequisite>
274//# Classes you should understand before using this one.
275// <li> TableExprNode
276// <li> TableExprNodeRep
277// </prerequisite>
278
279// <synopsis>
280// This class represents a subtraction in a table select expression tree.
281// Numeric data types will be promoted if possible, so for instance
282// a subtraction of Int and Complex is possible.
283// </synopsis>
284
295
296
297// <summary>
298// Double subtraction in table select expression tree
299// </summary>
300
301// <use visibility=local>
302
303// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
304// </reviewed>
305
306// <prerequisite>
307//# Classes you should understand before using this one.
308// <li> TableExprNode
309// <li> TableExprNodeRep
310// </prerequisite>
311
312// <synopsis>
313// This class represents a subtraction in a table select expression tree.
314// Numeric data types will be promoted if possible, so for instance
315// a subtraction of Int and Complex is possible.
316// </synopsis>
317
327
328
329// <summary>
330// DComplex subtraction in table select expression tree
331// </summary>
332
333// <use visibility=local>
334
335// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
336// </reviewed>
337
338// <prerequisite>
339//# Classes you should understand before using this one.
340// <li> TableExprNode
341// <li> TableExprNodeRep
342// </prerequisite>
343
344// <synopsis>
345// This class represents a subtraction in a table select expression tree.
346// Numeric data types will be promoted if possible, so for instance
347// a subtraction of Int and Complex is possible.
348// </synopsis>
349
357
358
359// <summary>
360// Date subtraction in table select expression tree
361// </summary>
362
363// <use visibility=local>
364
365// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
366// </reviewed>
367
368// <prerequisite>
369//# Classes you should understand before using this one.
370// <li> TableExprNode
371// <li> TableExprNodeRep
372// </prerequisite>
373
374// <synopsis>
375// This class represents a subtraction in a table select expression tree.
376// Numeric data types will be promoted if possible, so for instance
377// a subtraction of Int and Complex is possible.
378// </synopsis>
379
389
390
391
392// <summary>
393// Multiplication in table select expression tree
394// </summary>
395
396// <use visibility=local>
397
398// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
399// </reviewed>
400
401// <prerequisite>
402//# Classes you should understand before using this one.
403// <li> TableExprNode
404// <li> TableExprNodeRep
405// </prerequisite>
406
407// <synopsis>
408// This abstract class represents a multiplication in a table expression tree.
409// </synopsis>
410
418
419
420// <summary>
421// Int multiplication in table select expression tree
422// </summary>
423
424// <use visibility=local>
425
426// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
427// </reviewed>
428
429// <prerequisite>
430//# Classes you should understand before using this one.
431// <li> TableExprNode
432// <li> TableExprNodeRep
433// </prerequisite>
434
435// <synopsis>
436// This class represents a multiplication in a table select expression tree.
437// Numeric data types will be promoted if possible, so for instance
438// a multiplication of Int and Complex is possible.
439// </synopsis>
440
450
451
452// <summary>
453// Double multiplication in table select expression tree
454// </summary>
455
456// <use visibility=local>
457
458// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
459// </reviewed>
460
461// <prerequisite>
462//# Classes you should understand before using this one.
463// <li> TableExprNode
464// <li> TableExprNodeRep
465// </prerequisite>
466
467// <synopsis>
468// This class represents a multiplication in a table select expression tree.
469// Numeric data types will be promoted if possible, so for instance
470// a multiplication of Int and Complex is possible.
471// </synopsis>
472
481
482
483// <summary>
484// DComplex multiplication in table select expression tree
485// </summary>
486
487// <use visibility=local>
488
489// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
490// </reviewed>
491
492// <prerequisite>
493//# Classes you should understand before using this one.
494// <li> TableExprNode
495// <li> TableExprNodeRep
496// </prerequisite>
497
498// <synopsis>
499// This class represents a multiplication in a table select expression tree.
500// Numeric data types will be promoted if possible, so for instance
501// a multiplication of Int and Complex is possible.
502// </synopsis>
503
511
512
513
514// <summary>
515// Division in table select expression tree
516// </summary>
517
518// <use visibility=local>
519
520// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
521// </reviewed>
522
523// <prerequisite>
524//# Classes you should understand before using this one.
525// <li> TableExprNode
526// <li> TableExprNodeRep
527// </prerequisite>
528
529// <synopsis>
530// This abstract class represents a division in a table expression tree.
531// </synopsis>
532
540
541
542// <summary>
543// Double division in table select expression tree
544// </summary>
545
546// <use visibility=local>
547
548// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
549// </reviewed>
550
551// <prerequisite>
552//# Classes you should understand before using this one.
553// <li> TableExprNode
554// <li> TableExprNodeRep
555// </prerequisite>
556
557// <synopsis>
558// This class represents a division in a table select expression tree.
559// Numeric data types will be promoted if possible, so for instance
560// a division of Int and Complex is possible.
561// </synopsis>
562
571
572
573// <summary>
574// DComplex division in table select expression tree
575// </summary>
576
577// <use visibility=local>
578
579// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
580// </reviewed>
581
582// <prerequisite>
583//# Classes you should understand before using this one.
584// <li> TableExprNode
585// <li> TableExprNodeRep
586// </prerequisite>
587
588// <synopsis>
589// This class represents a division in a table select expression tree.
590// Numeric data types will be promoted if possible, so for instance
591// a division of Int and Complex is possible.
592// </synopsis>
593
601
602
603// <summary>
604// Modulo in table select expression tree
605// </summary>
606
607// <use visibility=local>
608
609// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
610// </reviewed>
611
612// <prerequisite>
613//# Classes you should understand before using this one.
614// <li> TableExprNode
615// <li> TableExprNodeRep
616// </prerequisite>
617
618// <synopsis>
619// This abstract class represents a modulo in a table expression tree.
620// </synopsis>
621
629
630
631// <summary>
632// Int modulo in table select expression tree
633// </summary>
634
635// <use visibility=local>
636
637// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
638// </reviewed>
639
640// <prerequisite>
641//# Classes you should understand before using this one.
642// <li> TableExprNode
643// <li> TableExprNodeRep
644// </prerequisite>
645
646// <synopsis>
647// This class represents a modulo operation in a table select expression tree.
648// It is only possible for datatype Int.
649// </synopsis>
650
660
661
662// <summary>
663// Double modulo in table select expression tree
664// </summary>
665
666// <use visibility=local>
667
668// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
669// </reviewed>
670
671// <prerequisite>
672//# Classes you should understand before using this one.
673// <li> TableExprNode
674// <li> TableExprNodeRep
675// </prerequisite>
676
677// <synopsis>
678// This class represents a modulo operation in a table select expression tree.
679// It is only possible for datatype Double.
680// </synopsis>
681
690
691
692// <summary>
693// Bitwise and in table select expression tree
694// </summary>
695
696// <use visibility=local>
697
698// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
699// </reviewed>
700
701// <prerequisite>
702//# Classes you should understand before using this one.
703// <li> TableExprNode
704// <li> TableExprNodeRep
705// </prerequisite>
706
707// <synopsis>
708// This class represents a bitwise and operation in a table select expression
709// tree. It is only possible for datatype Int.
710// </synopsis>
711
721
722
723// <summary>
724// Bitwise or in table select expression tree
725// </summary>
726
727// <use visibility=local>
728
729// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
730// </reviewed>
731
732// <prerequisite>
733//# Classes you should understand before using this one.
734// <li> TableExprNode
735// <li> TableExprNodeRep
736// </prerequisite>
737
738// <synopsis>
739// This class represents a bitwise or operation in a table select expression
740// tree. It is only possible for datatype Int.
741// </synopsis>
742
752
753
754// <summary>
755// Bitwise xor in table select expression tree
756// </summary>
757
758// <use visibility=local>
759
760// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
761// </reviewed>
762
763// <prerequisite>
764//# Classes you should understand before using this one.
765// <li> TableExprNode
766// <li> TableExprNodeRep
767// </prerequisite>
768
769// <synopsis>
770// This class represents a bitwise xor operation in a table select expression
771// tree. It is only possible for datatype Int.
772// </synopsis>
773
783
784
785
786// <summary>
787// Unary minus in table select expression tree
788// </summary>
789
790// <use visibility=local>
791
792// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
793// </reviewed>
794
795// <prerequisite>
796//# Classes you should understand before using this one.
797// <li> TableExprNode
798// </prerequisite>
799
800// <synopsis>
801// This class represents a unary minus in a table select expression tree.
802// This is defined for numeric data types only.
803// </synopsis>
804
814
815
816// <summary>
817// Bitwise negate in table select expression tree
818// </summary>
819
820// <use visibility=local>
821
822// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
823// </reviewed>
824
825// <prerequisite>
826//# Classes you should understand before using this one.
827// <li> TableExprNode
828// </prerequisite>
829
830// <synopsis>
831// This class represents a bitwise negate in a table select expression tree.
832// This is defined for integer data types only.
833// </synopsis>
834
844
845
846} //# NAMESPACE CASACORE - END
847
848#endif
String: the storage and methods of handling collections of characters.
Definition String.h:225
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:38
double Double
Definition aipstype.h:55