3#include <boost/optional.hpp>
14 return leftBound != boost::none;
18 return rightBound != boost::none;
23 if (val < leftBound.get()) {
28 if (val > rightBound.get()) {
37 if (!
i.hasLeftBound()) {
40 if (leftBound.get() >
i.getLeftBound().get()) {
45 if (!
i.hasRightBound()) {
48 if (rightBound.get() <
i.getRightBound().get()) {
57 if (val < leftBound.get()) {
63 if (val > rightBound.get()) {
70 if (
i.hasLeftBound()) {
73 if (
i.hasRightBound()) {
74 extend(
i.getRightBound().get());
87 boost::optional<int64_t> leftBound;
88 boost::optional<int64_t> rightBound;
void extend(IntegerInterval const &i)
IntegerInterval(int64_t v)
boost::optional< int64_t > getRightBound() const
IntegerInterval(int64_t lb, int64_t rb)
bool hasLeftBound() const
bool contains(int64_t val) const
boost::optional< int64_t > getLeftBound() const
bool contains(IntegerInterval const &i) const
bool hasRightBound() const
IntegerInterval parseIntegerInterval(std::string const &stringRepr)
std::ostream & operator<<(std::ostream &out, ParameterRegion< ParametricType > const ®ion)