pub unsafe extern "C" fn SCIPincludeBenders(
scip: *mut SCIP,
name: *const c_char,
desc: *const c_char,
priority: c_int,
cutlp: c_uint,
cutpseudo: c_uint,
cutrelax: c_uint,
shareauxvars: c_uint,
benderscopy: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, threadsafe: c_uint) -> SCIP_RETCODE>,
bendersfree: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS) -> SCIP_RETCODE>,
bendersinit: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS) -> SCIP_RETCODE>,
bendersexit: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS) -> SCIP_RETCODE>,
bendersinitpre: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS) -> SCIP_RETCODE>,
bendersexitpre: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS) -> SCIP_RETCODE>,
bendersinitsol: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS) -> SCIP_RETCODE>,
bendersexitsol: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS) -> SCIP_RETCODE>,
bendersgetvar: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, var: *mut SCIP_VAR, mappedvar: *mut *mut SCIP_VAR, probnumber: c_int) -> SCIP_RETCODE>,
benderscreatesub: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, probnumber: c_int) -> SCIP_RETCODE>,
benderspresubsolve: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, sol: *mut SCIP_SOL, type_: SCIP_BENDERSENFOTYPE, checkint: c_uint, infeasible: *mut c_uint, auxviol: *mut c_uint, skipsolve: *mut c_uint, result: *mut SCIP_RESULT) -> SCIP_RETCODE>,
benderssolvesubconvex: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, sol: *mut SCIP_SOL, probnumber: c_int, onlyconvexcheck: c_uint, objective: *mut f64, result: *mut SCIP_RESULT) -> SCIP_RETCODE>,
benderssolvesub: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, sol: *mut SCIP_SOL, probnumber: c_int, objective: *mut f64, result: *mut SCIP_RESULT) -> SCIP_RETCODE>,
benderspostsolve: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, sol: *mut SCIP_SOL, type_: SCIP_BENDERSENFOTYPE, mergecands: *mut c_int, npriomergecands: c_int, nmergecands: c_int, checkint: c_uint, infeasible: c_uint, merged: *mut c_uint) -> SCIP_RETCODE>,
bendersfreesub: Option<unsafe extern "C" fn(scip: *mut SCIP, benders: *mut SCIP_BENDERS, probnumber: c_int) -> SCIP_RETCODE>,
bendersdata: *mut SCIP_BENDERSDATA,
) -> SCIP_RETCODEExpand description
creates a Benders’ decomposition and includes it in SCIP
To use the Benders’ decomposition for solving a problem, it first has to be activated with a call to SCIPactivateBenders(). This should be done during the problem creation stage.
@return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref SCIP_Retcode “SCIP_RETCODE” for a complete list of error codes.
@pre This method can be called if SCIP is in one of the following stages: - \ref SCIP_STAGE_INIT - \ref SCIP_STAGE_PROBLEM
@note method has all Benders’ decomposition callbacks as arguments and is thus changed every time a new callback is added in future releases; consider using SCIPincludeBendersBasic() and setter functions if you seek for a method which is less likely to change in future releases