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
2// tree # Copyright (C) 1997,1999,2000 # Associated Universities, Inc. Washington DC, USA.
3// #
4// # This library is free software; you can redistribute it and/or modify it
5// # under the terms of the GNU Library General Public License as published by
6// # the Free Software Foundation; either version 2 of the License, or (at your
7// # option) any later version.
8// #
9// # This library is distributed in the hope that it will be useful, but WITHOUT
10// # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11// # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12// # License for more details.
13// #
14// # You should have received a copy of the GNU Library General Public License
15// # along with this library; if not, write to the Free Software Foundation,
16// # Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
17// #
18// # Correspondence concerning AIPS++ should be addressed as follows:
19// # Internet email: casa-feedback@nrao.edu.
20// # Postal address: AIPS++ Project Office
21// # National Radio Astronomy Observatory
22// # 520 Edgemont Road
23// # Charlottesville, VA 22903-2475 USA
24
25#ifndef TABLES_EXPRMATHNODEARRAY_H
26#define TABLES_EXPRMATHNODEARRAY_H
27
28// # Includes
29#include <casacore/casa/aips.h>
30#include <casacore/tables/TaQL/ExprNodeArray.h>
31#include <casacore/casa/Arrays/Array.h>
32
33namespace casacore { // # NAMESPACE CASACORE - BEGIN
34
35// # Forward Declarations
36
37// # This file defines classes derived from TableExprNode representing
38// # the data type and operator in a table expression.
39// #
40// # Data types Bool, Int64, Double, DComplex and String are used.
41// # Char, uChar, Short, uShort, Int, and uInt are converted to Int64,
42// # Float to Double, and Complex to DComplex.
43// # Binary operators +, -, *, /, and % are recognized.
44// # Also unary + and - are recognized.
45
46// <summary>
47// Array addition in table select expression tree
48// </summary>
49
50// <use visibility=local>
51
52// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
53// </reviewed>
54
55// <prerequisite>
56// # Classes you should understand before using this one.
57// <li> TableExprNode
58// <li> TableExprNodeRep
59// </prerequisite>
60
61// <synopsis>
62// This abstract class represents an addition in a table expression tree.
63// </synopsis>
64
70
71// <summary>
72// Int Array addition in table select expression tree
73// </summary>
74
75// <use visibility=local>
76
77// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
78// </reviewed>
79
80// <prerequisite>
81// # Classes you should understand before using this one.
82// <li> TableExprNode
83// <li> TableExprNodeRep
84// </prerequisite>
85
86// <synopsis>
87// This class represents an addition in a table select expression tree.
88// Strings can also be added (ie. concatenated).
89// Numeric data types will be promoted if possible, so for instance
90// an addition of Int and Complex is possible.
91// </synopsis>
92
99
100// <summary>
101// Double Array 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
128
129// <summary>
130// DComplex Array addition in table select expression tree
131// </summary>
132
133// <use visibility=local>
134
135// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
136// </reviewed>
137
138// <prerequisite>
139// # Classes you should understand before using this one.
140// <li> TableExprNode
141// <li> TableExprNodeRep
142// </prerequisite>
143
144// <synopsis>
145// This class represents an addition in a table select expression tree.
146// Strings can also be added (ie. concatenated).
147// Numeric data types will be promoted if possible, so for instance
148// an addition of Int and Complex is possible.
149// </synopsis>
150
157
158// <summary>
159// String Array addition in table select expression tree
160// </summary>
161
162// <use visibility=local>
163
164// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
165// </reviewed>
166
167// <prerequisite>
168// # Classes you should understand before using this one.
169// <li> TableExprNode
170// <li> TableExprNodeRep
171// </prerequisite>
172
173// <synopsis>
174// This class represents an addition in a table select expression tree.
175// Strings can also be added (ie. concatenated).
176// Numeric data types will be promoted if possible, so for instance
177// an addition of Int and Complex is possible.
178// </synopsis>
179
186
187// <summary>
188// Date Array addition in table select expression tree
189// </summary>
190
191// <use visibility=local>
192
193// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
194// </reviewed>
195
196// <prerequisite>
197// # Classes you should understand before using this one.
198// <li> TableExprNode
199// <li> TableExprNodeRep
200// </prerequisite>
201
202// <synopsis>
203// This class represents an addition in a table select expression tree.
204// Strings can also be added (ie. concatenated).
205// Numeric data types will be promoted if possible, so for instance
206// an addition of Int and Complex is possible.
207// </synopsis>
208
217
218// <summary>
219// Array addition in table select expression tree
220// </summary>
221
222// <use visibility=local>
223
224// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
225// </reviewed>
226
227// <prerequisite>
228// # Classes you should understand before using this one.
229// <li> TableExprNode
230// <li> TableExprNodeRep
231// </prerequisite>
232
233// <synopsis>
234// This abstract class represents an addition in a table expression tree.
235// </synopsis>
236
242
243// <summary>
244// Int Array subtraction in table select expression tree
245// </summary>
246
247// <use visibility=local>
248
249// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
250// </reviewed>
251
252// <prerequisite>
253// # Classes you should understand before using this one.
254// <li> TableExprNode
255// <li> TableExprNodeRep
256// </prerequisite>
257
258// <synopsis>
259// This class represents a subtraction in a table select expression tree.
260// Numeric data types will be promoted if possible, so for instance
261// a subtraction of Int and Complex is possible.
262// </synopsis>
263
270
271// <summary>
272// Double Array subtraction in table select expression tree
273// </summary>
274
275// <use visibility=local>
276
277// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
278// </reviewed>
279
280// <prerequisite>
281// # Classes you should understand before using this one.
282// <li> TableExprNode
283// <li> TableExprNodeRep
284// </prerequisite>
285
286// <synopsis>
287// This class represents a subtraction in a table select expression tree.
288// Numeric data types will be promoted if possible, so for instance
289// a subtraction of Int and Complex is possible.
290// </synopsis>
291
298
299// <summary>
300// DComplex Array subtraction in table select expression tree
301// </summary>
302
303// <use visibility=local>
304
305// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
306// </reviewed>
307
308// <prerequisite>
309// # Classes you should understand before using this one.
310// <li> TableExprNode
311// <li> TableExprNodeRep
312// </prerequisite>
313
314// <synopsis>
315// This class represents a subtraction in a table select expression tree.
316// Numeric data types will be promoted if possible, so for instance
317// a subtraction of Int and Complex is possible.
318// </synopsis>
319
326
327// <summary>
328// Date Array 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
356
357// <summary>
358// Array addition 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 abstract class represents an addition in a table expression tree.
374// </synopsis>
375
382
383// <summary>
384// Int Array multiplication in table select expression tree
385// </summary>
386
387// <use visibility=local>
388
389// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
390// </reviewed>
391
392// <prerequisite>
393// # Classes you should understand before using this one.
394// <li> TableExprNode
395// <li> TableExprNodeRep
396// </prerequisite>
397
398// <synopsis>
399// This class represents a multiplication in a table select expression tree.
400// Numeric data types will be promoted if possible, so for instance
401// a multiplication of Int and Complex is possible.
402// </synopsis>
403
410
411// <summary>
412// Double Array multiplication in table select expression tree
413// </summary>
414
415// <use visibility=local>
416
417// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
418// </reviewed>
419
420// <prerequisite>
421// # Classes you should understand before using this one.
422// <li> TableExprNode
423// <li> TableExprNodeRep
424// </prerequisite>
425
426// <synopsis>
427// This class represents a multiplication in a table select expression tree.
428// Numeric data types will be promoted if possible, so for instance
429// a multiplication of Int and Complex is possible.
430// </synopsis>
431
438
439// <summary>
440// DComplex Array multiplication in table select expression tree
441// </summary>
442
443// <use visibility=local>
444
445// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
446// </reviewed>
447
448// <prerequisite>
449// # Classes you should understand before using this one.
450// <li> TableExprNode
451// <li> TableExprNodeRep
452// </prerequisite>
453
454// <synopsis>
455// This class represents a multiplication in a table select expression tree.
456// Numeric data types will be promoted if possible, so for instance
457// a multiplication of Int and Complex is possible.
458// </synopsis>
459
466
467// <summary>
468// Array addition in table select expression tree
469// </summary>
470
471// <use visibility=local>
472
473// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
474// </reviewed>
475
476// <prerequisite>
477// # Classes you should understand before using this one.
478// <li> TableExprNode
479// <li> TableExprNodeRep
480// </prerequisite>
481
482// <synopsis>
483// This abstract class represents an addition in a table expression tree.
484// </synopsis>
485
492
493// <summary>
494// Double Array division in table select expression tree
495// </summary>
496
497// <use visibility=local>
498
499// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
500// </reviewed>
501
502// <prerequisite>
503// # Classes you should understand before using this one.
504// <li> TableExprNode
505// <li> TableExprNodeRep
506// </prerequisite>
507
508// <synopsis>
509// This class represents a division in a table select expression tree.
510// Numeric data types will be promoted if possible, so for instance
511// a division of Int and Complex is possible.
512// </synopsis>
513
520
521// <summary>
522// DComplex Array division in table select expression tree
523// </summary>
524
525// <use visibility=local>
526
527// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
528// </reviewed>
529
530// <prerequisite>
531// # Classes you should understand before using this one.
532// <li> TableExprNode
533// <li> TableExprNodeRep
534// </prerequisite>
535
536// <synopsis>
537// This class represents a division in a table select expression tree.
538// Numeric data types will be promoted if possible, so for instance
539// a division of Int and Complex is possible.
540// </synopsis>
541
548
549// <summary>
550// Array addition in table select expression tree
551// </summary>
552
553// <use visibility=local>
554
555// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
556// </reviewed>
557
558// <prerequisite>
559// # Classes you should understand before using this one.
560// <li> TableExprNode
561// <li> TableExprNodeRep
562// </prerequisite>
563
564// <synopsis>
565// This abstract class represents an addition in a table expression tree.
566// </synopsis>
567
574
575// <summary>
576// Int Array modulo in table select expression tree
577// </summary>
578
579// <use visibility=local>
580
581// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
582// </reviewed>
583
584// <prerequisite>
585// # Classes you should understand before using this one.
586// <li> TableExprNode
587// <li> TableExprNodeRep
588// </prerequisite>
589
590// <synopsis>
591// This class represents a modulo operation in a table select expression tree.
592// It is only possible for datatype Int.
593// </synopsis>
594
601
602// <summary>
603// Double Array modulo in table select expression tree
604// </summary>
605
606// <use visibility=local>
607
608// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
609// </reviewed>
610
611// <prerequisite>
612// # Classes you should understand before using this one.
613// <li> TableExprNode
614// <li> TableExprNodeRep
615// </prerequisite>
616
617// <synopsis>
618// This class represents a modulo operation in a table select expression tree.
619// It is only possible for datatype Double.
620// </synopsis>
621
628
629// <summary>
630// Int Array bitwise and 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 bitwise and operation in a table select expression
646// tree. It is only possible for datatype Int.
647// </synopsis>
648
655
656// <summary>
657// Int Array bitwise or in table select expression tree
658// </summary>
659
660// <use visibility=local>
661
662// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
663// </reviewed>
664
665// <prerequisite>
666// # Classes you should understand before using this one.
667// <li> TableExprNode
668// <li> TableExprNodeRep
669// </prerequisite>
670
671// <synopsis>
672// This class represents a bitwise or operation in a table select expression
673// tree. It is only possible for datatype Int.
674// </synopsis>
675
682
683// <summary>
684// Int Array bitwise xor in table select expression tree
685// </summary>
686
687// <use visibility=local>
688
689// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
690// </reviewed>
691
692// <prerequisite>
693// # Classes you should understand before using this one.
694// <li> TableExprNode
695// <li> TableExprNodeRep
696// </prerequisite>
697
698// <synopsis>
699// This class represents a bitwise xor operation in a table select expression
700// tree. It is only possible for datatype Int.
701// </synopsis>
702
709
710// <summary>
711// Unary minus in table select expression tree
712// </summary>
713
714// <use visibility=local>
715
716// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
717// </reviewed>
718
719// <prerequisite>
720// # Classes you should understand before using this one.
721// <li> TableExprNode
722// </prerequisite>
723
724// <synopsis>
725// This class represents a unary minus in a table select expression tree.
726// This is defined for numeric data types only.
727// </synopsis>
728
737
738// <summary>
739// Bitwise negate in table select expression tree
740// </summary>
741
742// <use visibility=local>
743
744// <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="">
745// </reviewed>
746
747// <prerequisite>
748// # Classes you should understand before using this one.
749// <li> TableExprNode
750// </prerequisite>
751
752// <synopsis>
753// This class represents a bitwise negate in a table select expression tree.
754// This is defined for Int data types only.
755// </synopsis>
756
763
764} // namespace casacore
765
766#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.
For temporary backward namespace compatibility, use casa as alias for casacore.
Definition mainpage.dox:28