28 #ifndef TABLES_EXPRNODE_H 29 #define TABLES_EXPRNODE_H 32 #include <casacore/casa/aips.h> 33 #include <casacore/tables/TaQL/ExprNodeRep.h> 34 #include <casacore/tables/TaQL/ExprRange.h> 35 #include <casacore/tables/TaQL/ExprFuncNode.h> 36 #include <casacore/tables/TaQL/TaQLStyle.h> 37 #include <casacore/tables/TaQL/MArray.h> 38 #include <casacore/casa/Utilities/CountedPtr.h> 39 #include <casacore/casa/Utilities/DataType.h> 40 #include <casacore/casa/BasicSL/Complex.h> 52 class TableExprNodeBinary;
53 class TableExprNodeSet;
54 template<
class T>
class Block;
55 template<
class T>
class Array;
1064 void show (ostream&)
const;
1424 left, right, tolerance);
1437 left, right, tolerance);
1474 sourcePos, conePos, radii);
1481 sourcePos, conePos, radii);
1488 sourcePos, conePos, radii);
1959 array, fraction, axes);
1989 node, halfBoxWidth);
1995 node, halfBoxWidth);
2001 node, halfBoxWidth);
2007 node, halfBoxWidth);
2013 node, halfBoxWidth);
2019 node, halfBoxWidth);
2025 node, halfBoxWidth);
2031 node, halfBoxWidth);
2037 node, halfBoxWidth);
2043 node, halfBoxWidth);
2049 node, halfBoxWidth);
2055 node, halfBoxWidth);
2061 node, halfBoxWidth);
2067 node, halfBoxWidth);
2073 node, halfBoxWidth);
2079 node, halfBoxWidth);
2085 node, halfBoxWidth);
2091 node, halfBoxWidth);
2097 node, halfBoxWidth);
2103 node, halfBoxWidth);
2172 condition, arg1, arg2);
friend TableExprNode runningMax(const TableExprNode &array)
LatticeExprNode log10(const LatticeExprNode &expr)
friend TableExprNode norm(const TableExprNode &node)
friend TableExprNode cones(const TableExprNode &sourcePos, const TableExprNode &cones)
Cone search; test if the position of a source is inside a cone.
CountedPtr< TableExprNodeRep > TENShPtr
friend TableExprNode ceil(const TableExprNode &node)
friend TableExprNode year(const TableExprNode &node)
const Record & attributes() const
Get the attributes.
Array< String > getArrayString(const TableExprId &id) const
friend TableExprNode operator<(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode ntrues(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
Array< Double > getArrayDouble(const TableExprId &id) const
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
TableExprNode dms(const TableExprNode &node)
friend TableExprNode month(const TableExprNode &node)
Class to handle an Array with an optional mask.
MArray< Double > getDoubleAS(const TableExprId &id)
TableExprNode boxedStddev(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
TableExprNode anyCone(const TableExprNode &sourcePos, const TableExprNode &cones)
The result is always a Bool scalar telling if any cone contains the source.
TableExprNode transpose(const TableExprNode &array)
Transpose all axes of a (masked) array.
return angles as dms strings
friend TableExprNode sin(const TableExprNode &node)
Transcendental functions that can be applied to essentially all numeric nodes containing scalars or a...
Array< Int64 > getArrayInt(const TableExprId &id) const
TableExprNode alls(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
virtual Array< uInt > getColumnuInt(const Vector< uInt > &rownrs)
friend TableExprNode mjdtodate(const TableExprNode &node)
LatticeExprNode log(const LatticeExprNode &expr)
friend TableExprNode runningRms(const TableExprNode &array)
t * get() const
Get the underlying pointer.
friend TableExprNode cdate(const TableExprNode &node)
friend TableExprNode cosh(const TableExprNode &node)
friend TableExprNode rmss(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
LatticeExprNode arg(const LatticeExprNode &expr)
TableExprNode means(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TableExprNode runningRms(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
friend TableExprNode tanh(const TableExprNode &node)
TableExprNode downcase(const TableExprNode &node)
friend TableExprNode means(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
LatticeExprNode median(const LatticeExprNode &expr)
for Int, Double or Complex returning Double or Complex
friend TableExprNode day(const TableExprNode &node)
Array< DComplex > getColumnDComplex(const Vector< uInt > &rownrs) const
TableExprNode time(const TableExprNode &node)
for any array returning Bool scalar
virtual Array< Bool > getColumnBool(const Vector< uInt > &rownrs)
Get the value of the expression evaluated for the entire column.
friend TableExprNode runningMin(const TableExprNode &array)
TENShPtr newGT(const TENShPtr &right) const
friend TableExprNode operator &(const TableExprNode &left, const TableExprNode &right)
std::complex< Float > Complex
Main interface class to a read/write table.
LatticeExprNode operator/(const LatticeExprNode &left, const LatticeExprNode &right)
TableExprNode runningVariance(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
const TableExprNodeRep * getNodeRep() const
LatticeExprNode mask(const LatticeExprNode &expr)
This function returns the mask of the given expression.
cone search functions, implemented in derived class
friend TableExprNode cos(const TableExprNode &node)
friend TableExprNode ndim(const TableExprNode &array)
friend TableExprNode downcase(const TableExprNode &node)
T product(const TableVector< T > &tv)
friend TableExprNode any(const TableExprNode &array)
LatticeExprNode imag(const LatticeExprNode &expr)
TableExprNode variances(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
friend TableExprNode operator|(const TableExprNode &left, const TableExprNode &right)
for Bool array returning Int scalar
friend TableExprNode datetime(const TableExprNode &node)
Functions for date-values.
MArray< String > getStringAS(const TableExprId &id)
friend TableExprNode variance(const TableExprNode &array)
virtual MArray< Bool > getArrayBool(const TableExprId &id)
Get an array value for this node in the given row.
Array< Short > getColumnShort(const Vector< uInt > &rownrs) const
TableExprNode array(const TableExprNode &values, const TableExprNodeSet &shape)
Create an array of the given shape and fill it with the values.
Class to hold multiple table expression nodes.
LatticeExprNode sum(const LatticeExprNode &expr)
MArray< DComplex > getDComplexAS(const TableExprId &id) const
TableExprNode(TableExprNodeRep *rep)
Construct from a node representation.
LatticeExprNode max(const LatticeExprNode &left, const LatticeExprNode &right)
TableExprNode operator-() const
TableExprNode weekday(const TableExprNode &node)
Handle class for a table column expression tree.
LatticeExprNode operator%(const LatticeExprNode &left, const LatticeExprNode &right)
friend TableExprNode atan(const TableExprNode &node)
TENShPtr newBitAnd(const TENShPtr &right) const
virtual MArray< MVTime > getArrayDate(const TableExprId &id)
TableExprNode runningAll(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
friend TableExprNode fmod(const TableExprNode &x, const TableExprNode &y)
TableExprNode phase(const TableExprNode &node)
The phase (i.e.
virtual MVTime getDate(const TableExprId &id)
TENShPtr newBitXor(const TENShPtr &right) const
friend TableExprNode median(const TableExprNode &array)
friend TableExprNode nelements(const TableExprNode &array)
Functions operating on any scalar or array resulting in a Double scalar.
TableExprNode ltrim(const TableExprNode &node)
static TableExprNode newRandomNode(const Table &table)
Create rand() function node.
Bool near(const GaussianBeam &left, const GaussianBeam &other, const Double relWidthTol, const Quantity &absPaTol)
friend TableExprNode runningAny(const TableExprNode &array)
TENShPtr newTimes(const TENShPtr &right) const
friend TableExprNode marray(const TableExprNode &array, const TableExprNode &mask)
Form a masked array.
friend TableExprNode findCone(const TableExprNode &sourcePos, const TableExprNode &cones)
The sourcePos can contain multiple sources.
friend TableExprNode log(const TableExprNode &node)
MArray< String > getStringAS(const TableExprId &id) const
for Int, Double, Complex or String returning Bool
LatticeExprNode ntrue(const LatticeExprNode &expr)
friend TableExprNode replace(const TableExprNode &str, const TableExprNode &patt)
virtual Int64 getInt(const TableExprId &id)
friend TableExprNode amplitude(const TableExprNode &node)
The amplitude (i.e.
friend TableExprNode pattern(const TableExprNode &node)
for Int, Double or DComplex returning Double
void show(ostream &) const
Show the tree.
friend TableExprNode abs(const TableExprNode &node)
Array< uChar > getColumnuChar(const Vector< uInt > &rownrs) const
virtual Array< Double > getColumnDouble(const Vector< uInt > &rownrs)
virtual Array< uShort > getColumnuShort(const Vector< uInt > &rownrs)
friend TableExprNode isFinite(const TableExprNode &node)
Function to test if a scalar or array is finite.
friend TableExprNode operator<=(const TableExprNode &left, const TableExprNode &right)
TableExprNode mins(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
virtual Array< Float > getColumnFloat(const Vector< uInt > &rownrs)
uInt nrow() const
Get the number of rows in the table associated with this expression.
friend TableExprNode runningVariance(const TableExprNode &array)
LatticeExprNode fractile(const LatticeExprNode &expr, const LatticeExprNode &fraction)
Determine the value of the element at the part fraction from the beginning of the given lattice...
void adaptUnit(const Unit &)
Adapt the unit of the expression to the given unit (if not empty).
TableExprNode maxs(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
angular distance returning radians
TableExprNode year(const TableExprNode &node)
MArray< Int64 > getIntAS(const TableExprId &id)
Bool checkTableSize(const Table &table, Bool canBeConst) const
Check if tables used in expression have the same number of rows as the given table.
friend TableExprNode nearAbs(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode ctime(const TableExprNode &node)
static TableExprNode newFunctionNode(TableExprFuncNode::FunctionType, const TableExprNodeSet &set, const Table &table, const TaQLStyle &=TaQLStyle(0))
Create function node of the given type with the given arguments.
LatticeExprNode exp(const LatticeExprNode &expr)
Bool isNull() const
Does the node contain no actual node?
friend TableExprNode real(const TableExprNode &node)
The real part of a complex node.
friend TableExprNode sum(const TableExprNode &array)
Functions operating on a Double or Complex scalar or array resulting in a scalar with the same data t...
friend TableExprNode angdist(const TableExprNode &pos1, const TableExprNode &pos2)
Angular distance between positions.
TableExprNode mjd(const TableExprNode &node)
friend TableExprNode substr(const TableExprNode &str, const TableExprNode &pos)
bool operator==(const casacore_allocator< T, ALIGNMENT > &, const casacore_allocator< T, ALIGNMENT > &)
friend TableExprNode runningMedian(const TableExprNode &array)
friend TableExprNode floor(const TableExprNode &node)
friend TableExprNode phase(const TableExprNode &node)
The phase (i.e.
void applySelection(const Vector< uInt > &rownrs)
Re-create the column object for a selection of rows.
TableExprNode month(const TableExprNode &node)
virtual Array< DComplex > getColumnDComplex(const Vector< uInt > &rownrs)
Abstract base class for a node in a table column expression tree.
MArray< MVTime > getDateAS(const TableExprId &id)
static TableExprNode newKeyConst(const TableRecord &, const Vector< String > &fieldNames)
Create a TableExprNodeConst for a table keyword (which is handled as a constant). ...
TENShPtr setBinaryNodeInfo(TableExprNodeBinary *tsnptr, const TENShPtr &right=TENShPtr()) const
Put the new binary node object in a shared pointer.
TableExprNode operator+() const
Unary operators on numeric TableExprNode's.
TableExprNode boxedAvdev(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
TableExprNode marray(const TableExprNode &array, const TableExprNode &mask)
Form a masked array.
TableExprNode runningMax(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
TableExprNode strlength(const TableExprNode &node)
String functions on scalars or arrays.
LatticeExprNode any(const LatticeExprNode &expr)
Functions operating on a logical expression resulting in a scalar; Functions "any" (are any pixels "T...
TableExprNode boxedMedian(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
friend TableExprNode isNaN(const TableExprNode &node)
Function to test if a scalar or array is NaN (not-a-number).
Array< Bool > getArrayBool(const TableExprId &id) const
LatticeExprNode floor(const LatticeExprNode &expr)
TableExprNode arrayMask(const TableExprNode &array)
Get the mask of a masked array.
MArray< Int64 > getIntAS(const TableExprId &id) const
TableExprNode cones(const TableExprNode &sourcePos, const TableExprNode &cones)
Cone search; test if the position of a source is inside a cone.
TableExprNode boolean(const TableExprNode &node)
Convert numeric or string value to bool (0, no, false, - means false)
friend TableExprNode arrayFlatten(const TableExprNode &array)
Flatten a masked array (get unmasked elements).
DComplex getDComplex(const TableExprId &id) const
friend TableExprNode log10(const TableExprNode &node)
static TableExprNode newRowidNode(const Table &table)
Create rowid() function node.
LatticeExprNode cos(const LatticeExprNode &expr)
MArray< Double > getDoubleAS(const TableExprId &id) const
ValueType valueType() const
Get the value type.
for any array returning Int scalar
for any array returning Int array
for Int, Double, Bool or String returning Int (using floor)
TableExprNode rtrim(const TableExprNode &node)
friend TableExprNode rms(const TableExprNode &array)
MArray< MVTime > getDateAS(const TableExprId &id) const
TableExprNode pattern(const TableExprNode &node)
friend TableExprNode operator*(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode boolean(const TableExprNode &node)
Convert numeric or string value to bool (0, no, false, - means false)
LatticeExprNode operator>=(const LatticeExprNode &left, const LatticeExprNode &right)
virtual void applySelection(const Vector< uInt > &rownrs)
Re-create the column object for a selection of rows.
void ranges(Block< TableExprRange > &)
Convert the tree to a number of range vectors which at least select the same things.
virtual Array< Int > getColumnInt(const Vector< uInt > &rownrs)
friend TableExprNode tan(const TableExprNode &node)
TENShPtr node_p
The actual (counted referenced) representation of a node.
Array< String > getColumnString(const Vector< uInt > &rownrs) const
LatticeExprNode conj(const LatticeExprNode &expr)
Array< Bool > getColumnBool(const Vector< uInt > &rownrs) const
Get the value of the expression evaluated for the entire column.
friend TableExprNode asin(const TableExprNode &node)
Transcendental functions applied to to nodes containing scalars or arrays with double values...
Array< MVTime > getArrayDate(const TableExprId &id) const
virtual MArray< Double > getArrayDouble(const TableExprId &id)
friend TableExprNode stddev(const TableExprNode &array)
friend TableExprNode operator||(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode rtrim(const TableExprNode &node)
friend TableExprNode avdevs(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TENShPtr newModulo(const TENShPtr &right) const
const Unit & unit() const
Get the unit of the expression.
virtual Double getDouble(const TableExprId &id)
~TableExprNode()
The destructor deletes all the underlying TableExprNode objects,.
for any type returning array of that type
for Int, Double or DComplex returning Int, Double or Complex
TableExprNode & operator=(const TableExprNode &)
Assignment (reference semantics).
friend TableExprNode runningStddev(const TableExprNode &array)
LatticeExprNode nfalse(const LatticeExprNode &expr)
TableExprNode operator!() const
Unary NOT-operator on boolean TableExprNode's.
friend TableExprNode integer(const TableExprNode &node)
Convert double, bool, or string to int (using floor).
friend TableExprNode ntrue(const TableExprNode &array)
friend TableExprNode products(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
void disableApplySelection()
Do not apply the selection.
Float pow(Float f1, Float f2)
special function resembling if statement
friend TableExprNode exp(const TableExprNode &node)
for Double or DComplex returning Double
TableExprNode medians(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
friend TableExprNode sqrt(const TableExprNode &node)
TableExprNode sumSquares(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
LatticeExprNode tanh(const LatticeExprNode &expr)
friend TableExprNode mjd(const TableExprNode &node)
TENShPtr newBitOr(const TENShPtr &right) const
TableExprNode ntrues(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
for Int, Double or DComplex array returning Bool
virtual MArray< DComplex > getArrayDComplex(const TableExprId &id)
TableExprNode fractiles(const TableExprNode &array, const TableExprNode &fraction, const TableExprNodeSet &collapseAxes)
LatticeExprNode min(const LatticeExprNode &left, const LatticeExprNode &right)
TableExprNode boxedAny(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
LatticeExprNode avdev(const LatticeExprNode &expr)
friend TableExprNode runningAll(const TableExprNode &array)
TableExprNode isInf(const TableExprNode &node)
const Array< T > & array() const
Get access to the array.
friend TableExprNode mins(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TENShPtr newMinus(const TENShPtr &right) const
TableExprNode arrayFlatten(const TableExprNode &array)
Flatten a masked array (get unmasked elements).
TENShPtr newEQ(const TENShPtr &right) const
for Int, Double or DComplex returning Double or Complex
friend TableExprNode arrayData(const TableExprNode &array)
Get the data array of a masked array.
LatticeExprNode replace(const LatticeExprNode &arg1, const LatticeExprNode &arg2)
This function replaces every masked-off element in the first argument with the corresponding element ...
TableExprNode useUnit(const Unit &unit) const
Use a unit for the given TableExprNode.
for Int, or Double or Complex returning Bool (2 is with default tolerance)
friend TableExprNode alls(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
friend TableExprNode shape(const TableExprNode &array)
Function operating on any scalar or array resulting in a Double array containing the shape...
static TableExprNode newRownrNode(const Table &table, uInt origin)
Create rownumber() function node.
std::complex< Double > DComplex
friend TableExprNode upcase(const TableExprNode &node)
TableExprNode cdate(const TableExprNode &node)
LatticeExprNode abs(const LatticeExprNode &expr)
Numerical 1-argument functions which result in a real number regardless of input expression type...
Regular expression class.
return angles as hms/dms strings
TableExprNode arrayData(const TableExprNode &array)
Get the data array of a masked array.
friend TableExprNode cube(const TableExprNode &node)
TableExprNode trim(const TableExprNode &node)
Class with static members defining the TaQL style.
LatticeExprNode ndim(const LatticeExprNode &expr)
1-argument function to get the dimensionality of a lattice.
friend TableExprNode max(const TableExprNode &a, const TableExprNode &b)
LatticeExprNode operator<=(const LatticeExprNode &left, const LatticeExprNode &right)
friend TableExprNode operator!=(const TableExprNode &left, const TableExprNode &right)
String toString(const SubScanKey &subScanKey)
void get(const TableExprId &id, Bool &value) const
Get a value for this node in the given row.
friend TableExprNode transpose(const TableExprNode &array)
Transpose all axes of a (masked) array.
Bool isScalar() const
Is the expression a scalar?
for Int, Double or Complex array returning the same
LatticeExprNode formComplex(const LatticeExprNode &left, const LatticeExprNode &right)
Form a complex number from two real numbers.
TableExprNode boxedAll(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
LatticeExprNode iif(const LatticeExprNode &condition, const LatticeExprNode &arg1, const LatticeExprNode &arg2)
Function resembling the ternary ?: construct in C++.
LatticeExprNode nelements(const LatticeExprNode &expr)
1-argument function to get the number of elements in a lattice.
friend TableExprNode cmonth(const TableExprNode &node)
virtual Array< String > getColumnString(const Vector< uInt > &rownrs)
uInt nrow() const
Get the number of rows in the table associated with this expression.
friend TableExprNode operator/(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode atan2(const TableExprNode &y, const TableExprNode &x)
friend TableExprNode pow(const TableExprNode &x, const TableExprNode &exp)
TableExprNode anys(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TableExprNode boxedMax(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
LatticeExprNode sign(const LatticeExprNode &expr)
LatticeExprNode sqrt(const LatticeExprNode &expr)
friend TableExprNode stddevs(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TableExprNode products(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
friend TableExprNode operator%(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode date(const TableExprNode &node)
LatticeExprNode tan(const LatticeExprNode &expr)
friend TableExprNode sumSquare(const TableExprNode &array)
for Int or Double returning Int or Double
TableExprNode isFinite(const TableExprNode &node)
Function to test if a scalar or array is finite.
friend TableExprNode round(const TableExprNode &node)
friend TableExprNode operator==(const TableExprNode &left, const TableExprNode &right)
Comparison operators.
TableExprNode runningAny(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
friend TableExprNode array(const TableExprNode &values, const TableExprNodeSet &shape)
Create an array of the given shape and fill it with the values.
LatticeExprNode atan(const LatticeExprNode &expr)
A hierarchical collection of named fields of various types.
TableExprNode in(const TableExprNode &array, const TaQLStyle &=TaQLStyle(0)) const
The IN operator to test if a value is contained in an array or set.
bool Bool
Define the standard types used by Casacore.
TableExprNode upcase(const TableExprNode &node)
friend TableExprNode operator &&(const TableExprNode &left, const TableExprNode &right)
Logical operators to combine boolean TableExprNode's.
TableExprNode cube(const TableExprNode &node)
LatticeExprNode stddev(const LatticeExprNode &expr)
TableExprNode runningMedian(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
TableExprNode angdistx(const TableExprNode &pos1, const TableExprNode &pos2)
Angular distance as above, but only pair-wise enties are used if both arguments are arrays...
virtual void ranges(Block< TableExprRange > &)
Convert the tree to a number of range vectors which at least select the same things.
static std::vector< TENShPtr > convertBlockTEN(Block< TableExprNode > &nodes)
convert Block of TableExprNode to vector of TENShPtr.
friend TableExprNode maxs(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
for DComplex or String returning DComplex
LatticeExprNode round(const LatticeExprNode &expr)
friend TableExprNode operator>(const TableExprNode &left, const TableExprNode &right)
TableExprNode runningStddev(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
friend TableExprNode sqlpattern(const TableExprNode &node)
return angles as hms strings
TableExprNode substr(const TableExprNode &str, const TableExprNode &pos)
friend TableExprNode acos(const TableExprNode &node)
const Unit & unit() const
Get the unit.
friend TableExprNode runningAvdev(const TableExprNode &array)
virtual MArray< Int64 > getArrayInt(const TableExprId &id)
virtual void show(ostream &, uInt indent) const
Show the expression tree.
friend TableExprNode ltrim(const TableExprNode &node)
virtual Bool getBool(const TableExprId &id)
Get a scalar value for this node in the given row.
Bool getBool(const TableExprId &id) const
TableExprNode sqlpattern(const TableExprNode &node)
friend TableExprNode anyCone(const TableExprNode &sourcePos, const TableExprNode &cones)
The result is always a Bool scalar telling if any cone contains the source.
DataType dataType() const
Get the data type of the expression.
TableExprNode shape(const TableExprNode &array)
Function operating on any scalar or array resulting in a Double array containing the shape...
LatticeExprNode operator &&(const LatticeExprNode &left, const LatticeExprNode &right)
Logical binary operators.
A hierarchical collection of named fields of various types.
LatticeExprNode operator>(const LatticeExprNode &left, const LatticeExprNode &right)
Array< DComplex > getArrayDComplex(const TableExprId &id) const
static TableExprNode newColumnNode(const Table &tab, const String &name, const Vector< String > &fieldNames)
Create a column node on behalf of the Table class.
TENShPtr newPlus(const TENShPtr &right) const
Construct a new node for the given operation.
friend TableExprNode conj(const TableExprNode &node)
The complex conjugate of a complex node.
Array< Int > getColumnInt(const Vector< uInt > &rownrs) const
TableExprNode cmonth(const TableExprNode &node)
TableExprNode operator|(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode runningMean(const TableExprNode &array)
LatticeExprNode atan2(const LatticeExprNode &left, const LatticeExprNode &right)
Numerical 2-argument functions.
TableExprNode integer(const TableExprNode &node)
Convert double, bool, or string to int (using floor).
friend TableExprNode week(const TableExprNode &node)
TableExprNode runningMean(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
TableExprNode findCone(const TableExprNode &sourcePos, const TableExprNode &cones)
The sourcePos can contain multiple sources.
friend TableExprNode arrayMask(const TableExprNode &array)
Get the mask of a masked array.
friend TableExprNode fractile(const TableExprNode &array, const TableExprNode &fraction)
virtual void disableApplySelection()
Do not apply the selection.
TableExprNode boxedMean(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
DataType getColumnDataType() const
Get the data type for doing a getColumn on the expression.
virtual Array< Complex > getColumnComplex(const Vector< uInt > &rownrs)
friend TableExprNode avdev(const TableExprNode &array)
TableExprNode nfalses(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
friend TableExprNode strlength(const TableExprNode &node)
String functions on scalars or arrays.
TableExprNode boxedVariance(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
friend TableExprNode regex(const TableExprNode &node)
Functions for regular expression matching and pattern matching.
friend TableExprNode weekday(const TableExprNode &node)
TableExprNode angdist(const TableExprNode &pos1, const TableExprNode &pos2)
Angular distance between positions.
for Int or Double array returning Int or Double
MArray< Bool > getBoolAS(const TableExprId &id)
Get a value as an array, even it it is a scalar.
TableExprNode isdefined(const TableExprNode &array)
Function operating on a field resulting in a bool scalar.
TableExprNode boxedRms(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
MVTime getDate(const TableExprId &id) const
LatticeExprNode operator+(const LatticeExprNode &expr)
Global functions operating on a LatticeExprNode.
TableExprNode regex(const TableExprNode &node)
Functions for regular expression matching and pattern matching.
LatticeExprNode fmod(const LatticeExprNode &left, const LatticeExprNode &right)
MArray< Bool > getBoolAS(const TableExprId &id) const
Get a value as an array, even it it is a scalar.
TableExprNode day(const TableExprNode &node)
friend TableExprNode nfalse(const TableExprNode &array)
The identification of a TaQL selection subject.
LatticeExprNode asin(const LatticeExprNode &expr)
TENShPtr newDivide(const TENShPtr &right) const
Array< uShort > getColumnuShort(const Vector< uInt > &rownrs) const
friend TableExprNode ctodt(const TableExprNode &node)
TableExprNode cdow(const TableExprNode &node)
TableExprNode boxedMin(const TableExprNode &node, const TableExprNodeSet &halfBoxWidth)
LatticeExprNode mean(const LatticeExprNode &expr)
Array< Double > getColumnDouble(const Vector< uInt > &rownrs) const
virtual String getString(const TableExprId &id)
Table & table()
Get table.
friend TableExprNode mean(const TableExprNode &array)
TENShPtr newIN(const TENShPtr &right, const TaQLStyle &) const
TableExprNode rms(const TableExprNode &array)
TableExprNode runningAvdev(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
LatticeExprNode sinh(const LatticeExprNode &expr)
for Int, Double or DComplex returning Int or Double
Double getDouble(const TableExprId &id) const
Array< uInt > getColumnuInt(const Vector< uInt > &rownrs) const
Class to handle a Regex or StringDistance.
LatticeExprNode acos(const LatticeExprNode &expr)
TableExprNode square(const TableExprNode &node)
virtual TaqlRegex getRegex(const TableExprId &id)
TableExprNode runningMin(const TableExprNode &array, const TableExprNodeSet &halfBoxWidth)
Functions operating for each element on a box around that element.
virtual MArray< String > getArrayString(const TableExprId &id)
friend TableExprNode square(const TableExprNode &node)
for Bool array returning Bool
static TableExprNode newUDFNode(const String &name, const TableExprNodeSet &set, const Table &table, const TaQLStyle &=TaQLStyle(0))
Create a user defined function node.
TableExprNode sumSquare(const TableExprNode &array)
TableExprNode capitalize(const TableExprNode &node)
friend TableExprNode nfalses(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
LatticeExprNode operator-(const LatticeExprNode &expr)
TableExprNode operator~() const
Unary bitwise negate-operator on integer TableExprNode's.
String: the storage and methods of handling collections of characters.
friend TableExprNode cdow(const TableExprNode &node)
static TableRecord * findLastKeyRec(const TableRecord &keyset, const Vector< String > &fieldNames, String &fullName)
Handle all field names except the last one.
const Record & attributes() const
Get the attributes of the expression.
TableExprNode nearAbs(const TableExprNode &left, const TableExprNode &right)
static TableExprNode newArrayPartNode(const TableExprNode &arrayNode, const TableExprNodeSet &indices, const TaQLStyle &=TaQLStyle(0))
Create ArrayElement node for the given array with the given index.
Array< Complex > getColumnComplex(const Vector< uInt > &rownrs) const
TableExprNode stddevs(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TableExprNode datetime(const TableExprNode &node)
Functions for date-values.
T norm(const TableVector< T > &tv)
LatticeExprNode operator^(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode operator<(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode isNaN(const LatticeExprNode &expr)
Test if a value is a NaN.
TableExprNode operator &(const TableExprNode &left, const TableExprNode &right)
TENShPtr newOR(const TENShPtr &right) const
friend TableExprNode medians(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
Class to deal with Levensthein distance of strings.
TableExprNode avdevs(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
MArray< DComplex > getDComplexAS(const TableExprId &id)
TableExprNode mjdtodate(const TableExprNode &node)
friend TableExprNode iif(const TableExprNode &condition, const TableExprNode &arg1, const TableExprNode &arg2)
Function resembling the ternary ?: construct in C++.
TENShPtr newGE(const TENShPtr &right) const
friend TableExprNode arg(const TableExprNode &node)
The arg (i.e.
TableExprNode ctodt(const TableExprNode &node)
static void throwInvDT(const String &message)
Throw invalid data type exception.
friend TableExprNode time(const TableExprNode &node)
virtual DComplex getDComplex(const TableExprId &id)
TENShPtr newNE(const TENShPtr &right) const
virtual Array< uChar > getColumnuChar(const Vector< uInt > &rownrs)
LatticeExprNode variance(const LatticeExprNode &expr)
friend TableExprNode min(const TableExprNode &a, const TableExprNode &b)
Minimum or maximum of 2 nodes.
LatticeExprNode ceil(const LatticeExprNode &expr)
friend TableExprNode imag(const TableExprNode &node)
The imaginary part of a complex node.
for Int or Double array returning Double
String getString(const TableExprId &id) const
Array< Float > getColumnFloat(const Vector< uInt > &rownrs) const
Class to handle date/time type conversions and I/O.
TableExprNode rmss(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
bool operator!=(const casacore_allocator< T, ALIGNMENT > &, const casacore_allocator< T, ALIGNMENT > &)
friend TableExprNode sinh(const TableExprNode &node)
TableExprNode ctime(const TableExprNode &node)
TableExprNode hms(const TableExprNode &node)
Functions for angle-values.
LatticeExprNode all(const LatticeExprNode &expr)
friend TableExprNode near(const TableExprNode &left, const TableExprNode &right)
Functions to return whether a value is "relatively" near another.
friend TableExprNode diagonal(const TableExprNode &array)
Get the diagonal of a (masked) array; If the array is not a Matrix, it will take the diagonals of the...
friend TableExprNode all(const TableExprNode &array)
TENShPtr newAND(const TENShPtr &right) const
friend TableExprNode capitalize(const TableExprNode &node)
Int64 getInt(const TableExprId &id) const
TableExprNode diagonal(const TableExprNode &array)
Get the diagonal of a (masked) array; If the array is not a Matrix, it will take the diagonals of the...
friend TableExprNode isdefined(const TableExprNode &array)
Function operating on a field resulting in a bool scalar.
friend TableExprNode trim(const TableExprNode &node)
friend TableExprNode anys(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
Abstract base class for a node having 0, 1, or 2 child nodes.
friend TableExprNode operator^(const TableExprNode &left, const TableExprNode &right)
friend TableExprNode operator>=(const TableExprNode &left, const TableExprNode &right)
Not defined for Bool.
TableExprNode operator()(const TableExprNodeSet &indices)
Slicing in a node containing an array.
TableExprNode sums(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
The partial version of the functions above.
LatticeExprNode operator||(const LatticeExprNode &left, const LatticeExprNode &right)
friend TableExprNode formComplex(const TableExprNode &real, const TableExprNode &imag)
Form a complex number from two Doubles.
this file contains all the compiler specific defines
MVBaseline operator*(const RotMatrix &left, const MVBaseline &right)
Rotate a Baseline vector with rotation matrix and other multiplications.
LatticeExprNode cosh(const LatticeExprNode &expr)
friend TableExprNode fractiles(const TableExprNode &array, const TableExprNode &fraction, const TableExprNodeSet &collapseAxes)
virtual Array< Short > getColumnShort(const Vector< uInt > &rownrs)
friend TableExprNode sumSquares(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TableExprNode week(const TableExprNode &node)
TableExprNode hdms(const TableExprNode &node)
LatticeExprNode real(const LatticeExprNode &expr)
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
LatticeExprNode sin(const LatticeExprNode &expr)
Numerical 1-argument functions.
for Int, Double, DComplex, Bool or String returning Double
static TableExprNode newConeNode(TableExprFuncNode::FunctionType, const TableExprNodeSet &set, uInt origin=0)
Create cone function node of the given type with the given arguments.
const TENShPtr & getRep() const
returns const pointer to the underlying TableExprNodeRep object.
const Table & table() const
Get table.
friend TableExprNode sign(const TableExprNode &node)
friend TableExprNode sums(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
The partial version of the functions above.
TableExprNode date(const TableExprNode &node)
friend TableExprNode variances(const TableExprNode &array, const TableExprNodeSet &collapseAxes)
TableExprNode amplitude(const TableExprNode &node)
The amplitude (i.e.
friend TableExprNode product(const TableExprNode &array)