# 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.