Scippy

SCIP

Solving Constraint Integer Programs

event.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2016 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file event.h
17  * @brief internal methods for managing events
18  * @author Tobias Achterberg
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #ifndef __SCIP_EVENT_H__
24 #define __SCIP_EVENT_H__
25 
26 
27 #include "scip/def.h"
28 #include "blockmemshell/memory.h"
29 #include "scip/type_retcode.h"
30 #include "scip/type_set.h"
31 #include "scip/type_event.h"
32 #include "scip/type_lp.h"
33 #include "scip/type_var.h"
34 #include "scip/type_sol.h"
35 #include "scip/type_primal.h"
36 #include "scip/type_branch.h"
37 #include "scip/pub_event.h"
38 
39 #include "scip/struct_event.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /*
46  * Event handler methods
47  */
48 
49 /** copies the given event handler to a new scip */
50 extern
52  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
53  SCIP_SET* set /**< SCIP_SET of SCIP to copy to */
54  );
55 
56 /** creates an event handler */
57 extern
59  SCIP_EVENTHDLR** eventhdlr, /**< pointer to event handler data structure */
60  const char* name, /**< name of event handler */
61  const char* desc, /**< description of event handler */
62  SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */
63  SCIP_DECL_EVENTFREE ((*eventfree)), /**< destructor of event handler */
64  SCIP_DECL_EVENTINIT ((*eventinit)), /**< initialize event handler */
65  SCIP_DECL_EVENTEXIT ((*eventexit)), /**< deinitialize event handler */
66  SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */
67  SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */
68  SCIP_DECL_EVENTDELETE ((*eventdelete)), /**< free specific event data */
69  SCIP_DECL_EVENTEXEC ((*eventexec)), /**< execute event handler */
70  SCIP_EVENTHDLRDATA* eventhdlrdata /**< event handler data */
71  );
72 
73 /** calls destructor and frees memory of event handler */
74 extern
76  SCIP_EVENTHDLR** eventhdlr, /**< pointer to event handler data structure */
77  SCIP_SET* set /**< global SCIP settings */
78  );
79 
80 /** initializes event handler */
81 extern
83  SCIP_EVENTHDLR* eventhdlr, /**< event handler for this event */
84  SCIP_SET* set /**< global SCIP settings */
85  );
86 
87 /** calls exit method of event handler */
88 extern
90  SCIP_EVENTHDLR* eventhdlr, /**< event handler for this event */
91  SCIP_SET* set /**< global SCIP settings */
92  );
93 
94 /** informs event handler that the branch and bound process is being started */
95 extern
97  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
98  SCIP_SET* set /**< global SCIP settings */
99  );
100 
101 /** informs event handler that the branch and bound process data is being freed */
102 extern
104  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
105  SCIP_SET* set /**< global SCIP settings */
106  );
107 
108 /** calls execution method of event handler */
109 extern
111  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
112  SCIP_SET* set, /**< global SCIP settings */
113  SCIP_EVENT* event, /**< event to call event handler with */
114  SCIP_EVENTDATA* eventdata /**< user data for the issued event */
115  );
116 
117 /**
118  * callback setter methods of event handlers
119  */
120 /** sets copy callback for all events of this event handler */
121 extern
123  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
124  SCIP_DECL_EVENTCOPY ((*eventcopy)) /**< copy callback for events */
125  );
126 
127 /** sets destructor callback of this event handler */
128 extern
130  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
131  SCIP_DECL_EVENTFREE ((*eventfree)) /**< destructor callback of event handler */
132  );
133 
134 /** sets initialization callback of this event handler */
135 extern
137  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
138  SCIP_DECL_EVENTINIT ((*eventinit)) /**< initialization callback of event handler */
139  );
140 
141 /** sets deinitialization callback of this event handler */
142 extern
144  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
145  SCIP_DECL_EVENTEXIT ((*eventexit)) /**< deinitialization callback of event handler */
146  );
147 
148 /** sets solving process initialization callback of this event handler */
149 extern
151  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
152  SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */
153  );
154 
155 /** sets solving process deinitialization callback of this event handler */
156 extern
158  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
159  SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */
160  );
161 
162 /** sets callback to free specific event data */
163 extern
165  SCIP_EVENTHDLR* eventhdlr, /**< event handler */
166  SCIP_DECL_EVENTDELETE ((*eventdelete)) /**< callback to free specific event data */
167  );
168 
169 /** enables or disables all clocks of \p eventhdlr, depending on the value of the flag */
170 extern
172  SCIP_EVENTHDLR* eventhdlr, /**< the event handler for which all clocks should be enabled or disabled */
173  SCIP_Bool enable /**< should the clocks of the event handler be enabled? */
174  );
175 
176 /*
177  * Event methods
178  */
179 
180 /** creates an event for an addition of a variable to the problem */
181 extern
183  SCIP_EVENT** event, /**< pointer to store the event */
184  BMS_BLKMEM* blkmem, /**< block memory */
185  SCIP_VAR* var /**< variable that was added to the problem */
186  );
187 
188 /** creates an event for a deletion of a variable from the problem */
189 extern
191  SCIP_EVENT** event, /**< pointer to store the event */
192  BMS_BLKMEM* blkmem, /**< block memory */
193  SCIP_VAR* var /**< variable that is to be deleted from the problem */
194  );
195 
196 /** creates an event for a fixing of a variable */
197 extern
199  SCIP_EVENT** event, /**< pointer to store the event */
200  BMS_BLKMEM* blkmem, /**< block memory */
201  SCIP_VAR* var /**< variable that was fixed */
202  );
203 
204 /** creates an event for a change in the number of locks of a variable down to zero or one */
205 extern
207  SCIP_EVENT** event, /**< pointer to store the event */
208  BMS_BLKMEM* blkmem, /**< block memory */
209  SCIP_VAR* var /**< variable that changed the number of locks */
210  );
211 
212 /** creates an event for a change in the objective value of a variable */
213 extern
215  SCIP_EVENT** event, /**< pointer to store the event */
216  BMS_BLKMEM* blkmem, /**< block memory */
217  SCIP_VAR* var, /**< variable whose objective value changed */
218  SCIP_Real oldobj, /**< old objective value before value changed */
219  SCIP_Real newobj /**< new objective value after value changed */
220  );
221 
222 /** creates an event for a change in the global lower bound of a variable */
223 extern
225  SCIP_EVENT** event, /**< pointer to store the event */
226  BMS_BLKMEM* blkmem, /**< block memory */
227  SCIP_VAR* var, /**< variable whose bound changed */
228  SCIP_Real oldbound, /**< old bound before bound changed */
229  SCIP_Real newbound /**< new bound after bound changed */
230  );
231 
232 /** creates an event for a change in the global upper bound of a variable */
233 extern
235  SCIP_EVENT** event, /**< pointer to store the event */
236  BMS_BLKMEM* blkmem, /**< block memory */
237  SCIP_VAR* var, /**< variable whose bound changed */
238  SCIP_Real oldbound, /**< old bound before bound changed */
239  SCIP_Real newbound /**< new bound after bound changed */
240  );
241 
242 /** creates an event for a change in the lower bound of a variable */
243 extern
245  SCIP_EVENT** event, /**< pointer to store the event */
246  BMS_BLKMEM* blkmem, /**< block memory */
247  SCIP_VAR* var, /**< variable whose bound changed */
248  SCIP_Real oldbound, /**< old bound before bound changed */
249  SCIP_Real newbound /**< new bound after bound changed */
250  );
251 
252 /** creates an event for a change in the upper bound of a variable */
253 extern
255  SCIP_EVENT** event, /**< pointer to store the event */
256  BMS_BLKMEM* blkmem, /**< block memory */
257  SCIP_VAR* var, /**< variable whose bound changed */
258  SCIP_Real oldbound, /**< old bound before bound changed */
259  SCIP_Real newbound /**< new bound after bound changed */
260  );
261 
262 /** creates an event for an addition of a global domain hole to a variable */
264  SCIP_EVENT** event, /**< pointer to store the event */
265  BMS_BLKMEM* blkmem, /**< block memory */
266  SCIP_VAR* var, /**< variable whose bound changed */
267  SCIP_Real left, /**< left bound of open interval in new hole */
268  SCIP_Real right /**< right bound of open interval in new hole */
269  );
270 
271 /** creates an event for removing a global domain hole of a variable */
273  SCIP_EVENT** event, /**< pointer to store the event */
274  BMS_BLKMEM* blkmem, /**< block memory */
275  SCIP_VAR* var, /**< variable whose bound changed */
276  SCIP_Real left, /**< left bound of open interval in hole */
277  SCIP_Real right /**< right bound of open interval in hole */
278  );
279 
280 /** creates an event for an addition of a local domain hole to a variable */
282  SCIP_EVENT** event, /**< pointer to store the event */
283  BMS_BLKMEM* blkmem, /**< block memory */
284  SCIP_VAR* var, /**< variable whose bound changed */
285  SCIP_Real left, /**< left bound of open interval in new hole */
286  SCIP_Real right /**< right bound of open interval in new hole */
287  );
288 
289 /** creates an event for removing a local domain hole of a variable */
291  SCIP_EVENT** event, /**< pointer to store the event */
292  BMS_BLKMEM* blkmem, /**< block memory */
293  SCIP_VAR* var, /**< variable whose bound changed */
294  SCIP_Real left, /**< left bound of open interval in hole */
295  SCIP_Real right /**< right bound of open interval in hole */
296  );
297 
298 /** creates an event for an addition to the variable's implications list, clique or variable bounds information */
299 extern
301  SCIP_EVENT** event, /**< pointer to store the event */
302  BMS_BLKMEM* blkmem, /**< block memory */
303  SCIP_VAR* var /**< variable that was fixed */
304  );
305 
306 /** creates an event for the addition of a linear row to the separation storage */
307 extern
309  SCIP_EVENT** event, /**< pointer to store the event */
310  BMS_BLKMEM* blkmem, /**< block memory */
311  SCIP_ROW* row /**< row that was added to the separation storage*/
312  );
313 
314 /** creates an event for the deletion of a linear row from the separation storage */
315 extern
317  SCIP_EVENT** event, /**< pointer to store the event */
318  BMS_BLKMEM* blkmem, /**< block memory */
319  SCIP_ROW* row /**< row that was deleted from the separation storage */
320  );
321 
322 /** creates an event for the addition of a linear row to the LP */
323 extern
325  SCIP_EVENT** event, /**< pointer to store the event */
326  BMS_BLKMEM* blkmem, /**< block memory */
327  SCIP_ROW* row /**< row that was added to the LP */
328  );
329 
330 /** creates an event for the deletion of a linear row from the LP */
331 extern
333  SCIP_EVENT** event, /**< pointer to store the event */
334  BMS_BLKMEM* blkmem, /**< block memory */
335  SCIP_ROW* row /**< row that was deleted from the LP */
336  );
337 
338 /** creates an event for the change of a coefficient in a linear row */
339 extern
341  SCIP_EVENT** event, /**< pointer to store the event */
342  BMS_BLKMEM* blkmem, /**< block memory */
343  SCIP_ROW* row, /**< row in which a coefficient changed */
344  SCIP_COL* col, /**< column which coefficient changed */
345  SCIP_Real oldval, /**< old value of coefficient */
346  SCIP_Real newval /**< new value of coefficient */
347  );
348 
349 /** creates an event for the change of a constant in a linear row */
350 extern
352  SCIP_EVENT** event, /**< pointer to store the event */
353  BMS_BLKMEM* blkmem, /**< block memory */
354  SCIP_ROW* row, /**< row in which the constant changed */
355  SCIP_Real oldval, /**< old value of constant */
356  SCIP_Real newval /**< new value of constant */
357  );
358 
359 /** creates an event for the change of a side of a linear row */
360 extern
362  SCIP_EVENT** event, /**< pointer to store the event */
363  BMS_BLKMEM* blkmem, /**< block memory */
364  SCIP_ROW* row, /**< row which side has changed */
365  SCIP_SIDETYPE side, /**< which side has changed */
366  SCIP_Real oldval, /**< old value of side */
367  SCIP_Real newval /**< new value of side */
368  );
369 
370 /** frees an event */
371 extern
373  SCIP_EVENT** event, /**< event to free */
374  BMS_BLKMEM* blkmem /**< block memory buffer */
375  );
376 
377 /** sets type of event */
378 extern
380  SCIP_EVENT* event, /**< event */
381  SCIP_EVENTTYPE eventtype /**< new event type */
382  );
383 
384 /** sets variable for a variable event */
385 extern
387  SCIP_EVENT* event, /**< event */
388  SCIP_VAR* var /**< new variable */
389  );
390 
391 /** sets node for a node or LP event */
392 extern
394  SCIP_EVENT* event, /**< event */
395  SCIP_NODE* node /**< new node */
396  );
397 
398 /** sets solution for a primal solution event */
399 extern
401  SCIP_EVENT* event, /**< event */
402  SCIP_SOL* sol /**< new primal solution */
403  );
404 
405 /** processes event by calling the appropriate event handlers */
406 extern
408  SCIP_EVENT* event, /**< event */
409  SCIP_SET* set, /**< global SCIP settings */
410  SCIP_PRIMAL* primal, /**< primal data; only needed for objchanged events, or NULL */
411  SCIP_LP* lp, /**< current LP data; only needed for obj/boundchanged events, or NULL */
412  SCIP_BRANCHCAND* branchcand, /**< branching candidate storage; only needed for bound change events, or NULL */
413  SCIP_EVENTFILTER* eventfilter /**< event filter for global events; not needed for variable specific events */
414  );
415 
416 
417 
418 /*
419  * Event filter methods
420  */
421 
422 /** creates an event filter */
423 extern
425  SCIP_EVENTFILTER** eventfilter, /**< pointer to store the event filter */
426  BMS_BLKMEM* blkmem /**< block memory buffer */
427  );
428 
429 /** frees an event filter and the associated event data entries */
430 extern
432  SCIP_EVENTFILTER** eventfilter, /**< pointer to store the event filter */
433  BMS_BLKMEM* blkmem, /**< block memory buffer */
434  SCIP_SET* set /**< global SCIP settings */
435  );
436 
437 /** adds element to event filter */
438 extern
440  SCIP_EVENTFILTER* eventfilter, /**< event filter */
441  BMS_BLKMEM* blkmem, /**< block memory buffer */
442  SCIP_SET* set, /**< global SCIP settings */
443  SCIP_EVENTTYPE eventtype, /**< event type to catch */
444  SCIP_EVENTHDLR* eventhdlr, /**< event handler to call for the event processing */
445  SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler for the event processing */
446  int* filterpos /**< pointer to store position of event filter entry, or NULL */
447  );
448 
449 /** deletes element from event filter */
450 extern
452  SCIP_EVENTFILTER* eventfilter, /**< event filter */
453  BMS_BLKMEM* blkmem, /**< block memory buffer */
454  SCIP_SET* set, /**< global SCIP settings */
455  SCIP_EVENTTYPE eventtype, /**< event type */
456  SCIP_EVENTHDLR* eventhdlr, /**< event handler to call for the event processing */
457  SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler for the event processing */
458  int filterpos /**< position of event filter entry, or -1 if unknown */
459  );
460 
461 /** processes the event with all event handlers with matching filter setting */
462 extern
464  SCIP_EVENTFILTER* eventfilter, /**< event filter */
465  SCIP_SET* set, /**< global SCIP settings */
466  SCIP_EVENT* event /**< event to process */
467  );
468 
469 
470 
471 /*
472  * Event queue methods
473  */
474 
475 /** creates an event queue */
476 extern
478  SCIP_EVENTQUEUE** eventqueue /**< pointer to store the event queue */
479  );
480 
481 /** frees event queue; there must not be any unprocessed events in the queue! */
482 extern
484  SCIP_EVENTQUEUE** eventqueue /**< pointer to the event queue */
485  );
486 
487 /** processes event or adds event to the event queue */
488 extern
490  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
491  BMS_BLKMEM* blkmem, /**< block memory buffer */
492  SCIP_SET* set, /**< global SCIP settings */
493  SCIP_PRIMAL* primal, /**< primal data; only needed for objchanged events, or NULL */
494  SCIP_LP* lp, /**< current LP data; only needed for obj/boundchanged events, or NULL */
495  SCIP_BRANCHCAND* branchcand, /**< branching candidate storage; only needed for bound change events, or NULL */
496  SCIP_EVENTFILTER* eventfilter, /**< event filter for global events; not needed for variable specific events */
497  SCIP_EVENT** event /**< pointer to event to add to the queue; will be NULL after queue addition */
498  );
499 
500 /** marks queue to delay incoming events until a call to SCIPeventqueueProcess() */
501 extern
503  SCIP_EVENTQUEUE* eventqueue /**< event queue */
504  );
505 
506 /** processes all events in the queue */
507 extern
509  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
510  BMS_BLKMEM* blkmem, /**< block memory buffer */
511  SCIP_SET* set, /**< global SCIP settings */
512  SCIP_PRIMAL* primal, /**< primal data */
513  SCIP_LP* lp, /**< current LP data */
514  SCIP_BRANCHCAND* branchcand, /**< branching candidate storage */
515  SCIP_EVENTFILTER* eventfilter /**< event filter for global (not variable dependent) events */
516  );
517 
518 /** returns TRUE iff events of the queue are delayed until the next SCIPeventqueueProcess() call */
519 extern
521  SCIP_EVENTQUEUE* eventqueue /**< event queue */
522  );
523 
524 #ifdef __cplusplus
525 }
526 #endif
527 
528 #endif
void SCIPeventhdlrSetDelete(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTDELETE((*eventdelete)))
Definition: event.c:375
#define SCIP_DECL_EVENTDELETE(x)
Definition: type_event.h:211
#define SCIP_DECL_EVENTEXIT(x)
Definition: type_event.h:180
SCIP_RETCODE SCIPeventfilterDel(SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
Definition: event.c:1808
SCIP_RETCODE SCIPeventCreateRowAddedLP(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:781
SCIP_RETCODE SCIPeventqueueProcess(SCIP_EVENTQUEUE *eventqueue, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)
Definition: event.c:2307
SCIP_RETCODE SCIPeventChgNode(SCIP_EVENT *event, SCIP_NODE *node)
Definition: event.c:1161
SCIP_RETCODE SCIPeventhdlrExit(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:170
SCIP_RETCODE SCIPeventCreateRowConstChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_Real oldval, SCIP_Real newval)
Definition: event.c:844
SCIP_RETCODE SCIPeventProcess(SCIP_EVENT *event, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)
Definition: event.c:1418
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)
Definition: event.c:2057
void SCIPeventhdlrSetInit(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINIT((*eventinit)))
Definition: event.c:331
SCIP_RETCODE SCIPeventCreateUbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:610
struct SCIP_EventhdlrData SCIP_EVENTHDLRDATA
Definition: type_event.h:129
SCIP_RETCODE SCIPeventhdlrInit(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:134
SCIP_RETCODE SCIPeventCreateLholeAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:680
SCIP_RETCODE SCIPeventqueueDelay(SCIP_EVENTQUEUE *eventqueue)
Definition: event.c:2292
SCIP_RETCODE SCIPeventfilterCreate(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem)
Definition: event.c:1650
SCIP_RETCODE SCIPeventhdlrFree(SCIP_EVENTHDLR **eventhdlr, SCIP_SET *set)
Definition: event.c:106
void SCIPeventhdlrSetCopy(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTCOPY((*eventcopy)))
Definition: event.c:309
datastructures for managing events
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
void SCIPeventhdlrSetInitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINITSOL((*eventinitsol)))
Definition: event.c:353
type definitions for global SCIP settings
SCIP_RETCODE SCIPeventfilterAdd(SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
Definition: event.c:1715
SCIP_RETCODE SCIPeventhdlrCreate(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)
Definition: event.c:64
SCIP_RETCODE SCIPeventChgType(SCIP_EVENT *event, SCIP_EVENTTYPE eventtype)
Definition: event.c:927
SCIP_RETCODE SCIPeventChgVar(SCIP_EVENT *event, SCIP_VAR *var)
Definition: event.c:996
type definitions for return codes for SCIP methods
SCIP_RETCODE SCIPeventCreateRowDeletedLP(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:800
void SCIPeventhdlrEnableOrDisableClocks(SCIP_EVENTHDLR *eventhdlr, SCIP_Bool enable)
Definition: event.c:396
SCIP_RETCODE SCIPeventCreateImplAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:724
SCIP_RETCODE SCIPeventCreateObjChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: event.c:515
#define SCIP_DECL_EVENTEXEC(x)
Definition: type_event.h:226
type definitions for branching rules
#define SCIP_DECL_EVENTFREE(x)
Definition: type_event.h:164
SCIP_RETCODE SCIPeventqueueCreate(SCIP_EVENTQUEUE **eventqueue)
Definition: event.c:2001
SCIP_RETCODE SCIPeventqueueFree(SCIP_EVENTQUEUE **eventqueue)
Definition: event.c:2017
type definitions for LP management
SCIP_RETCODE SCIPeventChgSol(SCIP_EVENT *event, SCIP_SOL *sol)
Definition: event.c:1198
SCIP_RETCODE SCIPeventhdlrInitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:200
void SCIPeventhdlrSetFree(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTFREE((*eventfree)))
Definition: event.c:320
SCIP_RETCODE SCIPeventCreateVarAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:436
SCIP_RETCODE SCIPeventCreateGlbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:538
#define SCIP_DECL_EVENTINIT(x)
Definition: type_event.h:172
struct SCIP_EventData SCIP_EVENTDATA
Definition: type_event.h:146
SCIP_RETCODE SCIPeventCreateVarFixed(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:472
#define SCIP_DECL_EVENTEXITSOL(x)
Definition: type_event.h:202
type definitions for problem variables
SCIP_RETCODE SCIPeventCreateRowDeletedSepa(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:762
type definitions for managing events
unsigned int SCIP_EVENTTYPE
Definition: type_event.h:125
SCIP_RETCODE SCIPeventCreateRowSideChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_SIDETYPE side, SCIP_Real oldval, SCIP_Real newval)
Definition: event.c:867
SCIP_RETCODE SCIPeventCreateGholeRemoved(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:658
#define SCIP_Bool
Definition: def.h:53
void SCIPeventhdlrSetExit(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXIT((*eventexit)))
Definition: event.c:342
SCIP_RETCODE SCIPeventCreateLbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:584
SCIP_RETCODE SCIPeventCreateRowCoefChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_COL *col, SCIP_Real oldval, SCIP_Real newval)
Definition: event.c:819
SCIP_RETCODE SCIPeventCreateLholeRemoved(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:702
SCIP_RETCODE SCIPeventfilterFree(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set)
Definition: event.c:1675
SCIP_RETCODE SCIPeventCreateGholeAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:636
type definitions for storing primal CIP solutions
public methods for managing events
SCIP_RETCODE SCIPeventfilterProcess(SCIP_EVENTFILTER *eventfilter, SCIP_SET *set, SCIP_EVENT *event)
Definition: event.c:1911
#define SCIP_DECL_EVENTINITSOL(x)
Definition: type_event.h:191
SCIP_RETCODE SCIPeventCreateVarDeleted(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:454
SCIP_RETCODE SCIPeventhdlrExitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:224
SCIP_RETCODE SCIPeventhdlrExec(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set, SCIP_EVENT *event, SCIP_EVENTDATA *eventdata)
Definition: event.c:248
#define SCIP_Real
Definition: def.h:127
SCIP_RETCODE SCIPeventFree(SCIP_EVENT **event, BMS_BLKMEM *blkmem)
Definition: event.c:892
#define SCIP_DECL_EVENTCOPY(x)
Definition: type_event.h:156
SCIP_RETCODE SCIPeventCreateRowAddedSepa(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:743
type definitions for collecting primal CIP solutions and primal informations
common defines and data types used in all packages of SCIP
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:392
SCIP_Bool SCIPeventqueueIsDelayed(SCIP_EVENTQUEUE *eventqueue)
Definition: event.c:2379
SCIP_RETCODE SCIPeventCreateGubChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:561
SCIP_RETCODE SCIPeventhdlrCopyInclude(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:45
SCIP_RETCODE SCIPeventCreateVarUnlocked(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:494
void SCIPeventhdlrSetExitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXITSOL((*eventexitsol)))
Definition: event.c:364
memory allocation routines
enum SCIP_SideType SCIP_SIDETYPE
Definition: type_lp.h:58