Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for the management of nonlinear handlers

Functions

SCIP_RETCODE SCIPincludeNlhdlrNonlinear (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)
 
int SCIPgetNNlhdlrsNonlinear (SCIP_CONSHDLR *conshdlr)
 
SCIP_NLHDLR ** SCIPgetNlhdlrsNonlinear (SCIP_CONSHDLR *conshdlr)
 
SCIP_NLHDLRSCIPfindNlhdlrNonlinear (SCIP_CONSHDLR *conshdlr, const char *name)
 
SCIP_NLHDLREXPRDATASCIPgetNlhdlrExprDataNonlinear (SCIP_NLHDLR *nlhdlr, SCIP_EXPR *expr)
 
void SCIPnlhdlrSetCopyHdlr (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRCOPYHDLR((*copy)))
 
void SCIPnlhdlrSetFreeHdlrData (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRFREEHDLRDATA((*freehdlrdata)))
 
void SCIPnlhdlrSetFreeExprData (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRFREEEXPRDATA((*freeexprdata)))
 
void SCIPnlhdlrSetInitExit (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINIT((*init)), SCIP_DECL_NLHDLREXIT((*exit_)))
 
void SCIPnlhdlrSetProp (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINTEVAL((*inteval)), SCIP_DECL_NLHDLRREVERSEPROP((*reverseprop)))
 
void SCIPnlhdlrSetSepa (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINITSEPA((*initsepa)), SCIP_DECL_NLHDLRENFO((*enfo)), SCIP_DECL_NLHDLRESTIMATE((*estimate)), SCIP_DECL_NLHDLREXITSEPA((*exitsepa)))
 
const char * SCIPnlhdlrGetName (SCIP_NLHDLR *nlhdlr)
 
const char * SCIPnlhdlrGetDesc (SCIP_NLHDLR *nlhdlr)
 
int SCIPnlhdlrGetDetectPriority (SCIP_NLHDLR *nlhdlr)
 
int SCIPnlhdlrGetEnfoPriority (SCIP_NLHDLR *nlhdlr)
 
SCIP_Bool SCIPnlhdlrIsEnabled (SCIP_NLHDLR *nlhdlr)
 
SCIP_NLHDLRDATASCIPnlhdlrGetData (SCIP_NLHDLR *nlhdlr)
 
SCIP_Bool SCIPnlhdlrHasIntEval (SCIP_NLHDLR *nlhdlr)
 
SCIP_Bool SCIPnlhdlrHasReverseProp (SCIP_NLHDLR *nlhdlr)
 
SCIP_Bool SCIPnlhdlrHasInitSepa (SCIP_NLHDLR *nlhdlr)
 
SCIP_Bool SCIPnlhdlrHasExitSepa (SCIP_NLHDLR *nlhdlr)
 
SCIP_Bool SCIPnlhdlrHasEnfo (SCIP_NLHDLR *nlhdlr)
 
SCIP_Bool SCIPnlhdlrHasEstimate (SCIP_NLHDLR *nlhdlr)
 
 SCIP_DECL_SORTPTRCOMP (SCIPnlhdlrComp)
 
void SCIPnlhdlrSetInitExit (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINIT((*init)), SCIP_DECL_NLHDLREXIT((*exit)))
 

Function Documentation

◆ SCIPincludeNlhdlrNonlinear()

SCIP_RETCODE SCIPincludeNlhdlrNonlinear ( 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 
)

creates a nonlinear handler and includes it into the nonlinear constraint handler

Parameters
scipSCIP data structure
nlhdlrbuffer where to store nonlinear handler
namename of nonlinear handler (must not be NULL)
descdescription of nonlinear handler (can be NULL)
detectprioritydetection priority of nonlinear handler
enfopriorityenforcement priority of nonlinear handler
nlhdlrdatadata of nonlinear handler (can be NULL)

Definition at line 13687 of file cons_nonlinear.c.

References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_STAGE_INIT, SCIPconshdlrGetData(), SCIPensureBlockMemoryArray, SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetNNlhdlrsNonlinear(), SCIPgetStage(), SCIPnlhdlrCreate(), and SCIPsortDownPtr().

Referenced by SCIPevalExprQuadraticAuxNonlinear(), SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), and SCIPincludeNlhdlrSoc().

◆ SCIPgetNNlhdlrsNonlinear()

int SCIPgetNNlhdlrsNonlinear ( SCIP_CONSHDLR conshdlr)

get number of nonlinear handler

Parameters
conshdlrnonlinear constraint handler

Definition at line 13736 of file cons_nonlinear.c.

References NULL, SCIPconshdlrGetData(), and SCIPgetNlhdlrsNonlinear().

Referenced by SCIPincludeNlhdlrNonlinear().

◆ SCIPgetNlhdlrsNonlinear()

SCIP_NLHDLR ** SCIPgetNlhdlrsNonlinear ( SCIP_CONSHDLR conshdlr)

get nonlinear handlers

Parameters
conshdlrnonlinear constraint handler

Definition at line 13751 of file cons_nonlinear.c.

References NULL, SCIPconshdlrGetData(), and SCIPfindNlhdlrNonlinear().

Referenced by SCIPgetNNlhdlrsNonlinear().

◆ SCIPfindNlhdlrNonlinear()

SCIP_NLHDLR * SCIPfindNlhdlrNonlinear ( SCIP_CONSHDLR conshdlr,
const char *  name 
)

returns a nonlinear handler of a given name (or NULL if not found)

Parameters
conshdlrnonlinear constraint handler
namename of nonlinear handler

Definition at line 13766 of file cons_nonlinear.c.

References h, NULL, SCIPconshdlrGetData(), SCIPgetNlhdlrExprDataNonlinear(), and SCIPnlhdlrGetName().

Referenced by SCIP_DECL_TABLEOUTPUT(), and SCIPgetNlhdlrsNonlinear().

◆ SCIPgetNlhdlrExprDataNonlinear()

SCIP_NLHDLREXPRDATA * SCIPgetNlhdlrExprDataNonlinear ( SCIP_NLHDLR nlhdlr,
SCIP_EXPR expr 
)

gives expression data that a given nonlinear handler stored in an expression

Returns NULL if expr has not been detected by nlhdlr or nlhdlr did not store data.

Parameters
nlhdlrnonlinear handler
exprexpression

Definition at line 13791 of file cons_nonlinear.c.

References NULL, and SCIPexprGetOwnerData().

Referenced by SCIP_DECL_TABLEOUTPUT(), SCIPaddIneqBilinear(), and SCIPfindNlhdlrNonlinear().

◆ SCIPnlhdlrSetCopyHdlr()

void SCIPnlhdlrSetCopyHdlr ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRCOPYHDLR((*copy))   
)

sets the copy handler callback of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 63 of file nlhdlr.c.

References NULL.

Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), and SCIPincludeNlhdlrSoc().

◆ SCIPnlhdlrSetFreeHdlrData()

void SCIPnlhdlrSetFreeHdlrData ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRFREEHDLRDATA((*freehdlrdata))   
)

sets the nonlinear handler callback to free the nonlinear handler data

Parameters
nlhdlrnonlinear handler

Definition at line 74 of file nlhdlr.c.

References NULL.

Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), and SCIPincludeNlhdlrSoc().

◆ SCIPnlhdlrSetFreeExprData()

void SCIPnlhdlrSetFreeExprData ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRFREEEXPRDATA((*freeexprdata))   
)

sets the nonlinear handler callback to free expression specific data of nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 85 of file nlhdlr.c.

References NULL.

Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), and SCIPincludeNlhdlrSoc().

◆ SCIPnlhdlrSetInitExit() [1/2]

void SCIPnlhdlrSetInitExit ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRINIT((*init))  ,
SCIP_DECL_NLHDLREXIT((*exit_))   
)

sets the initialization and deinitialization callback of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 97 of file nlhdlr.c.

References NULL.

Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrPerspective(), and SCIPincludeNlhdlrSoc().

◆ SCIPnlhdlrSetProp()

void SCIPnlhdlrSetProp ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRINTEVAL((*inteval))  ,
SCIP_DECL_NLHDLRREVERSEPROP((*reverseprop))   
)

sets the propagation callbacks of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 110 of file nlhdlr.c.

References NULL.

Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrQuadratic(), and SCIPincludeNlhdlrQuotient().

◆ SCIPnlhdlrSetSepa()

void SCIPnlhdlrSetSepa ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRINITSEPA((*initsepa))  ,
SCIP_DECL_NLHDLRENFO((*enfo))  ,
SCIP_DECL_NLHDLRESTIMATE((*estimate))  ,
SCIP_DECL_NLHDLREXITSEPA((*exitsepa))   
)

sets the enforcement callbacks of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 123 of file nlhdlr.c.

References NULL.

Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), and SCIPincludeNlhdlrSoc().

◆ SCIPnlhdlrGetName()

◆ SCIPnlhdlrGetDesc()

const char * SCIPnlhdlrGetDesc ( SCIP_NLHDLR nlhdlr)

gives description of nonlinear handler, can be NULL

Parameters
nlhdlrnonlinear handler

Definition at line 151 of file nlhdlr.c.

References SCIP_Nlhdlr::desc, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPnlhdlrGetDetectPriority()

int SCIPnlhdlrGetDetectPriority ( SCIP_NLHDLR nlhdlr)

gives detection priority of nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 161 of file nlhdlr.c.

References SCIP_Nlhdlr::detectpriority, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIP_DECL_SORTPTRCOMP().

◆ SCIPnlhdlrGetEnfoPriority()

int SCIPnlhdlrGetEnfoPriority ( SCIP_NLHDLR nlhdlr)

gives enforcement priority of nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 171 of file nlhdlr.c.

References SCIP_Nlhdlr::enfopriority, and NULL.

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIP_DECL_SORTPTRCOMP().

◆ SCIPnlhdlrIsEnabled()

SCIP_Bool SCIPnlhdlrIsEnabled ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler is enabled

Parameters
nlhdlrnonlinear handler

Definition at line 181 of file nlhdlr.c.

References SCIP_Nlhdlr::enabled, and NULL.

Referenced by detectNlhdlr(), and SCIP_DECL_DIALOGEXEC().

◆ SCIPnlhdlrGetData()

◆ SCIPnlhdlrHasIntEval()

SCIP_Bool SCIPnlhdlrHasIntEval ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler implements the interval evaluation callback

Parameters
nlhdlrnonlinear handler

Definition at line 201 of file nlhdlr.c.

References NULL.

Referenced by forwardPropExpr().

◆ SCIPnlhdlrHasReverseProp()

SCIP_Bool SCIPnlhdlrHasReverseProp ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler implements the reverse propagation callback

Parameters
nlhdlrnonlinear handler

Definition at line 209 of file nlhdlr.c.

References NULL.

◆ SCIPnlhdlrHasInitSepa()

SCIP_Bool SCIPnlhdlrHasInitSepa ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler implements the separation initialization callback

Parameters
nlhdlrnonlinear handler

Definition at line 217 of file nlhdlr.c.

References NULL.

Referenced by initSepa().

◆ SCIPnlhdlrHasExitSepa()

SCIP_Bool SCIPnlhdlrHasExitSepa ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler implements the separation deinitialization callback

Parameters
nlhdlrnonlinear handler

Definition at line 225 of file nlhdlr.c.

References NULL.

◆ SCIPnlhdlrHasEnfo()

SCIP_Bool SCIPnlhdlrHasEnfo ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler implements the enforcement callback

Parameters
nlhdlrnonlinear handler

Definition at line 233 of file nlhdlr.c.

References NULL.

◆ SCIPnlhdlrHasEstimate()

SCIP_Bool SCIPnlhdlrHasEstimate ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler implements the estimator callback

Parameters
nlhdlrnonlinear handler

Definition at line 241 of file nlhdlr.c.

References NULL.

Referenced by addTightEstimatorCuts(), enforceExprNlhdlr(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRENFO(), and SCIP_DECL_NLHDLREVALAUX().

◆ SCIP_DECL_SORTPTRCOMP()

SCIP_DECL_SORTPTRCOMP ( SCIPnlhdlrComp  )

compares two nonlinear handlers by detection priority

if handlers have same detection priority, then compare by name

Definition at line 252 of file nlhdlr.c.

References SCIP_Nlhdlr::detectpriority, SCIP_Nlhdlr::enfopriority, SCIP_Nlhdlr::name, and NULL.

◆ SCIPnlhdlrSetInitExit() [2/2]

void SCIPnlhdlrSetInitExit ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRINIT((*init))  ,
SCIP_DECL_NLHDLREXIT((*exit))   
)

sets the initialization and deinitialization callback of a nonlinear handler

Parameters
nlhdlrnonlinear handler