10template<
typename ValueType>
15template<
typename ValueType>
22template<
typename ValueType>
29template<
typename ValueType>
32 requires(!std::is_same_v<ExtendedPointType, point_type>)
35 for (
auto const& point :
points) {
40template<
typename ValueType>
45template<
typename ValueType>
50template<
typename ValueType>
55template<
typename ValueType>
60template<
typename ValueType>
66template<
typename ValueType>
72template<
typename ValueType>
76 out <<
"Underapproximation of achievable values: " <<
underApproximation->toString() <<
'\n';
79 out <<
"Overapproximation of achievable values: " <<
overApproximation->toString() <<
'\n';
81 out <<
points.size() <<
" Pareto optimal points found:\n";
82 for (
auto const& p :
points) {
84 for (
auto it = p.begin(); it != p.end(); ++it) {
85 if (it != p.begin()) {
94 for (
auto it = p.begin(); it != p.end(); ++it) {
95 if (it != p.begin()) {
98 out << std::setw(11) << storm::utility::convertNumber<double>(*it);
polytope_type const & getOverApproximation() const
virtual bool isParetoCurveCheckResult() const override
polytope_type underApproximation
bool hasOverApproximation() const
std::vector< ExtendedPointType > const & getPoints() const
std::shared_ptr< storm::storage::geometry::Polytope< ValueType > > polytope_type
virtual std::ostream & writeToStream(std::ostream &out) const override
polytope_type overApproximation
polytope_type const & getUnderApproximation() const
bool hasUnderApproximation() const
std::vector< ExtendedPointType > points
std::vector< ValueType > point_type
#define STORM_LOG_ASSERT(cond, message)
std::vector< ExtendedValueType< ValueType > > widen(std::vector< ValueType > &&values)
Widens a vector of finite values into the extended value type.
static const bool IsExact