2#include <boost/any.hpp>
18 boost::optional<RewardAccumulation> rewardAccumulation)
24 std::vector<TimeBoundReference>
const& timeBoundReferences,
25 boost::optional<RewardAccumulation> rewardAccumulation)
40 "Cannot evaluate discount factor '" << factor <<
"' as it contains undefined constants.");
51 return discountFactor;
56 checkNoVariablesInDiscountFactor(discountFactor);
58 STORM_LOG_THROW(value > 0 && value < 1, storm::exceptions::InvalidPropertyException,
"Discount factor must be strictly between 0 and 1.");
64 checkNoVariablesInDiscountFactor(discountFactor);
66 STORM_LOG_THROW(value > 0 && value < 1, storm::exceptions::InvalidPropertyException,
"Discount factor must be strictly between 0 and 1.");
106 out << discountFactor;
111 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.
void gatherVariables(std::set< storm::expressions::Variable > &variables) const
Retrieves the set of all variables that appear in the expression.
std::string const & getRewardName() const
bool isRewardBound() const
RewardAccumulation const & getRewardAccumulation() const
bool hasRewardAccumulation() const
#define STORM_LOG_THROW(cond, exception, message)