#[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,
) -> BoolExpand 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.