class ov::Interval¶
Overview¶
#include <interval.hpp>
class Interval
{
public:
// typedefs
typedef std::int64_t value_type;
typedef std::uint64_t size_type;
// fields
static constexpr value_type s_max {std::numeric_limits<value_type>::max()};
// construction
Interval();
Interval(const Interval& interval);
Interval(value_type min_val, value_type max_val);
Interval(value_type val);
// methods
Interval& operator = (const Interval& interval);
size_type size() const;
bool empty() const;
value_type get_min_val() const;
void set_min_val(value_type val);
value_type get_max_val() const;
void set_max_val(value_type val);
bool has_upper_bound() const;
bool operator == (const Interval& interval) const;
bool operator != (const Interval& interval) const;
Interval operator + (const Interval& interval) const;
Interval& operator += (const Interval& interval);
Interval operator - (const Interval& interval) const;
Interval& operator -= (const Interval& interval);
Interval operator\* (const Interval& interval) const;
Interval& operator\*= (const Interval& interval);
Interval operator & (const Interval& interval) const;
Interval& operator &= (const Interval& interval);
bool contains(value_type value) const;
bool contains(const Interval& interval) const;
};
Detailed Documentation¶
Interval arithmetic.
An interval is the set of integers from m_min_val through m_max_val. The value s_max acts like infinity. The addition, subtraction, or multiplication of intervals is the smallest interval containing the sums, differences, or products of elements of the two intervals. An empty interval is canonicalized to [s_max, s_max].
Fields¶
static constexpr value_type s_max {std::numeric_limits<value_type>::max()}
The value used for no upper bound.
Construction¶
Interval()
Interval of everything.
Interval(const Interval& interval)
Copy constructor.
Interval(value_type min_val, value_type max_val)
Closed interval {x|min_val <= x <= max_val}.
Interval(value_type val)
Single-valued interval; just contains val.
Methods¶
size_type size() const
The number of elements in the interval. Zero if max < min.
bool empty() const
Returns true if the interval has no elements.
value_type get_min_val() const
the inclusive lower bound of the interval
void set_min_val(value_type val)
Set the inclusive lower bound of the interval.
value_type get_max_val() const
the inclusive upper bound of the interval
void set_max_val(value_type val)
Set the inclusive upper bound of the interval.
bool has_upper_bound() const
True if the upper bound is finite.
bool operator == (const Interval& interval) const
True if min and max bounds match.
Interval operator + (const Interval& interval) const
The interval whose elements are a sum of an element from each interval.
Interval& operator += (const Interval& interval)
Extend this interval to sums of elements in this interval and interval.
Interval operator - (const Interval& interval) const
The interval whose elements are a difference of an element from each interval.
Interval& operator -= (const Interval& interval)
Extend this interval to differences of elements in this interval and interval.
Interval operator\* (const Interval& interval) const
The smallest interval whose elements are a product of an element from each interval.
Interval& operator\*= (const Interval& interval)
Extend this interval to products of elements in this interval and interval.
Interval operator & (const Interval& interval) const
The interval that is the intersection of this interval and interval.
Interval& operator &= (const Interval& interval)
Change this interval to only include elements also in interval.
bool contains(value_type value) const
True if this interval includes value.
bool contains(const Interval& interval) const
True if this interval includes all the values in interval.