Skip to main content

Module slack_scaling

Module slack_scaling 

Source
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.

Structs§

SlackBasedTSymScalingMethod