|
|
|
@ -141,11 +141,12 @@ public class AccumulationTransformation<M extends ModelExplicit> implements Mode |
|
|
|
AccumulationContext ctx = new AccumulationContext(accexp, rewards, mc); |
|
|
|
ctx.singleTrack = isSingleTrack && !forceMulti; |
|
|
|
ctx.simpleMethod = isSimple && !forceComplex; |
|
|
|
ctx.untilConstr = (isSimple && isFiltered) || forceUntil; |
|
|
|
ctx.reachConstr = (!isSimple || !isFiltered) && !forceUntil; |
|
|
|
|
|
|
|
mc.getLog().print("Using optimizations: "); |
|
|
|
mc.getLog().print("Context flags: "); |
|
|
|
if(ctx.singleTrack) { mc.getLog().print(" singleTrack "); } |
|
|
|
if(ctx.simpleMethod) { mc.getLog().print(" simpleMethod "); } |
|
|
|
if(ctx.reachConstr) { mc.getLog().print(" reachConstr" ); } |
|
|
|
mc.getLog().println(); |
|
|
|
|
|
|
|
// Build the product |
|
|
|
@ -188,7 +189,7 @@ public class AccumulationTransformation<M extends ModelExplicit> implements Mode |
|
|
|
clock.start("replacing formula"); |
|
|
|
ASTVisitor replace; |
|
|
|
if(ctx.simpleMethod) { |
|
|
|
replace = new ReplaceAccumulationExpressionSimple(ctx.accexp, goalLabels.get(0), product.getNumberOfTracks()-1, ctx.untilConstr); |
|
|
|
replace = new ReplaceAccumulationExpressionSimple(ctx.accexp, goalLabels.get(0), product.getNumberOfTracks()-1, ctx.reachConstr); |
|
|
|
} else { |
|
|
|
replace = new ReplaceAccumulationExpressionComplex(ctx.accexp, initLabels, runLabels, goalLabels, product.getNumberOfTracks()-1, ctx.singleTrack); |
|
|
|
} |
|
|
|
|