OERange

class OERange

The OERange class is used to represent numerical intervals that may be bounded or unbounded.

Constructors

OERange()

The default constructor initializes an empty (and invalid) range object.

OERange(const OERange &rhs)

Copy constructor.

OERange(double low, double high, const std::string &inclusivity="[]")

Constructs a range between low and high, with the provided inclusivity.

low
The low value of the range. For an unbounded interval, -std::numeric_limits<double>::infinity() can be specified.
high
The high value of the range. For an unbounded interval, std::numeric_limits<double>::infinity() can be specified.
inclusivity

Represents the inclusivity of low and high in the range. Allowed values are

inclusivity Range value
“[]” [low, high] or low <= x <= high
“(]” (low, high] or low < x <= high
“[)” [low, high) or low <= x < high
“()” (low, high) or low < x < high

operator==

bool operator==(const OERange &rhs) const

Returns true if the lower, upper, and inclusivity values are all equal between the two OERange values.

IsValid

bool IsValid() const

Returns true if either of the low or high values is bounded.

GetLow

double GetLow() const

Returns the lower value of the range. This will return -std::numeric_limits<double>::infinity() if the range is unbounded at the low end.

GetHigh

double GetHigh() const

Returns the upper value of the range. This will return std::numeric_limits<double>::infinity() if the range is unbounded at the high end.

GetInclusivityString

std::string GetInclusivityString() const

Returns one of the four strings, “[]”, “(]”, “[)”, or “()” representing the inclusivity of the range.

IsUnboundedLow

bool IsUnboundedLow() const

Returns true if this OERange object has -infinity as a lower value.

IsUnboundedHigh

bool IsUnboundedHigh() const

Returns true if this OERange object has infinity as an upper value.