#include "src/logic/InstantaneousRewardFormula.h" namespace storm { namespace logic { InstantaneousRewardFormula::InstantaneousRewardFormula(uint_fast64_t timeBound) : timeBound(timeBound) { // Intentionally left empty. } InstantaneousRewardFormula::InstantaneousRewardFormula(double timeBound) : timeBound(timeBound) { // Intentionally left empty. } bool InstantaneousRewardFormula::isInstantaneousRewardFormula() const { return true; } bool InstantaneousRewardFormula::hasDiscreteTimeBound() const { return timeBound.which() == 0; } uint_fast64_t InstantaneousRewardFormula::getDiscreteTimeBound() const { return boost::get<uint_fast64_t>(timeBound); } bool InstantaneousRewardFormula::hasContinuousTimeBound() const { return timeBound.which() == 1; } double InstantaneousRewardFormula::getContinuousTimeBound() const { if (this->hasDiscreteTimeBound()) { return this->getDiscreteTimeBound(); } else { return boost::get<double>(timeBound); } } std::shared_ptr<Formula> InstantaneousRewardFormula::substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) const { return std::make_shared<InstantaneousRewardFormula>(*this); } std::ostream& InstantaneousRewardFormula::writeToStream(std::ostream& out) const { if (this->hasDiscreteTimeBound()) { out << "I=" << this->getDiscreteTimeBound(); } else { out << "I=" << this->getContinuousTimeBound(); } return out; } } }