53#undef SCIPnlhdlrSetCopyHdlr
54#undef SCIPnlhdlrSetFreeHdlrData
55#undef SCIPnlhdlrSetFreeExprData
56#undef SCIPnlhdlrSetInitExit
57#undef SCIPnlhdlrSetProp
58#undef SCIPnlhdlrSetSepa
59#undef SCIPnlhdlrSetSollinearize
60#undef SCIPnlhdlrGetName
61#undef SCIPnlhdlrGetDesc
62#undef SCIPnlhdlrGetDetectPriority
63#undef SCIPnlhdlrGetEnfoPriority
64#undef SCIPnlhdlrIsEnabled
65#undef SCIPnlhdlrGetData
66#undef SCIPnlhdlrHasIntEval
67#undef SCIPnlhdlrHasReverseProp
68#undef SCIPnlhdlrHasInitSepa
69#undef SCIPnlhdlrHasExitSepa
70#undef SCIPnlhdlrHasEnfo
71#undef SCIPnlhdlrHasEstimate
72#undef SCIPnlhdlrHasSollinearize
83 nlhdlr->copyhdlr = copy;
94 nlhdlr->freehdlrdata = freehdlrdata;
106 nlhdlr->freeexprdata = freeexprdata;
119 nlhdlr->exit = exit_;
131 nlhdlr->inteval = inteval;
132 nlhdlr->reverseprop = reverseprop;
147 nlhdlr->initsepa = initsepa;
149 nlhdlr->estimate = estimate;
150 nlhdlr->exitsepa = exitsepa;
162 nlhdlr->sollinearize = sollinearize;
232 return nlhdlr->inteval !=
NULL;
242 return nlhdlr->reverseprop !=
NULL;
252 return nlhdlr->initsepa !=
NULL;
262 return nlhdlr->exitsepa !=
NULL;
272 return nlhdlr->enfo !=
NULL;
282 return nlhdlr->estimate !=
NULL;
292 return nlhdlr->sollinearize !=
NULL;
316#ifdef SCIP_DISABLED_CODE
347#undef SCIPnlhdlrResetNDetectionslast
348#undef SCIPnlhdlrIncrementNCutoffs
349#undef SCIPnlhdlrIncrementNSeparated
382 (*nlhdlr)->detectpriority = detectpriority;
383 (*nlhdlr)->enfopriority = enfopriority;
384 (*nlhdlr)->data = nlhdlrdata;
385 (*nlhdlr)->detect = detect;
386 (*nlhdlr)->evalaux = evalaux;
409 if( (*nlhdlr)->freehdlrdata !=
NULL )
432 if( sourcenlhdlr->copyhdlr !=
NULL && sourcenlhdlr->enabled )
434 SCIP_CALL( sourcenlhdlr->copyhdlr(targetscip, targetconshdlr, sourceconshdlr, sourcenlhdlr) );
447 if( nlhdlr->freeexprdata !=
NULL )
449 SCIP_CALL( nlhdlr->freeexprdata(
scip, nlhdlr, expr, nlhdlrexprdata) );
476 if( nlhdlr->init !=
NULL )
489 if( nlhdlr->exit !=
NULL )
507 SCIP_CALL( nlhdlr->detect(
scip, conshdlr, nlhdlr, expr, cons, enforcing, participating, nlhdlrexprdata) );
525 SCIP_CALL( nlhdlr->evalaux(
scip, nlhdlr, expr, nlhdlrexprdata, auxvalue,
sol) );
537 if( nlhdlr->inteval !=
NULL )
540 SCIP_CALL( nlhdlr->inteval(
scip, nlhdlr, expr, nlhdlrexprdata, interval, intevalvar, intevalvardata) );
558 if( nlhdlr->reverseprop ==
NULL )
567 SCIP_CALL( nlhdlr->reverseprop(
scip, conshdlr, nlhdlr, expr, nlhdlrexprdata, bounds, infeasible, nreductions) );
587 if( nlhdlr->initsepa ==
NULL )
594 SCIP_CALL( nlhdlr->initsepa(
scip, conshdlr, cons, nlhdlr, expr, nlhdlrexprdata, overestimate, underestimate, infeasible) );
611 if( nlhdlr->exitsepa !=
NULL )
614 SCIP_CALL( nlhdlr->exitsepa(
scip, nlhdlr, expr, nlhdlrexprdata) );
629 if( nlhdlr->enfo ==
NULL )
639 SCIP_CALL( SCIPnlhdlrEvalaux(
scip, nlhdlr, expr, nlhdlrexprdata, &auxvaluetest,
sol) );
641 assert(auxvalue == auxvaluetest);
646 SCIP_CALL( nlhdlr->enfo(
scip, conshdlr, cons, nlhdlr, expr, nlhdlrexprdata,
sol, auxvalue,
647 overestimate, allowweakcuts, separated, addbranchscores, branchcandonly,
result) );
683 if( nlhdlr->estimate ==
NULL )
686 *addedbranchscores =
FALSE;
694 SCIP_CALL( SCIPnlhdlrEvalaux(
scip, nlhdlr, expr, nlhdlrexprdata, &auxvaluetest,
sol) );
696 assert(auxvalue == auxvaluetest);
701 SCIP_CALL( nlhdlr->estimate(
scip, conshdlr, nlhdlr, expr, nlhdlrexprdata,
sol, auxvalue, overestimate, targetvalue, addbranchscores, rowpreps, success, addedbranchscores) );
716 if( nlhdlr->sollinearize ==
NULL )
719 SCIP_CALL( nlhdlr->sollinearize(
scip, conshdlr, cons, nlhdlr, expr, nlhdlrexprdata,
sol, solisbest, overestimate, underestimate) );
761 SCIPinfoMessage(
scip, file,
"Nlhdlrs : %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s\n",
762 "Detects",
"DetectAll",
"DetectTime",
763 "#IntEval",
"IntEvalTi",
764 "#RevProp",
"RevPropTi",
"DomReds",
"Cutoffs",
765 "#Enforce",
"EnfoTime",
"Cuts",
"Branching");
767 for(
i = 0;
i < nnlhdlrs; ++
i )
770 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)
#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)
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 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
#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