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)))
 
void SCIPnlhdlrSetSollinearize (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRSOLLINEARIZE((*sollinearize)))
 
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_Bool SCIPnlhdlrHasSollinearize (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 14814 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 14863 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 14878 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 14893 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 14918 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 76 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 87 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 98 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 110 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 123 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 136 of file nlhdlr.c.

References NULL.

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

◆ SCIPnlhdlrSetSollinearize()

void SCIPnlhdlrSetSollinearize ( SCIP_NLHDLR nlhdlr,
SCIP_DECL_NLHDLRSOLLINEARIZE((*sollinearize))   
)

sets the solution linearization callback of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 154 of file nlhdlr.c.

References NULL.

Referenced by SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), 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 176 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 186 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 196 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 206 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 226 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 236 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 246 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 256 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 266 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 276 of file nlhdlr.c.

References NULL.

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

◆ SCIPnlhdlrHasSollinearize()

SCIP_Bool SCIPnlhdlrHasSollinearize ( SCIP_NLHDLR nlhdlr)

returns whether nonlinear handler implements the solution linearization callback

Parameters
nlhdlrnonlinear handler

Definition at line 286 of file nlhdlr.c.

References NULL.

◆ 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 299 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