54#undef SCIPnlhdlrSetCopyHdlr
55#undef SCIPnlhdlrSetFreeHdlrData
56#undef SCIPnlhdlrSetFreeExprData
57#undef SCIPnlhdlrSetInitExit
58#undef SCIPnlhdlrSetProp
59#undef SCIPnlhdlrSetSepa
60#undef SCIPnlhdlrSetSollinearize
61#undef SCIPnlhdlrGetName
62#undef SCIPnlhdlrGetDesc
63#undef SCIPnlhdlrGetDetectPriority
64#undef SCIPnlhdlrGetEnfoPriority
65#undef SCIPnlhdlrIsEnabled
66#undef SCIPnlhdlrGetData
67#undef SCIPnlhdlrHasIntEval
68#undef SCIPnlhdlrHasReverseProp
69#undef SCIPnlhdlrHasInitSepa
70#undef SCIPnlhdlrHasExitSepa
71#undef SCIPnlhdlrHasEnfo
72#undef SCIPnlhdlrHasEstimate
73#undef SCIPnlhdlrHasSollinearize
84 nlhdlr->copyhdlr = copy;
95 nlhdlr->freehdlrdata = freehdlrdata;
107 nlhdlr->freeexprdata = freeexprdata;
120 nlhdlr->exit = exit_;
132 nlhdlr->inteval = inteval;
133 nlhdlr->reverseprop = reverseprop;
148 nlhdlr->initsepa = initsepa;
150 nlhdlr->estimate = estimate;
151 nlhdlr->exitsepa = exitsepa;
163 nlhdlr->sollinearize = sollinearize;
233 return nlhdlr->inteval !=
NULL;
243 return nlhdlr->reverseprop !=
NULL;
253 return nlhdlr->initsepa !=
NULL;
263 return nlhdlr->exitsepa !=
NULL;
273 return nlhdlr->enfo !=
NULL;
283 return nlhdlr->estimate !=
NULL;
293 return nlhdlr->sollinearize !=
NULL;
317#ifdef SCIP_DISABLED_CODE
348#undef SCIPnlhdlrResetNDetectionslast
349#undef SCIPnlhdlrIncrementNCutoffs
350#undef SCIPnlhdlrIncrementNSeparated
383 (*nlhdlr)->detectpriority = detectpriority;
384 (*nlhdlr)->enfopriority = enfopriority;
385 (*nlhdlr)->data = nlhdlrdata;
386 (*nlhdlr)->detect = detect;
387 (*nlhdlr)->evalaux = evalaux;
410 if( (*nlhdlr)->freehdlrdata !=
NULL )
433 if( sourcenlhdlr->copyhdlr !=
NULL && sourcenlhdlr->enabled )
435 SCIP_CALL( sourcenlhdlr->copyhdlr(targetscip, targetconshdlr, sourceconshdlr, sourcenlhdlr) );
448 if( nlhdlr->freeexprdata !=
NULL )
450 SCIP_CALL( nlhdlr->freeexprdata(
scip, nlhdlr, expr, nlhdlrexprdata) );
477 if( nlhdlr->init !=
NULL )
490 if( nlhdlr->exit !=
NULL )
508 SCIP_CALL( nlhdlr->detect(
scip, conshdlr, nlhdlr, expr, cons, enforcing, participating, nlhdlrexprdata) );
526 SCIP_CALL( nlhdlr->evalaux(
scip, nlhdlr, expr, nlhdlrexprdata, auxvalue,
sol) );
538 if( nlhdlr->inteval !=
NULL )
541 SCIP_CALL( nlhdlr->inteval(
scip, nlhdlr, expr, nlhdlrexprdata, interval, intevalvar, intevalvardata) );
559 if( nlhdlr->reverseprop ==
NULL )
568 SCIP_CALL( nlhdlr->reverseprop(
scip, conshdlr, nlhdlr, expr, nlhdlrexprdata, bounds, infeasible, nreductions) );
588 if( nlhdlr->initsepa ==
NULL )
595 SCIP_CALL( nlhdlr->initsepa(
scip, conshdlr, cons, nlhdlr, expr, nlhdlrexprdata, overestimate, underestimate, infeasible) );
612 if( nlhdlr->exitsepa !=
NULL )
615 SCIP_CALL( nlhdlr->exitsepa(
scip, nlhdlr, expr, nlhdlrexprdata) );
630 if( nlhdlr->enfo ==
NULL )
640 SCIP_CALL( SCIPnlhdlrEvalaux(
scip, nlhdlr, expr, nlhdlrexprdata, &auxvaluetest,
sol) );
642 assert(auxvalue == auxvaluetest);
647 SCIP_CALL( nlhdlr->enfo(
scip, conshdlr, cons, nlhdlr, expr, nlhdlrexprdata,
sol, auxvalue,
648 overestimate, allowweakcuts, separated, addbranchscores, branchcandonly,
result) );
684 if( nlhdlr->estimate ==
NULL )
687 *addedbranchscores =
FALSE;
695 SCIP_CALL( SCIPnlhdlrEvalaux(
scip, nlhdlr, expr, nlhdlrexprdata, &auxvaluetest,
sol) );
697 assert(auxvalue == auxvaluetest);
702 SCIP_CALL( nlhdlr->estimate(
scip, conshdlr, nlhdlr, expr, nlhdlrexprdata,
sol, auxvalue, overestimate, targetvalue, addbranchscores, rowpreps, success, addedbranchscores) );
717 if( nlhdlr->sollinearize ==
NULL )
720 SCIP_CALL( nlhdlr->sollinearize(
scip, conshdlr, cons, nlhdlr, expr, nlhdlrexprdata,
sol, solisbest, overestimate, underestimate) );
762 SCIPinfoMessage(
scip, file,
"Nlhdlrs : %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s\n",
763 "Detects",
"DetectAll",
"DetectTime",
764 "#IntEval",
"IntEvalTi",
765 "#RevProp",
"RevPropTi",
"DomReds",
"Cutoffs",
766 "#Enforce",
"EnfoTime",
"Cuts",
"Branching");
768 for(
i = 0;
i < nnlhdlrs; ++
i )
771 if( !nlhdlrs[
i]->enabled )
810 for(
i = 0;
i < nnlhdlrs; ++
i )
815 if( !nlhdlrs[
i]->enabled )
#define SCIP_CALL_FINALLY(x, y)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPcreateDatatreeInTree(SCIP *scip, SCIP_DATATREE *datatree, SCIP_DATATREE **newtree, const char *name, int capacity)
SCIP_RETCODE SCIPinsertDatatreeString(SCIP *scip, SCIP_DATATREE *datatree, const char *name, const char *value)
SCIP_RETCODE SCIPinsertDatatreeLong(SCIP *scip, SCIP_DATATREE *datatree, const char *name, SCIP_Longint value)
SCIP_RETCODE SCIPinsertDatatreeReal(SCIP *scip, SCIP_DATATREE *datatree, const char *name, SCIP_Real value)
#define SCIPallocClearBlockMemory(scip, ptr)
#define SCIPfreeMemoryNull(scip, ptr)
#define SCIPduplicateMemoryArray(scip, ptr, source, num)
#define SCIPfreeMemoryArray(scip, ptr)
#define SCIPfreeMemory(scip, ptr)
#define SCIPfreeBlockMemory(scip, ptr)
void SCIPnlhdlrSetInitExit(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINIT((*init)),)
const char * SCIPnlhdlrGetDesc(SCIP_NLHDLR *nlhdlr)
SCIP_NLHDLRDATA * SCIPnlhdlrGetData(SCIP_NLHDLR *nlhdlr)
void SCIPnlhdlrSetFreeExprData(SCIP_NLHDLR *nlhdlr,)
SCIP_Bool SCIPnlhdlrHasIntEval(SCIP_NLHDLR *nlhdlr)
SCIP_Bool SCIPnlhdlrHasEnfo(SCIP_NLHDLR *nlhdlr)
int SCIPnlhdlrGetDetectPriority(SCIP_NLHDLR *nlhdlr)
SCIP_Bool SCIPnlhdlrIsEnabled(SCIP_NLHDLR *nlhdlr)
SCIP_Bool SCIPnlhdlrHasReverseProp(SCIP_NLHDLR *nlhdlr)
const char * SCIPnlhdlrGetName(SCIP_NLHDLR *nlhdlr)
SCIP_Bool SCIPnlhdlrHasSollinearize(SCIP_NLHDLR *nlhdlr)
void SCIPnlhdlrSetSollinearize(SCIP_NLHDLR *nlhdlr,)
SCIP_Bool SCIPnlhdlrHasEstimate(SCIP_NLHDLR *nlhdlr)
void SCIPnlhdlrSetSepa(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINITSEPA((*initsepa)), SCIP_DECL_NLHDLRENFO((*enfo)), SCIP_DECL_NLHDLRESTIMATE((*estimate)),)
void SCIPnlhdlrSetFreeHdlrData(SCIP_NLHDLR *nlhdlr,)
void SCIPnlhdlrSetCopyHdlr(SCIP_NLHDLR *nlhdlr,)
SCIP_Bool SCIPnlhdlrHasInitSepa(SCIP_NLHDLR *nlhdlr)
int SCIPnlhdlrGetEnfoPriority(SCIP_NLHDLR *nlhdlr)
void SCIPnlhdlrSetProp(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINTEVAL((*inteval)),)
SCIP_Bool SCIPnlhdlrHasExitSepa(SCIP_NLHDLR *nlhdlr)
SCIP_RETCODE SCIPcreateClock(SCIP *scip, SCIP_CLOCK **clck)
SCIP_RETCODE SCIPresetClock(SCIP *scip, SCIP_CLOCK *clck)
SCIP_RETCODE SCIPstopClock(SCIP *scip, SCIP_CLOCK *clck)
SCIP_RETCODE SCIPfreeClock(SCIP *scip, SCIP_CLOCK **clck)
SCIP_Real SCIPgetClockTime(SCIP *scip, SCIP_CLOCK *clck)
SCIP_RETCODE SCIPstartClock(SCIP *scip, SCIP_CLOCK *clck)
int SCIPsnprintf(char *t, int len, const char *s,...)
assert(minobj< SCIPgetCutoffbound(scip))
static const char * paramname[]
SCIP_RETCODE SCIPnlhdlrFree(SCIP *scip, SCIP_NLHDLR **nlhdlr)
SCIP_RETCODE SCIPnlhdlrCreate(SCIP *scip, SCIP_NLHDLR **nlhdlr, const char *name, const char *desc, int detectpriority, int enfopriority, SCIP_DECL_NLHDLRDETECT((*detect)), SCIP_DECL_NLHDLREVALAUX((*evalaux)), SCIP_NLHDLRDATA *nlhdlrdata)
void SCIPnlhdlrPrintStatistics(SCIP *scip, SCIP_NLHDLR **nlhdlrs, int nnlhdlrs, FILE *file)
SCIP_RETCODE SCIPnlhdlrCollectStatistics(SCIP *scip, SCIP_NLHDLR **nlhdlrs, int nnlhdlrs, SCIP_DATATREE *datatree)
private functions of nonlinear handlers of nonlinear constraints
#define SCIPnlhdlrIncrementNSeparated(nlhdlr)
#define SCIPnlhdlrResetNDetectionslast(nlhdlr)
#define SCIPnlhdlrIncrementNCutoffs(nlhdlr)
public methods for message output
public data structures and miscellaneous methods
public functions of nonlinear handlers of nonlinear constraints
public methods for data tree structure
public methods for memory management
public methods for message handling
public methods for SCIP parameter handling
public methods for timing
SCIP_Longint ndetectionslast
SCIP_Longint nintevalcalls
SCIP_Longint nbranchscores
structure definitions related to nonlinear handlers of nonlinear constraints
struct SCIP_Datatree SCIP_DATATREE
#define SCIP_DECL_SORTPTRCOMP(x)
#define SCIP_DECL_NLHDLREVALAUX(x)
#define SCIP_DECL_NLHDLRESTIMATE(x)
struct SCIP_NlhdlrData SCIP_NLHDLRDATA
#define SCIP_DECL_NLHDLRCOPYHDLR(x)
#define SCIP_DECL_NLHDLRINIT(x)
#define SCIP_DECL_NLHDLRSOLLINEARIZE(x)
#define SCIP_DECL_NLHDLREXIT(x)
#define SCIP_DECL_NLHDLRFREEEXPRDATA(x)
#define SCIP_DECL_NLHDLRDETECT(x)
#define SCIP_NLHDLR_METHOD_NONE
#define SCIP_DECL_NLHDLREXITSEPA(x)
struct SCIP_Nlhdlr SCIP_NLHDLR
#define SCIP_DECL_NLHDLRINITSEPA(x)
#define SCIP_DECL_NLHDLRFREEHDLRDATA(x)
#define SCIP_DECL_NLHDLRREVERSEPROP(x)
#define SCIP_DECL_NLHDLRENFO(x)
#define SCIP_DECL_NLHDLRINTEVAL(x)
enum SCIP_Retcode SCIP_RETCODE