casacore
Loading...
Searching...
No Matches
ExprMathNodeArray.h
Go to the documentation of this file.
1//# ExprMathArrayNode.h: Nodes representing mathematical array operators in table select expression tree
2//# Copyright (C) 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_EXPRMATHNODEARRAY_H
27#define TABLES_EXPRMATHNODEARRAY_H
28
29//# Includes
30#include <casacore/casa/aips.h>
31#include <casacore/tables/TaQL/ExprNodeArray.h>
32#include <casacore/casa/Arrays/Array.h>
33
34namespace casacore { //# NAMESPACE CASACORE - BEGIN
35
36//# Forward Declarations
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 unary + and - are recognized.
46
47
48
49// <summary>
50// Array 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 Array 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
105
106
107// <summary>
108// Double Array 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
136
137
138// <summary>
139// DComplex Array addition in table select expression tree
140// </summary>
141
142// <use visibility=local>
143
144// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
145// </reviewed>
146
147// <prerequisite>
148//# Classes you should understand before using this one.
149// <li> TableExprNode
150// <li> TableExprNodeRep
151// </prerequisite>
152
153// <synopsis>
154// This class represents an addition in a table select expression tree.
155// Strings can also be added (ie. concatenated).
156// Numeric data types will be promoted if possible, so for instance
157// an addition of Int and Complex is possible.
158// </synopsis>
159
167
168
169// <summary>
170// String Array addition in table select expression tree
171// </summary>
172
173// <use visibility=local>
174
175// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
176// </reviewed>
177
178// <prerequisite>
179//# Classes you should understand before using this one.
180// <li> TableExprNode
181// <li> TableExprNodeRep
182// </prerequisite>
183
184// <synopsis>
185// This class represents an addition in a table select expression tree.
186// Strings can also be added (ie. concatenated).
187// Numeric data types will be promoted if possible, so for instance
188// an addition of Int and Complex is possible.
189// </synopsis>
190
198
199
200// <summary>
201// Date Array addition in table select expression tree
202// </summary>
203
204// <use visibility=local>
205
206// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
207// </reviewed>
208
209// <prerequisite>
210//# Classes you should understand before using this one.
211// <li> TableExprNode
212// <li> TableExprNodeRep
213// </prerequisite>
214
215// <synopsis>
216// This class represents an addition in a table select expression tree.
217// Strings can also be added (ie. concatenated).
218// Numeric data types will be promoted if possible, so for instance
219// an addition of Int and Complex is possible.
220// </synopsis>
221
231
232
233
234// <summary>
235// Array addition in table select expression tree
236// </summary>
237
238// <use visibility=local>
239
240// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
241// </reviewed>
242
243// <prerequisite>
244//# Classes you should understand before using this one.
245// <li> TableExprNode
246// <li> TableExprNodeRep
247// </prerequisite>
248
249// <synopsis>
250// This abstract class represents an addition in a table expression tree.
251// </synopsis>
252
259
260
261// <summary>
262// Int Array subtraction in table select expression tree
263// </summary>
264
265// <use visibility=local>
266
267// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
268// </reviewed>
269
270// <prerequisite>
271//# Classes you should understand before using this one.
272// <li> TableExprNode
273// <li> TableExprNodeRep
274// </prerequisite>
275
276// <synopsis>
277// This class represents a subtraction in a table select expression tree.
278// Numeric data types will be promoted if possible, so for instance
279// a subtraction of Int and Complex is possible.
280// </synopsis>
281
289
290
291// <summary>
292// Double Array subtraction in table select expression tree
293// </summary>
294
295// <use visibility=local>
296
297// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
298// </reviewed>
299
300// <prerequisite>
301//# Classes you should understand before using this one.
302// <li> TableExprNode
303// <li> TableExprNodeRep
304// </prerequisite>
305
306// <synopsis>
307// This class represents a subtraction in a table select expression tree.
308// Numeric data types will be promoted if possible, so for instance
309// a subtraction of Int and Complex is possible.
310// </synopsis>
311
319
320
321// <summary>
322// DComplex Array subtraction in table select expression tree
323// </summary>
324
325// <use visibility=local>
326
327// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
328// </reviewed>
329
330// <prerequisite>
331//# Classes you should understand before using this one.
332// <li> TableExprNode
333// <li> TableExprNodeRep
334// </prerequisite>
335
336// <synopsis>
337// This class represents a subtraction in a table select expression tree.
338// Numeric data types will be promoted if possible, so for instance
339// a subtraction of Int and Complex is possible.
340// </synopsis>
341
349
350
351// <summary>
352// Date Array subtraction in table select expression tree
353// </summary>
354
355// <use visibility=local>
356
357// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
358// </reviewed>
359
360// <prerequisite>
361//# Classes you should understand before using this one.
362// <li> TableExprNode
363// <li> TableExprNodeRep
364// </prerequisite>
365
366// <synopsis>
367// This class represents a subtraction in a table select expression tree.
368// Numeric data types will be promoted if possible, so for instance
369// a subtraction of Int and Complex is possible.
370// </synopsis>
371
381
382
383
384// <summary>
385// Array addition in table select expression tree
386// </summary>
387
388// <use visibility=local>
389
390// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
391// </reviewed>
392
393// <prerequisite>
394//# Classes you should understand before using this one.
395// <li> TableExprNode
396// <li> TableExprNodeRep
397// </prerequisite>
398
399// <synopsis>
400// This abstract class represents an addition in a table expression tree.
401// </synopsis>
402
410
411
412// <summary>
413// Int Array multiplication in table select expression tree
414// </summary>
415
416// <use visibility=local>
417
418// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
419// </reviewed>
420
421// <prerequisite>
422//# Classes you should understand before using this one.
423// <li> TableExprNode
424// <li> TableExprNodeRep
425// </prerequisite>
426
427// <synopsis>
428// This class represents a multiplication in a table select expression tree.
429// Numeric data types will be promoted if possible, so for instance
430// a multiplication of Int and Complex is possible.
431// </synopsis>
432
440
441
442// <summary>
443// Double Array multiplication in table select expression tree
444// </summary>
445
446// <use visibility=local>
447
448// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
449// </reviewed>
450
451// <prerequisite>
452//# Classes you should understand before using this one.
453// <li> TableExprNode
454// <li> TableExprNodeRep
455// </prerequisite>
456
457// <synopsis>
458// This class represents a multiplication in a table select expression tree.
459// Numeric data types will be promoted if possible, so for instance
460// a multiplication of Int and Complex is possible.
461// </synopsis>
462
470
471
472// <summary>
473// DComplex Array multiplication in table select expression tree
474// </summary>
475
476// <use visibility=local>
477
478// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
479// </reviewed>
480
481// <prerequisite>
482//# Classes you should understand before using this one.
483// <li> TableExprNode
484// <li> TableExprNodeRep
485// </prerequisite>
486
487// <synopsis>
488// This class represents a multiplication in a table select expression tree.
489// Numeric data types will be promoted if possible, so for instance
490// a multiplication of Int and Complex is possible.
491// </synopsis>
492
500
501
502
503// <summary>
504// Array addition in table select expression tree
505// </summary>
506
507// <use visibility=local>
508
509// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
510// </reviewed>
511
512// <prerequisite>
513//# Classes you should understand before using this one.
514// <li> TableExprNode
515// <li> TableExprNodeRep
516// </prerequisite>
517
518// <synopsis>
519// This abstract class represents an addition in a table expression tree.
520// </synopsis>
521
529
530
531// <summary>
532// Double Array 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
559
560
561// <summary>
562// DComplex Array division in table select expression tree
563// </summary>
564
565// <use visibility=local>
566
567// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
568// </reviewed>
569
570// <prerequisite>
571//# Classes you should understand before using this one.
572// <li> TableExprNode
573// <li> TableExprNodeRep
574// </prerequisite>
575
576// <synopsis>
577// This class represents a division in a table select expression tree.
578// Numeric data types will be promoted if possible, so for instance
579// a division of Int and Complex is possible.
580// </synopsis>
581
589
590
591
592// <summary>
593// Array addition in table select expression tree
594// </summary>
595
596// <use visibility=local>
597
598// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
599// </reviewed>
600
601// <prerequisite>
602//# Classes you should understand before using this one.
603// <li> TableExprNode
604// <li> TableExprNodeRep
605// </prerequisite>
606
607// <synopsis>
608// This abstract class represents an addition in a table expression tree.
609// </synopsis>
610
618
619
620// <summary>
621// Int Array modulo in table select expression tree
622// </summary>
623
624// <use visibility=local>
625
626// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
627// </reviewed>
628
629// <prerequisite>
630//# Classes you should understand before using this one.
631// <li> TableExprNode
632// <li> TableExprNodeRep
633// </prerequisite>
634
635// <synopsis>
636// This class represents a modulo operation in a table select expression tree.
637// It is only possible for datatype Int.
638// </synopsis>
639
647
648
649// <summary>
650// Double Array modulo in table select expression tree
651// </summary>
652
653// <use visibility=local>
654
655// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
656// </reviewed>
657
658// <prerequisite>
659//# Classes you should understand before using this one.
660// <li> TableExprNode
661// <li> TableExprNodeRep
662// </prerequisite>
663
664// <synopsis>
665// This class represents a modulo operation in a table select expression tree.
666// It is only possible for datatype Double.
667// </synopsis>
668
676
677
678
679// <summary>
680// Int Array bitwise and in table select expression tree
681// </summary>
682
683// <use visibility=local>
684
685// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
686// </reviewed>
687
688// <prerequisite>
689//# Classes you should understand before using this one.
690// <li> TableExprNode
691// <li> TableExprNodeRep
692// </prerequisite>
693
694// <synopsis>
695// This class represents a bitwise and operation in a table select expression
696// tree. It is only possible for datatype Int.
697// </synopsis>
698
706
707
708// <summary>
709// Int Array bitwise or in table select expression tree
710// </summary>
711
712// <use visibility=local>
713
714// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
715// </reviewed>
716
717// <prerequisite>
718//# Classes you should understand before using this one.
719// <li> TableExprNode
720// <li> TableExprNodeRep
721// </prerequisite>
722
723// <synopsis>
724// This class represents a bitwise or operation in a table select expression
725// tree. It is only possible for datatype Int.
726// </synopsis>
727
735
736
737// <summary>
738// Int Array bitwise xor in table select expression tree
739// </summary>
740
741// <use visibility=local>
742
743// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
744// </reviewed>
745
746// <prerequisite>
747//# Classes you should understand before using this one.
748// <li> TableExprNode
749// <li> TableExprNodeRep
750// </prerequisite>
751
752// <synopsis>
753// This class represents a bitwise xor operation in a table select expression
754// tree. It is only possible for datatype Int.
755// </synopsis>
756
764
765
766
767// <summary>
768// Unary minus in table select expression tree
769// </summary>
770
771// <use visibility=local>
772
773// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
774// </reviewed>
775
776// <prerequisite>
777//# Classes you should understand before using this one.
778// <li> TableExprNode
779// </prerequisite>
780
781// <synopsis>
782// This class represents a unary minus in a table select expression tree.
783// This is defined for numeric data types only.
784// </synopsis>
785
795
796
797// <summary>
798// Bitwise negate in table select expression tree
799// </summary>
800
801// <use visibility=local>
802
803// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
804// </reviewed>
805
806// <prerequisite>
807//# Classes you should understand before using this one.
808// <li> TableExprNode
809// </prerequisite>
810
811// <synopsis>
812// This class represents a bitwise negate in a table select expression tree.
813// This is defined for Int data types only.
814// </synopsis>
815
823
824
825} //# NAMESPACE CASACORE - END
826
827#endif
Int Array bitwise and in table select expression tree.
TableExprNodeArrayBitAndInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
Bitwise negate in table select expression tree.
TableExprNodeArrayBitNegate(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
Int Array bitwise or in table select expression tree.
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayBitOrInt(const TableExprNodeRep &)
Int Array bitwise xor in table select expression tree.
TableExprNodeArrayBitXorInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
DComplex Array division in table select expression tree.
TableExprNodeArrayDivideDComplex(const TableExprNodeRep &)
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
Double Array division in table select expression tree.
TableExprNodeArrayDivideDouble(const TableExprNodeRep &)
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
Array addition in table select expression tree.
TableExprNodeArrayDivide(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
Unary minus in table select expression tree.
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
TableExprNodeArrayMIN(const TableExprNodeRep &)
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
MArray< Int64 > getArrayInt(const TableExprId &id)
DComplex Array subtraction in table select expression tree.
TableExprNodeArrayMinusDComplex(const TableExprNodeRep &)
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
Date Array subtraction in table select expression tree.
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
MArray< MVTime > getArrayDate(const TableExprId &id)
TableExprNodeArrayMinusDate(const TableExprNodeRep &)
Double Array subtraction in table select expression tree.
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayMinusDouble(const TableExprNodeRep &)
Int Array subtraction in table select expression tree.
TableExprNodeArrayMinusInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
Array addition in table select expression tree.
TableExprNodeArrayMinus(NodeDataType, const TableExprNodeRep &)
Double Array modulo in table select expression tree.
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayModuloDouble(const TableExprNodeRep &)
Int Array modulo in table select expression tree.
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayModuloInt(const TableExprNodeRep &)
Array addition in table select expression tree.
TableExprNodeArrayModulo(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
DComplex Array addition in table select expression tree.
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
TableExprNodeArrayPlusDComplex(const TableExprNodeRep &)
Date Array addition in table select expression tree.
MArray< MVTime > getArrayDate(const TableExprId &id)
TableExprNodeArrayPlusDate(const TableExprNodeRep &)
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
Double Array addition in table select expression tree.
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayPlusDouble(const TableExprNodeRep &)
Int Array addition in table select expression tree.
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayPlusInt(const TableExprNodeRep &)
String Array addition in table select expression tree.
TableExprNodeArrayPlusString(const TableExprNodeRep &)
MArray< String > getArrayString(const TableExprId &id)
TableExprNodeArrayPlus(NodeDataType, const TableExprNodeRep &)
DComplex Array multiplication in table select expression tree.
TableExprNodeArrayTimesDComplex(const TableExprNodeRep &)
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
Double Array multiplication in table select expression tree.
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayTimesDouble(const TableExprNodeRep &)
Int Array multiplication in table select expression tree.
TableExprNodeArrayTimesInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
Array addition in table select expression tree.
TableExprNodeArrayTimes(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
Abstract base class for a node in a table column expression tree.
NodeDataType
Define the data types of a node.
this file contains all the compiler specific defines
Definition mainpage.dox:28