@@ -210,11 +210,14 @@ void IpmSolver::runImpl(scalar_t initTime, const vector_t& initState, scalar_t f
210
210
scalar_t barrierParam = settings_.initialBarrierParameter ;
211
211
vector_array_t slackStateIneq, slackStateInputIneq, dualStateIneq, dualStateInputIneq;
212
212
if (!slackIneqTrajectory_.timeTrajectory .empty ()) {
213
+ const auto & oldModeSchedule = primalSolution_.modeSchedule_ ;
213
214
const auto & newModeSchedule = this ->getReferenceManager ().getModeSchedule ();
214
- std::tie (slackStateIneq, slackStateInputIneq) = ipm::interpolateInteriorPointTrajectory (
215
- primalSolution_.modeSchedule_ , newModeSchedule, timeDiscretization, std::move (slackIneqTrajectory_));
216
- std::tie (dualStateIneq, dualStateInputIneq) = ipm::interpolateInteriorPointTrajectory (
217
- primalSolution_.modeSchedule_ , newModeSchedule, timeDiscretization, std::move (dualIneqTrajectory_));
215
+ std::ignore = trajectorySpread (oldModeSchedule, newModeSchedule, slackIneqTrajectory_);
216
+ std::ignore = trajectorySpread (oldModeSchedule, newModeSchedule, dualIneqTrajectory_);
217
+ std::tie (slackStateIneq, slackStateInputIneq) =
218
+ ipm::interpolateInteriorPointTrajectory (oldModeSchedule, newModeSchedule, timeDiscretization, std::move (slackIneqTrajectory_));
219
+ std::tie (dualStateIneq, dualStateInputIneq) =
220
+ ipm::interpolateInteriorPointTrajectory (oldModeSchedule, newModeSchedule, timeDiscretization, std::move (dualIneqTrajectory_));
218
221
} else {
219
222
slackStateIneq.resize (timeDiscretization.size ());
220
223
slackStateInputIneq.resize (timeDiscretization.size () - 1 );
0 commit comments