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
TableExprNodeArrayBitAndInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayBitNegate(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayBitOrInt(const TableExprNodeRep &)
TableExprNodeArrayBitXorInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayDivideDComplex(const TableExprNodeRep &)
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
TableExprNodeArrayDivideDouble(const TableExprNodeRep &)
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayDivide(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
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)
TableExprNodeArrayMinusDComplex(const TableExprNodeRep &)
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
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 &)
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayMinusDouble(const TableExprNodeRep &)
TableExprNodeArrayMinusInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayMinus(NodeDataType, const TableExprNodeRep &)
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayModuloDouble(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayModuloInt(const TableExprNodeRep &)
TableExprNodeArrayModulo(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
TableExprNodeArrayPlusDComplex(const TableExprNodeRep &)
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.
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayPlusDouble(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayPlusInt(const TableExprNodeRep &)
TableExprNodeArrayPlusString(const TableExprNodeRep &)
MArray< String > getArrayString(const TableExprId &id)
TableExprNodeArrayPlus(NodeDataType, const TableExprNodeRep &)
TableExprNodeArrayTimesDComplex(const TableExprNodeRep &)
MArray< DComplex > getArrayDComplex(const TableExprId &id)
The default implementation of getArrayDComplex does getArrayDouble and converts the result.
MArray< Double > getArrayDouble(const TableExprId &id)
The default implementation of getArrayDouble does getArrayInt and converts the result.
TableExprNodeArrayTimesDouble(const TableExprNodeRep &)
TableExprNodeArrayTimesInt(const TableExprNodeRep &)
MArray< Int64 > getArrayInt(const TableExprId &id)
TableExprNodeArrayTimes(NodeDataType, const TableExprNodeRep &)
virtual void handleUnits()
Handle the units of the children and possibly set the parent's unit.
TableExprNodeArray(NodeDataType, OperType)
Create the object.
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