28 #ifndef TABLES_EXPRGROUPAGGRFUNC_H
29 #define TABLES_EXPRGROUPAGGRFUNC_H
32 #include <casacore/casa/aips.h>
33 #include <casacore/tables/TaQL/ExprGroup.h>
40 class TableExprNodeArrayColumn;
Aggregate class counting if all values in a group are true.
TableExprGroupAll(TableExprNodeRep *node)
virtual ~TableExprGroupAll()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class counting if any value in a group is true.
virtual ~TableExprGroupAny()
TableExprGroupAny(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
void setResult(Int64 cnt)
Set result in case it is known directly.
virtual ~TableExprGroupCountAll()
TableExprGroupCountAll(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class counting number of rows in a group containing a value.
TableExprGroupCount(TableExprNodeRep *node)
virtual ~TableExprGroupCount()
TableExprNodeArrayColumn * itsColumn
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the fractile of values in a group.
virtual Bool isLazy() const
Does the aggregate function use lazy semantics? The default implementation returns False.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual Double getDouble(const vector< TableExprId > &ids)
TableExprGroupFractileDouble(TableExprNodeRep *node, Double fractile)
virtual ~TableExprGroupFractileDouble()
Abstract base class for aggregate functions giving a bool scalar.
Abstract base class for aggregate functions giving a dcomplex scalar.
Abstract base class for aggregate functions giving a double scalar.
Abstract base class for aggregate functions giving an integer scalar.
Aggregate class determining the maximum double value in a group.
virtual ~TableExprGroupMaxDouble()
TableExprGroupMaxDouble(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the maximum integer value in a group.
TableExprGroupMaxInt(TableExprNodeRep *node)
virtual ~TableExprGroupMaxInt()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the mean of complex values in a group.
virtual ~TableExprGroupMeanDComplex()
TableExprGroupMeanDComplex(TableExprNodeRep *node)
virtual void finish()
If needed, finish the aggregation.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the mean of values in a group.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupMeanDouble(TableExprNodeRep *node)
virtual ~TableExprGroupMeanDouble()
virtual void finish()
If needed, finish the aggregation.
Aggregate class determining the minimum double value in a group.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupMinDouble()
TableExprGroupMinDouble(TableExprNodeRep *node)
Aggregate class determining the minimum integer value in a group.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupMinInt(TableExprNodeRep *node)
virtual ~TableExprGroupMinInt()
Aggregate class counting the number of false values in a group.
virtual ~TableExprGroupNFalse()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupNFalse(TableExprNodeRep *node)
Aggregate class counting the number of true values in a group.
TableExprGroupNTrue(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupNTrue()
Aggregate class determining the product of complex values in a group.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupProductDComplex()
TableExprGroupProductDComplex(TableExprNodeRep *node)
Aggregate class determining the product of double values in a group.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupProductDouble(TableExprNodeRep *node)
virtual ~TableExprGroupProductDouble()
Aggregate class determining the product of integer values in a group.
virtual ~TableExprGroupProductInt()
TableExprGroupProductInt(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the RMS of values in a group.
virtual ~TableExprGroupRmsDouble()
TableExprGroupRmsDouble(TableExprNodeRep *node)
virtual void finish()
If needed, finish the aggregation.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the standard deviation of values in a group.
virtual void finish()
If needed, finish the aggregation.
TableExprGroupStdDevDComplex(TableExprNodeRep *node, uInt ddof)
virtual ~TableExprGroupStdDevDComplex()
Aggregate class determining the standard deviation of values in a group.
virtual void finish()
If needed, finish the aggregation.
virtual ~TableExprGroupStdDevDouble()
TableExprGroupStdDevDouble(TableExprNodeRep *node, uInt ddof)
Aggregate class determining the sum of complex values in a group.
TableExprGroupSumDComplex(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupSumDComplex()
Aggregate class determining the sum of double values in a group.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupSumDouble(TableExprNodeRep *node)
virtual ~TableExprGroupSumDouble()
Aggregate class determining the sum of integer values in a group.
TableExprGroupSumInt(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupSumInt()
Aggregate class determining the sum of squares of complex values in a group.
TableExprGroupSumSqrDComplex(TableExprNodeRep *node)
virtual ~TableExprGroupSumSqrDComplex()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the sum of squares of double values in a group.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupSumSqrDouble()
TableExprGroupSumSqrDouble(TableExprNodeRep *node)
Aggregate class determining the sum of squares of integer values in a group.
virtual ~TableExprGroupSumSqrInt()
TableExprGroupSumSqrInt(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Aggregate class determining the variance of values in a group.
virtual ~TableExprGroupVarianceDComplex()
TableExprGroupVarianceDComplex(TableExprNodeRep *node, uInt ddof)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual void finish()
If needed, finish the aggregation.
Aggregate class determining the variance of values in a group.
virtual void finish()
If needed, finish the aggregation.
virtual ~TableExprGroupVarianceDouble()
TableExprGroupVarianceDouble(TableExprNodeRep *node, uInt ddof)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Base class for Array column in table select expression.
Abstract base class for a node in a table column expression tree.
std::complex< Double > DComplex
this file contains all the compiler specific defines
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.
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
bool Bool
Define the standard types used by Casacore.