44struct SCIP_BranchruleData
46 scip::ObjBranchrule* objbranchrule;
71 assert(branchruledata->objbranchrule->scip_ !=
scip);
73 if( branchruledata->objbranchrule->iscloneable() )
94 assert(branchruledata->objbranchrule->scip_ ==
scip);
97 SCIP_CALL( branchruledata->objbranchrule->scip_free(
scip, branchrule) );
100 if( branchruledata->deleteobject )
101 delete branchruledata->objbranchrule;
104 delete branchruledata;
119 assert(branchruledata->objbranchrule !=
NULL);
120 assert(branchruledata->objbranchrule->scip_ ==
scip);
123 SCIP_CALL( branchruledata->objbranchrule->scip_init(
scip, branchrule) );
137 assert(branchruledata->objbranchrule !=
NULL);
140 SCIP_CALL( branchruledata->objbranchrule->scip_exit(
scip, branchrule) );
154 assert(branchruledata->objbranchrule !=
NULL);
157 SCIP_CALL( branchruledata->objbranchrule->scip_initsol(
scip, branchrule) );
171 assert(branchruledata->objbranchrule !=
NULL);
174 SCIP_CALL( branchruledata->objbranchrule->scip_exitsol(
scip, branchrule) );
188 assert(branchruledata->objbranchrule !=
NULL);
191 SCIP_CALL( branchruledata->objbranchrule->scip_execlp(
scip, branchrule, allowaddcons,
result) );
205 assert(branchruledata->objbranchrule !=
NULL);
208 SCIP_CALL( branchruledata->objbranchrule->scip_execext(
scip, branchrule, allowaddcons,
result) );
222 assert(branchruledata->objbranchrule !=
NULL);
225 SCIP_CALL( branchruledata->objbranchrule->scip_execps(
scip, branchrule, allowaddcons,
result) );
251 branchruledata->objbranchrule = objbranchrule;
252 branchruledata->deleteobject = deleteobject;
258 branchFreeObj, branchInitObj, branchExitObj, branchInitsolObj, branchExitsolObj,
259 branchExeclpObj, branchExecextObj, branchExecpsObj,
276 if( branchrule ==
NULL )
282 return branchruledata->objbranchrule;
297 return branchruledata->objbranchrule;
C++ wrapper for branching rules.
const SCIP_Real scip_maxbounddist_
SCIP_BRANCHRULE * SCIPfindBranchrule(SCIP *scip, const char *name)
SCIP_BRANCHRULEDATA * SCIPbranchruleGetData(SCIP_BRANCHRULE *branchrule)
void SCIPbranchruleSetData(SCIP_BRANCHRULE *branchrule, SCIP_BRANCHRULEDATA *branchruledata)
SCIP_RETCODE SCIPincludeBranchrule(SCIP *scip, const char *name, const char *desc, int priority, int maxdepth, SCIP_Real maxbounddist, SCIP_DECL_BRANCHCOPY((*branchcopy)), SCIP_DECL_BRANCHFREE((*branchfree)), SCIP_DECL_BRANCHINIT((*branchinit)), SCIP_DECL_BRANCHEXIT((*branchexit)), SCIP_DECL_BRANCHINITSOL((*branchinitsol)), SCIP_DECL_BRANCHEXITSOL((*branchexitsol)), SCIP_DECL_BRANCHEXECLP((*branchexeclp)), SCIP_DECL_BRANCHEXECEXT((*branchexecext)), SCIP_DECL_BRANCHEXECPS((*branchexecps)), SCIP_BRANCHRULEDATA *branchruledata)
assert(minobj< SCIPgetCutoffbound(scip))
SCIP_RETCODE SCIPincludeObjBranchrule(SCIP *scip, scip::ObjBranchrule *objbranchrule, SCIP_Bool deleteobject)
scip::ObjBranchrule * SCIPfindObjBranchrule(SCIP *scip, const char *name)
scip::ObjBranchrule * SCIPgetObjBranchrule(SCIP *scip, SCIP_BRANCHRULE *branchrule)
C++ wrapper for branching rules.
#define SCIP_DECL_BRANCHEXECPS(x)
#define SCIP_DECL_BRANCHEXECLP(x)
#define SCIP_DECL_BRANCHEXECEXT(x)
#define SCIP_DECL_BRANCHINITSOL(x)
#define SCIP_DECL_BRANCHINIT(x)
#define SCIP_DECL_BRANCHCOPY(x)
#define SCIP_DECL_BRANCHEXIT(x)
#define SCIP_DECL_BRANCHFREE(x)
struct SCIP_Branchrule SCIP_BRANCHRULE
struct SCIP_BranchruleData SCIP_BRANCHRULEDATA
#define SCIP_DECL_BRANCHEXITSOL(x)
enum SCIP_Retcode SCIP_RETCODE