28 #ifndef TABLES_EXPRGROUPAGGRFUNCARRAY_H
29 #define TABLES_EXPRGROUPAGGRFUNCARRAY_H
32 #include <casacore/casa/aips.h>
33 #include <casacore/tables/TaQL/ExprGroup.h>
Aggregate class counting if all array values in a group are true.
TableExprGroupArrayAll(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupArrayAll()
Aggregate class counting per array index in a group if all are true.
TableExprGroupArrayAlls(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupArrayAlls()
TableExprGroupArrayAny(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupArrayAny()
Aggregate class counting per array index in a group if any is true.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupArrayAnys(TableExprNodeRep *node)
virtual ~TableExprGroupArrayAnys()
Aggregate class counting the number of false array values in a group.
virtual ~TableExprGroupArrayNFalse()
TableExprGroupArrayNFalse(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 per array index in a group the nr of false values.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupArrayNFalses(TableExprNodeRep *node)
virtual ~TableExprGroupArrayNFalses()
Aggregate class counting the number of true array values in a group.
virtual ~TableExprGroupArrayNTrue()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupArrayNTrue(TableExprNodeRep *node)
Aggregate class counting per array index in a group the nr of true values.
virtual ~TableExprGroupArrayNTrues()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupArrayNTrues(TableExprNodeRep *node)
Aggregate class determining the fractile of array values in a group.
TableExprGroupFractileArrayDouble(TableExprNodeRep *node, Double fractile)
virtual ~TableExprGroupFractileArrayDouble()
virtual Bool isLazy() const
Does the aggregate function use lazy semantics? The default implementation returns False.
virtual Double getDouble(const vector< TableExprId > &ids)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
Abstract base class for aggregate functions giving a bool array.
Abstract base class for aggregate functions giving a dcomplex array.
Abstract base class for aggregate functions giving a double array.
Abstract base class for aggregate functions giving an integer array.
Abstract base class for classes calculating an aggregated group result.
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.
Base aggregate class determining the histogram of values in a group.
TableExprGroupHistBase(TableExprNodeRep *node, Int64 nbin, Double start, Double end)
virtual ~TableExprGroupHistBase()
virtual MArray< Int64 > getArrayInt(const vector< TableExprId > &)
void add(Double value)
Add the value to the histogram.
Aggregate class determining the histogram of double array values in a group.
TableExprGroupHistDouble(TableExprNodeRep *node, Int64 nbin, Double start, Double end)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupHistDouble()
Aggregate class determining the histogram of integer array values in a group.
TableExprGroupHistInt(TableExprNodeRep *node, Int64 nbin, Double start, Double end)
virtual ~TableExprGroupHistInt()
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 histogram of scalar 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.
TableExprGroupHistScalar(TableExprNodeRep *node, Int64 nbin, Double start, Double end)
virtual ~TableExprGroupHistScalar()
Aggregate class determining the maximum double array value in a group.
virtual ~TableExprGroupMaxArrayDouble()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupMaxArrayDouble(TableExprNodeRep *node)
Aggregate class determining the maximum integer array value in a group.
virtual ~TableExprGroupMaxArrayInt()
TableExprGroupMaxArrayInt(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 double array value in a group.
TableExprGroupMaxsArrayDouble(TableExprNodeRep *node)
virtual ~TableExprGroupMaxsArrayDouble()
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 per array index in a group the maximum value.
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.
virtual ~TableExprGroupMaxsArrayInt()
TableExprGroupMaxsArrayInt(TableExprNodeRep *node)
Aggregate class determining the mean of complex array values in a group.
TableExprGroupMeanArrayDComplex(TableExprNodeRep *node)
virtual void finish()
If needed, finish the aggregation.
virtual ~TableExprGroupMeanArrayDComplex()
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 array 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 ~TableExprGroupMeanArrayDouble()
virtual void finish()
If needed, finish the aggregation.
TableExprGroupMeanArrayDouble(TableExprNodeRep *node)
Aggregate class determining the mean of complex array values in a group.
TableExprGroupMeansArrayDComplex(TableExprNodeRep *node)
virtual ~TableExprGroupMeansArrayDComplex()
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 array values in a group.
virtual ~TableExprGroupMeansArrayDouble()
TableExprGroupMeansArrayDouble(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 minimum double array value in a group.
virtual ~TableExprGroupMinArrayDouble()
TableExprGroupMinArrayDouble(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 minimum integer array 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 ~TableExprGroupMinArrayInt()
TableExprGroupMinArrayInt(TableExprNodeRep *node)
Aggregate class determining the minimum double array value in a group.
virtual ~TableExprGroupMinsArrayDouble()
virtual void finish()
If needed, finish the aggregation.
TableExprGroupMinsArrayDouble(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 per array index in a group the minimum value.
virtual void finish()
If needed, finish the aggregation.
TableExprGroupMinsArrayInt(TableExprNodeRep *node)
virtual ~TableExprGroupMinsArrayInt()
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 product of complex array values in a group.
virtual ~TableExprGroupProductArrayDComplex()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupProductArrayDComplex(TableExprNodeRep *node)
Aggregate class determining the product of double array 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 ~TableExprGroupProductArrayDouble()
TableExprGroupProductArrayDouble(TableExprNodeRep *node)
Aggregate class determining the product of integer array values in a group.
TableExprGroupProductArrayInt(TableExprNodeRep *node)
virtual ~TableExprGroupProductArrayInt()
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 product of complex array values in a group.
TableExprGroupProductsArrayDComplex(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.
virtual ~TableExprGroupProductsArrayDComplex()
Aggregate class determining the product of double array values in a group.
TableExprGroupProductsArrayDouble(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupProductsArrayDouble()
virtual void finish()
If needed, finish the aggregation.
Aggregate class determining per array index in a group the product of values.
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.
virtual ~TableExprGroupProductsArrayInt()
TableExprGroupProductsArrayInt(TableExprNodeRep *node)
Aggregate class determining the RMS of array values in a group.
virtual ~TableExprGroupRmsArrayDouble()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupRmsArrayDouble(TableExprNodeRep *node)
virtual void finish()
If needed, finish the aggregation.
Aggregate class determining the RMS of array values in a group.
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.
TableExprGroupRmssArrayDouble(TableExprNodeRep *node)
virtual ~TableExprGroupRmssArrayDouble()
Aggregate class determining the standard devation of array values in a group.
virtual void finish()
If needed, finish the aggregation.
virtual ~TableExprGroupStdDevArrayDComplex()
TableExprGroupStdDevArrayDComplex(TableExprNodeRep *node, uInt ddof)
Aggregate class determining the standard devation of array values in a group.
virtual ~TableExprGroupStdDevArrayDouble()
virtual void finish()
If needed, finish the aggregation.
TableExprGroupStdDevArrayDouble(TableExprNodeRep *node, uInt ddof)
Aggregate class determining the standard devation of array values in a group.
TableExprGroupStdDevsArrayDComplex(TableExprNodeRep *node, uInt ddof)
virtual void finish()
If needed, finish the aggregation.
virtual ~TableExprGroupStdDevsArrayDComplex()
Aggregate class determining the standard devation of array values in a group.
virtual void finish()
If needed, finish the aggregation.
TableExprGroupStdDevsArrayDouble(TableExprNodeRep *node, uInt ddof)
virtual ~TableExprGroupStdDevsArrayDouble()
Aggregate class determining the sum of complex array 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 ~TableExprGroupSumArrayDComplex()
TableExprGroupSumArrayDComplex(TableExprNodeRep *node)
Aggregate class determining the sum of double array values in a group.
virtual ~TableExprGroupSumArrayDouble()
TableExprGroupSumArrayDouble(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 sum of integer array 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 ~TableExprGroupSumArrayInt()
TableExprGroupSumArrayInt(TableExprNodeRep *node)
Aggregate class determining the sum of squares of complex array values in a group.
virtual ~TableExprGroupSumSqrArrayDComplex()
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupSumSqrArrayDComplex(TableExprNodeRep *node)
Aggregate class determining the sum of squares of double array 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.
TableExprGroupSumSqrArrayDouble(TableExprNodeRep *node)
virtual ~TableExprGroupSumSqrArrayDouble()
Aggregate class determining the sum of squares of integer array 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.
TableExprGroupSumSqrArrayInt(TableExprNodeRep *node)
virtual ~TableExprGroupSumSqrArrayInt()
Aggregate class determining the sum of squares of complex array 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.
TableExprGroupSumSqrsArrayDComplex(TableExprNodeRep *node)
virtual ~TableExprGroupSumSqrsArrayDComplex()
Aggregate class determining the sum of squares of double array values in a group.
virtual ~TableExprGroupSumSqrsArrayDouble()
TableExprGroupSumSqrsArrayDouble(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 per array index in a group the sum of value squares 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 ~TableExprGroupSumSqrsArrayInt()
TableExprGroupSumSqrsArrayInt(TableExprNodeRep *node)
Aggregate class determining the sum of complex array values in a group.
virtual ~TableExprGroupSumsArrayDComplex()
TableExprGroupSumsArrayDComplex(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 sum of double array values in a group.
TableExprGroupSumsArrayDouble(TableExprNodeRep *node)
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
virtual ~TableExprGroupSumsArrayDouble()
Aggregate class determining per array index in a group the sum of values.
virtual void apply(const TableExprId &id)
Get the operand's value for the given row and apply it to the aggregation.
TableExprGroupSumsArrayInt(TableExprNodeRep *node)
virtual ~TableExprGroupSumsArrayInt()
Aggregate class determining the variance of array values in a group.
virtual ~TableExprGroupVarianceArrayDComplex()
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.
TableExprGroupVarianceArrayDComplex(TableExprNodeRep *node, uInt ddof)
Aggregate class determining the variance of array 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.
TableExprGroupVarianceArrayDouble(TableExprNodeRep *node, uInt ddof)
virtual ~TableExprGroupVarianceArrayDouble()
virtual void finish()
If needed, finish the aggregation.
Aggregate class determining the variance of array values in a group.
Array< DComplex > itsCurMean
TableExprGroupVariancesArrayDComplex(TableExprNodeRep *node, uInt ddof)
virtual ~TableExprGroupVariancesArrayDComplex()
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 array 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 void finish()
If needed, finish the aggregation.
virtual ~TableExprGroupVariancesArrayDouble()
Array< Double > itsCurMean
TableExprGroupVariancesArrayDouble(TableExprNodeRep *node, uInt ddof)
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.
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.