12template<
typename ParametricType>
79 std::set<VariableType>
const& discreteVariables)
const;
83 std::set<VariableType>
const& monDecrParameters)
const;
86 std::string
toString(
bool boundariesAsDouble =
false)
const;
96 bool lastSplitMonotone =
false;
97 uint_fast64_t splitThreshold;
101 std::set<VariableType> variables;
102 std::multimap<CoefficientType, VariableType> sortedOnDifference;
106template<
typename ParametricType>
storm::utility::parametric::CoefficientType< ValueType >::type CoefficientType
std::set< VariableType > const & getVariables() const
Valuation getCenterPoint() const
Returns the center point of this region.
virtual ~ParameterRegion()=default
CoefficientType area() const
Returns the area of this region.
void setBoundParent(CoefficientType bound)
ParameterRegion(ParameterRegion< ParametricType > &&other)=default
std::string toString(bool boundariesAsDouble=false) const
void split(Valuation const &splittingPoint, std::vector< ParameterRegion< ParametricType > > ®ionVector, std::set< VariableType > const &consideredVariables, std::set< VariableType > const &discreteVariables) const
ParameterRegion(Valuation &&lowerBoundaries, Valuation &&upperBoundaries)
CoefficientType getCenter(VariableType const &variable) const
storm::utility::parametric::Valuation< ValueType > Valuation
Valuation const & getLowerBoundaries() const
CoefficientType getDifference(VariableType const &variable) const
CoefficientType getDifference(const std::string varName) const
storm::utility::parametric::VariableType< ValueType >::type VariableType
Valuation getPoint(storm::solver::OptimizationDirection dir, storm::analysis::MonotonicityResult< VariableType > &monRes) const
bool contains(Valuation const &point) const
Returns whether the given point is in this region.
CoefficientType const & getLowerBoundary(const std::string varName) const
ParameterRegion(ParameterRegion< ParametricType > const &other)=default
CoefficientType const & getLowerBoundary(VariableType const &variable) const
CoefficientType getBoundParent()
void split(Valuation const &splittingPoint, std::vector< ParameterRegion< ParametricType > > ®ionVector) const
Splits the region at the given point and inserts the resulting subregions at the end of the given vec...
bool isSubRegion(ParameterRegion< ParametricType > region)
CoefficientType const & getUpperBoundary(VariableType const &variable) const
ParameterRegion< ParametricType > & operator=(ParameterRegion< ParametricType > const &other)=default
Valuation getSomePoint() const
Returns some point that lies within this region.
CoefficientType getCenter(const std::string varName) const
Valuation getPoint(storm::solver::OptimizationDirection dir, std::set< VariableType > const &possibleMonotoneIncrParameters, std::set< VariableType > const &monDecrParameters) const
CoefficientType const & getUpperBoundary(const std::string varName) const
Valuation const & getUpperBoundaries() const
ParameterRegion(Valuation const &lowerBoundaries, Valuation const &upperBoundaries)
std::multimap< CoefficientType, VariableType > const & getVariablesSorted() const
std::vector< Valuation > getVerticesOfRegion(std::set< VariableType > const &consideredVariables) const
Returns a vector of all possible combinations of lower and upper bounds of the given variables.
std::ostream & operator<<(std::ostream &out, ParameterRegion< ParametricType > const ®ion)
std::map< typename VariableType< FunctionType >::type, typename CoefficientType< FunctionType >::type > Valuation