rasdaman complete source
qtunaryfunc.hh
Go to the documentation of this file.
1 #ifndef _QTUNARYFUNC_HH__
2 #define _QTUNARYFUNC_HH___
3 
5 
6 // forward declarations
7 class QtOperation;
8 
9 /*
10 * This file is part of rasdaman community.
11 *
12 * Rasdaman community is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation, either version 3 of the License, or
15 * (at your option) any later version.
16 *
17 * Rasdaman community is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
24 *
25 * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
26 rasdaman GmbH.
27 *
28 * For more information please see <http://www.rasdaman.org>
29 * or contact Peter Baumann via <baumann@rasdaman.com>.
30 */
31 /*************************************************************
32  *
33  *
34  * COMMENTS:
35  *
36  ************************************************************/
37 
38 
39 //@ManMemo: Module: {\bf qlparser}
40 
41 /*@Doc:
42 
43  The class represenst a function returning the lower bound of an interval.
44 
45 */
46 
48 {
49 public:
51  QtIntervalLoOp( QtOperation* newInput );
52 
54  QtData* evaluate( QtDataList* inputList );
55 
57  virtual void printTree( int tab, std::ostream& s = std::cout, QtChildType mode = QT_ALL_NODES );
58 
60  virtual void printAlgebraicExpression( std::ostream& s = std::cout );
61 
63  inline virtual const QtNodeType getNodeType() const;
64 
66  virtual const QtTypeElement& checkType( QtTypeTuple* typeTuple = NULL );
67 
68 private:
70  static const QtNodeType nodeType;
71 };
72 
73 
74 
75 
76 
77 //@ManMemo: Module: {\bf qlparser}
78 
79 /*@Doc:
80 
81  The class represenst a function returning the higher bound of an interval.
82 
83 */
84 
86 {
87 public:
89  QtIntervalHiOp( QtOperation* newInput );
90 
92  QtData* evaluate( QtDataList* inputList );
93 
95  virtual void printTree( int tab, std::ostream& s = std::cout, QtChildType mode = QT_ALL_NODES );
96 
98  virtual void printAlgebraicExpression( std::ostream& s = std::cout );
99 
101  inline virtual const QtNodeType getNodeType() const;
102 
104  virtual const QtTypeElement& checkType( QtTypeTuple* typeTuple = NULL );
105 
106 private:
108  static const QtNodeType nodeType;
109 };
110 
111 
112 
113 
114 //@ManMemo: Module: {\bf qlparser}
115 
116 /*@Doc:
117 
118  The class represenst a function returning the spatial domain of an mdd object.
119 
120 */
121 
122 class QtSDom : public QtUnaryOperation
123 {
124 public:
126  QtSDom( QtOperation* newInput );
127 
129  QtData* evaluate( QtDataList* inputList );
130 
132  virtual void optimizeLoad( QtTrimList* trimList );
140  virtual void printTree( int tab, std::ostream& s = std::cout, QtChildType mode = QT_ALL_NODES );
142 
144  virtual void printAlgebraicExpression( std::ostream& s = std::cout );
145 
147  inline virtual const QtNodeType getNodeType() const;
148 
150  virtual const QtTypeElement& checkType( QtTypeTuple* typeTuple = NULL );
151 
152 private:
154  static const QtNodeType nodeType;
155 };
156 
157 
158 #include "qlparser/qtunaryfunc.icc"
159 
160 #endif
161 
virtual const QtNodeType getNodeType() const
method for identification of nodes
std::vector< QtData * > QtDataList
list of QtData pointers
Definition: qtnode.hh:77
std::vector< QtTrimElement * > QtTrimList
list of QtTrimData structures
Definition: qtnode.hh:88
virtual void printTree(int tab, std::ostream &s=std::cout, QtChildType mode=QT_ALL_NODES)
prints the tree
QtData * evaluate(QtDataList *inputList)
evaluates the node
Definition: qtnode.hh:463
virtual void printAlgebraicExpression(std::ostream &s=std::cout)
prints the algebraic expression
QtIntervalLoOp(QtOperation *newInput)
constructor getting operand
Definition: qtunaryfunc.hh:85
Definition: qtdata.hh:83
virtual void printAlgebraicExpression(std::ostream &s=std::cout)
prints the algebraic expression
QtChildType
Definition: qtnode.hh:186
QtNodeType
Definition: qtnode.hh:93
Definition: qtnode.hh:394
QtIntervalHiOp(QtOperation *newInput)
constructor getting operand
virtual const QtNodeType getNodeType() const
method for identification of nodes
virtual const QtTypeElement & checkType(QtTypeTuple *typeTuple=NULL)
type checking of the subtree
virtual void printAlgebraicExpression(std::ostream &s=std::cout)
prints the algebraic expression
QtSDom(QtOperation *newInput)
constructor getting operand
Definition: qtunaryoperation.hh:52
virtual void optimizeLoad(QtTrimList *trimList)
optimizing load access
virtual const QtTypeElement & checkType(QtTypeTuple *typeTuple=NULL)
type checking of the subtree
QtData * evaluate(QtDataList *inputList)
evaluates the node
virtual const QtNodeType getNodeType() const
method for identification of nodes
virtual void printTree(int tab, std::ostream &s=std::cout, QtChildType mode=QT_ALL_NODES)
prints the tree
virtual const QtTypeElement & checkType(QtTypeTuple *typeTuple=NULL)
type checking
QtData * evaluate(QtDataList *inputList)
evaluates the node
Definition: qtoperation.hh:57
Definition: qtunaryfunc.hh:47
virtual void printTree(int tab, std::ostream &s=std::cout, QtChildType mode=QT_ALL_NODES)
prints the tree
Definition: qtnode.hh:190
Definition: qtunaryfunc.hh:122