Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods and datastructures for managing events

Author
Tobias Achterberg

Definition in file event.c.

#include <assert.h>
#include <string.h>
#include "scip/branch.h"
#include "scip/clock.h"
#include "scip/event.h"
#include "scip/lp.h"
#include "scip/lpexact.h"
#include "scip/primal.h"
#include "scip/pub_event.h"
#include "scip/pub_message.h"
#include "scip/pub_var.h"
#include "scip/rational.h"
#include "scip/set.h"
#include "scip/struct_event.h"
#include "scip/struct_lp.h"
#include "scip/struct_set.h"
#include "scip/struct_var.h"
#include "scip/var.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPeventhdlrCopyInclude (SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
 
static SCIP_RETCODE updateLpExactBoundChange (SCIP_VAR *var, SCIP_LPEXACT *lp, SCIP_SET *set, SCIP_EVENT *event, SCIP_Bool isUb, SCIP_Bool isGlb)
 
static SCIP_RETCODE doEventhdlrCreate (SCIP_EVENTHDLR **eventhdlr, const char *name, const char *desc, SCIP_DECL_EVENTCOPY((*eventcopy)), SCIP_DECL_EVENTFREE((*eventfree)), SCIP_DECL_EVENTINIT((*eventinit)), SCIP_DECL_EVENTEXIT((*eventexit)), SCIP_DECL_EVENTINITSOL((*eventinitsol)), SCIP_DECL_EVENTEXITSOL((*eventexitsol)), SCIP_DECL_EVENTDELETE((*eventdelete)), SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata)
 
SCIP_RETCODE SCIPeventhdlrCreate (SCIP_EVENTHDLR **eventhdlr, SCIP_SET *set, const char *name, const char *desc, SCIP_DECL_EVENTCOPY((*eventcopy)), SCIP_DECL_EVENTFREE((*eventfree)), SCIP_DECL_EVENTINIT((*eventinit)), SCIP_DECL_EVENTEXIT((*eventexit)), SCIP_DECL_EVENTINITSOL((*eventinitsol)), SCIP_DECL_EVENTEXITSOL((*eventexitsol)), SCIP_DECL_EVENTDELETE((*eventdelete)), SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata)
 
SCIP_RETCODE SCIPeventhdlrFree (SCIP_EVENTHDLR **eventhdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPeventhdlrInit (SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPeventhdlrExit (SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPeventhdlrInitsol (SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPeventhdlrExitsol (SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
 
SCIP_RETCODE SCIPeventhdlrExec (SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set, SCIP_EVENT *event, SCIP_EVENTDATA *eventdata)
 
const char * SCIPeventhdlrGetName (SCIP_EVENTHDLR *eventhdlr)
 
SCIP_EVENTHDLRDATASCIPeventhdlrGetData (SCIP_EVENTHDLR *eventhdlr)
 
void SCIPeventhdlrSetData (SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTHDLRDATA *eventhdlrdata)
 
void SCIPeventhdlrSetCopy (SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTCOPY((*eventcopy)))
 
void SCIPeventhdlrSetFree (SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTFREE((*eventfree)))
 
void SCIPeventhdlrSetInit (SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINIT((*eventinit)))
 
void SCIPeventhdlrSetExit (SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXIT((*eventexit)))
 
void SCIPeventhdlrSetInitsol (SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINITSOL((*eventinitsol)))
 
void SCIPeventhdlrSetExitsol (SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXITSOL((*eventexitsol)))
 
void SCIPeventhdlrSetDelete (SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTDELETE((*eventdelete)))
 
SCIP_Bool SCIPeventhdlrIsInitialized (SCIP_EVENTHDLR *eventhdlr)
 
void SCIPeventhdlrEnableOrDisableClocks (SCIP_EVENTHDLR *eventhdlr, SCIP_Bool enable)
 
SCIP_Real SCIPeventhdlrGetSetupTime (SCIP_EVENTHDLR *eventhdlr)
 
SCIP_Real SCIPeventhdlrGetTime (SCIP_EVENTHDLR *eventhdlr)
 
SCIP_RETCODE SCIPeventCreateSync (SCIP_EVENT **event, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPeventCreateVarAdded (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
 
SCIP_RETCODE SCIPeventCreateVarDeleted (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
 
SCIP_RETCODE SCIPeventCreateVarFixed (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
 
SCIP_RETCODE SCIPeventCreateVarUnlocked (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
 
SCIP_RETCODE SCIPeventCreateObjChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
 
SCIP_RETCODE SCIPeventCreateGlbChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
 
SCIP_RETCODE SCIPeventCreateGubChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
 
SCIP_RETCODE SCIPeventCreateLbChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
 
SCIP_RETCODE SCIPeventCreateUbChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
 
SCIP_RETCODE SCIPeventAddExactBdChg (SCIP_EVENT *event, BMS_BLKMEM *blkmem, SCIP_RATIONAL *oldbound, SCIP_RATIONAL *newbound)
 
SCIP_RETCODE SCIPeventAddExactObjChg (SCIP_EVENT *event, BMS_BLKMEM *blkmem, SCIP_RATIONAL *oldobj, SCIP_RATIONAL *newobj)
 
SCIP_RETCODE SCIPeventCreateGholeAdded (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
 
SCIP_RETCODE SCIPeventCreateGholeRemoved (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
 
SCIP_RETCODE SCIPeventCreateLholeAdded (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
 
SCIP_RETCODE SCIPeventCreateLholeRemoved (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
 
SCIP_RETCODE SCIPeventCreateImplAdded (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
 
SCIP_RETCODE SCIPeventCreateTypeChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_VARTYPE oldtype, SCIP_VARTYPE newtype)
 
SCIP_RETCODE SCIPeventCreateImplTypeChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_IMPLINTTYPE oldtype, SCIP_IMPLINTTYPE newtype)
 
SCIP_RETCODE SCIPeventCreateRowAddedSepa (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
 
SCIP_RETCODE SCIPeventCreateRowDeletedSepa (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
 
SCIP_RETCODE SCIPeventCreateRowAddedLP (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
 
SCIP_RETCODE SCIPeventCreateRowDeletedLP (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
 
SCIP_RETCODE SCIPeventCreateRowCoefChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_COL *col, SCIP_Real oldval, SCIP_Real newval)
 
SCIP_RETCODE SCIPeventCreateRowConstChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_Real oldval, SCIP_Real newval)
 
SCIP_RETCODE SCIPeventCreateRowSideChanged (SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_SIDETYPE side, SCIP_Real oldval, SCIP_Real newval)
 
static void eventFreeExactData (SCIP_EVENT *event, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPeventFree (SCIP_EVENT **event, BMS_BLKMEM *blkmem)
 
static void eventDisable (SCIP_EVENT *event)
 
SCIP_EVENTTYPE SCIPeventGetType (SCIP_EVENT *event)
 
SCIP_RETCODE SCIPeventChgType (SCIP_EVENT *event, SCIP_EVENTTYPE eventtype)
 
SCIP_VARSCIPeventGetVar (SCIP_EVENT *event)
 
SCIP_RETCODE SCIPeventChgVar (SCIP_EVENT *event, SCIP_VAR *var)
 
SCIP_Real SCIPeventGetOldobj (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetNewobj (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetOldbound (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetNewbound (SCIP_EVENT *event)
 
SCIP_RATIONALSCIPeventGetOldboundExact (SCIP_EVENT *event)
 
SCIP_VARTYPE SCIPeventGetOldtype (SCIP_EVENT *event)
 
SCIP_VARTYPE SCIPeventGetNewtype (SCIP_EVENT *event)
 
SCIP_IMPLINTTYPE SCIPeventGetOldImpltype (SCIP_EVENT *event)
 
SCIP_IMPLINTTYPE SCIPeventGetNewImpltype (SCIP_EVENT *event)
 
SCIP_NODESCIPeventGetNode (SCIP_EVENT *event)
 
SCIP_RETCODE SCIPeventChgNode (SCIP_EVENT *event, SCIP_NODE *node)
 
SCIP_SOLSCIPeventGetSol (SCIP_EVENT *event)
 
SCIP_RETCODE SCIPeventChgSol (SCIP_EVENT *event, SCIP_SOL *sol)
 
SCIP_Real SCIPeventGetHoleLeft (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetHoleRight (SCIP_EVENT *event)
 
SCIP_ROWSCIPeventGetRow (SCIP_EVENT *event)
 
SCIP_COLSCIPeventGetRowCol (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetRowOldCoefVal (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetRowNewCoefVal (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetRowOldConstVal (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetRowNewConstVal (SCIP_EVENT *event)
 
SCIP_SIDETYPE SCIPeventGetRowSide (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetRowOldSideVal (SCIP_EVENT *event)
 
SCIP_Real SCIPeventGetRowNewSideVal (SCIP_EVENT *event)
 
SCIP_RETCODE SCIPeventProcess (SCIP_EVENT *event, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)
 
static SCIP_RETCODE eventfilterEnsureMem (SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
 
SCIP_RETCODE SCIPeventfilterCreate (SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPeventfilterFree (SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set)
 
SCIP_RETCODE SCIPeventfilterAdd (SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
 
static int eventfilterSearch (SCIP_EVENTFILTER *const eventfilter, SCIP_EVENTTYPE const eventtype, SCIP_EVENTHDLR *const eventhdlr, SCIP_EVENTDATA *const eventdata)
 
SCIP_RETCODE SCIPeventfilterDel (SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
 
static void eventfilterDelayUpdates (SCIP_EVENTFILTER *eventfilter)
 
static void eventfilterProcessUpdates (SCIP_EVENTFILTER *eventfilter)
 
SCIP_RETCODE SCIPeventfilterProcess (SCIP_EVENTFILTER *eventfilter, SCIP_SET *set, SCIP_EVENT *event)
 
static SCIP_RETCODE eventqueueEnsureEventsMem (SCIP_EVENTQUEUE *eventqueue, SCIP_SET *set, int num)
 
SCIP_RETCODE SCIPeventqueueCreate (SCIP_EVENTQUEUE **eventqueue)
 
SCIP_RETCODE SCIPeventqueueFree (SCIP_EVENTQUEUE **eventqueue)
 
static SCIP_RETCODE eventqueueAppend (SCIP_EVENTQUEUE *eventqueue, SCIP_SET *set, SCIP_EVENT **event)
 
SCIP_RETCODE SCIPeventqueueAdd (SCIP_EVENTQUEUE *eventqueue, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENT **event)
 
SCIP_RETCODE SCIPeventqueueDelay (SCIP_EVENTQUEUE *eventqueue)
 
SCIP_RETCODE SCIPeventqueueProcess (SCIP_EVENTQUEUE *eventqueue, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)
 
SCIP_Bool SCIPeventqueueIsDelayed (SCIP_EVENTQUEUE *eventqueue)
 

Function Documentation

◆ SCIPeventhdlrCopyInclude()

SCIP_RETCODE SCIPeventhdlrCopyInclude ( SCIP_EVENTHDLR eventhdlr,
SCIP_SET set 
)

copies the given event handler to a new scip

Parameters
eventhdlrevent handler
setSCIP_SET of SCIP to copy to

Definition at line 62 of file event.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPeventhdlrGetName(), and SCIPsetDebugMsg.

Referenced by SCIPsetCopyPlugins().

◆ updateLpExactBoundChange()

static SCIP_RETCODE updateLpExactBoundChange ( SCIP_VAR var,
SCIP_LPEXACT lp,
SCIP_SET set,
SCIP_EVENT event,
SCIP_Bool  isUb,
SCIP_Bool  isGlb 
)
static

wrapper method to update the exact data of a variable if a bound gets changed

Parameters
varvariable that gets changed
lpcurrent LP data
setglobal SCIP settings
eventevent
isUbis it an upper bound
isGlbis it a global or local bound

Definition at line 82 of file event.c.

References SCIP_Event::data, SCIP_Event::eventbdchg, SCIP_EventBdChg::newbound, NULL, SCIP_EventBdChg::oldbound, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPcolExactChgLb(), SCIPcolExactChgUb(), SCIPlpExactUpdateVarLb(), SCIPlpExactUpdateVarLbGlobal(), SCIPlpExactUpdateVarUb(), SCIPlpExactUpdateVarUbGlobal(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetReal(), SCIPvarGetColExact(), and SCIPvarGetStatusExact().

Referenced by SCIPeventProcess().

◆ doEventhdlrCreate()

static SCIP_RETCODE doEventhdlrCreate ( SCIP_EVENTHDLR **  eventhdlr,
const char *  name,
const char *  desc,
SCIP_DECL_EVENTCOPY((*eventcopy))  ,
SCIP_DECL_EVENTFREE((*eventfree))  ,
SCIP_DECL_EVENTINIT((*eventinit))  ,
SCIP_DECL_EVENTEXIT((*eventexit))  ,
SCIP_DECL_EVENTINITSOL((*eventinitsol))  ,
SCIP_DECL_EVENTEXITSOL((*eventexitsol))  ,
SCIP_DECL_EVENTDELETE((*eventdelete))  ,
SCIP_DECL_EVENTEXEC((*eventexec))  ,
SCIP_EVENTHDLRDATA eventhdlrdata 
)
static

internal method for creating an event handler

Parameters
eventhdlrpointer to event handler data structure
namename of event handler
descdescription of event handler
eventhdlrdataevent handler data

Definition at line 152 of file event.c.

References BMSallocMemory, BMSclearMemory, BMSduplicateMemoryArray, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_OKAY, and SCIPclockCreate().

Referenced by SCIPeventhdlrCreate().

◆ SCIPeventhdlrCreate()

SCIP_RETCODE SCIPeventhdlrCreate ( SCIP_EVENTHDLR **  eventhdlr,
SCIP_SET set,
const char *  name,
const char *  desc,
SCIP_DECL_EVENTCOPY((*eventcopy))  ,
SCIP_DECL_EVENTFREE((*eventfree))  ,
SCIP_DECL_EVENTINIT((*eventinit))  ,
SCIP_DECL_EVENTEXIT((*eventexit))  ,
SCIP_DECL_EVENTINITSOL((*eventinitsol))  ,
SCIP_DECL_EVENTEXITSOL((*eventexitsol))  ,
SCIP_DECL_EVENTDELETE((*eventdelete))  ,
SCIP_DECL_EVENTEXEC((*eventexec))  ,
SCIP_EVENTHDLRDATA eventhdlrdata 
)

creates an event handler

Parameters
eventhdlrpointer to event handler data structure
setglobal SCIP settings
namename of event handler
descdescription of event handler
eventhdlrdataevent handler data

Definition at line 195 of file event.c.

References doEventhdlrCreate(), NULL, SCIP_CALL_FINALLY, SCIP_OKAY, and SCIPeventhdlrFree().

Referenced by SCIPconflictstoreCreate(), SCIPincludeEventhdlr(), SCIPincludeEventhdlrBasic(), SCIPnlpInclude(), and SCIPreoptCreate().

◆ SCIPeventhdlrFree()

SCIP_RETCODE SCIPeventhdlrFree ( SCIP_EVENTHDLR **  eventhdlr,
SCIP_SET set 
)

calls destructor and frees memory of event handler

Parameters
eventhdlrpointer to event handler data structure
setglobal SCIP settings

Definition at line 221 of file event.c.

References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().

Referenced by SCIPeventhdlrCreate().

◆ SCIPeventhdlrInit()

SCIP_RETCODE SCIPeventhdlrInit ( SCIP_EVENTHDLR eventhdlr,
SCIP_SET set 
)

initializes event handler

Parameters
eventhdlrevent handler for this event
setglobal SCIP settings

Definition at line 252 of file event.c.

References SCIP_Eventhdlr::eventtime, SCIP_Eventhdlr::initialized, SCIP_Eventhdlr::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Eventhdlr::setuptime, and TRUE.

◆ SCIPeventhdlrExit()

SCIP_RETCODE SCIPeventhdlrExit ( SCIP_EVENTHDLR eventhdlr,
SCIP_SET set 
)

calls exit method of event handler

Parameters
eventhdlrevent handler for this event
setglobal SCIP settings

Definition at line 288 of file event.c.

References FALSE, SCIP_Eventhdlr::initialized, SCIP_Eventhdlr::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Eventhdlr::setuptime.

◆ SCIPeventhdlrInitsol()

SCIP_RETCODE SCIPeventhdlrInitsol ( SCIP_EVENTHDLR eventhdlr,
SCIP_SET set 
)

informs event handler that the branch and bound process is being started

Parameters
eventhdlrevent handler
setglobal SCIP settings

Definition at line 318 of file event.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Eventhdlr::setuptime.

◆ SCIPeventhdlrExitsol()

SCIP_RETCODE SCIPeventhdlrExitsol ( SCIP_EVENTHDLR eventhdlr,
SCIP_SET set 
)

informs event handler that the branch and bound process data is being freed

Parameters
eventhdlrevent handler
setglobal SCIP settings

Definition at line 342 of file event.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Eventhdlr::setuptime.

◆ SCIPeventhdlrExec()

SCIP_RETCODE SCIPeventhdlrExec ( SCIP_EVENTHDLR eventhdlr,
SCIP_SET set,
SCIP_EVENT event,
SCIP_EVENTDATA eventdata 
)

calls execution method of event handler

Parameters
eventhdlrevent handler
setglobal SCIP settings
eventevent to call event handler with
eventdatauser data for the issued event

Definition at line 366 of file event.c.

References SCIP_Eventhdlr::eventtime, SCIP_Event::eventtype, SCIP_Eventhdlr::name, NULL, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIPsetDebugMsg.

Referenced by SCIPeventfilterProcess().

◆ SCIPeventhdlrSetCopy()

void SCIPeventhdlrSetCopy ( SCIP_EVENTHDLR eventhdlr,
SCIP_DECL_EVENTCOPY((*eventcopy))   
)

sets copy callback for all events of this event handler

Parameters
eventhdlrevent handler

Definition at line 427 of file event.c.

References NULL.

Referenced by SCIPsetEventhdlrCopy().

◆ SCIPeventhdlrSetFree()

void SCIPeventhdlrSetFree ( SCIP_EVENTHDLR eventhdlr,
SCIP_DECL_EVENTFREE((*eventfree))   
)

sets destructor callback of this event handler

Parameters
eventhdlrevent handler

Definition at line 438 of file event.c.

References NULL.

Referenced by SCIPsetEventhdlrFree().

◆ SCIPeventhdlrSetInit()

void SCIPeventhdlrSetInit ( SCIP_EVENTHDLR eventhdlr,
SCIP_DECL_EVENTINIT((*eventinit))   
)

sets initialization callback of this event handler

Parameters
eventhdlrevent handler

Definition at line 449 of file event.c.

References NULL.

Referenced by SCIPsetEventhdlrInit().

◆ SCIPeventhdlrSetExit()

void SCIPeventhdlrSetExit ( SCIP_EVENTHDLR eventhdlr,
SCIP_DECL_EVENTEXIT((*eventexit))   
)

sets deinitialization callback of this event handler

Parameters
eventhdlrevent handler

Definition at line 460 of file event.c.

References NULL.

Referenced by SCIPsetEventhdlrExit().

◆ SCIPeventhdlrSetInitsol()

void SCIPeventhdlrSetInitsol ( SCIP_EVENTHDLR eventhdlr,
SCIP_DECL_EVENTINITSOL((*eventinitsol))   
)

sets solving process initialization callback of this event handler

Parameters
eventhdlrevent handler

Definition at line 471 of file event.c.

References NULL.

Referenced by SCIPsetEventhdlrInitsol().

◆ SCIPeventhdlrSetExitsol()

void SCIPeventhdlrSetExitsol ( SCIP_EVENTHDLR eventhdlr,
SCIP_DECL_EVENTEXITSOL((*eventexitsol))   
)

sets solving process deinitialization callback of this event handler

Parameters
eventhdlrevent handler

Definition at line 482 of file event.c.

References NULL.

Referenced by SCIPsetEventhdlrExitsol().

◆ SCIPeventhdlrSetDelete()

void SCIPeventhdlrSetDelete ( SCIP_EVENTHDLR eventhdlr,
SCIP_DECL_EVENTDELETE((*eventdelete))   
)

sets callback to free specific event data

Parameters
eventhdlrevent handler

Definition at line 493 of file event.c.

References NULL.

Referenced by SCIPsetEventhdlrDelete().

◆ SCIPeventhdlrEnableOrDisableClocks()

void SCIPeventhdlrEnableOrDisableClocks ( SCIP_EVENTHDLR eventhdlr,
SCIP_Bool  enable 
)

enables or disables all clocks of eventhdlr, depending on the value of the flag

Parameters
eventhdlrthe event handler for which all clocks should be enabled or disabled
enableshould the clocks of the event handler be enabled?

Definition at line 514 of file event.c.

References SCIP_Eventhdlr::eventtime, NULL, SCIPclockEnableOrDisable(), and SCIP_Eventhdlr::setuptime.

◆ SCIPeventCreateSync()

SCIP_RETCODE SCIPeventCreateSync ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem 
)

creates a synchronization event

Parameters
eventpointer to store the event
blkmemblock memory

Definition at line 555 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_SYNC, and SCIP_OKAY.

Referenced by SCIPincrementConcurrentTime().

◆ SCIPeventCreateVarAdded()

SCIP_RETCODE SCIPeventCreateVarAdded ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var 
)

creates an event for an addition of a variable to the problem

Parameters
eventpointer to store the event
blkmemblock memory
varvariable that was added to the problem

Definition at line 598 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_VARADDED, and SCIP_OKAY.

Referenced by SCIPprobAddVar().

◆ SCIPeventCreateVarDeleted()

SCIP_RETCODE SCIPeventCreateVarDeleted ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var 
)

creates an event for a deletion of a variable from the problem

Parameters
eventpointer to store the event
blkmemblock memory
varvariable that is to be deleted from the problem

Definition at line 616 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_VARDELETED, and SCIP_OKAY.

Referenced by SCIPprobDelVar().

◆ SCIPeventCreateVarFixed()

SCIP_RETCODE SCIPeventCreateVarFixed ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var 
)

creates an event for a fixing of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable that was fixed

Definition at line 634 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, and SCIPvarGetStatus().

Referenced by varEventVarFixed().

◆ SCIPeventCreateVarUnlocked()

SCIP_RETCODE SCIPeventCreateVarUnlocked ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var 
)

creates an event for a change in the number of locks of a variable down to zero or one

Parameters
eventpointer to store the event
blkmemblock memory
varvariable that changed the number of locks

Definition at line 656 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_VARUNLOCKED, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, and SCIPvarGetStatus().

Referenced by varEventVarUnlocked().

◆ SCIPeventCreateObjChanged()

SCIP_RETCODE SCIPeventCreateObjChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  oldobj,
SCIP_Real  newobj 
)

creates an event for a change in the objective value of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose objective value changed
oldobjold objective value before value changed
newobjnew objective value after value changed

Definition at line 677 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, SCIP_Var::exactdata, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_OBJCHANGED, and SCIP_OKAY.

Referenced by varEventObjChanged(), and varEventObjChangedExact().

◆ SCIPeventCreateGlbChanged()

SCIP_RETCODE SCIPeventCreateGlbChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  oldbound,
SCIP_Real  newbound 
)

creates an event for a change in the global lower bound of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
oldboundold bound before bound changed
newboundnew bound after bound changed

Definition at line 702 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, SCIP_Var::exactdata, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_GLBCHANGED, and SCIP_OKAY.

Referenced by varEventGlbChanged(), and varEventGlbChangedExact().

◆ SCIPeventCreateGubChanged()

SCIP_RETCODE SCIPeventCreateGubChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  oldbound,
SCIP_Real  newbound 
)

creates an event for a change in the global upper bound of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
oldboundold bound before bound changed
newboundnew bound after bound changed

Definition at line 727 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, SCIP_Var::exactdata, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_GUBCHANGED, and SCIP_OKAY.

Referenced by varEventGubChanged(), and varEventGubChangedExact().

◆ SCIPeventCreateLbChanged()

SCIP_RETCODE SCIPeventCreateLbChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  oldbound,
SCIP_Real  newbound 
)

creates an event for a change in the lower bound of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
oldboundold bound before bound changed
newboundnew bound after bound changed

Definition at line 752 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, SCIP_Var::exactdata, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_LBTIGHTENED, and SCIP_OKAY.

Referenced by varEventLbChanged(), and varEventLbChangedExact().

◆ SCIPeventCreateUbChanged()

SCIP_RETCODE SCIPeventCreateUbChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  oldbound,
SCIP_Real  newbound 
)

creates an event for a change in the upper bound of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
oldboundold bound before bound changed
newboundnew bound after bound changed

Definition at line 780 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, SCIP_Var::exactdata, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_UBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, and SCIP_OKAY.

Referenced by varEventUbChanged(), and varEventUbChangedExact().

◆ SCIPeventAddExactBdChg()

SCIP_RETCODE SCIPeventAddExactBdChg ( SCIP_EVENT event,
BMS_BLKMEM blkmem,
SCIP_RATIONAL oldbound,
SCIP_RATIONAL newbound 
)

adds the data for the exact changes to existing bound event

Parameters
eventthe event
blkmemblock memory
oldboundold bound before bound changed
newboundnew bound after bound changed

Definition at line 808 of file event.c.

References SCIP_Event::data, SCIP_Event::eventbdchg, SCIP_EventBdChg::newboundexact, NULL, SCIP_EventBdChg::oldboundexact, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_OKAY, SCIPrationalCopyBlock(), and SCIPrationalIsEQ().

Referenced by SCIPeventqueueAdd(), varEventGlbChangedExact(), varEventGubChangedExact(), varEventLbChangedExact(), and varEventUbChangedExact().

◆ SCIPeventAddExactObjChg()

SCIP_RETCODE SCIPeventAddExactObjChg ( SCIP_EVENT event,
BMS_BLKMEM blkmem,
SCIP_RATIONAL oldobj,
SCIP_RATIONAL newobj 
)

adds the data for the exact changes to existing obj event

Parameters
eventthe event
blkmemblock memory
oldobjold obj before change
newobjnew obj after change

Definition at line 827 of file event.c.

References SCIP_Event::data, SCIP_Event::eventobjchg, SCIP_EventObjChg::newobjexact, NULL, SCIP_EventObjChg::oldobjexact, SCIP_CALL, SCIP_OKAY, SCIPrationalCopyBlock(), and SCIPrationalIsEQ().

Referenced by varEventObjChangedExact().

◆ SCIPeventCreateGholeAdded()

SCIP_RETCODE SCIPeventCreateGholeAdded ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  left,
SCIP_Real  right 
)

creates an event for an addition of a domain hole to a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
leftleft bound of open interval in new hole
rightright bound of open interval in new hole

Definition at line 845 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_GHOLEADDED, and SCIP_OKAY.

Referenced by varEventGholeAdded().

◆ SCIPeventCreateGholeRemoved()

SCIP_RETCODE SCIPeventCreateGholeRemoved ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  left,
SCIP_Real  right 
)

creates an event for removing a domain hole of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
leftleft bound of open interval in hole
rightright bound of open interval in hole

Definition at line 867 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_GHOLEREMOVED, and SCIP_OKAY.

◆ SCIPeventCreateLholeAdded()

SCIP_RETCODE SCIPeventCreateLholeAdded ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  left,
SCIP_Real  right 
)

creates an event for an addition of a domain hole to a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
leftleft bound of open interval in new hole
rightright bound of open interval in new hole

Definition at line 889 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_LHOLEADDED, and SCIP_OKAY.

◆ SCIPeventCreateLholeRemoved()

SCIP_RETCODE SCIPeventCreateLholeRemoved ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_Real  left,
SCIP_Real  right 
)

creates an event for removing a domain hole of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose bound changed
leftleft bound of open interval in hole
rightright bound of open interval in hole

Definition at line 911 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_LHOLEREMOVED, and SCIP_OKAY.

◆ SCIPeventCreateImplAdded()

SCIP_RETCODE SCIPeventCreateImplAdded ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var 
)

creates an event for an addition to the variable's implications list, clique or variable bounds information

Parameters
eventpointer to store the event
blkmemblock memory
varvariable that was fixed

Definition at line 933 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_IMPLADDED, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, and SCIPvarGetStatus().

Referenced by SCIPcliquetableCleanup(), and varEventImplAdded().

◆ SCIPeventCreateTypeChanged()

SCIP_RETCODE SCIPeventCreateTypeChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_VARTYPE  oldtype,
SCIP_VARTYPE  newtype 
)

creates an event for changing the type of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose type changed
oldtypeold variable type
newtypenew variable type

Definition at line 952 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_TYPECHANGED, and SCIP_OKAY.

Referenced by SCIPvarChgType().

◆ SCIPeventCreateImplTypeChanged()

SCIP_RETCODE SCIPeventCreateImplTypeChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_VAR var,
SCIP_IMPLINTTYPE  oldtype,
SCIP_IMPLINTTYPE  newtype 
)

creates an event for changing the implied integral type of a variable

Parameters
eventpointer to store the event
blkmemblock memory
varvariable whose implied type changed
oldtypeold variable implied type
newtypenew variable implied type

Definition at line 975 of file event.c.

References BMSallocBlockMemory, SCIP_Var::data, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_IMPLTYPECHANGED, and SCIP_OKAY.

Referenced by SCIPvarChgImplType().

◆ SCIPeventCreateRowAddedSepa()

SCIP_RETCODE SCIPeventCreateRowAddedSepa ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_ROW row 
)

creates an event for the addition of a linear row to the separation storage

Parameters
eventpointer to store the event
blkmemblock memory
rowrow that was added to the separation storage

Definition at line 998 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_ROWADDEDSEPA, and SCIP_OKAY.

Referenced by SCIPsepastoreAddCut().

◆ SCIPeventCreateRowDeletedSepa()

SCIP_RETCODE SCIPeventCreateRowDeletedSepa ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_ROW row 
)

creates an event for the deletion of a linear row from the separation storage

Parameters
eventpointer to store the event
blkmemblock memory
rowrow that was deleted from the separation storage

Definition at line 1017 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_ROWDELETEDSEPA, and SCIP_OKAY.

Referenced by SCIPsepastoreAddCut(), SCIPsepastoreClearCuts(), and sepastoreDelCut().

◆ SCIPeventCreateRowAddedLP()

SCIP_RETCODE SCIPeventCreateRowAddedLP ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_ROW row 
)

creates an event for the addition of a linear row to the LP

Parameters
eventpointer to store the event
blkmemblock memory
rowrow that was added to the LP

Definition at line 1036 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_ROWADDEDLP, and SCIP_OKAY.

Referenced by SCIPlpAddRow().

◆ SCIPeventCreateRowDeletedLP()

SCIP_RETCODE SCIPeventCreateRowDeletedLP ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_ROW row 
)

creates an event for the deletion of a linear row from the LP

Parameters
eventpointer to store the event
blkmemblock memory
rowrow that was deleted from the LP

Definition at line 1055 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_ROWDELETEDLP, and SCIP_OKAY.

Referenced by lpDelRowset(), and SCIPlpShrinkRows().

◆ SCIPeventCreateRowCoefChanged()

SCIP_RETCODE SCIPeventCreateRowCoefChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_ROW row,
SCIP_COL col,
SCIP_Real  oldval,
SCIP_Real  newval 
)

creates an event for the change of a coefficient in a linear row

Parameters
eventpointer to store the event
blkmemblock memory
rowrow in which a coefficient changed
colcolumn which coefficient changed
oldvalold value of coefficient
newvalnew value of coefficient

Definition at line 1074 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_ROWCOEFCHANGED, and SCIP_OKAY.

Referenced by rowEventCoefChanged().

◆ SCIPeventCreateRowConstChanged()

SCIP_RETCODE SCIPeventCreateRowConstChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_ROW row,
SCIP_Real  oldval,
SCIP_Real  newval 
)

creates an event for the change of a constant in a linear row

Parameters
eventpointer to store the event
blkmemblock memory
rowrow in which the constant changed
oldvalold value of constant
newvalnew value of constant

Definition at line 1099 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_ROWCONSTCHANGED, and SCIP_OKAY.

Referenced by rowEventConstantChanged().

◆ SCIPeventCreateRowSideChanged()

SCIP_RETCODE SCIPeventCreateRowSideChanged ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem,
SCIP_ROW row,
SCIP_SIDETYPE  side,
SCIP_Real  oldval,
SCIP_Real  newval 
)

creates an event for the change of a side of a linear row

Parameters
eventpointer to store the event
blkmemblock memory
rowrow which side has changed
sidewhich side has changed
oldvalold value of side
newvalnew value of side

Definition at line 1122 of file event.c.

References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_ROWSIDECHANGED, and SCIP_OKAY.

Referenced by rowEventSideChanged().

◆ eventFreeExactData()

static void eventFreeExactData ( SCIP_EVENT event,
BMS_BLKMEM blkmem 
)
static
Parameters
eventevent to free
blkmemblock memory buffer

Definition at line 1146 of file event.c.

References NULL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_GBDCHANGED, SCIP_EVENTTYPE_OBJCHANGED, and SCIPrationalFreeBlock().

Referenced by SCIPeventFree(), and SCIPeventqueueAdd().

◆ SCIPeventFree()

SCIP_RETCODE SCIPeventFree ( SCIP_EVENT **  event,
BMS_BLKMEM blkmem 
)

frees an event

Parameters
eventevent to free
blkmemblock memory buffer

Definition at line 1168 of file event.c.

References BMSfreeBlockMemory, eventFreeExactData(), NULL, and SCIP_OKAY.

Referenced by SCIPeventqueueAdd(), and SCIPeventqueueProcess().

◆ eventDisable()

static void eventDisable ( SCIP_EVENT event)
static

disables an event

Parameters
eventevent to disable

Definition at line 1184 of file event.c.

References NULL, and SCIP_EVENTTYPE_DISABLED.

Referenced by SCIPeventqueueAdd().

◆ SCIPeventChgType()

SCIP_RETCODE SCIPeventChgType ( SCIP_EVENT event,
SCIP_EVENTTYPE  eventtype 
)

sets type of event

Parameters
eventevent
eventtypenew event type

Definition at line 1204 of file event.c.

References NULL, and SCIP_OKAY.

Referenced by initSolve(), presolveRound(), priceAndCutLoop(), primalAddSol(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodepqBound(), SCIPnodeUpdateLowerbound(), SCIPsolveCIP(), solveNodeInitialLP(), and varProcessAddHoleLocal().

◆ SCIPeventChgVar()

◆ SCIPeventChgNode()

SCIP_RETCODE SCIPeventChgNode ( SCIP_EVENT event,
SCIP_NODE node 
)

sets node for a node or LP event

Parameters
eventevent
nodenew node

Definition at line 1547 of file event.c.

References SCIP_Event::eventtype, NULL, SCIP_EVENTTYPE_LPEVENT, SCIP_EVENTTYPE_NODEDELETE, SCIP_EVENTTYPE_NODEEVENT, SCIP_INVALIDDATA, SCIP_OKAY, SCIPABORT, and SCIPerrorMessage.

Referenced by priceAndCutLoop(), SCIPnodeFree(), SCIPsolveCIP(), and solveNodeInitialLP().

◆ SCIPeventChgSol()

SCIP_RETCODE SCIPeventChgSol ( SCIP_EVENT event,
SCIP_SOL sol 
)

sets solution for a primal solution event

Parameters
eventevent
solnew primal solution

Definition at line 1584 of file event.c.

References SCIP_Event::eventtype, NULL, SCIP_EVENTTYPE_SOLEVENT, SCIP_INVALIDDATA, SCIP_OKAY, SCIPABORT, and SCIPerrorMessage.

Referenced by primalAddSol().

◆ SCIPeventProcess()

SCIP_RETCODE SCIPeventProcess ( SCIP_EVENT event,
SCIP_SET set,
SCIP_PRIMAL primal,
SCIP_LP lp,
SCIP_BRANCHCAND branchcand,
SCIP_EVENTFILTER eventfilter 
)

processes event by calling the appropriate event handlers

Parameters
eventevent
setglobal SCIP settings
primalprimal data; only needed for objchanged events, or NULL
lpcurrent LP data; only needed for obj/boundchanged events, or NULL
branchcandbranching candidate storage; only needed for bound change events, or NULL
eventfilterevent filter for global events; not needed for variable specific events

Definition at line 1804 of file event.c.

References SCIP_Event::data, SCIP_Var::data, SCIP_Lp::divingobjchg, SCIP_Event::eventbdchg, SCIP_Var::eventfilter, SCIP_Event::eventobjchg, SCIP_Var::eventqueueimpl, SCIP_Var::eventqueueindexlb, SCIP_Var::eventqueueindexobj, SCIP_Var::eventqueueindexub, SCIP_Event::eventtype, FALSE, SCIP_Lp::lpexact, SCIP_EventBdChg::newbound, SCIP_EventBdChg::newboundexact, SCIP_EventObjChg::newobj, SCIP_EventObjChg::newobjexact, NULL, SCIP_EventBdChg::oldbound, SCIP_EventBdChg::oldboundexact, SCIP_EventObjChg::oldobj, SCIP_Lp::probing, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_DISABLED, SCIP_EVENTTYPE_DUALBOUNDIMPROVED, SCIP_EVENTTYPE_FIRSTLPSOLVED, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_GHOLEADDED, SCIP_EVENTTYPE_GHOLEREMOVED, SCIP_EVENTTYPE_GLBCHANGED, SCIP_EVENTTYPE_GUBCHANGED, SCIP_EVENTTYPE_IMPLADDED, SCIP_EVENTTYPE_IMPLTYPECHANGED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_LHOLEADDED, SCIP_EVENTTYPE_LHOLEREMOVED, SCIP_EVENTTYPE_LPSOLVED, SCIP_EVENTTYPE_NODEBRANCHED, SCIP_EVENTTYPE_NODEDELETE, SCIP_EVENTTYPE_NODEFEASIBLE, SCIP_EVENTTYPE_NODEFOCUSED, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_POORSOLFOUND, SCIP_EVENTTYPE_PRESOLVEROUND, SCIP_EVENTTYPE_ROWADDEDLP, SCIP_EVENTTYPE_ROWADDEDSEPA, SCIP_EVENTTYPE_ROWCOEFCHANGED, SCIP_EVENTTYPE_ROWCONSTCHANGED, SCIP_EVENTTYPE_ROWDELETEDLP, SCIP_EVENTTYPE_ROWDELETEDSEPA, SCIP_EVENTTYPE_ROWSIDECHANGED, SCIP_EVENTTYPE_SYNC, SCIP_EVENTTYPE_TYPECHANGED, SCIP_EVENTTYPE_UBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_EVENTTYPE_VARUNLOCKED, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPbranchcandUpdateVar(), SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), SCIPcolExactChgLb(), SCIPcolExactChgObj(), SCIPcolExactChgUb(), SCIPerrorMessage, SCIPeventfilterProcess(), SCIPlpExactUpdateVarLb(), SCIPlpExactUpdateVarLbGlobal(), SCIPlpExactUpdateVarObj(), SCIPlpExactUpdateVarUb(), SCIPlpExactUpdateVarUbGlobal(), SCIPlpUpdateVarLb(), SCIPlpUpdateVarLbGlobal(), SCIPlpUpdateVarObj(), SCIPlpUpdateVarUb(), SCIPlpUpdateVarUbGlobal(), SCIPprimalUpdateVarObj(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetReal(), SCIPsetDebugMsg, SCIPvarGetCol(), SCIPvarGetColExact(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetStatusExact(), TRUE, and updateLpExactBoundChange().

Referenced by initSolve(), presolveRound(), priceAndCutLoop(), primalAddSol(), SCIPeventqueueAdd(), SCIPeventqueueProcess(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodepqBound(), SCIPnodeUpdateLowerbound(), SCIPsolveCIP(), solveNodeInitialLP(), and varProcessAddHoleLocal().

◆ eventfilterEnsureMem()

static SCIP_RETCODE eventfilterEnsureMem ( SCIP_EVENTFILTER eventfilter,
BMS_BLKMEM blkmem,
SCIP_SET set,
int  num 
)
static

resizes eventfilter arrays to be able to store at least num entries

Parameters
eventfilterevent filter
blkmemblock memory buffer
setglobal SCIP settings
numminimal number of node slots in array

Definition at line 2114 of file event.c.

References BMSreallocBlockMemoryArray, SCIP_EventFilter::eventdata, SCIP_EventFilter::eventhdlrs, SCIP_EventFilter::eventtypes, SCIP_EventFilter::nextpos, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_EventFilter::size.

Referenced by SCIPeventfilterAdd().

◆ SCIPeventfilterCreate()

SCIP_RETCODE SCIPeventfilterCreate ( SCIP_EVENTFILTER **  eventfilter,
BMS_BLKMEM blkmem 
)

creates an event filter

Parameters
eventfilterpointer to store the event filter
blkmemblock memory buffer

Definition at line 2142 of file event.c.

References BMSallocBlockMemory, FALSE, NULL, SCIP_ALLOC, SCIP_EVENTTYPE_DISABLED, and SCIP_OKAY.

Referenced by SCIProwCreate(), SCIPtransformProb(), SCIPvarCreateTransformed(), SCIPvarNegate(), and SCIPvarParseTransformed().

◆ SCIPeventfilterFree()

SCIP_RETCODE SCIPeventfilterFree ( SCIP_EVENTFILTER **  eventfilter,
BMS_BLKMEM blkmem,
SCIP_SET set 
)

frees an event filter and the associated event data entries

Parameters
eventfilterpointer to store the event filter
blkmemblock memory buffer
setglobal SCIP settings

Definition at line 2167 of file event.c.

References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, NULL, SCIP_CALL, SCIP_EVENTTYPE_DISABLED, and SCIP_OKAY.

Referenced by freeTransform(), freeTransforming(), SCIProwFree(), and varFree().

◆ SCIPeventfilterAdd()

SCIP_RETCODE SCIPeventfilterAdd ( SCIP_EVENTFILTER eventfilter,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTTYPE  eventtype,
SCIP_EVENTHDLR eventhdlr,
SCIP_EVENTDATA eventdata,
int *  filterpos 
)

adds element to event filter

Parameters
eventfilterevent filter
blkmemblock memory buffer
setglobal SCIP settings
eventtypeevent type to catch
eventhdlrevent handler to call for the event processing
eventdataevent data to pass to the event handler for the event processing
filterpospointer to store position of event filter entry, or NULL

Definition at line 2207 of file event.c.

References SCIP_EventFilter::delayedeventmask, SCIP_EventFilter::delayupdates, SCIP_EventFilter::eventdata, eventfilterEnsureMem(), SCIP_EventFilter::eventhdlrs, SCIP_EventFilter::eventmask, SCIP_EventFilter::eventtypes, SCIP_EventFilter::firstfreepos, SCIP_EventFilter::len, SCIP_EventFilter::nextpos, NULL, SCIP_CALL, SCIP_EVENTTYPE_DISABLED, and SCIP_OKAY.

Referenced by SCIPcatchEvent(), SCIPnlpCreate(), SCIProwCatchEvent(), and SCIPvarCatchEvent().

◆ eventfilterSearch()

static int eventfilterSearch ( SCIP_EVENTFILTER *const  eventfilter,
SCIP_EVENTTYPE const  eventtype,
SCIP_EVENTHDLR *const  eventhdlr,
SCIP_EVENTDATA *const  eventdata 
)
static

linear search for the given entry in event filter

Parameters
eventfilterevent filter
eventtypeevent type
eventhdlrevent handler to call for the event processing
eventdataevent data to pass to the event handler for the event processing

Definition at line 2274 of file event.c.

References SCIP_EventFilter::eventdata, SCIP_EventFilter::eventhdlrs, SCIP_EventFilter::eventtypes, SCIP_EventFilter::len, SCIP_EventFilter::nextpos, NULL, and SCIP_EVENTTYPE_DISABLED.

Referenced by SCIPeventfilterDel().

◆ SCIPeventfilterDel()

SCIP_RETCODE SCIPeventfilterDel ( SCIP_EVENTFILTER eventfilter,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTTYPE  eventtype,
SCIP_EVENTHDLR eventhdlr,
SCIP_EVENTDATA eventdata,
int  filterpos 
)

deletes element from event filter

Parameters
eventfilterevent filter
blkmemblock memory buffer
setglobal SCIP settings
eventtypeevent type
eventhdlrevent handler to call for the event processing
eventdataevent data to pass to the event handler for the event processing
filterposposition of event filter entry, or -1 if unknown

Definition at line 2300 of file event.c.

References SCIP_EventFilter::delayupdates, SCIP_EventFilter::eventdata, eventfilterSearch(), SCIP_EventFilter::eventhdlrs, SCIP_EventFilter::eventtypes, SCIP_EventFilter::firstdeletedpos, SCIP_EventFilter::firstfreepos, SCIP_EventFilter::nextpos, NULL, SCIP_EVENTTYPE_DISABLED, SCIP_EVENTTYPE_FORMAT, SCIP_INVALIDDATA, SCIP_OKAY, and SCIPerrorMessage.

Referenced by SCIPdropEvent(), SCIPnlpFree(), SCIProwDropEvent(), and SCIPvarDropEvent().

◆ eventfilterDelayUpdates()

static void eventfilterDelayUpdates ( SCIP_EVENTFILTER eventfilter)
static

makes the event filter to delay and buffer all updates until eventfilterProcessUpdates() is called

Parameters
eventfilterevent filter

Definition at line 2355 of file event.c.

References SCIP_EventFilter::delayedeventmask, SCIP_EventFilter::delayupdates, NULL, SCIP_EVENTTYPE_DISABLED, and TRUE.

Referenced by SCIPeventfilterProcess().

◆ eventfilterProcessUpdates()

static void eventfilterProcessUpdates ( SCIP_EVENTFILTER eventfilter)
static

◆ SCIPeventfilterProcess()

SCIP_RETCODE SCIPeventfilterProcess ( SCIP_EVENTFILTER eventfilter,
SCIP_SET set,
SCIP_EVENT event 
)

processes the event with all event handlers with matching filter setting

Parameters
eventfilterevent filter
setglobal SCIP settings
eventevent to process

Definition at line 2403 of file event.c.

References SCIP_EventFilter::eventdata, eventfilterDelayUpdates(), eventfilterProcessUpdates(), SCIP_EventFilter::eventhdlrs, SCIP_EventFilter::eventmask, SCIP_Event::eventtype, SCIP_EventFilter::eventtypes, FALSE, SCIP_EventFilter::len, NULL, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_OKAY, SCIPeventhdlrExec(), SCIPsetDebugMsg, and TRUE.

Referenced by SCIPeventProcess().

◆ eventqueueEnsureEventsMem()

static SCIP_RETCODE eventqueueEnsureEventsMem ( SCIP_EVENTQUEUE eventqueue,
SCIP_SET set,
int  num 
)
static

resizes events array to be able to store at least num entries

Parameters
eventqueueevent queue
setglobal SCIP settings
numminimal number of node slots in array

Definition at line 2482 of file event.c.

References BMSreallocMemoryArray, SCIP_EventQueue::events, SCIP_EventQueue::eventssize, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().

Referenced by eventqueueAppend().

◆ SCIPeventqueueCreate()

SCIP_RETCODE SCIPeventqueueCreate ( SCIP_EVENTQUEUE **  eventqueue)

creates an event queue

Parameters
eventqueuepointer to store the event queue

Definition at line 2505 of file event.c.

References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, and SCIP_OKAY.

Referenced by SCIPtransformProb().

◆ SCIPeventqueueFree()

SCIP_RETCODE SCIPeventqueueFree ( SCIP_EVENTQUEUE **  eventqueue)

frees event queue; there must not be any unprocessed events in the queue!

Parameters
eventqueuepointer to the event queue

Definition at line 2521 of file event.c.

References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, and SCIP_OKAY.

Referenced by freeTransform(), and freeTransforming().

◆ eventqueueAppend()

static SCIP_RETCODE eventqueueAppend ( SCIP_EVENTQUEUE eventqueue,
SCIP_SET set,
SCIP_EVENT **  event 
)
static

appends event to the event queue; sets event to NULL afterwards

Parameters
eventqueueevent queue
setglobal SCIP settings
eventpointer to event to append to the queue

Definition at line 2537 of file event.c.

References SCIP_EventQueue::delayevents, eventqueueEnsureEventsMem(), SCIP_EventQueue::events, SCIP_Event::eventtype, SCIP_EventQueue::nevents, NULL, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_OKAY, and SCIPsetDebugMsg.

Referenced by SCIPeventqueueAdd().

◆ SCIPeventqueueAdd()

SCIP_RETCODE SCIPeventqueueAdd ( SCIP_EVENTQUEUE eventqueue,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_PRIMAL primal,
SCIP_LP lp,
SCIP_BRANCHCAND branchcand,
SCIP_EVENTFILTER eventfilter,
SCIP_EVENT **  event 
)

processes event or adds event to the event queue

Parameters
eventqueueevent queue
blkmemblock memory buffer
setglobal SCIP settings
primalprimal data; only needed for objchanged events, or NULL
lpcurrent LP data; only needed for obj/boundchanged events, or NULL
branchcandbranching candidate storage; only needed for bound change events, or NULL
eventfilterevent filter for global events; not needed for variable specific events
eventpointer to event to add to the queue; will be NULL after queue addition

Definition at line 2561 of file event.c.

References SCIP_Event::data, SCIP_Var::data, SCIP_EventQueue::delayevents, SCIP_Event::eventbdchg, eventDisable(), eventFreeExactData(), SCIP_Event::eventobjchg, eventqueueAppend(), SCIP_Var::eventqueueimpl, SCIP_Var::eventqueueindexlb, SCIP_Var::eventqueueindexobj, SCIP_Var::eventqueueindexub, SCIP_Event::eventtype, SCIP_EventBdChg::newbound, SCIP_EventBdChg::newboundexact, SCIP_EventObjChg::newobj, NULL, SCIP_EventBdChg::oldbound, SCIP_EventBdChg::oldboundexact, SCIP_EventObjChg::oldobj, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_DISABLED, SCIP_EVENTTYPE_DUALBOUNDIMPROVED, SCIP_EVENTTYPE_FIRSTLPSOLVED, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_GHOLEADDED, SCIP_EVENTTYPE_GHOLEREMOVED, SCIP_EVENTTYPE_GLBCHANGED, SCIP_EVENTTYPE_GUBCHANGED, SCIP_EVENTTYPE_IMPLADDED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_LHOLEADDED, SCIP_EVENTTYPE_LHOLEREMOVED, SCIP_EVENTTYPE_LPSOLVED, SCIP_EVENTTYPE_NODEBRANCHED, SCIP_EVENTTYPE_NODEDELETE, SCIP_EVENTTYPE_NODEFEASIBLE, SCIP_EVENTTYPE_NODEFOCUSED, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_POORSOLFOUND, SCIP_EVENTTYPE_PRESOLVEROUND, SCIP_EVENTTYPE_ROWADDEDLP, SCIP_EVENTTYPE_ROWADDEDSEPA, SCIP_EVENTTYPE_ROWCOEFCHANGED, SCIP_EVENTTYPE_ROWCONSTCHANGED, SCIP_EVENTTYPE_ROWDELETEDLP, SCIP_EVENTTYPE_ROWDELETEDSEPA, SCIP_EVENTTYPE_ROWSIDECHANGED, SCIP_EVENTTYPE_SYNC, SCIP_EVENTTYPE_UBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_EVENTTYPE_VARUNLOCKED, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPeventAddExactBdChg(), SCIPeventFree(), SCIPeventProcess(), SCIPeventqueueDelay(), SCIPeventqueueProcess(), SCIPrationalFreeBlock(), SCIPrationalSetRational(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPvarGetName(), TRUE, SCIP_EventObjChg::var, and SCIP_EventBdChg::var.

Referenced by lpDelRowset(), rowEventCoefChanged(), rowEventConstantChanged(), rowEventSideChanged(), SCIPcliquetableCleanup(), SCIPincrementConcurrentTime(), SCIPlpAddRow(), SCIPlpShrinkRows(), SCIPprobAddVar(), SCIPprobDelVar(), SCIPsepastoreAddCut(), SCIPsepastoreClearCuts(), SCIPvarChgImplType(), SCIPvarChgType(), sepastoreDelCut(), varEventGholeAdded(), varEventGlbChanged(), varEventGlbChangedExact(), varEventGubChanged(), varEventGubChangedExact(), varEventImplAdded(), varEventLbChanged(), varEventLbChangedExact(), varEventObjChanged(), varEventObjChangedExact(), varEventUbChanged(), varEventUbChangedExact(), varEventVarFixed(), and varEventVarUnlocked().

◆ SCIPeventqueueDelay()

SCIP_RETCODE SCIPeventqueueDelay ( SCIP_EVENTQUEUE eventqueue)

marks queue to delay incoming events until a call to SCIPeventqueueProcess()

Parameters
eventqueueevent queue

Definition at line 2846 of file event.c.

References SCIP_EventQueue::delayevents, NULL, SCIP_OKAY, SCIPdebugMessage, and TRUE.

Referenced by nodeRepropagate(), SCIPcliquetableCleanup(), SCIPeventqueueAdd(), and treeSwitchPath().

◆ SCIPeventqueueProcess()

SCIP_RETCODE SCIPeventqueueProcess ( SCIP_EVENTQUEUE eventqueue,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_PRIMAL primal,
SCIP_LP lp,
SCIP_BRANCHCAND branchcand,
SCIP_EVENTFILTER eventfilter 
)

◆ SCIPeventqueueIsDelayed()

SCIP_Bool SCIPeventqueueIsDelayed ( SCIP_EVENTQUEUE eventqueue)

returns TRUE iff events of the queue are delayed until the next SCIPeventqueueProcess() call

Parameters
eventqueueevent queue

Definition at line 2933 of file event.c.

References SCIP_EventQueue::delayevents, and NULL.

Referenced by nodeRepropagate(), SCIPvarAggregate(), SCIPvarAggregateExact(), SCIPvarFix(), SCIPvarFixExact(), SCIPvarMultiaggregate(), and SCIPvarMultiaggregateExact().