Expand description
Slack-based symmetric scaling — port of
Algorithm/LinearSolvers/IpSlackBasedTSymScalingMethod.{hpp,cpp}.
Used by the inexact algorithm (and any caller setting
linear_system_scaling=slack-based). Operates on the augmented KKT
system whose row block layout is
[ x (nx) | s (ns) | y_c (nc) | y_d (nd) ]Per-row factors:
- x-rows, y_c-rows, y_d-rows →
1.0 - s-rows →
min(1.0, P_d_L · slack_s_L + P_d_U · slack_s_U)per row, i.e. damp the s-row by the active slack value when small.
Lives in pounce-algorithm rather than pounce-linsol because the
method needs access to IpoptCalculatedQuantities (current slacks)
and the IpoptNlp bound-expansion matrices, which would otherwise
create a circular crate dependency.