SCIP Doxygen Documentation
 
Loading...
Searching...
No Matches

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,)
 
void SCIPnlhdlrSetFreeHdlrData (SCIP_NLHDLR *nlhdlr,)
 
void SCIPnlhdlrSetFreeExprData (SCIP_NLHDLR *nlhdlr,)
 
void SCIPnlhdlrSetInitExit (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINIT((*init)),)
 
void SCIPnlhdlrSetProp (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINTEVAL((*inteval)),)
 
void SCIPnlhdlrSetSepa (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINITSEPA((*initsepa)), SCIP_DECL_NLHDLRENFO((*enfo)), SCIP_DECL_NLHDLRESTIMATE((*estimate)),)
 
void SCIPnlhdlrSetSollinearize (SCIP_NLHDLR *nlhdlr,)
 
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)
 

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 15245 of file cons_nonlinear.c.

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

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

◆ SCIPgetNNlhdlrsNonlinear()

int SCIPgetNNlhdlrsNonlinear ( SCIP_CONSHDLR * conshdlr)

get number of nonlinear handler

Parameters
conshdlrnonlinear constraint handler

Definition at line 15294 of file cons_nonlinear.c.

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

◆ SCIPgetNlhdlrsNonlinear()

SCIP_NLHDLR ** SCIPgetNlhdlrsNonlinear ( SCIP_CONSHDLR * conshdlr)

get nonlinear handlers

Parameters
conshdlrnonlinear constraint handler

Definition at line 15309 of file cons_nonlinear.c.

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

◆ 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 15324 of file cons_nonlinear.c.

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

Referenced by applyObbtBilinear(), initBounds(), SCIP_DECL_TABLEOUTPUT(), and SCIP_DECL_TABLEOUTPUT().

◆ 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 15349 of file cons_nonlinear.c.

References assert(), NULL, and SCIPexprGetOwnerData().

Referenced by SCIP_DECL_TABLEOUTPUT(), and SCIPaddIneqBilinear().

◆ SCIPnlhdlrSetCopyHdlr()

void SCIPnlhdlrSetCopyHdlr ( SCIP_NLHDLR * nlhdlr)

sets the copy handler callback of a nonlinear handler

Parameters
nlhdlrnonlinear handler copy callback (can be NULL)

Definition at line 76 of file nlhdlr.c.

References assert(), and NULL.

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

◆ SCIPnlhdlrSetFreeHdlrData()

void SCIPnlhdlrSetFreeHdlrData ( SCIP_NLHDLR * nlhdlr)

sets the nonlinear handler callback to free the nonlinear handler data

Parameters
nlhdlrnonlinear handler handler free callback (can be NULL)

Definition at line 87 of file nlhdlr.c.

References assert(), and NULL.

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

◆ SCIPnlhdlrSetFreeExprData()

void SCIPnlhdlrSetFreeExprData ( SCIP_NLHDLR * nlhdlr)

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

Parameters
nlhdlrnonlinear handler nonlinear handler expression data free callback (can be NULL if data does not need to be freed)

Definition at line 98 of file nlhdlr.c.

References assert(), and NULL.

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

◆ SCIPnlhdlrSetInitExit()

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

sets the initialization and deinitialization callback of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 110 of file nlhdlr.c.

References assert(), and NULL.

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

◆ SCIPnlhdlrSetProp()

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

sets the propagation callbacks of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 123 of file nlhdlr.c.

References assert(), and 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))  )

sets the enforcement callbacks of a nonlinear handler

Parameters
nlhdlrnonlinear handler

Definition at line 136 of file nlhdlr.c.

References assert(), and NULL.

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

◆ SCIPnlhdlrSetSollinearize()

void SCIPnlhdlrSetSollinearize ( SCIP_NLHDLR * nlhdlr)

sets the solution linearization callback of a nonlinear handler

Parameters
nlhdlrnonlinear handler solution linearization callback

Definition at line 154 of file nlhdlr.c.

References assert(), and 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 assert(), 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 assert(), 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 assert(), 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 assert(), 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 assert(), and 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 assert(), and 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 assert(), and 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 assert(), and 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 assert(), and 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 assert(), and 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 assert(), and 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 assert(), SCIP_Nlhdlr::detectpriority, SCIP_Nlhdlr::name, and NULL.