11template<
typename ReturnType>
13 if constexpr (std::is_same<ReturnType, typename CoefficientType<storm::RationalFunction>::type>::value) {
14 return function.evaluate(valuation);
16 return storm::utility::convertNumber<ReturnType>(function.evaluate(valuation));
22 return evaluateRationalFunction<double>(function, valuation);
25#if defined(STORM_HAVE_CLN)
28 return evaluateRationalFunction<ClnRationalNumber>(function, valuation);
32#if defined(STORM_HAVE_GMP)
35 return evaluateRationalFunction<GmpRationalNumber>(function, valuation);
42 return function.substitute(valuation);
48 function.gatherVariables(variableSet);
61 auto varInfos = function.nominator().getVarInfo<
false>();
62 for (
auto const& varInfo : varInfos) {
63 if (varInfo.second.maxDegree() > 1) {
void gatherOccurringVariables< storm::RationalFunction >(storm::RationalFunction const &function, std::set< typename VariableType< storm::RationalFunction >::type > &variableSet)
bool isMultiLinearPolynomial< storm::RationalFunction >(storm::RationalFunction const &function)
ReturnType evaluateRationalFunction(storm::RationalFunction const &function, Valuation< storm::RationalFunction > const &valuation)
std::map< typename VariableType< FunctionType >::type, typename CoefficientType< FunctionType >::type > Valuation
storm::RationalFunction substitute< storm::RationalFunction >(storm::RationalFunction const &function, Valuation< storm::RationalFunction > const &valuation)
bool isLinear< storm::RationalFunction >(storm::RationalFunction const &function)
double evaluate(storm::RationalFunction const &function, Valuation< storm::RationalFunction > const &valuation)
bool isConstant(ValueType const &)