rasdaman complete source
Public Member Functions | Protected Member Functions | List of all members
QtUnaryInduce Class Reference

#include <qtunaryinduce.hh>

Inheritance diagram for QtUnaryInduce:
QtUnaryOperation QtOperation QtNode QtAbs QtArccos QtArcsin QtArctan QtCast QtCos QtCosh QtDot QtExp QtImaginarPartOp QtLn QtLog QtNot QtRealPartOp QtSin QtSinh QtSqrt QtTan QtTanh

Public Member Functions

 QtUnaryInduce (QtOperation *input)
 constructor getting the operand More...
 
- Public Member Functions inherited from QtUnaryOperation
 QtUnaryOperation ()
 default constructor More...
 
 QtUnaryOperation (QtOperation *input)
 constructor getting the node to its operand More...
 
virtual ~QtUnaryOperation ()
 virtual destructor More...
 
virtual std::string getSpelling ()
 creates a unique name for a common subexpression More...
 
virtual void simplify ()
 simplifies the tree More...
 
virtual QtNodeListgetChilds (QtChildType flag)
 return childs of the node More...
 
virtual QtAreaType getAreaType ()
 test if the edge to the parent node is of type mdd or atomic More...
 
virtual bool equalMeaning (QtNode *node)
 tests if the two nodes have an equal meaning in the query tree More...
 
virtual void setInput (QtOperation *inputOld, QtOperation *inputNew)
 method for query rewrite More...
 
virtual void optimizeLoad (QtTrimList *trimList)
 optimizing load access More...
 
virtual void printTree (int tab, std::ostream &s=std::cout, QtChildType mode=QT_ALL_NODES)
 debugging method More...
 
virtual void setInput (QtOperation *input)
 
QtOperationgetInput ()
 
- Public Member Functions inherited from QtOperation
 QtOperation ()
 default constructor More...
 
 QtOperation (QtNode *parent)
 constructor getting a pointer to the parent More...
 
virtual QtOperationgetUniqueOrder (const QtNode::QtNodeType ID)
 for associative law More...
 
virtual QtDataevaluate (QtDataList *inputList)
 method for evaluating the node More...
 
virtual const QtTypeElementcheckType (QtTypeTuple *typeTuple=NULL)
 type checking of the subtree More...
 
void printAlgebraicExpression (std::ostream &s)
 prints the algebraic expression More...
 
void setDataStreamType (const QtTypeElement &type)
 
const QtTypeElementgetDataStreamType () const
 
- Public Member Functions inherited from QtNode
 QtNode ()
 default constructor More...
 
 QtNode (QtNode *node)
 constructor getting a pointer to the parent More...
 
virtual ~QtNode ()
 destructor More...
 
bool subtype (enum QtNodeType a, enum QtNodeType b)
 returns weather class b is a subtype of class a More...
 
QtNodeListgetChild (const QtNodeType node, QtChildType flag=QT_DIRECT_CHILDS)
 return childs of a certain class More...
 
virtual const QtNodeType getNodeType () const
 methods for identification of nodes More...
 
enum QtNodeType getQtNodeTypeParent (enum QtNodeType)
 method for pre optimizations (basically load optimization) More...
 
QtNodegetParent () const
 
void setParent (QtNode *node)
 
const ParseInfogetParseInfo ()
 
void setParseInfo (const ParseInfo &info)
 

Protected Member Functions

QtDatacomputeOp (QtData *operand, Ops::OpType operation)
 computes the unary operation More...
 
bool getOperand (QtDataList *inputList, QtData *&operand)
 method for testing and evaluating the input branch More...
 
QtDatacomputeUnaryMDDOp (QtMDD *operand, const BaseType *resultBaseType, Ops::OpType operation, unsigned int operandOffset=0)
 computes an unary induce operation with one MDD object More...
 
QtDatacomputeUnaryOp (QtScalarData *operand, const BaseType *resultBaseType, Ops::OpType operation, unsigned int operandOffset=0)
 computes an unary induce operation with one MDD object More...
 
- Protected Member Functions inherited from QtNode
void startTimer (const char *name)
 start node timer (called at evaluation time) More...
 
void stopTimer ()
 stop timer (at end of evaluation) More...
 
void pauseTimer ()
 pause More...
 
void resumeTimer ()
 resume More...
 
std::string getEvaluationTime ()
 get elapsed time if timer was started, returns a string e.g. "15 usecs" More...
 

Additional Inherited Members

- Public Types inherited from QtNode
enum  QtNodeType {
  QT_UNDEFINED_NODE, QT_MDD_ACCESS, QT_OPERATION_ITERATOR, QT_SELECTION_ITERATOR,
  QT_JOIN_ITERATOR, QT_UPDATE, QT_INSERT, QT_DELETE,
  QT_COMMAND, QT_PLUS, QT_MINUS, QT_MULT,
  QT_DIV, QT_OR, QT_AND, QT_XOR,
  QT_IS, QT_EQUAL, QT_NOT_EQUAL, QT_LESS,
  QT_LESS_EQUAL, QT_NOT, QT_SQRT, QT_EXECUTE,
  QT_ONC_STREAM, QT_ITERATOR, QT_OPERATION, QT_BINARY_OPERATION,
  QT_BINARY_INDUCE, QT_GROUP_ITERATOR, QT_IDENT, QT_NARY_OPERATION,
  QT_UNARY_OPERATION, QT_CONDENSE, QT_UNARY_INDUCE, QT_ABS,
  QT_EXP, QT_LOG, QT_LN, QT_SIN,
  QT_COS, QT_TAN, QT_SINH, QT_COSH,
  QT_TANH, QT_ARCSIN, QT_ARCCOS, QT_ARCTAN,
  QT_REALPART, QT_IMAGINARPART, QT_CAST, QT_CSE_ROOT,
  QT_DOMAIN_OPERATION, QT_ALL, QT_SOME, QT_COUNTCELLS,
  QT_ADDCELLS, QT_AVGCELLS, QT_MINCELLS, QT_MAXCELLS,
  QT_MDD_VAR, QT_MDD_STREAM, QT_CONST, QT_DOT,
  QT_CONVERSION, QT_OID, QT_INTERVALOP, QT_MINTERVALOP,
  QT_POINTOP, QT_LO, QT_HI, QT_SDOM,
  QT_SHIFT, QT_EXTEND, QT_MARRAYOP, QT_CONDENSEOP,
  QT_SCALE, QT_OVERLAY, QT_BIT, QT_PYRAMID,
  QT_ENCODE, QT_CONCAT, QT_CASEOP, QT_INFO,
  QT_LAST_NODE_TYPE
}
 
enum  QtAreaType { QT_AREA_MDD, QT_AREA_SCALAR }
 
enum  QtChildType { QT_DIRECT_CHILDS, QT_LEAF_NODES, QT_ALL_NODES }
 
typedef std::vector< QtData * > QtDataList
 list of QtData pointers More...
 
typedef std::vector
< QtTrimElement * > 
QtTrimList
 list of QtTrimData structures More...
 
typedef std::list< QtNode * > QtNodeList
 list of QtNode pointers More...
 
typedef std::vector
< QtOperation * > 
QtOperationList
 list of QtOperation pointers More...
 
- Static Public Attributes inherited from QtNode
static const int QtNodes
 number of QtNodeTypes More...
 
static const QtNodeType QtRoot
 the root of the inheritance tree More...
 
static const QtNodeType QtInheritance [][2]
 the inheritance relations list More...
 
- Protected Attributes inherited from QtUnaryOperation
QtOperationinput
 operation operand More...
 
- Protected Attributes inherited from QtOperation
QtTypeElement dataStreamType
 result type of the node More...
 
- Protected Attributes inherited from QtNode
ParseInfo parseInfo
 attribute for parser info More...
 

Constructor & Destructor Documentation

QtUnaryInduce::QtUnaryInduce ( QtOperation input)

constructor getting the operand

Member Function Documentation

QtData* QtUnaryInduce::computeOp ( QtData operand,
Ops::OpType  operation 
)
protected

computes the unary operation

QtData* QtUnaryInduce::computeUnaryMDDOp ( QtMDD operand,
const BaseType resultBaseType,
Ops::OpType  operation,
unsigned int  operandOffset = 0 
)
protected

computes an unary induce operation with one MDD object

The method checks if the input branch is valid. Then it passes the evaluate message to its operand with the { inputList} as argument. The returned result is provided through the argument { operand} called by reference. The method returns { true} it the operand is valid, otherwise { false}.

QtData* QtUnaryInduce::computeUnaryOp ( QtScalarData operand,
const BaseType resultBaseType,
Ops::OpType  operation,
unsigned int  operandOffset = 0 
)
protected

computes an unary induce operation with one MDD object

The method carries out the unary induce operation specified by { operation} on the operand. For the result, a new transient MDD object is created and returned. In the end, the MDD object of the operand is freed.

bool QtUnaryInduce::getOperand ( QtDataList inputList,
QtData *&  operand 
)
protected

method for testing and evaluating the input branch


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