Create the object for a discrete interval. Each of the start, end, and incr pointers can be zero meaning that they are not given (see the synopsis for an explanation).
Create the object for a continuous bounded interval. It can be open or closed on either side.
Create the object for a continuous left-bounded interval.
Create the object for a continuous right-bounded interval.
Copy constructor (copy semantics).
Show the node.
Is it a discrete set element.
Is a single value given?
Is the interval left or right closed?
Get the start, end or increment expression. Note that the pointer returned can be zero indicating that that value was not given.
Fill a vector with the value(s) from this element. This is used by the system to convert a set to a vector.
Set a flag in the match output array if the corresponding element in the value array is included in this set element. This is used by the system to implement the IN operator.
Evaluate the element for the given row and construct a new (constant) element from it. This is used by the system to implement a set in a GIVING clause.
Get the table of a node and check if the children use the same table.
Replace the BaseTable pointer in this node and all its children.
Construct an element from the given parts and take over their pointers. It is used by evaluate to construct an element in a rather cheap way.
Setup the object for a continuous interval.
It is possible to construct the object directly from an IPosition object. In that case all elements are single. Furthermore it is possible to construct it directly from a Slicer object. In that case all elements represent a discrete interval.
Construct from an IPosition. The number of elements in the set is the number of elements in the IPosition. All set elements are single values.
Construct from a Slicer. The number of elements in the set is the dimensionality of the Slicer. All set elements are discrete intervals. Their start and/or end is undefined if it is was not defined (i.e. Slicer::MimicSource used) in the Slicer object.
Construct a set with n elements. Element i is constructed by evaluating the input element for row i.
Add an element to the set.
Show the node.
Check if the data type of the set elements are the same. If not, an exception is thrown. known to be equal.
Contains the set only single elements? Single means that only single values are given (thus no end nor incr).
Contains the set only discrete elements? Discrete means that no continuous ranges are given, but discrete ranges (using :) are possible.
Get the number of elements.
Get the i-th element.
Contains the set array values?
Try to convert the set to an array. If not possible, a copy of the set is returned.
Convert the const set to an array.
Get an array value for this bounded set in the given row.
Does a value occur in the set?
Replace the BaseTable pointer in this node and all its children.
Delete all set elements in itsElems.
Convert a bounded set to an Array.
Sort and combine intervals.
Define the functions to find a double, which depend on open/closed-ness. In this way a test on open/closed is done only once.