Skip to main content

IpoptSolve

Function IpoptSolve 

Source
#[unsafe(no_mangle)]
pub unsafe extern "C" fn IpoptSolve( ipopt_problem: IpoptProblem, x: *mut Number, g: *mut Number, obj_val: *mut Number, mult_g: *mut Number, mult_x_L: *mut Number, mult_x_U: *mut Number, user_data: *mut c_void, ) -> Index
Expand description

Port of IpStdCInterface.cpp:IpoptSolve. Returns the ApplicationReturnStatus integer.

Builds a [CCallbackTnlp] from the user-supplied callback table and bounds, runs it through IpoptApplication::optimize_tnlp, and writes back the final iterate.

§Safety

All pointer arguments are read/written per the IpStdCInterface.h contract: x is in/out (size n); g is out-only (size m); mult_g, mult_x_L, mult_x_U (sizes m, n, n) are out, and are also read as the starting multipliers when warm_start_init_point=yes (upstream’s start_lam, start_z_L, start_z_U). Any of them may be NULL; a NULL multiplier buffer under a warm start means “not supplied” and that block starts unseeded.