14 domainSizesProduct = storm::utility::one<storm::RationalNumber>();
16 if (domainSizesProduct > storm::utility::convertNumber<storm::RationalNumber>(std::numeric_limits<uint64_t>::max())) {
17 STORM_LOG_WARN(
"Truncating the domain size as it does not fit in an unsigned 64 bit number.");
20 info.
stateDomainSize = storm::utility::convertNumber<uint64_t>(domainSizesProduct);
23 info.
avgVarDomainSize = storm::utility::convertNumber<double>(domainSizesSum) / storm::utility::convertNumber<double>(info.
nrVariables);
30 virtual void traverse(
Model const& model, boost::any
const& data)
override {
38 domainSizesProduct *= storm::utility::convertNumber<storm::RationalNumber, uint64_t>(automaton.
getNumberOfLocations());
52 auto const& type = variable.
getType();
53 if (type.isBasicType() && type.asBasicType().isBooleanType()) {
54 domainSizesProduct *= storm::utility::convertNumber<storm::RationalNumber, uint64_t>(2u);
56 }
else if (type.isBoundedType() && type.asBoundedType().isIntegerType() && type.asBoundedType().hasLowerBound() &&
57 type.asBoundedType().hasUpperBound() && !type.asBoundedType().getLowerBound().containsVariables() &&
58 !type.asBoundedType().getUpperBound().containsVariables()) {
59 auto size = type.asBoundedType().getUpperBound().evaluateAsInt() - type.asBoundedType().getLowerBound().evaluateAsInt();
60 domainSizesProduct *= storm::utility::convertNumber<storm::RationalNumber, uint64_t>(size);
61 domainSizesSum += size;
63 domainSizesProduct = storm::utility::zero<storm::RationalNumber>();
71 uint64_t domainSizesSum;
72 storm::RationalNumber domainSizesProduct;
uint64_t getNumberOfEdges() const
Retrieves the number of edges.
uint64_t getNumberOfLocations() const
Retrieves the number of locations.
virtual void traverse(Model const &model, boost::any const &data)
ModelType const & getModelType() const
Retrieves the type of the model.
std::size_t getNumberOfAutomata() const
Retrieves the number of automata in this model.
uint64_t getNumberOfNontransientVariables() const
#define STORM_LOG_WARN(message)
InformationObject collectModelInformation(Model const &model)