pub fn pack_bound_multipliers(
nlp: &Rc<RefCell<dyn IpoptNlp>>,
z_l: &[Number],
z_u: &[Number],
) -> Vec<Number> ⓘExpand description
Pack the IPM’s compressed bound multipliers into the SQP convention:
one entry per variable, λ_x = z_l − z_u.
Both engines write stationarity as ∇f + Jᵀλ_g − λ_x once λ_x is
packed this way (the IPM’s own form is ∇f + Jᵀλ − z_l + z_u = 0), so
this is a repacking and not a sign convention change.