1#ifndef STORM_STORAGE_GEOMETRY_HYPERRECTANGLE_H_
2#define STORM_STORAGE_GEOMETRY_HYPERRECTANGLE_H_
20template<
typename ValueType>
26 "Tried to construct a hyperrectangle but the number of given lower bounds does not equal the number of given upper bounds.");
31 "Tried to construct a hyperrectangle but the number of given lower bounds does not equal the number of given upper bounds.");
53 void enlarge(std::vector<ValueType>
const& point) {
55 "Tried to enlarge a hyperrectangle but the dimension of the given point does not match.");
62 std::shared_ptr<Polytope<ValueType>>
asPolytope()
const {
64 "Tried to construct a polytope form a hyperrectangle but the numbers of given lower and upper bounds do not match.");
65 std::vector<Halfspace<ValueType>> halfspaces;
71 halfspaces.emplace_back(std::move(direction), std::move(offset));
76 halfspaces.emplace_back(std::move(direction), std::move(offset));
82 std::vector<ValueType> mLowerBounds;
83 std::vector<ValueType> mUpperBounds;
Hyperrectangle(std::vector< ValueType > const &lowerBounds, std::vector< ValueType > const &upperBounds)
void enlarge(std::vector< ValueType > const &point)
std::vector< ValueType > const & lowerBounds() const
std::shared_ptr< Polytope< ValueType > > asPolytope() const
std::vector< ValueType > const & upperBounds() const
std::vector< ValueType > & upperBounds()
std::vector< ValueType > & lowerBounds()
Hyperrectangle(std::vector< ValueType > &&lowerBounds, std::vector< ValueType > &&upperBounds)
static std::shared_ptr< Polytope< ValueType > > create(std::vector< Halfspace< ValueType > > const &halfspaces)
Creates a polytope from the given halfspaces.
#define STORM_LOG_THROW(cond, exception, message)