#[unsafe(no_mangle)]pub unsafe extern "C" fn SetIpoptProblemScaling(
ipopt_problem: IpoptProblem,
obj_scaling: Number,
x_scaling: *const Number,
g_scaling: *const Number,
) -> BoolExpand description
Port of IpStdCInterface.cpp:SetIpoptProblemScaling. Stores
user-provided NLP scaling on the problem; the scaling is forwarded
to the solver via TNLP::get_scaling_parameters when the option
nlp_scaling_method=user-scaling is set. Passing NULL for
x_scaling / g_scaling disables scaling on that axis.
Always returns TRUE (the upstream contract). A non-trivial
x_scaling is applied as a change of variables, so the solution and
bound multipliers IpoptSolve writes back are in the caller’s own
units (gh#486). A factor that is not finite and positive is refused
at solve time, where IpoptSolve returns Invalid_Option and the
journalist explains why: store-time validation is not an option,
because the C signature has no way to report it.
§Safety
ipopt_problem must be a valid IpoptProblem. When non-NULL,
x_scaling must point to n doubles and g_scaling to m
doubles; both arrays are copied internally.