rasdaman complete source
|
#include <qtbinaryoperation.hh>
Public Member Functions | |
QtBinaryOperation () | |
default constructor More... | |
QtBinaryOperation (QtNode *node) | |
constructor getting the node to the parent More... | |
QtBinaryOperation (QtOperation *input1, QtOperation *input2) | |
constructor getting pointers to its operands More... | |
virtual | ~QtBinaryOperation () |
virtual destructor More... | |
virtual void | simplify () |
simplifies the tree More... | |
virtual bool | equalMeaning (QtNode *node) |
test if the two nodes have an equal meaning in the query tree More... | |
virtual QtNodeList * | getChilds (QtChildType flag) |
return childs of the node More... | |
virtual std::string | getSpelling () |
creates a unique name for a subexpression More... | |
virtual QtAreaType | getAreaType () |
test if the edge to the parent node is of type mdd or atomic 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 bool | isCommutative () const |
returns commutativity information (by default, an operation IS commutative) More... | |
void | setInput1 (QtOperation *input) |
void | setInput2 (QtOperation *input) |
QtOperation * | getInput1 () |
QtOperation * | getInput2 () |
![]() | |
QtOperation () | |
default constructor More... | |
QtOperation (QtNode *parent) | |
constructor getting a pointer to the parent More... | |
virtual QtOperation * | getUniqueOrder (const QtNode::QtNodeType ID) |
for associative law More... | |
virtual QtData * | evaluate (QtDataList *inputList) |
method for evaluating the node More... | |
virtual const QtTypeElement & | checkType (QtTypeTuple *typeTuple=NULL) |
type checking of the subtree More... | |
void | printTree (int tab, std::ostream &s, QtChildType mode=QT_ALL_NODES) |
prints the tree More... | |
void | printAlgebraicExpression (std::ostream &s) |
prints the algebraic expression More... | |
void | setDataStreamType (const QtTypeElement &type) |
const QtTypeElement & | getDataStreamType () const |
![]() | |
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... | |
QtNodeList * | getChild (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... | |
QtNode * | getParent () const |
void | setParent (QtNode *node) |
const ParseInfo & | getParseInfo () |
void | setParseInfo (const ParseInfo &info) |
Protected Member Functions | |
bool | getOperands (QtDataList *inputList, QtData *&operand1, QtData *&operand2) |
method for testing and evaluating the input branches More... | |
bool | getOperand (QtDataList *inputList, QtData *&operand1, int number) |
method for testing and evaluating the input branches More... | |
![]() | |
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... | |
Protected Attributes | |
QtOperation * | input1 |
first operation operand More... | |
QtOperation * | input2 |
second operation operand More... | |
![]() | |
QtTypeElement | dataStreamType |
result type of the node More... | |
![]() | |
ParseInfo | parseInfo |
attribute for parser info More... | |
QtBinaryOperation::QtBinaryOperation | ( | ) |
default constructor
QtBinaryOperation::QtBinaryOperation | ( | QtNode * | node | ) |
constructor getting the node to the parent
QtBinaryOperation::QtBinaryOperation | ( | QtOperation * | input1, |
QtOperation * | input2 | ||
) |
constructor getting pointers to its operands
|
virtual |
virtual destructor
|
virtual |
test if the two nodes have an equal meaning in the query tree
Reimplemented from QtNode.
Reimplemented in QtCondenseOp.
|
virtual |
test if the edge to the parent node is of type mdd or atomic
Reimplemented from QtNode.
|
virtual |
return childs of the node
The meaning of a binary operation is equal, iff both operands have the same meaning. In case of a commutative operation, the operands can be switched.
Reimplemented from QtNode.
Reimplemented in QtCondenseOp.
|
inline |
|
inline |
|
protected |
method for testing and evaluating the input branches
The method checks if the input branches are valid. Then it passes the evaluate message to its two operands with the { inputList} as argument. The returned results are provided through the arguments { operand1} and { operand2} called by reference. The method returns { true} it the operands are valid, otherwise { false}.
|
protected |
method for testing and evaluating the input branches
|
virtual |
|
virtual |
returns commutativity information (by default, an operation IS commutative)
Reimplemented in QtBit, QtOverlay, QtLessEqual, QtDiv, QtLess, QtScale, QtMinus, QtExtend, QtCondenseOp, QtShift, QtIntervalOp, and QtMarrayOp.
|
virtual |
optimizing load access
Reimplemented from QtOperation.
Reimplemented in QtScale, QtExtend, QtCondenseOp, QtShift, and QtMarrayOp.
|
virtual |
debugging method
The method deletes the given { trimList} and passes the { optimizeLoad} message with empty triming lists to its input trees. The method is rewritten by some subclasses.
Implements QtNode.
Reimplemented in QtBit, QtOverlay, QtNotEqual, QtLessEqual, QtDiv, QtLess, QtMult, QtScale, QtEqual, QtMinus, QtXor, QtPlus, QtOr, QtExtend, QtCondenseOp, QtAnd, QtShift, QtMarrayOp, QtIntervalOp, and QtIs.
|
inlinevirtual |
|
inline |
|
inline |
|
virtual |
|
protected |
first operation operand
The method checks if the by number specified input branch si valid. Then it passes the evaluate message to the operand with the { inputList} as argument. The returned result are provided through the argument { operand} called by reference. The method returns { true} it the operand is valid, otherwise { false}.
|
protected |
second operation operand