// // parametric.h // // Created by Tim Quatmann on 08/03/16. // // #ifndef STORM_UTILITY_PARAMETRIC_H #define STORM_UTILITY_PARAMETRIC_H #include "storm/adapters/CarlAdapter.h" #include namespace storm { namespace utility { namespace parametric { /*! * Access the type of variables from a given function type */ template struct VariableType { typedef void type; }; /*! * Acess the type of coefficients from a given function type */ template struct CoefficientType { typedef void type; }; #ifdef STORM_HAVE_CARL template<> struct VariableType { typedef storm::RationalFunctionVariable type; }; template<> struct CoefficientType { typedef storm::RationalNumber type; }; #endif /*! * Evaluates the given function wrt. the given valuation */ template typename CoefficientType::type evaluate(FunctionType const& function, std::map::type, typename CoefficientType::type> const& valuation); /*! * Retrieves the constant part of the given function. */ template typename CoefficientType::type getConstantPart(FunctionType const& function); } } } #endif /* STORM_UTILITY_PARAMETRIC_H */