functions for the management of nonlinear handlers
| 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
| scip | SCIP data structure |
| nlhdlr | buffer where to store nonlinear handler |
| name | name of nonlinear handler (must not be NULL) |
| desc | description of nonlinear handler (can be NULL) |
| detectpriority | detection priority of nonlinear handler |
| enfopriority | enforcement priority of nonlinear handler |
| - | structure detection callback of nonlinear handler |
| - | auxiliary evaluation callback of nonlinear handler |
| nlhdlrdata | data of nonlinear handler (can be NULL) |
Definition at line 15514 of file cons_nonlinear.c.
References assert(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_NLHDLRDETECT, SCIP_DECL_NLHDLREVALAUX, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_STAGE_INIT, SCIPconshdlrGetData(), SCIPensureBlockMemoryArray, SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetStage(), SCIPincludeNlhdlrNonlinear(), SCIPnlhdlrCreate(), and SCIPsortDownPtr().
Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrNonlinear(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), SCIPincludeNlhdlrSignomial(), and SCIPincludeNlhdlrSoc().
| int SCIPgetNNlhdlrsNonlinear | ( | SCIP_CONSHDLR * | conshdlr | ) |
get number of nonlinear handler
| conshdlr | nonlinear constraint handler |
Definition at line 15563 of file cons_nonlinear.c.
References assert(), NULL, SCIPconshdlrGetData(), and SCIPgetNNlhdlrsNonlinear().
Referenced by SCIPgetNNlhdlrsNonlinear().
| SCIP_NLHDLR ** SCIPgetNlhdlrsNonlinear | ( | SCIP_CONSHDLR * | conshdlr | ) |
get nonlinear handlers
| conshdlr | nonlinear constraint handler |
Definition at line 15578 of file cons_nonlinear.c.
References assert(), NULL, SCIPconshdlrGetData(), and SCIPgetNlhdlrsNonlinear().
Referenced by SCIPgetNlhdlrsNonlinear().
| SCIP_NLHDLR * SCIPfindNlhdlrNonlinear | ( | SCIP_CONSHDLR * | conshdlr, |
| const char * | name ) |
returns a nonlinear handler of a given name (or NULL if not found)
| conshdlr | nonlinear constraint handler |
| name | name of nonlinear handler |
Definition at line 15593 of file cons_nonlinear.c.
References assert(), h, NULL, SCIPconshdlrGetData(), SCIPfindNlhdlrNonlinear(), and SCIPnlhdlrGetName().
Referenced by applyObbtBilinear(), initBounds(), SCIP_DECL_TABLECOLLECT(), SCIP_DECL_TABLECOLLECT(), SCIP_DECL_TABLEOUTPUT(), SCIP_DECL_TABLEOUTPUT(), and SCIPfindNlhdlrNonlinear().
| 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.
| nlhdlr | nonlinear handler |
| expr | expression |
Definition at line 15618 of file cons_nonlinear.c.
References assert(), NULL, SCIPexprGetOwnerData(), and SCIPgetNlhdlrExprDataNonlinear().
Referenced by SCIP_DECL_TABLECOLLECT(), SCIP_DECL_TABLEOUTPUT(), SCIPaddIneqBilinear(), and SCIPgetNlhdlrExprDataNonlinear().
| void SCIPnlhdlrSetCopyHdlr | ( | SCIP_NLHDLR * | nlhdlr | ) |
sets the copy handler callback of a nonlinear handler
| nlhdlr | nonlinear handler copy callback (can be NULL) |
Definition at line 77 of file nlhdlr.c.
References assert(), NULL, SCIP_DECL_NLHDLRCOPYHDLR, and SCIPnlhdlrSetCopyHdlr().
Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), SCIPincludeNlhdlrSignomial(), SCIPincludeNlhdlrSoc(), and SCIPnlhdlrSetCopyHdlr().
| void SCIPnlhdlrSetFreeHdlrData | ( | SCIP_NLHDLR * | nlhdlr | ) |
sets the nonlinear handler callback to free the nonlinear handler data
| nlhdlr | nonlinear handler handler free callback (can be NULL) |
Definition at line 88 of file nlhdlr.c.
References assert(), NULL, SCIP_DECL_NLHDLRFREEHDLRDATA, and SCIPnlhdlrSetFreeHdlrData().
Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrSignomial(), SCIPincludeNlhdlrSoc(), and SCIPnlhdlrSetFreeHdlrData().
| void SCIPnlhdlrSetFreeExprData | ( | SCIP_NLHDLR * | nlhdlr | ) |
sets the nonlinear handler callback to free expression specific data of nonlinear handler
| nlhdlr | nonlinear handler nonlinear handler expression data free callback (can be NULL if data does not need to be freed) |
Definition at line 99 of file nlhdlr.c.
References assert(), NULL, SCIP_DECL_NLHDLRFREEEXPRDATA, and SCIPnlhdlrSetFreeExprData().
Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), SCIPincludeNlhdlrSignomial(), SCIPincludeNlhdlrSoc(), and SCIPnlhdlrSetFreeExprData().
| void SCIPnlhdlrSetInitExit | ( | SCIP_NLHDLR * | nlhdlr, |
| SCIP_DECL_NLHDLRINIT((*init)) | ) |
sets the initialization and deinitialization callback of a nonlinear handler
| nlhdlr | nonlinear handler |
| - | initialization callback (can be NULL) deinitialization callback (can be NULL) |
Definition at line 111 of file nlhdlr.c.
References assert(), NULL, SCIP_DECL_NLHDLREXIT, SCIP_DECL_NLHDLRINIT, and SCIPnlhdlrSetInitExit().
Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrPerspective(), and SCIPnlhdlrSetInitExit().
| void SCIPnlhdlrSetProp | ( | SCIP_NLHDLR * | nlhdlr, |
| SCIP_DECL_NLHDLRINTEVAL((*inteval)) | ) |
sets the propagation callbacks of a nonlinear handler
| nlhdlr | nonlinear handler |
| - | interval evaluation callback (can be NULL) reverse propagation callback (can be NULL) |
Definition at line 124 of file nlhdlr.c.
References assert(), NULL, SCIP_DECL_NLHDLRINTEVAL, SCIP_DECL_NLHDLRREVERSEPROP, and SCIPnlhdlrSetProp().
Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), and SCIPnlhdlrSetProp().
| 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
| nlhdlr | nonlinear handler |
| - | separation initialization callback (can be NULL) |
| - | enforcement callback (can be NULL if estimate is not NULL) |
| - | estimation callback (can be NULL if sepa is not NULL) separation deinitialization callback (can be NULL) |
Definition at line 137 of file nlhdlr.c.
References assert(), NULL, SCIP_DECL_NLHDLRENFO, SCIP_DECL_NLHDLRESTIMATE, SCIP_DECL_NLHDLREXITSEPA, SCIP_DECL_NLHDLRINITSEPA, and SCIPnlhdlrSetSepa().
Referenced by SCIPincludeNlhdlrBilinear(), SCIPincludeNlhdlrConcave(), SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrPerspective(), SCIPincludeNlhdlrQuadratic(), SCIPincludeNlhdlrQuotient(), SCIPincludeNlhdlrSignomial(), SCIPincludeNlhdlrSoc(), and SCIPnlhdlrSetSepa().
| void SCIPnlhdlrSetSollinearize | ( | SCIP_NLHDLR * | nlhdlr | ) |
sets the solution linearization callback of a nonlinear handler
| nlhdlr | nonlinear handler solution linearization callback |
Definition at line 155 of file nlhdlr.c.
References assert(), NULL, SCIP_DECL_NLHDLRSOLLINEARIZE, and SCIPnlhdlrSetSollinearize().
Referenced by SCIPincludeNlhdlrConvex(), SCIPincludeNlhdlrDefault(), SCIPincludeNlhdlrQuotient(), SCIPincludeNlhdlrSoc(), and SCIPnlhdlrSetSollinearize().
| const char * SCIPnlhdlrGetName | ( | SCIP_NLHDLR * | nlhdlr | ) |
gives name of nonlinear handler
| nlhdlr | nonlinear handler |
Definition at line 167 of file nlhdlr.c.
References assert(), SCIP_Nlhdlr::name, NULL, and SCIPnlhdlrGetName().
Referenced by analyzeViolation(), detectNlhdlr(), enforceExpr(), enforceExprNlhdlr(), forwardPropExpr(), reversePropQueue(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_EXPR_OWNERPRINT(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRCOPYHDLR(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_SORTPTRCOMP(), SCIPaddIneqBilinear(), SCIPfindNlhdlrNonlinear(), SCIPgetExprsBilinear(), SCIPgetNExprsBilinear(), SCIPnlhdlrGetName(), and SCIPprocessRowprepNonlinear().
| const char * SCIPnlhdlrGetDesc | ( | SCIP_NLHDLR * | nlhdlr | ) |
gives description of nonlinear handler, can be NULL
| nlhdlr | nonlinear handler |
Definition at line 177 of file nlhdlr.c.
References assert(), SCIP_Nlhdlr::desc, NULL, and SCIPnlhdlrGetDesc().
Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPnlhdlrGetDesc().
| int SCIPnlhdlrGetDetectPriority | ( | SCIP_NLHDLR * | nlhdlr | ) |
gives detection priority of nonlinear handler
| nlhdlr | nonlinear handler |
Definition at line 187 of file nlhdlr.c.
References assert(), SCIP_Nlhdlr::detectpriority, NULL, and SCIPnlhdlrGetDetectPriority().
Referenced by SCIP_DECL_DIALOGEXEC(), SCIP_DECL_SORTPTRCOMP(), and SCIPnlhdlrGetDetectPriority().
| int SCIPnlhdlrGetEnfoPriority | ( | SCIP_NLHDLR * | nlhdlr | ) |
gives enforcement priority of nonlinear handler
| nlhdlr | nonlinear handler |
Definition at line 197 of file nlhdlr.c.
References assert(), SCIP_Nlhdlr::enfopriority, NULL, and SCIPnlhdlrGetEnfoPriority().
Referenced by SCIP_DECL_DIALOGEXEC(), SCIP_DECL_SORTPTRCOMP(), and SCIPnlhdlrGetEnfoPriority().
| SCIP_Bool SCIPnlhdlrIsEnabled | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler is enabled
| nlhdlr | nonlinear handler |
Definition at line 207 of file nlhdlr.c.
References assert(), SCIP_Nlhdlr::enabled, NULL, SCIP_Bool, and SCIPnlhdlrIsEnabled().
Referenced by detectNlhdlr(), SCIP_DECL_DIALOGEXEC(), and SCIPnlhdlrIsEnabled().
| SCIP_NLHDLRDATA * SCIPnlhdlrGetData | ( | SCIP_NLHDLR * | nlhdlr | ) |
gives handler data of nonlinear handler
| nlhdlr | nonlinear handler |
Definition at line 217 of file nlhdlr.c.
References assert(), SCIP_Nlhdlr::data, NULL, and SCIPnlhdlrGetData().
Referenced by estimateConvexSecant(), estimateGradient(), estimateVertexPolyhedral(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLREXIT(), SCIP_DECL_NLHDLREXIT(), SCIP_DECL_NLHDLREXIT(), SCIP_DECL_NLHDLREXIT(), SCIP_DECL_NLHDLRFREEEXPRDATA(), SCIP_DECL_NLHDLRINITSEPA(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIP_DECL_NLHDLRSOLLINEARIZE(), SCIP_DECL_TABLECOLLECT(), SCIP_DECL_TABLECOLLECT(), SCIP_DECL_TABLEOUTPUT(), SCIP_DECL_TABLEOUTPUT(), SCIPgetExprsBilinear(), SCIPgetNExprsBilinear(), and SCIPnlhdlrGetData().
| SCIP_Bool SCIPnlhdlrHasIntEval | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler implements the interval evaluation callback
| nlhdlr | nonlinear handler |
Definition at line 227 of file nlhdlr.c.
References assert(), NULL, SCIP_Bool, and SCIPnlhdlrHasIntEval().
Referenced by forwardPropExpr(), and SCIPnlhdlrHasIntEval().
| SCIP_Bool SCIPnlhdlrHasReverseProp | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler implements the reverse propagation callback
| nlhdlr | nonlinear handler |
Definition at line 237 of file nlhdlr.c.
References assert(), NULL, SCIP_Bool, and SCIPnlhdlrHasReverseProp().
Referenced by SCIPnlhdlrHasReverseProp().
| SCIP_Bool SCIPnlhdlrHasInitSepa | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler implements the separation initialization callback
| nlhdlr | nonlinear handler |
Definition at line 247 of file nlhdlr.c.
References assert(), NULL, SCIP_Bool, and SCIPnlhdlrHasInitSepa().
Referenced by initSepa(), and SCIPnlhdlrHasInitSepa().
| SCIP_Bool SCIPnlhdlrHasExitSepa | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler implements the separation deinitialization callback
| nlhdlr | nonlinear handler |
Definition at line 257 of file nlhdlr.c.
References assert(), NULL, SCIP_Bool, and SCIPnlhdlrHasExitSepa().
Referenced by SCIPnlhdlrHasExitSepa().
| SCIP_Bool SCIPnlhdlrHasEnfo | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler implements the enforcement callback
| nlhdlr | nonlinear handler |
Definition at line 267 of file nlhdlr.c.
References assert(), NULL, SCIP_Bool, and SCIPnlhdlrHasEnfo().
Referenced by SCIPnlhdlrHasEnfo().
| SCIP_Bool SCIPnlhdlrHasEstimate | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler implements the estimator callback
| nlhdlr | nonlinear handler |
Definition at line 277 of file nlhdlr.c.
References assert(), NULL, SCIP_Bool, and SCIPnlhdlrHasEstimate().
Referenced by enforceExprNlhdlr(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_NLHDLREVALAUX(), and SCIPnlhdlrHasEstimate().
| SCIP_Bool SCIPnlhdlrHasSollinearize | ( | SCIP_NLHDLR * | nlhdlr | ) |
returns whether nonlinear handler implements the solution linearization callback
| nlhdlr | nonlinear handler |
Definition at line 287 of file nlhdlr.c.
References assert(), NULL, SCIP_Bool, and SCIPnlhdlrHasSollinearize().
Referenced by SCIPnlhdlrHasSollinearize().
| SCIP_DECL_SORTPTRCOMP | ( | SCIPnlhdlrComp | ) |
compares two nonlinear handlers by detection priority
if handlers have same detection priority, then compare by name
Definition at line 300 of file nlhdlr.c.
References assert(), SCIP_Nlhdlr::detectpriority, SCIP_Nlhdlr::name, NULL, and SCIP_DECL_SORTPTRCOMP.