Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

functions for nonlinearity handlers of nonlinear constraint handler

Author
Ksenia Bestuzheva
Benjamin Mueller
Felipe Serrano
Stefan Vigerske

Definition in file nlhdlr.c.

#include <assert.h>
#include "scip/pub_nlhdlr.h"
#include "scip/nlhdlr.h"
#include "scip/struct_nlhdlr.h"
#include "scip/scip_timing.h"
#include "scip/scip_mem.h"
#include "scip/scip_param.h"
#include "scip/scip_message.h"
#include "scip/pub_misc.h"

Go to the source code of this file.

Functions

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)
 
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)
 
SCIP_RETCODE SCIPnlhdlrFree (SCIP *scip, SCIP_NLHDLR **nlhdlr)
 
 SCIP_DECL_NLHDLRCOPYHDLR (SCIPnlhdlrCopyhdlr)
 
 SCIP_DECL_NLHDLRFREEEXPRDATA (SCIPnlhdlrFreeexprdata)
 
 SCIP_DECL_NLHDLRINIT (SCIPnlhdlrInit)
 
 SCIP_DECL_NLHDLREXIT (SCIPnlhdlrExit)
 
 SCIP_DECL_NLHDLRDETECT (SCIPnlhdlrDetect)
 
 SCIP_DECL_NLHDLREVALAUX (SCIPnlhdlrEvalaux)
 
 SCIP_DECL_NLHDLRINTEVAL (SCIPnlhdlrInteval)
 
 SCIP_DECL_NLHDLRREVERSEPROP (SCIPnlhdlrReverseprop)
 
 SCIP_DECL_NLHDLRINITSEPA (SCIPnlhdlrInitsepa)
 
 SCIP_DECL_NLHDLREXITSEPA (SCIPnlhdlrExitsepa)
 
 SCIP_DECL_NLHDLRENFO (SCIPnlhdlrEnfo)
 
 SCIP_DECL_NLHDLRESTIMATE (SCIPnlhdlrEstimate)
 
void SCIPnlhdlrResetNDetectionslast (SCIP_NLHDLR *nlhdlr)
 
void SCIPnlhdlrIncrementNCutoffs (SCIP_NLHDLR *nlhdlr)
 
void SCIPnlhdlrIncrementNSeparated (SCIP_NLHDLR *nlhdlr)
 
void SCIPnlhdlrPrintStatistics (SCIP *scip, SCIP_NLHDLR **nlhdlrs, int nnlhdlrs, FILE *file)
 

Function Documentation

◆ SCIPnlhdlrCreate()

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 
)

creates a nonlinear handler

Parameters
scipSCIP data structure
nlhdlrbuffer to store pointer to created 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 315 of file nlhdlr.c.

References FALSE, NULL, paramname, SCIP_CALL, SCIP_CALL_FINALLY, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddBoolParam(), SCIPallocClearBlockMemory, SCIPcreateClock(), SCIPduplicateMemoryArray, SCIPfreeMemoryArray, SCIPsnprintf(), and TRUE.

Referenced by SCIPincludeNlhdlrNonlinear().

◆ SCIPnlhdlrFree()

SCIP_RETCODE SCIPnlhdlrFree ( SCIP scip,
SCIP_NLHDLR **  nlhdlr 
)

frees a nonlinear handler

Parameters
scipSCIP data structure
nlhdlrpointer to nonlinear handler to be freed

Definition at line 363 of file nlhdlr.c.

References SCIP_Nlhdlr::data, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeClock(), SCIPfreeMemory, and SCIPfreeMemoryNull.

Referenced by SCIP_DECL_CONSFREE().

◆ SCIP_DECL_NLHDLRCOPYHDLR()

SCIP_DECL_NLHDLRCOPYHDLR ( SCIPnlhdlrCopyhdlr  )

call the handler copy callback of a nonlinear handler

Definition at line 391 of file nlhdlr.c.

References NULL, SCIP_CALL, and SCIP_OKAY.

◆ SCIP_DECL_NLHDLRFREEEXPRDATA()

SCIP_DECL_NLHDLRFREEEXPRDATA ( SCIPnlhdlrFreeexprdata  )

call the free expression specific data callback of a nonlinear handler

Definition at line 403 of file nlhdlr.c.

References NULL, SCIP_CALL, and SCIP_OKAY.

◆ SCIP_DECL_NLHDLRINIT()

◆ SCIP_DECL_NLHDLREXIT()

SCIP_DECL_NLHDLREXIT ( SCIPnlhdlrExit  )

call the deinitialization callback of a nonlinear handler

Definition at line 447 of file nlhdlr.c.

References NULL, SCIP_CALL, and SCIP_OKAY.

◆ SCIP_DECL_NLHDLRDETECT()

SCIP_DECL_NLHDLRDETECT ( SCIPnlhdlrDetect  )

call the detect callback of a nonlinear handler

Definition at line 460 of file nlhdlr.c.

References SCIP_Nlhdlr::detecttime, SCIP_Nlhdlr::ndetections, SCIP_Nlhdlr::ndetectionslast, NULL, SCIP_CALL, SCIP_NLHDLR_METHOD_NONE, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

◆ SCIP_DECL_NLHDLREVALAUX()

SCIP_DECL_NLHDLREVALAUX ( SCIPnlhdlrEvalaux  )

call the auxiliary evaluation callback of a nonlinear handler

Definition at line 482 of file nlhdlr.c.

References NULL, SCIP_CALL, and SCIP_OKAY.

◆ SCIP_DECL_NLHDLRINTEVAL()

SCIP_DECL_NLHDLRINTEVAL ( SCIPnlhdlrInteval  )

call the interval evaluation callback of a nonlinear handler

Definition at line 493 of file nlhdlr.c.

References SCIP_Nlhdlr::intevaltime, SCIP_Nlhdlr::nintevalcalls, NULL, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

◆ SCIP_DECL_NLHDLRREVERSEPROP()

SCIP_DECL_NLHDLRREVERSEPROP ( SCIPnlhdlrReverseprop  )

call the reverse propagation callback of a nonlinear handler

Definition at line 512 of file nlhdlr.c.

References FALSE, SCIP_Nlhdlr::ncutoffs, SCIP_Nlhdlr::ndomreds, SCIP_Nlhdlr::npropcalls, NULL, SCIP_Nlhdlr::proptime, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

◆ SCIP_DECL_NLHDLRINITSEPA()

SCIP_DECL_NLHDLRINITSEPA ( SCIPnlhdlrInitsepa  )

call the separation initialization callback of a nonlinear handler

Definition at line 542 of file nlhdlr.c.

References SCIP_Nlhdlr::enfotime, FALSE, SCIP_Nlhdlr::ncutoffs, SCIP_Nlhdlr::nenfocalls, NULL, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

◆ SCIP_DECL_NLHDLREXITSEPA()

SCIP_DECL_NLHDLREXITSEPA ( SCIPnlhdlrExitsepa  )

call the separation deinitialization callback of a nonlinear handler

Definition at line 567 of file nlhdlr.c.

References SCIP_Nlhdlr::enfotime, NULL, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

◆ SCIP_DECL_NLHDLRENFO()

◆ SCIP_DECL_NLHDLRESTIMATE()

SCIP_DECL_NLHDLRESTIMATE ( SCIPnlhdlrEstimate  )

call the estimator callback of a nonlinear handler

Definition at line 635 of file nlhdlr.c.

References SCIP_Nlhdlr::enfotime, FALSE, SCIP_Nlhdlr::nenfocalls, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPstartClock(), and SCIPstopClock().

◆ SCIPnlhdlrResetNDetectionslast()

void SCIPnlhdlrResetNDetectionslast ( SCIP_NLHDLR nlhdlr)

reset number of detections counter for last round

Parameters
nlhdlrnonlinear handler

Definition at line 671 of file nlhdlr.c.

References SCIP_Nlhdlr::ndetectionslast, and NULL.

◆ SCIPnlhdlrIncrementNCutoffs()

void SCIPnlhdlrIncrementNCutoffs ( SCIP_NLHDLR nlhdlr)

increments number of cutoffs in statistics

Parameters
nlhdlrnonlinear handler

Definition at line 680 of file nlhdlr.c.

References SCIP_Nlhdlr::ncutoffs, and NULL.

◆ SCIPnlhdlrIncrementNSeparated()

void SCIPnlhdlrIncrementNSeparated ( SCIP_NLHDLR nlhdlr)

increments number of separations in statistics

Parameters
nlhdlrnonlinear handler

Definition at line 689 of file nlhdlr.c.

References SCIP_Nlhdlr::nseparated, and NULL.

◆ SCIPnlhdlrPrintStatistics()

void SCIPnlhdlrPrintStatistics ( SCIP scip,
SCIP_NLHDLR **  nlhdlrs,
int  nnlhdlrs,
FILE *  file 
)

print statistics for nonlinear handlers

Parameters
scipSCIP data structure
nlhdlrsnonlinear handlers
nnlhdlrsnumber of nonlinear handlers
filefile handle, or NULL for standard out

Definition at line 698 of file nlhdlr.c.

References SCIPgetClockTime(), and SCIPinfoMessage().

Referenced by SCIP_DECL_TABLEOUTPUT().