Skip to content

Commit

Permalink
Fixed accidentally discarding reward accumulations for cumulative rew…
Browse files Browse the repository at this point in the history
…ard formulas
  • Loading branch information
tquatmann committed Jul 29, 2024
1 parent c6223c5 commit f027030
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/storm/logic/ExpressionSubstitutionVisitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,14 @@ boost::any ExpressionSubstitutionVisitor::visit(CumulativeRewardFormula const& f
bounds.emplace_back(TimeBound(f.isBoundStrict(i), substitutionFunction(f.getBound(i))));
timeBoundReferences.push_back(f.getTimeBoundReference(i));
}
return std::static_pointer_cast<Formula>(std::make_shared<CumulativeRewardFormula>(bounds, timeBoundReferences));
boost::optional<RewardAccumulation> optionalRewardAccumulation;
if (f.hasRewardAccumulation()) {
optionalRewardAccumulation = f.getRewardAccumulation();
}
return std::static_pointer_cast<Formula>(std::make_shared<CumulativeRewardFormula>(bounds, timeBoundReferences, optionalRewardAccumulation));
}


boost::any ExpressionSubstitutionVisitor::visit(InstantaneousRewardFormula const& f, boost::any const& data) const {
auto const& substitutionFunction = *boost::any_cast<std::function<storm::expressions::Expression(storm::expressions::Expression const&)> const*>(data);
return std::static_pointer_cast<Formula>(std::make_shared<InstantaneousRewardFormula>(substitutionFunction(f.getBound()), f.getTimeBoundType()));
Expand Down

0 comments on commit f027030

Please sign in to comment.