diff --git a/core/envelope-sim/src/main/java/fr/sncf/osrd/envelope_sim/allowances/mareco_impl/CoastingGenerator.java b/core/envelope-sim/src/main/java/fr/sncf/osrd/envelope_sim/allowances/mareco_impl/CoastingGenerator.java index 4972f587f24..abea924164e 100644 --- a/core/envelope-sim/src/main/java/fr/sncf/osrd/envelope_sim/allowances/mareco_impl/CoastingGenerator.java +++ b/core/envelope-sim/src/main/java/fr/sncf/osrd/envelope_sim/allowances/mareco_impl/CoastingGenerator.java @@ -67,8 +67,11 @@ public static EnvelopePart coastFromEnd( assert constrainedBuilder.getLastPos() < endPos; - if (!reachedLowLimit && constrainedBuilder.getLastPos() != envelope.getBeginPos()) + if (!reachedLowLimit) { return backwardPartBuilder.build(); + // We only need to recompute a coasting going forward if the low speed limit has been reached, + // as we'd need to add accelerations in places where we've clipped the speed + } var resultCoast = coastFromBeginning( envelope, context, constrainedBuilder.getLastPos(), constrainedBuilder.getLastSpeed());