4#include <unordered_set>
6#pragma clang diagnostic push
7#pragma clang diagnostic ignored "-Wmacro-redefined"
8#include <carl/formula/Formula.h>
9#pragma clang diagnostic pop
17template<
typename ValueType,
typename Enable =
void>
22template<
typename ValueType>
23struct ConstraintType<ValueType, typename
std::enable_if<std::is_same<storm::RationalFunction, ValueType>::value>::type> {
24 typedef carl::Formula<typename storm::RationalFunction::PolyType::PolyType>
val;
30template<
typename ValueType>
34 std::unordered_set<typename ConstraintType<ValueType>::val> wellformedConstraintSet;
38 std::unordered_set<typename ConstraintType<ValueType>::val> graphPreservingConstraintSet;
41 std::set<storm::RationalFunctionVariable> variableSet;
43 void wellformedRequiresNonNegativeEntries(std::vector<ValueType>
const&);
72 std::set<storm::RationalFunctionVariable>
const&
getVariables()
const;
Class to collect constraints on parametric Markov chains.
std::unordered_set< typename ConstraintType< ValueType >::val > const & getWellformedConstraints() const
Returns the set of wellformed-ness constraints.
std::unordered_set< typename ConstraintType< ValueType >::val > const & getGraphPreservingConstraints() const
Returns the set of graph-preserving constraints.
std::set< storm::RationalFunctionVariable > const & getVariables() const
Returns the set of variables in the model.
void operator()(storm::models::sparse::Model< ValueType > const &model)
Constructs the constraints for the given Model by calling the process method.
Base class for all sparse models.
carl::Formula< typename storm::RationalFunction::PolyType::PolyType > val