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
2// tree # Copyright (C) 1994,1995,1996,1997,1999,2000 # Associated Universities, Inc. Washington DC,
3// 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
33namespace casacore { // # NAMESPACE CASACORE - BEGIN
34
35// # This file defines classes derived from TableExprNode representing
36// # the data type and operator in a table expression.
37// #
38// # Data types Bool, Int64, Double, DComplex and String are used.
39// # Char, uChar, Short, uShort, Int, and uInt are converted to Int64,
40// # Float to Double, and Complex to DComplex.
41// # Binary operators +, -, *, /, ==, >=, >, <, <= and != are recognized.
42// # Also &&, ||, parentheses and unary +, - and ! are recognized.
43
44// <summary>
45// Addition in table select expression tree
46// </summary>
47
48// <use visibility=local>
49
50// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
51// </reviewed>
52
53// <prerequisite>
54// # Classes you should understand before using this one.
55// <li> TableExprNode
56// <li> TableExprNodeRep
57// </prerequisite>
58
59// <synopsis>
60// This abstract class represents an addition in a table expression tree.
61// </synopsis>
62
68
69// <summary>
70// Int addition in table select expression tree
71// </summary>
72
73// <use visibility=local>
74
75// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
76// </reviewed>
77
78// <prerequisite>
79// # Classes you should understand before using this one.
80// <li> TableExprNode
81// <li> TableExprNodeRep
82// </prerequisite>
83
84// <synopsis>
85// This class represents an addition in a table select expression tree.
86// Strings can also be added (ie. concatenated).
87// Numeric data types will be promoted if possible, so for instance
88// an addition of Int and Complex is possible.
89// </synopsis>
90
99
100// <summary>
101// Double addition in table select expression tree
102// </summary>
103
104// <use visibility=local>
105
106// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
107// </reviewed>
108
109// <prerequisite>
110// # Classes you should understand before using this one.
111// <li> TableExprNode
112// <li> TableExprNodeRep
113// </prerequisite>
114
115// <synopsis>
116// This class represents an addition in a table select expression tree.
117// Strings can also be added (ie. concatenated).
118// Numeric data types will be promoted if possible, so for instance
119// an addition of Int and Complex is possible.
120// </synopsis>
121
129
130// <summary>
131// DComplex addition in table select expression tree
132// </summary>
133
134// <use visibility=local>
135
136// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
137// </reviewed>
138
139// <prerequisite>
140// # Classes you should understand before using this one.
141// <li> TableExprNode
142// <li> TableExprNodeRep
143// </prerequisite>
144
145// <synopsis>
146// This class represents an addition in a table select expression tree.
147// Strings can also be added (ie. concatenated).
148// Numeric data types will be promoted if possible, so for instance
149// an addition of Int and Complex is possible.
150// </synopsis>
151
158
159// <summary>
160// String addition in table select expression tree
161// </summary>
162
163// <use visibility=local>
164
165// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
166// </reviewed>
167
168// <prerequisite>
169// # Classes you should understand before using this one.
170// <li> TableExprNode
171// <li> TableExprNodeRep
172// </prerequisite>
173
174// <synopsis>
175// This class represents an addition in a table select expression tree.
176// Strings can also be added (ie. concatenated).
177// Numeric data types will be promoted if possible, so for instance
178// an addition of Int and Complex is possible.
179// </synopsis>
180
187
188// <summary>
189// Date addition in table select expression tree
190// </summary>
191
192// <use visibility=local>
193
194// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
195// </reviewed>
196
197// <prerequisite>
198// # Classes you should understand before using this one.
199// <li> TableExprNode
200// <li> TableExprNodeRep
201// </prerequisite>
202
203// <synopsis>
204// This class represents an addition in a table select expression tree.
205// Strings can also be added (ie. concatenated).
206// Numeric data types will be promoted if possible, so for instance
207// an addition of Int and Complex is possible.
208// </synopsis>
209
218
219// <summary>
220// Subtraction in table select expression tree
221// </summary>
222
223// <use visibility=local>
224
225// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
226// </reviewed>
227
228// <prerequisite>
229// # Classes you should understand before using this one.
230// <li> TableExprNode
231// <li> TableExprNodeRep
232// </prerequisite>
233
234// <synopsis>
235// This abstract class represents a subtraction in a table expression tree.
236// </synopsis>
237
243
244// <summary>
245// Int subtraction in table select expression tree
246// </summary>
247
248// <use visibility=local>
249
250// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
251// </reviewed>
252
253// <prerequisite>
254// # Classes you should understand before using this one.
255// <li> TableExprNode
256// <li> TableExprNodeRep
257// </prerequisite>
258
259// <synopsis>
260// This class represents a subtraction in a table select expression tree.
261// Numeric data types will be promoted if possible, so for instance
262// a subtraction of Int and Complex is possible.
263// </synopsis>
264
274
275// <summary>
276// Double subtraction in table select expression tree
277// </summary>
278
279// <use visibility=local>
280
281// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
282// </reviewed>
283
284// <prerequisite>
285// # Classes you should understand before using this one.
286// <li> TableExprNode
287// <li> TableExprNodeRep
288// </prerequisite>
289
290// <synopsis>
291// This class represents a subtraction in a table select expression tree.
292// Numeric data types will be promoted if possible, so for instance
293// a subtraction of Int and Complex is possible.
294// </synopsis>
295
304
305// <summary>
306// DComplex subtraction in table select expression tree
307// </summary>
308
309// <use visibility=local>
310
311// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
312// </reviewed>
313
314// <prerequisite>
315// # Classes you should understand before using this one.
316// <li> TableExprNode
317// <li> TableExprNodeRep
318// </prerequisite>
319
320// <synopsis>
321// This class represents a subtraction in a table select expression tree.
322// Numeric data types will be promoted if possible, so for instance
323// a subtraction of Int and Complex is possible.
324// </synopsis>
325
332
333// <summary>
334// Date subtraction in table select expression tree
335// </summary>
336
337// <use visibility=local>
338
339// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
340// </reviewed>
341
342// <prerequisite>
343// # Classes you should understand before using this one.
344// <li> TableExprNode
345// <li> TableExprNodeRep
346// </prerequisite>
347
348// <synopsis>
349// This class represents a subtraction in a table select expression tree.
350// Numeric data types will be promoted if possible, so for instance
351// a subtraction of Int and Complex is possible.
352// </synopsis>
353
362
363// <summary>
364// Multiplication in table select expression tree
365// </summary>
366
367// <use visibility=local>
368
369// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
370// </reviewed>
371
372// <prerequisite>
373// # Classes you should understand before using this one.
374// <li> TableExprNode
375// <li> TableExprNodeRep
376// </prerequisite>
377
378// <synopsis>
379// This abstract class represents a multiplication in a table expression tree.
380// </synopsis>
381
388
389// <summary>
390// Int multiplication in table select expression tree
391// </summary>
392
393// <use visibility=local>
394
395// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
396// </reviewed>
397
398// <prerequisite>
399// # Classes you should understand before using this one.
400// <li> TableExprNode
401// <li> TableExprNodeRep
402// </prerequisite>
403
404// <synopsis>
405// This class represents a multiplication in a table select expression tree.
406// Numeric data types will be promoted if possible, so for instance
407// a multiplication of Int and Complex is possible.
408// </synopsis>
409
418
419// <summary>
420// Double multiplication in table select expression tree
421// </summary>
422
423// <use visibility=local>
424
425// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
426// </reviewed>
427
428// <prerequisite>
429// # Classes you should understand before using this one.
430// <li> TableExprNode
431// <li> TableExprNodeRep
432// </prerequisite>
433
434// <synopsis>
435// This class represents a multiplication in a table select expression tree.
436// Numeric data types will be promoted if possible, so for instance
437// a multiplication of Int and Complex is possible.
438// </synopsis>
439
447
448// <summary>
449// DComplex multiplication in table select expression tree
450// </summary>
451
452// <use visibility=local>
453
454// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
455// </reviewed>
456
457// <prerequisite>
458// # Classes you should understand before using this one.
459// <li> TableExprNode
460// <li> TableExprNodeRep
461// </prerequisite>
462
463// <synopsis>
464// This class represents a multiplication in a table select expression tree.
465// Numeric data types will be promoted if possible, so for instance
466// a multiplication of Int and Complex is possible.
467// </synopsis>
468
475
476// <summary>
477// Division in table select expression tree
478// </summary>
479
480// <use visibility=local>
481
482// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
483// </reviewed>
484
485// <prerequisite>
486// # Classes you should understand before using this one.
487// <li> TableExprNode
488// <li> TableExprNodeRep
489// </prerequisite>
490
491// <synopsis>
492// This abstract class represents a division in a table expression tree.
493// </synopsis>
494
501
502// <summary>
503// Double division in table select expression tree
504// </summary>
505
506// <use visibility=local>
507
508// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
509// </reviewed>
510
511// <prerequisite>
512// # Classes you should understand before using this one.
513// <li> TableExprNode
514// <li> TableExprNodeRep
515// </prerequisite>
516
517// <synopsis>
518// This class represents a division in a table select expression tree.
519// Numeric data types will be promoted if possible, so for instance
520// a division of Int and Complex is possible.
521// </synopsis>
522
530
531// <summary>
532// DComplex division in table select expression tree
533// </summary>
534
535// <use visibility=local>
536
537// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
538// </reviewed>
539
540// <prerequisite>
541// # Classes you should understand before using this one.
542// <li> TableExprNode
543// <li> TableExprNodeRep
544// </prerequisite>
545
546// <synopsis>
547// This class represents a division in a table select expression tree.
548// Numeric data types will be promoted if possible, so for instance
549// a division of Int and Complex is possible.
550// </synopsis>
551
558
559// <summary>
560// Modulo in table select expression tree
561// </summary>
562
563// <use visibility=local>
564
565// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
566// </reviewed>
567
568// <prerequisite>
569// # Classes you should understand before using this one.
570// <li> TableExprNode
571// <li> TableExprNodeRep
572// </prerequisite>
573
574// <synopsis>
575// This abstract class represents a modulo in a table expression tree.
576// </synopsis>
577
584
585// <summary>
586// Int modulo in table select expression tree
587// </summary>
588
589// <use visibility=local>
590
591// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
592// </reviewed>
593
594// <prerequisite>
595// # Classes you should understand before using this one.
596// <li> TableExprNode
597// <li> TableExprNodeRep
598// </prerequisite>
599
600// <synopsis>
601// This class represents a modulo operation in a table select expression tree.
602// It is only possible for datatype Int.
603// </synopsis>
604
613
614// <summary>
615// Double modulo in table select expression tree
616// </summary>
617
618// <use visibility=local>
619
620// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
621// </reviewed>
622
623// <prerequisite>
624// # Classes you should understand before using this one.
625// <li> TableExprNode
626// <li> TableExprNodeRep
627// </prerequisite>
628
629// <synopsis>
630// This class represents a modulo operation in a table select expression tree.
631// It is only possible for datatype Double.
632// </synopsis>
633
641
642// <summary>
643// Bitwise and in table select expression tree
644// </summary>
645
646// <use visibility=local>
647
648// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
649// </reviewed>
650
651// <prerequisite>
652// # Classes you should understand before using this one.
653// <li> TableExprNode
654// <li> TableExprNodeRep
655// </prerequisite>
656
657// <synopsis>
658// This class represents a bitwise and operation in a table select expression
659// tree. It is only possible for datatype Int.
660// </synopsis>
661
670
671// <summary>
672// Bitwise or in table select expression tree
673// </summary>
674
675// <use visibility=local>
676
677// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
678// </reviewed>
679
680// <prerequisite>
681// # Classes you should understand before using this one.
682// <li> TableExprNode
683// <li> TableExprNodeRep
684// </prerequisite>
685
686// <synopsis>
687// This class represents a bitwise or operation in a table select expression
688// tree. It is only possible for datatype Int.
689// </synopsis>
690
699
700// <summary>
701// Bitwise xor in table select expression tree
702// </summary>
703
704// <use visibility=local>
705
706// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
707// </reviewed>
708
709// <prerequisite>
710// # Classes you should understand before using this one.
711// <li> TableExprNode
712// <li> TableExprNodeRep
713// </prerequisite>
714
715// <synopsis>
716// This class represents a bitwise xor operation in a table select expression
717// tree. It is only possible for datatype Int.
718// </synopsis>
719
728
729// <summary>
730// Unary minus in table select expression tree
731// </summary>
732
733// <use visibility=local>
734
735// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
736// </reviewed>
737
738// <prerequisite>
739// # Classes you should understand before using this one.
740// <li> TableExprNode
741// </prerequisite>
742
743// <synopsis>
744// This class represents a unary minus in a table select expression tree.
745// This is defined for numeric data types only.
746// </synopsis>
747
756
757// <summary>
758// Bitwise negate in table select expression tree
759// </summary>
760
761// <use visibility=local>
762
763// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
764// </reviewed>
765
766// <prerequisite>
767// # Classes you should understand before using this one.
768// <li> TableExprNode
769// </prerequisite>
770
771// <synopsis>
772// This class represents a bitwise negate in a table select expression tree.
773// This is defined for integer data types only.
774// </synopsis>
775
784
785} // namespace casacore
786
787#endif
String: the storage and methods of handling collections of characters.
Definition String.h:355
TableExprNodeBinary(NodeDataType, ValueType, OperType, ExprType)
Constructor.
Int64 getInt(const TableExprId &id)
Double getDouble(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
TableExprNodeBitAndInt(const TableExprNodeRep &)
TableExprNodeBitNegate(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
Int64 getInt(const TableExprId &id)
TableExprNodeBitOrInt(const TableExprNodeRep &)
Double getDouble(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
TableExprNodeBitXorInt(const TableExprNodeRep &)
Int64 getInt(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
TableExprNodeDivideDComplex(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
TableExprNodeDivideDouble(const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
TableExprNodeDivide(NodeDataType, const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
TableExprNodeMIN(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
TableExprNodeMinusDComplex(const TableExprNodeRep &)
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)
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)
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.
TableExprNodeMinus(NodeDataType, const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
TableExprNodeModuloDouble(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
TableExprNodeModuloInt(const TableExprNodeRep &)
Int64 getInt(const TableExprId &id)
Double getDouble(const TableExprId &id)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
TableExprNodeModulo(NodeDataType, const TableExprNodeRep &)
TableExprNodePlusDComplex(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
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.
TableExprNodePlusDouble(const TableExprNodeRep &)
Double getDouble(const TableExprId &id)
DComplex getDComplex(const TableExprId &id)
TableExprNodePlusInt(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
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 getDComplex(const TableExprId &id)
TableExprNodeTimesDComplex(const TableExprNodeRep &)
TableExprNodeTimesDouble(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
TableExprNodeTimesInt(const TableExprNodeRep &)
DComplex getDComplex(const TableExprId &id)
Double getDouble(const TableExprId &id)
Int64 getInt(const TableExprId &id)
TableExprNodeTimes(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
For temporary backward namespace compatibility, use casa as alias for casacore.
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