casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
casa::TableExprFuncNodeArray Class Reference

Class representing an array function in table select expression. More...

#include <ExprFuncNodeArray.h>

Inheritance diagram for casa::TableExprFuncNodeArray:
casa::TableExprNodeArray casa::TableExprNodeBinary casa::TableExprNodeRep

List of all members.

Public Member Functions

 TableExprFuncNodeArray (TableExprFuncNode::FunctionType, NodeDataType, ValueType, const TableExprNodeSet &source, const TaQLStyle &)
 Constructor.
 ~TableExprFuncNodeArray ()
 Destructor.
virtual Array< BoolgetArrayBool (const TableExprId &id)
 'get' Functions to get the desired result of a function
virtual Array< Int64getArrayInt (const TableExprId &id)
virtual Array< DoublegetArrayDouble (const TableExprId &id)
virtual Array< DComplex > getArrayDComplex (const TableExprId &id)
 The default implementation of getArrayDComplex does getArrayDouble and converts the result.
virtual Array< StringgetArrayString (const TableExprId &id)
virtual Array< MVTimegetArrayDate (const TableExprId &id)
const TableExprFuncNodegetChild () const
 Get the function node.

Static Public Member Functions

static TableExprNodeRepfillNode (TableExprFuncNodeArray *thisNode, PtrBlock< TableExprNodeRep * > &nodes, const Block< Int > &dtypeOper)
 Link the children to the node and convert the children to constants if possible.

Private Member Functions

void tryToConst ()
 Try if the function gives a constant result.
const PtrBlock
< TableExprNodeRep * > & 
operands () const
 Some functions to be used by TableExprNodeFuncArray.
PtrBlock< TableExprNodeRep * > & rwOperands ()
TableExprFuncNode::FunctionType funcType () const
NodeDataType argDataType () const
void setScale (Double scale)
 Set unit scale factor (needed for sqrt).
IPosition getAxes (const TableExprId &id, Int ndim, uInt axarg=1, Bool swapRemove=True)
 Get the collapse axes for the partial functions.
IPosition removeAxes (const IPosition &axes, Int ndim) const
 Remove axes exceeding ndim.
const IPositiongetArrayShape (const TableExprId &id, uInt axarg=1)
 Get the shape for the array function.
IPosition getOrder (const TableExprId &id, Int ndim)
 Get the transpose order of the array axes.

Private Attributes

TableExprFuncNode node_p
Int origin_p
Bool isCOrder_p
Bool constAxes_p
IPosition ipos_p
IPosition iposN_p

Detailed Description

Class representing an array function in table select expression.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Prerequisite

Synopsis

This class can be seen as a specialization of TableExprFuncNode for functions returning arrays. However, it is derived from TableExprNodeArray to make it possible that the ExprNode classes use all array functionality offered by that base class.
Internally an TableExprFuncNode object is used.

When a TaQL function is used, TableExprFuncNode::checkOperands determines whether the result is a scalar or an array. Thereafter TableExprNode::newFunctionNode creates a TableExprFuncNode for scalars or a TableExprFuncNodeArray for arrays.

Definition at line 69 of file ExprFuncNodeArray.h.


Constructor & Destructor Documentation

Constructor.

Destructor.


Member Function Documentation

Definition at line 115 of file ExprFuncNodeArray.h.

References casa::TableExprFuncNode::argDataType(), and node_p.

static TableExprNodeRep* casa::TableExprFuncNodeArray::fillNode ( TableExprFuncNodeArray thisNode,
PtrBlock< TableExprNodeRep * > &  nodes,
const Block< Int > &  dtypeOper 
) [static]

Link the children to the node and convert the children to constants if possible.

Also convert the node to constant if possible.

Definition at line 113 of file ExprFuncNodeArray.h.

References casa::TableExprFuncNode::funcType(), and node_p.

'get' Functions to get the desired result of a function

Reimplemented from casa::TableExprNodeRep.

Reimplemented from casa::TableExprNodeRep.

virtual Array<DComplex> casa::TableExprFuncNodeArray::getArrayDComplex ( const TableExprId id) [virtual]

The default implementation of getArrayDComplex does getArrayDouble and converts the result.

Reimplemented from casa::TableExprNodeArray.

Reimplemented from casa::TableExprNodeRep.

Reimplemented from casa::TableExprNodeRep.

const IPosition& casa::TableExprFuncNodeArray::getArrayShape ( const TableExprId id,
uInt  axarg = 1 
) [private]

Get the shape for the array function.

axarg gives the argument nr of the shape.

Reimplemented from casa::TableExprNodeRep.

IPosition casa::TableExprFuncNodeArray::getAxes ( const TableExprId id,
Int  ndim,
uInt  axarg = 1,
Bool  swapRemove = True 
) [private]

Get the collapse axes for the partial functions.

It compares the values with the #dim and removes them if too high. axarg gives the argument nr of the axes.

Get the function node.

Definition at line 92 of file ExprFuncNodeArray.h.

References node_p.

IPosition casa::TableExprFuncNodeArray::getOrder ( const TableExprId id,
Int  ndim 
) [private]

Get the transpose order of the array axes.

Some functions to be used by TableExprNodeFuncArray.

Definition at line 109 of file ExprFuncNodeArray.h.

References node_p, and casa::TableExprFuncNode::operands().

IPosition casa::TableExprFuncNodeArray::removeAxes ( const IPosition axes,
Int  ndim 
) const [private]

Remove axes exceeding ndim.

Definition at line 111 of file ExprFuncNodeArray.h.

References node_p, and casa::TableExprFuncNode::rwOperands().

void casa::TableExprFuncNodeArray::setScale ( Double  scale) [inline, private]

Set unit scale factor (needed for sqrt).

Definition at line 120 of file ExprFuncNodeArray.h.

References node_p, and casa::TableExprFuncNode::setScale().

Try if the function gives a constant result.

If so, set the expression type to Constant.


Member Data Documentation

Definition at line 142 of file ExprFuncNodeArray.h.

Definition at line 143 of file ExprFuncNodeArray.h.

Definition at line 144 of file ExprFuncNodeArray.h.

Definition at line 141 of file ExprFuncNodeArray.h.

Definition at line 139 of file ExprFuncNodeArray.h.

Referenced by argDataType(), funcType(), getChild(), operands(), rwOperands(), and setScale().

Definition at line 140 of file ExprFuncNodeArray.h.


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