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-2025 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file event.h
26 * @brief internal methods for managing events
27 * @author Tobias Achterberg
28 */
29
30/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
31
32#ifndef __SCIP_EVENT_H__
33#define __SCIP_EVENT_H__
34
35
36#include "scip/def.h"
38#include "scip/type_retcode.h"
39#include "scip/type_set.h"
40#include "scip/type_event.h"
41#include "scip/type_lp.h"
42#include "scip/type_var.h"
43#include "scip/type_sol.h"
44#include "scip/type_primal.h"
45#include "scip/type_branch.h"
46#include "scip/pub_event.h"
47
48/* In optimized mode, some function calls are overwritten by defines to reduce the number of function calls and
49 * speed up the algorithms. For this, we need to include struct_event.h.
50 */
51#ifdef NDEBUG
52#include "scip/struct_event.h"
53#endif
54
55#ifdef __cplusplus
56extern "C" {
57#endif
58
59/*
60 * Event handler methods
61 */
62
63/** copies the given event handler to a new scip */
65 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
66 SCIP_SET* set /**< SCIP_SET of SCIP to copy to */
67 );
68
69/** creates an event handler */
71 SCIP_EVENTHDLR** eventhdlr, /**< pointer to event handler data structure */
72 SCIP_SET* set, /**< global SCIP settings */
73 const char* name, /**< name of event handler */
74 const char* desc, /**< description of event handler */
75 SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */
76 SCIP_DECL_EVENTFREE ((*eventfree)), /**< destructor of event handler */
77 SCIP_DECL_EVENTINIT ((*eventinit)), /**< initialize event handler */
78 SCIP_DECL_EVENTEXIT ((*eventexit)), /**< deinitialize event handler */
79 SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */
80 SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */
81 SCIP_DECL_EVENTDELETE ((*eventdelete)), /**< free specific event data */
82 SCIP_DECL_EVENTEXEC ((*eventexec)), /**< execute event handler */
83 SCIP_EVENTHDLRDATA* eventhdlrdata /**< event handler data */
84 );
85
86/** calls destructor and frees memory of event handler */
88 SCIP_EVENTHDLR** eventhdlr, /**< pointer to event handler data structure */
89 SCIP_SET* set /**< global SCIP settings */
90 );
91
92/** initializes event handler */
94 SCIP_EVENTHDLR* eventhdlr, /**< event handler for this event */
95 SCIP_SET* set /**< global SCIP settings */
96 );
97
98/** calls exit method of event handler */
100 SCIP_EVENTHDLR* eventhdlr, /**< event handler for this event */
101 SCIP_SET* set /**< global SCIP settings */
102 );
103
104/** informs event handler that the branch and bound process is being started */
106 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
107 SCIP_SET* set /**< global SCIP settings */
108 );
109
110/** informs event handler that the branch and bound process data is being freed */
112 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
113 SCIP_SET* set /**< global SCIP settings */
114 );
115
116/** calls execution method of event handler */
118 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
119 SCIP_SET* set, /**< global SCIP settings */
120 SCIP_EVENT* event, /**< event to call event handler with */
121 SCIP_EVENTDATA* eventdata /**< user data for the issued event */
122 );
123
124/**
125 * callback setter methods of event handlers
126 */
127/** sets copy callback for all events of this event handler */
129 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
130 SCIP_DECL_EVENTCOPY ((*eventcopy)) /**< copy callback for events */
131 );
132
133/** sets destructor callback of this event handler */
135 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
136 SCIP_DECL_EVENTFREE ((*eventfree)) /**< destructor callback of event handler */
137 );
138
139/** sets initialization callback of this event handler */
141 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
142 SCIP_DECL_EVENTINIT ((*eventinit)) /**< initialization callback of event handler */
143 );
144
145/** sets deinitialization callback of this event handler */
147 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
148 SCIP_DECL_EVENTEXIT ((*eventexit)) /**< deinitialization callback of event handler */
149 );
150
151/** sets solving process initialization callback of this event handler */
153 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
154 SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */
155 );
156
157/** sets solving process deinitialization callback of this event handler */
159 SCIP_EVENTHDLR* eventhdlr, /**< event handler */
160 SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */
161 );
162
163/** sets callback to free specific event data */
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 */
171 SCIP_EVENTHDLR* eventhdlr, /**< the event handler for which all clocks should be enabled or disabled */
172 SCIP_Bool enable /**< should the clocks of the event handler be enabled? */
173 );
174
175/*
176 * Event methods
177 */
178
179/** creates a synchronization event */
181 SCIP_EVENT** event, /**< pointer to store the event */
182 BMS_BLKMEM* blkmem /**< block memory */
183 );
184
185/** creates an event for an addition of a variable to the problem */
187 SCIP_EVENT** event, /**< pointer to store the event */
188 BMS_BLKMEM* blkmem, /**< block memory */
189 SCIP_VAR* var /**< variable that was added to the problem */
190 );
191
192/** creates an event for a deletion of a variable from the problem */
194 SCIP_EVENT** event, /**< pointer to store the event */
195 BMS_BLKMEM* blkmem, /**< block memory */
196 SCIP_VAR* var /**< variable that is to be deleted from the problem */
197 );
198
199/** creates an event for a fixing of a variable */
201 SCIP_EVENT** event, /**< pointer to store the event */
202 BMS_BLKMEM* blkmem, /**< block memory */
203 SCIP_VAR* var /**< variable that was fixed */
204 );
205
206/** creates an event for a change in the number of locks of a variable down to zero or one */
208 SCIP_EVENT** event, /**< pointer to store the event */
209 BMS_BLKMEM* blkmem, /**< block memory */
210 SCIP_VAR* var /**< variable that changed the number of locks */
211 );
212
213/** creates an event for a change in the objective value of a variable */
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 */
224 SCIP_EVENT** event, /**< pointer to store the event */
225 BMS_BLKMEM* blkmem, /**< block memory */
226 SCIP_VAR* var, /**< variable whose bound changed */
227 SCIP_Real oldbound, /**< old bound before bound changed */
228 SCIP_Real newbound /**< new bound after bound changed */
229 );
230
231/** creates an event for a change in the global upper bound of a variable */
233 SCIP_EVENT** event, /**< pointer to store the event */
234 BMS_BLKMEM* blkmem, /**< block memory */
235 SCIP_VAR* var, /**< variable whose bound changed */
236 SCIP_Real oldbound, /**< old bound before bound changed */
237 SCIP_Real newbound /**< new bound after bound changed */
238 );
239
240/** creates an event for a change in the lower bound of a variable */
242 SCIP_EVENT** event, /**< pointer to store the event */
243 BMS_BLKMEM* blkmem, /**< block memory */
244 SCIP_VAR* var, /**< variable whose bound changed */
245 SCIP_Real oldbound, /**< old bound before bound changed */
246 SCIP_Real newbound /**< new bound after bound changed */
247 );
248
249/** creates an event for a change in the upper bound of a variable */
251 SCIP_EVENT** event, /**< pointer to store the event */
252 BMS_BLKMEM* blkmem, /**< block memory */
253 SCIP_VAR* var, /**< variable whose bound changed */
254 SCIP_Real oldbound, /**< old bound before bound changed */
255 SCIP_Real newbound /**< new bound after bound changed */
256 );
257
258/** adds the data for the exact changes to existing bound event */
260 SCIP_EVENT* event, /**< the event */
261 BMS_BLKMEM* blkmem, /**< block memory */
262 SCIP_RATIONAL* oldbound, /**< old bound before bound changed */
263 SCIP_RATIONAL* newbound /**< new bound after bound changed */
264 );
265
266/** adds the data for the exact changes to existing obj event */
268 SCIP_EVENT* event, /**< the event */
269 BMS_BLKMEM* blkmem, /**< block memory */
270 SCIP_RATIONAL* oldobj, /**< old obj before change */
271 SCIP_RATIONAL* newobj /**< new obj after change */
272 );
273
274/** creates an event for an addition of a global domain hole to a variable */
276 SCIP_EVENT** event, /**< pointer to store the event */
277 BMS_BLKMEM* blkmem, /**< block memory */
278 SCIP_VAR* var, /**< variable whose bound changed */
279 SCIP_Real left, /**< left bound of open interval in new hole */
280 SCIP_Real right /**< right bound of open interval in new hole */
281 );
282
283/** creates an event for removing a global domain hole of a variable */
285 SCIP_EVENT** event, /**< pointer to store the event */
286 BMS_BLKMEM* blkmem, /**< block memory */
287 SCIP_VAR* var, /**< variable whose bound changed */
288 SCIP_Real left, /**< left bound of open interval in hole */
289 SCIP_Real right /**< right bound of open interval in hole */
290 );
291
292/** creates an event for an addition of a local domain hole to a variable */
294 SCIP_EVENT** event, /**< pointer to store the event */
295 BMS_BLKMEM* blkmem, /**< block memory */
296 SCIP_VAR* var, /**< variable whose bound changed */
297 SCIP_Real left, /**< left bound of open interval in new hole */
298 SCIP_Real right /**< right bound of open interval in new hole */
299 );
300
301/** creates an event for removing a local domain hole of a variable */
303 SCIP_EVENT** event, /**< pointer to store the event */
304 BMS_BLKMEM* blkmem, /**< block memory */
305 SCIP_VAR* var, /**< variable whose bound changed */
306 SCIP_Real left, /**< left bound of open interval in hole */
307 SCIP_Real right /**< right bound of open interval in hole */
308 );
309
310/** creates an event for an addition to the variable's implications list, clique or variable bounds information */
312 SCIP_EVENT** event, /**< pointer to store the event */
313 BMS_BLKMEM* blkmem, /**< block memory */
314 SCIP_VAR* var /**< variable that was fixed */
315 );
316
317/** creates an event for changing the type of a variable */
319 SCIP_EVENT** event, /**< pointer to store the event */
320 BMS_BLKMEM* blkmem, /**< block memory */
321 SCIP_VAR* var, /**< variable whose type changed */
322 SCIP_VARTYPE oldtype, /**< old variable type */
323 SCIP_VARTYPE newtype /**< new variable type */
324 );
325
326/** creates an event for changing the implied integral type of a variable */
328 SCIP_EVENT** event, /**< pointer to store the event */
329 BMS_BLKMEM* blkmem, /**< block memory */
330 SCIP_VAR* var, /**< variable whose implied type changed */
331 SCIP_IMPLINTTYPE oldtype, /**< old variable implied type */
332 SCIP_IMPLINTTYPE newtype /**< new variable implied type */
333);
334
335/** creates an event for the addition of a linear row to the separation storage */
337 SCIP_EVENT** event, /**< pointer to store the event */
338 BMS_BLKMEM* blkmem, /**< block memory */
339 SCIP_ROW* row /**< row that was added to the separation storage*/
340 );
341
342/** creates an event for the deletion of a linear row from the separation storage */
344 SCIP_EVENT** event, /**< pointer to store the event */
345 BMS_BLKMEM* blkmem, /**< block memory */
346 SCIP_ROW* row /**< row that was deleted from the separation storage */
347 );
348
349/** creates an event for the addition of a linear row to the LP */
351 SCIP_EVENT** event, /**< pointer to store the event */
352 BMS_BLKMEM* blkmem, /**< block memory */
353 SCIP_ROW* row /**< row that was added to the LP */
354 );
355
356/** creates an event for the deletion of a linear row from the LP */
358 SCIP_EVENT** event, /**< pointer to store the event */
359 BMS_BLKMEM* blkmem, /**< block memory */
360 SCIP_ROW* row /**< row that was deleted from the LP */
361 );
362
363/** creates an event for the change of a coefficient in a linear row */
365 SCIP_EVENT** event, /**< pointer to store the event */
366 BMS_BLKMEM* blkmem, /**< block memory */
367 SCIP_ROW* row, /**< row in which a coefficient changed */
368 SCIP_COL* col, /**< column which coefficient changed */
369 SCIP_Real oldval, /**< old value of coefficient */
370 SCIP_Real newval /**< new value of coefficient */
371 );
372
373/** creates an event for the change of a constant in a linear row */
375 SCIP_EVENT** event, /**< pointer to store the event */
376 BMS_BLKMEM* blkmem, /**< block memory */
377 SCIP_ROW* row, /**< row in which the constant changed */
378 SCIP_Real oldval, /**< old value of constant */
379 SCIP_Real newval /**< new value of constant */
380 );
381
382/** creates an event for the change of a side of a linear row */
384 SCIP_EVENT** event, /**< pointer to store the event */
385 BMS_BLKMEM* blkmem, /**< block memory */
386 SCIP_ROW* row, /**< row which side has changed */
387 SCIP_SIDETYPE side, /**< which side has changed */
388 SCIP_Real oldval, /**< old value of side */
389 SCIP_Real newval /**< new value of side */
390 );
391
392/** frees an event */
394 SCIP_EVENT** event, /**< event to free */
395 BMS_BLKMEM* blkmem /**< block memory buffer */
396 );
397
398/** sets type of event */
400 SCIP_EVENT* event, /**< event */
401 SCIP_EVENTTYPE eventtype /**< new event type */
402 );
403
404/** sets variable for a variable event */
406 SCIP_EVENT* event, /**< event */
407 SCIP_VAR* var /**< new variable */
408 );
409
410/** sets node for a node or LP event */
412 SCIP_EVENT* event, /**< event */
413 SCIP_NODE* node /**< new node */
414 );
415
416/** sets solution for a primal solution event */
418 SCIP_EVENT* event, /**< event */
419 SCIP_SOL* sol /**< new primal solution */
420 );
421
422/** processes event by calling the appropriate event handlers */
424 SCIP_EVENT* event, /**< event */
425 SCIP_SET* set, /**< global SCIP settings */
426 SCIP_PRIMAL* primal, /**< primal data; only needed for objchanged events, or NULL */
427 SCIP_LP* lp, /**< current LP data; only needed for obj/boundchanged events, or NULL */
428 SCIP_BRANCHCAND* branchcand, /**< branching candidate storage; only needed for bound change events, or NULL */
429 SCIP_EVENTFILTER* eventfilter /**< event filter for global events; not needed for variable specific events */
430 );
431
432
433
434/*
435 * Event filter methods
436 */
437
438/** creates an event filter */
440 SCIP_EVENTFILTER** eventfilter, /**< pointer to store the event filter */
441 BMS_BLKMEM* blkmem /**< block memory buffer */
442 );
443
444/** frees an event filter and the associated event data entries */
446 SCIP_EVENTFILTER** eventfilter, /**< pointer to store the event filter */
447 BMS_BLKMEM* blkmem, /**< block memory buffer */
448 SCIP_SET* set /**< global SCIP settings */
449 );
450
451/** adds element to event filter */
453 SCIP_EVENTFILTER* eventfilter, /**< event filter */
454 BMS_BLKMEM* blkmem, /**< block memory buffer */
455 SCIP_SET* set, /**< global SCIP settings */
456 SCIP_EVENTTYPE eventtype, /**< event type to catch */
457 SCIP_EVENTHDLR* eventhdlr, /**< event handler to call for the event processing */
458 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler for the event processing */
459 int* filterpos /**< pointer to store position of event filter entry, or NULL */
460 );
461
462/** deletes element from event filter */
464 SCIP_EVENTFILTER* eventfilter, /**< event filter */
465 BMS_BLKMEM* blkmem, /**< block memory buffer */
466 SCIP_SET* set, /**< global SCIP settings */
467 SCIP_EVENTTYPE eventtype, /**< event type */
468 SCIP_EVENTHDLR* eventhdlr, /**< event handler to call for the event processing */
469 SCIP_EVENTDATA* eventdata, /**< event data to pass to the event handler for the event processing */
470 int filterpos /**< position of event filter entry, or -1 if unknown */
471 );
472
473/** processes the event with all event handlers with matching filter setting */
475 SCIP_EVENTFILTER* eventfilter, /**< event filter */
476 SCIP_SET* set, /**< global SCIP settings */
477 SCIP_EVENT* event /**< event to process */
478 );
479
480
481
482/*
483 * Event queue methods
484 */
485
486/** creates an event queue */
488 SCIP_EVENTQUEUE** eventqueue /**< pointer to store the event queue */
489 );
490
491/** frees event queue; there must not be any unprocessed events in the queue! */
493 SCIP_EVENTQUEUE** eventqueue /**< pointer to the event queue */
494 );
495
496/** processes event or adds event to the event queue */
498 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
499 BMS_BLKMEM* blkmem, /**< block memory buffer */
500 SCIP_SET* set, /**< global SCIP settings */
501 SCIP_PRIMAL* primal, /**< primal data; only needed for objchanged events, or NULL */
502 SCIP_LP* lp, /**< current LP data; only needed for obj/boundchanged events, or NULL */
503 SCIP_BRANCHCAND* branchcand, /**< branching candidate storage; only needed for bound change events, or NULL */
504 SCIP_EVENTFILTER* eventfilter, /**< event filter for global events; not needed for variable specific events */
505 SCIP_EVENT** event /**< pointer to event to add to the queue; will be NULL after queue addition */
506 );
507
508/** marks queue to delay incoming events until a call to SCIPeventqueueProcess() */
510 SCIP_EVENTQUEUE* eventqueue /**< event queue */
511 );
512
513/** processes all events in the queue */
515 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
516 BMS_BLKMEM* blkmem, /**< block memory buffer */
517 SCIP_SET* set, /**< global SCIP settings */
518 SCIP_PRIMAL* primal, /**< primal data */
519 SCIP_LP* lp, /**< current LP data */
520 SCIP_BRANCHCAND* branchcand, /**< branching candidate storage */
521 SCIP_EVENTFILTER* eventfilter /**< global event filter */
522 );
523
524/** returns TRUE iff events of the queue are delayed until the next SCIPeventqueueProcess() call */
526 SCIP_EVENTQUEUE* eventqueue /**< event queue */
527 );
528
529#ifdef NDEBUG
530
531/* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
532 * speed up the algorithms.
533 */
534
535#define SCIPeventqueueIsDelayed(eventqueue) ((eventqueue)->delayevents)
536
537#endif
538
539#ifdef __cplusplus
540}
541#endif
542
543#endif
SCIP_DECL_EVENTDELETE(EventhdlrNewSol::scip_delete)
SCIP_DECL_EVENTEXEC(EventhdlrNewSol::scip_exec)
SCIP_DECL_EVENTINIT(EventhdlrNewSol::scip_init)
SCIP_DECL_EVENTINITSOL(EventhdlrNewSol::scip_initsol)
SCIP_DECL_EVENTEXIT(EventhdlrNewSol::scip_exit)
SCIP_DECL_EVENTEXITSOL(EventhdlrNewSol::scip_exitsol)
SCIP_DECL_EVENTFREE(EventhdlrNewSol::scip_free)
common defines and data types used in all packages of SCIP
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:156
SCIP_RETCODE SCIPeventhdlrCopyInclude(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:62
SCIP_RETCODE SCIPeventFree(SCIP_EVENT **event, BMS_BLKMEM *blkmem)
Definition: event.c:1168
SCIP_RETCODE SCIPeventCreateLbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:752
SCIP_RETCODE SCIPeventCreateVarFixed(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:634
SCIP_RETCODE SCIPeventhdlrInitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:318
SCIP_RETCODE SCIPeventCreateVarAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:598
SCIP_RETCODE SCIPeventCreateRowDeletedLP(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:1055
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)
Definition: event.c:195
SCIP_RETCODE SCIPeventqueueFree(SCIP_EVENTQUEUE **eventqueue)
Definition: event.c:2521
void SCIPeventhdlrSetFree(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTFREE((*eventfree)))
Definition: event.c:438
SCIP_RETCODE SCIPeventCreateGholeRemoved(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:867
SCIP_RETCODE SCIPeventhdlrExitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:342
SCIP_RETCODE SCIPeventCreateUbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:780
void SCIPeventhdlrEnableOrDisableClocks(SCIP_EVENTHDLR *eventhdlr, SCIP_Bool enable)
Definition: event.c:514
void SCIPeventhdlrSetExitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXITSOL((*eventexitsol)))
Definition: event.c:482
SCIP_RETCODE SCIPeventCreateVarUnlocked(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:656
SCIP_RETCODE SCIPeventhdlrExit(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:288
SCIP_RETCODE SCIPeventChgSol(SCIP_EVENT *event, SCIP_SOL *sol)
Definition: event.c:1584
SCIP_RETCODE SCIPeventAddExactObjChg(SCIP_EVENT *event, BMS_BLKMEM *blkmem, SCIP_RATIONAL *oldobj, SCIP_RATIONAL *newobj)
Definition: event.c:827
void SCIPeventhdlrSetInitsol(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINITSOL((*eventinitsol)))
Definition: event.c:471
SCIP_RETCODE SCIPeventCreateObjChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: event.c:677
SCIP_RETCODE SCIPeventChgNode(SCIP_EVENT *event, SCIP_NODE *node)
Definition: event.c:1547
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:2561
SCIP_RETCODE SCIPeventhdlrFree(SCIP_EVENTHDLR **eventhdlr, SCIP_SET *set)
Definition: event.c:221
SCIP_RETCODE SCIPeventfilterFree(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set)
Definition: event.c:2167
SCIP_RETCODE SCIPeventCreateRowSideChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_SIDETYPE side, SCIP_Real oldval, SCIP_Real newval)
Definition: event.c:1122
SCIP_RETCODE SCIPeventCreateRowAddedSepa(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:998
SCIP_Bool SCIPeventqueueIsDelayed(SCIP_EVENTQUEUE *eventqueue)
Definition: event.c:2933
SCIP_RETCODE SCIPeventAddExactBdChg(SCIP_EVENT *event, BMS_BLKMEM *blkmem, SCIP_RATIONAL *oldbound, SCIP_RATIONAL *newbound)
Definition: event.c:808
SCIP_RETCODE SCIPeventCreateGholeAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:845
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:2861
SCIP_RETCODE SCIPeventCreateRowDeletedSepa(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:1017
void SCIPeventhdlrSetCopy(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTCOPY((*eventcopy)))
Definition: event.c:427
SCIP_RETCODE SCIPeventCreateLholeAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:889
void SCIPeventhdlrSetInit(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINIT((*eventinit)))
Definition: event.c:449
SCIP_RETCODE SCIPeventhdlrInit(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set)
Definition: event.c:252
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:2300
SCIP_RETCODE SCIPeventfilterCreate(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem)
Definition: event.c:2142
void SCIPeventhdlrSetDelete(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTDELETE((*eventdelete)))
Definition: event.c:493
void SCIPeventhdlrSetExit(SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXIT((*eventexit)))
Definition: event.c:460
SCIP_RETCODE SCIPeventhdlrExec(SCIP_EVENTHDLR *eventhdlr, SCIP_SET *set, SCIP_EVENT *event, SCIP_EVENTDATA *eventdata)
Definition: event.c:366
SCIP_RETCODE SCIPeventChgVar(SCIP_EVENT *event, SCIP_VAR *var)
Definition: event.c:1281
SCIP_RETCODE SCIPeventCreateRowConstChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_Real oldval, SCIP_Real newval)
Definition: event.c:1099
SCIP_RETCODE SCIPeventProcess(SCIP_EVENT *event, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)
Definition: event.c:1804
SCIP_RETCODE SCIPeventCreateSync(SCIP_EVENT **event, BMS_BLKMEM *blkmem)
Definition: event.c:555
SCIP_RETCODE SCIPeventCreateImplAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:933
SCIP_RETCODE SCIPeventChgType(SCIP_EVENT *event, SCIP_EVENTTYPE eventtype)
Definition: event.c:1204
SCIP_RETCODE SCIPeventqueueCreate(SCIP_EVENTQUEUE **eventqueue)
Definition: event.c:2505
SCIP_RETCODE SCIPeventfilterProcess(SCIP_EVENTFILTER *eventfilter, SCIP_SET *set, SCIP_EVENT *event)
Definition: event.c:2403
SCIP_RETCODE SCIPeventCreateImplTypeChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_IMPLINTTYPE oldtype, SCIP_IMPLINTTYPE newtype)
Definition: event.c:975
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:2207
SCIP_RETCODE SCIPeventCreateVarDeleted(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
Definition: event.c:616
SCIP_RETCODE SCIPeventCreateRowCoefChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row, SCIP_COL *col, SCIP_Real oldval, SCIP_Real newval)
Definition: event.c:1074
SCIP_RETCODE SCIPeventCreateGubChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:727
SCIP_RETCODE SCIPeventCreateGlbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
Definition: event.c:702
SCIP_RETCODE SCIPeventqueueDelay(SCIP_EVENTQUEUE *eventqueue)
Definition: event.c:2846
SCIP_RETCODE SCIPeventCreateLholeRemoved(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
Definition: event.c:911
SCIP_RETCODE SCIPeventCreateTypeChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_VARTYPE oldtype, SCIP_VARTYPE newtype)
Definition: event.c:952
SCIP_RETCODE SCIPeventCreateRowAddedLP(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_ROW *row)
Definition: event.c:1036
memory allocation routines
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:437
public methods for managing events
datastructures for managing events
Definition: heur_padm.c:135
type definitions for branching rules
type definitions for managing events
struct SCIP_EventData SCIP_EVENTDATA
Definition: type_event.h:179
struct SCIP_EventhdlrData SCIP_EVENTHDLRDATA
Definition: type_event.h:160
#define SCIP_DECL_EVENTCOPY(x)
Definition: type_event.h:189
uint64_t SCIP_EVENTTYPE
Definition: type_event.h:156
type definitions for LP management
enum SCIP_SideType SCIP_SIDETYPE
Definition: type_lp.h:68
type definitions for collecting primal CIP solutions and primal informations
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63
type definitions for global SCIP settings
type definitions for storing primal CIP solutions
type definitions for problem variables
enum SCIP_ImplintType SCIP_IMPLINTTYPE
Definition: type_var.h:117
enum SCIP_Vartype SCIP_VARTYPE
Definition: type_var.h:73