Skip to content

Commit a364458

Browse files
Fixing fractionToBoundaryStepSize
1 parent 8420282 commit a364458

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

ocs2_ipm/src/IpmHelpers.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,9 @@ scalar_t fractionToBoundaryStepSize(const vector_t& v, const vector_t& dv, scala
108108
return 1.0;
109109
}
110110

111-
vector_t fractionToBoundary = -marginRate * v.cwiseQuotient(dv);
112-
fractionToBoundary.unaryExpr([](scalar_t ftb) { return ftb > 0.0 ? ftb : 1.0; });
113-
114-
return std::min(1.0, fractionToBoundary.minCoeff());
111+
const vector_t invFractionToBoundary = (-1.0 / marginRate) * dv.cwiseQuotient(v);
112+
const auto alpha = invFractionToBoundary.maxCoeff();
113+
return alpha > 0.0? std::min(1.0 / alpha, 1.0): 1.0;
115114
}
116115

117116
} // namespace ipm

0 commit comments

Comments
 (0)