Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes
ngraph::Interval Class Reference

Interval arithmetic. More...

#include <interval.hpp>

Public Types

using value_type = std::int64_t
 
using size_type = std::uint64_t
 

Public Member Functions

 Interval ()=default
 Interval of everything.
 
 Interval (const Interval &interval)=default
 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.
 
Intervaloperator= (const Interval &interval)=default
 
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.
 
bool operator!= (const Interval &interval) const
 
Interval operator+ (const Interval &interval) const
 The interval whose elements are a sum of an element from each interval.
 
Intervaloperator+= (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.
 
Intervaloperator-= (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.
 
Intervaloperator*= (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.
 
Intervaloperator&= (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.
 

Static Public Attributes

static constexpr value_type s_max {std::numeric_limits<value_type>::max()}
 The value used for no upper bound.
 

Protected Member Functions

 

Static Protected Member Functions

static value_type clip (value_type value)
 
static value_type clip_times (value_type a, value_type b)
 
static value_type clip_add (value_type a, value_type b)
 
static value_type clip_minus (value_type a, value_type b)
 

Protected Attributes

value_type m_min_val {0}
 
value_type m_max_val {s_max}
 

Detailed Description

Interval arithmetic.


The documentation for this class was generated from the following file: