2#include <boost/any.hpp>
17 boost::optional<RewardAccumulation> rewardAccumulation)
43 return discountFactor;
48 checkNoVariablesInDiscountFactor(discountFactor);
50 STORM_LOG_THROW(value > 0 && value < 1, storm::exceptions::InvalidPropertyException,
"Discount factor must be strictly between 0 and 1.");
56 checkNoVariablesInDiscountFactor(discountFactor);
58 STORM_LOG_THROW(value > 0 && value < 1, storm::exceptions::InvalidPropertyException,
"Discount factor must be strictly between 0 and 1.");
64 "Cannot evaluate discount factor '" << factor <<
"' as it contains undefined constants.");
68 return visitor.
visit(*
this, data);
double evaluateAsDouble(Valuation const *valuation=nullptr) const
Evaluates the expression under the valuation of variables given by the valuation and returns the resu...
storm::RationalNumber evaluateAsRational() const
Evaluates the expression and returns the resulting rational number.
bool containsVariables() const
Retrieves whether the expression contains a variable.
std::string toString() const
Converts the expression into a string.
void gatherVariables(std::set< storm::expressions::Variable > &variables) const
Retrieves the set of all variables that appear in the expression.
#define STORM_LOG_THROW(cond, exception, message)