Loading...
Searching...
No Matches
casacore::TableExprNodeSetOptContSetBase< T > Class Template Reference
tables package (libcasa_tables) » TaQL_module » TaQL_module_internal_classes

An optimized representation of a selection set with continuous intervals. More...

`#include <ExprNodeSetOpt.h>`

## Public Member Functions

| TableExprNodeSetOptContSetBase (const TableExprNodeSet &orig, const std::vector< T > &starts, const std::vector< T > &ends)
| Construct from the original set and the start and end values of the intervals.
size_t | size () const
| Get the size (nr of intervals).
void | show (ostream &os, uInt indent) const override
| Show the node.
Public Member Functions inherited from casacore::TableExprNodeSetOptBase
| TableExprNodeSetOptBase (const TableExprNodeRep &orig)
Bool | contains (const TableExprId &id, Int64 value) override
| Does the set contain the given value?
Bool | contains (const TableExprId &id, Double value) override
Bool | contains (const TableExprId &id, String value) override
MArray< Bool > | contains (const TableExprId &id, const MArray< Int64 > &value) override
| Tell for each array value if the set contains that value.
MArray< Bool > | contains (const TableExprId &id, const MArray< Double > &value) override
MArray< Bool > | contains (const TableExprId &id, const MArray< String > &value) override
virtual Int64 | find (Int64 value) const
| Tell which key matches a value.
virtual Int64 | find (Double value) const
virtual Int64 | find (String value) const
Public Member Functions inherited from casacore::TableExprNodeRep
| TableExprNodeRep (NodeDataType, ValueType, OperType, ArgType, ExprType, Int ndim, const IPosition &shape)
| Construct a node.
| TableExprNodeRep (NodeDataType, ValueType, OperType, ExprType)
| This constructor is called from the derived TableExprNodeRep.
| TableExprNodeRep (const TableExprNodeRep &)=default
| Copy constructor.
TableExprNodeRep & | operator= (const TableExprNodeRep &)=delete
| Assign to a TableExprNodeRep cannot be done.
virtual | ~TableExprNodeRep ()=default
| The destructor deletes all the underlying TableExprNode objects.
virtual Bool | isAggregate () const
| Is the node an aggegation node.
virtual TableExprInfo | getTableInfo () const
| Get the table info.
virtual void | optimize ()
| Try to optimize the node (meant for the right hand of the IN operator).
virtual void | disableApplySelection ()
| Do not apply the selection.
virtual void | applySelection (const Vector< rownr_t > &rownrs)
| Re-create the column object for a selection of rows.
virtual Double | getUnitFactor () const
| Get the unit conversion factor.
virtual void | flattenTree (std::vector< TableExprNodeRep * > &)
| Flatten the node tree by adding the node and its children to the vector.
virtual std::shared_ptr< TableExprGroupFuncBase > | makeGroupAggrFunc ()
| Create the correct immediate aggregate function object.
virtual Bool | isLazyAggregate () const
| Is the aggregate function a lazy or an immediate one?
virtual Bool | getBool (const TableExprId &id)
| Get a scalar value for this node in the given row.
virtual Int64 | getInt (const TableExprId &id)
virtual Double | getDouble (const TableExprId &id)
virtual DComplex | getDComplex (const TableExprId &id)
virtual String | getString (const TableExprId &id)
virtual TaqlRegex | getRegex (const TableExprId &id)
virtual MVTime | getDate (const TableExprId &id)
virtual MArray< Bool > | getArrayBool (const TableExprId &id)
| Get an array value for this node in the given row.
virtual MArray< Int64 > | getArrayInt (const TableExprId &id)
virtual MArray< Double > | getArrayDouble (const TableExprId &id)
virtual MArray< DComplex > | getArrayDComplex (const TableExprId &id)
virtual MArray< String > | getArrayString (const TableExprId &id)
virtual MArray< MVTime > | getArrayDate (const TableExprId &id)
void | get (const TableExprId &id, Bool &value)
| General get functions for template purposes.
void | get (const TableExprId &id, Int64 &value)
void | get (const TableExprId &id, Double &value)
void | get (const TableExprId &id, DComplex &value)
void | get (const TableExprId &id, MVTime &value)
void | get (const TableExprId &id, String &value)
void | get (const TableExprId &id, MArray< Bool > &value)
void | get (const TableExprId &id, MArray< Int64 > &value)
void | get (const TableExprId &id, MArray< Double > &value)
void | get (const TableExprId &id, MArray< DComplex > &value)
void | get (const TableExprId &id, MArray< MVTime > &value)
void | get (const TableExprId &id, MArray< String > &value)
MArray< Bool > | getBoolAS (const TableExprId &id)
| Get a value as an array, even it it is a scalar.
MArray< Int64 > | getIntAS (const TableExprId &id)
MArray< Double > | getDoubleAS (const TableExprId &id)
MArray< DComplex > | getDComplexAS (const TableExprId &id)
MArray< String > | getStringAS (const TableExprId &id)
MArray< MVTime > | getDateAS (const TableExprId &id)
rownr_t | nrow ()
| Get the number of rows in the table associated with this expression.
virtual Bool | getColumnDataType (DataType &) const
| Get the data type of the column.
virtual Array< Bool > | getColumnBool (const Vector< rownr_t > &rownrs)
| Get the value of the expression evaluated for the entire column.
virtual Array< uChar > | getColumnuChar (const Vector< rownr_t > &rownrs)
virtual Array< Short > | getColumnShort (const Vector< rownr_t > &rownrs)
virtual Array< uShort > | getColumnuShort (const Vector< rownr_t > &rownrs)
virtual Array< Int > | getColumnInt (const Vector< rownr_t > &rownrs)
virtual Array< uInt > | getColumnuInt (const Vector< rownr_t > &rownrs)
virtual Array< Int64 > | getColumnInt64 (const Vector< rownr_t > &rownrs)
virtual Array< Float > | getColumnFloat (const Vector< rownr_t > &rownrs)
virtual Array< Double > | getColumnDouble (const Vector< rownr_t > &rownrs)
virtual Array< Complex > | getColumnComplex (const Vector< rownr_t > &rownrs)
virtual Array< DComplex > | getColumnDComplex (const Vector< rownr_t > &rownrs)
virtual Array< String > | getColumnString (const Vector< rownr_t > &rownrs)
virtual void | ranges (Block< TableExprRange > &)
| Convert the tree to a number of range vectors which at least select the same things.
NodeDataType | dataType () const
| Get the data type of the derived TableExprNode object.
Bool | isReal () const
| Is the data type real (i.e., integer or double)?
ValueType | valueType () const
| Get the value type.
void | setValueType (ValueType vtype)
| Set the value type.
OperType | operType () const
| Get the operator type.
ExprType | exprType () const
| Get the expression type.
Bool | isConstant () const
| Is the expression a constant?
const Unit & | unit () const
| Get the unit.
void | setUnit (const Unit &unit)
| Set the unit.
const Record & | attributes () const
| Get the attributes.
void | setAttributes (const Record &)
| Set the attributes.
Int | ndim () const
| Get the fixed dimensionality (same for all rows).
const IPosition & | shape () const
| Get the fixed shape (same for all rows).
const IPosition & | shape (const TableExprId &id)
| Get the shape for the given row.
virtual Bool | isDefined (const TableExprId &id)
| Is the value in the given row defined?
virtual void | adaptSetUnits (const Unit &)
| Let a set node convert itself to the given unit.

## Static Public Member Functions

static TENShPtr | transform (const TableExprNodeSet &set, Bool combine=True)
| Transform a set into an optimized one by ordering the intervals and optionally combining adjacent intervals.
static TENShPtr | createOptSet (const TableExprNodeSet &set, const std::vector< T > &start, const std::vector< T > &end, const std::vector< Bool > &leftC, const std::vector< Bool > &rightC)
| Create the appropriate optimized OptContSet object.
Static Public Member Functions inherited from casacore::TableExprNodeRep
static TENShPtr | replaceConstNode (const TENShPtr &node)
| Replace a node with a constant expression by node with its value.
static void | createRange (Block< TableExprRange > &, TableExprNodeColumn *, Double start, Double end)
| Create a range object from a column and an interval.
static void | createRange (Block< TableExprRange > &)
| Create a empty range object.
static String | typeString (NodeDataType)
| Convert a NodeDataType to a string.
static String | typeString (ValueType)
| Convert a ValueType to a string.

## Protected Attributes

std::vector< T > | itsStarts
std::vector< T > | itsEnds
Protected Attributes inherited from casacore::TableExprNodeRep
NodeDataType | dtype_p
ValueType | vtype_p
OperType | optype_p
ArgType | argtype_p
ExprType | exprtype_p
Int | ndim_p
IPosition | shape_p
Unit | unit_p
Record | attributes_p

## Additional Inherited Members

Public Types inherited from casacore::TableExprNodeRep
enum | NodeDataType { NTBool , NTInt , NTDouble , NTComplex , NTString , NTRegex , NTDate , NTReal , NTDouCom , NTNumeric , NTAny }
| Define the data types of a node. More...
enum | ValueType { VTScalar , VTArray , VTRecord , VTSetElem , VTSet , VTIndex }
| Define the value types. More...
enum | OperType { OtPlus , OtMinus , OtTimes , OtDivide , OtModulo , OtBitAnd , OtBitOr , OtBitXor , OtBitNegate , OtEQ , OtGE , OtGT , OtNE , OtIN , OtAND , OtOR , OtNOT , OtMIN , OtColumn , OtField , OtLiteral , OtFunc , OtSlice , OtUndef , OtRownr , OtRandom }
| Define the operator types. More...
enum | ArgType { NoArr , ArrArr , ArrSca , ScaArr }
| Define the value types of the 2 arguments when arrays are involved. More...
enum | ExprType { Constant , Variable }
| Define (sub-)expression type. More...
Protected Member Functions inherited from casacore::TableExprNodeRep
virtual const IPosition & | getShape (const TableExprId &id)
| Get the shape for the given row.
void | fillExprType (const TableExprNodeRep *node)
| Set expression type to Variable if node is Variable.
Static Protected Member Functions inherited from casacore::TableExprNodeRep
static TENShPtr | convertNode (const TENShPtr &thisNode, Bool convertConstType)
| If the node is constant, it is evaluated and replaced by the appropriate TableExprNodeConst object.

## Detailed Description

template<typename T>
class casacore::TableExprNodeSetOptContSetBase< T >

An optimized representation of a selection set with continuous intervals.

### Intended use:

Internal

### Review Status

Reviewed By:
  Mordante
Date Reviewed:
  2022/11/08
Test programs:
  tExprNodeSetOpt

### Prerequisite

- TableExprNodeSet

### Synopsis

This class is the base class for the optimized representations of a constant selection set with continuous intervals. It holds the start and end values of the intervals.

Definition at line 164 of file ExprNodeSetOpt.h.

## Constructor & Destructor Documentation

## TableExprNodeSetOptContSetBase()

template<typename T>

casacore::TableExprNodeSetOptContSetBase< T >::TableExprNodeSetOptContSetBase | ( | const TableExprNodeSet & | orig,
|  | const std::vector< T > & | starts,
|  | const std::vector< T > & | ends )

explicit

Construct from the original set and the start and end values of the intervals.

The vectors must have the same length.

## Member Function Documentation

## createOptSet()

template<typename T>

TENShPtr casacore::TableExprNodeSetOptContSetBase< T >::createOptSet | ( | const TableExprNodeSet & | set,
|  | const std::vector< T > & | start,
|  | const std::vector< T > & | end,
|  | const std::vector< Bool > & | leftC,
|  | const std::vector< Bool > & | rightC )

static

Create the appropriate optimized OptContSet object.

Note that leftC and rightC do not need to have the same length as start/end. If it is known that all intervals have the same leftC/rightC, a single value suffices.

## show()

template<typename T>

void casacore::TableExprNodeSetOptContSetBase< T >::show | ( | ostream & | os,
|  | uInt | indent ) const

override virtual

Show the node.

Reimplemented from casacore::TableExprNodeRep.

Reimplemented in casacore::TableExprNodeSetOptContSetMixOC< T >.

## size()

template<typename T>

size_t casacore::TableExprNodeSetOptContSetBase< T >::size | ( |  | ) | const

inline

Get the size (nr of intervals).

Definition at line 173 of file ExprNodeSetOpt.h.

References itsStarts.

## transform()

template<typename T>

TENShPtr casacore::TableExprNodeSetOptContSetBase< T >::transform | ( | const TableExprNodeSet & | set,
|  | Bool | combine = True )

static

Transform a set into an optimized one by ordering the intervals and optionally combining adjacent intervals.

If not possible, an empty TENShPtr is returned.

References casacore::True.

## Member Data Documentation

## itsEnds

template<typename T>

std::vector<T> casacore::TableExprNodeSetOptContSetBase< T >::itsEnds

protected

Definition at line 193 of file ExprNodeSetOpt.h.

## itsStarts

template<typename T>

std::vector<T> casacore::TableExprNodeSetOptContSetBase< T >::itsStarts

protected

Definition at line 192 of file ExprNodeSetOpt.h.

Referenced by size().

The documentation for this class was generated from the following file:

- tables/TaQL/ExprNodeSetOpt.h