template<typename DomainT, DomainT sentinel = DomainT()>
vt::term::interval::Interval struct

Public types

enum class PositionEnum: int { TangentLeft = -1, NotTangent = 0, TangentRight = 1 }
using IntervalType = Interval<DomainT, sentinel>
using DomainType = DomainT

Public static functions

template<typename IntT, typename IntU>
static auto intersects(IntT&& i1, IntU&& i2) -> bool
template<typename IntT, typename IntU>
static auto less(IntT&& i1, IntU&& i2) -> bool

Constructors, destructors, conversion operators

Interval() defaulted
Interval(Interval const&) defaulted
Interval(Interval&&) defaulted
Interval(DomainT const& val) explicit
Interval(DomainT const& lb, DomainT const& ub)

Public functions

auto operator=(Interval const&) -> Interval& defaulted
auto lower() const -> DomainT
auto upper() const -> DomainT
auto width() const -> DomainT
auto valid() const -> bool
auto get(std::size_t i) const -> DomainT
void setUpper(DomainT const& val)
void setLower(DomainT const& val)
void set(DomainT const& lo, DomainT const& hi)
auto contains(DomainT const& val) const -> bool
auto tangent(IntervalType const& i, DomainT gap = 1) const -> PositionEnum
void join(IntervalType const& i, PositionEnum pos)
template<typename SerializerT>
void serialize(SerializerT& s)
auto operator==(IntervalType const& i) const -> bool
auto operator!=(IntervalType const& i) const -> bool

Friends

template<typename DomainU, DomainT sentinel2>
auto operator<(Interval<DomainU, sentinel2> const& i1, Interval<DomainU, sentinel2> const& i2) -> bool
template<typename T, DomainT v>
auto operator<<(std::ostream& os, Interval<T, v> const& i) -> std::ostream&