Skip to main content

GetIpoptCurrentIterate

Function GetIpoptCurrentIterate 

Source
#[unsafe(no_mangle)]
pub unsafe extern "C" fn GetIpoptCurrentIterate( ipopt_problem: IpoptProblem, _scaled: Bool, n: Index, x: *mut Number, z_l: *mut Number, z_u: *mut Number, m: Index, g: *mut Number, lambda: *mut Number, ) -> Bool
Expand description

Port of IpStdCInterface.cpp:GetIpoptCurrentIterate (Ipopt 3.14+). Designed to be called from inside an intermediate callback to inspect x, the bound multipliers z_L/z_U, the constraint values g, and the constraint multipliers lambda at the current iterate.

All output buffers are optional — pass NULL to skip. n and m must match the dimensions the problem was created with; mismatched sizes cause the function to return FALSE without writing.

scaled is currently ignored — quantities are reported in the user TNLP’s unscaled space (matching upstream Ipopt’s default caller behavior when scaling is unused). Honoring scaled for the gradient-based scaler is a follow-up.

Returns FALSE when called outside an active intermediate callback (no live iterate to inspect).

§Safety

ipopt_problem must be a valid IpoptProblem. Each output buffer, when non-NULL, must hold at least the declared length.