Scippy

SCIP

Solving Constraint Integer Programs

pub_cons.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-2017 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 pub_cons.h
17  * @ingroup PUBLICCOREAPI
18  * @brief public methods for managing constraints
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PUB_CONS_H__
25 #define __SCIP_PUB_CONS_H__
26 
27 
28 #include "scip/def.h"
29 #include "scip/type_misc.h"
30 #include "scip/type_cons.h"
31 
32 #ifdef NDEBUG
33 #include "scip/struct_cons.h"
34 #endif
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 /*
41  * Constraint handler methods
42  */
43 
44 /**@addtogroup PublicConshdlrMethods
45  *
46  * @{
47  */
48 
49 /** compares two constraint handlers w. r. to their separation priority */
50 extern
51 SCIP_DECL_SORTPTRCOMP(SCIPconshdlrCompSepa);
52 
53 /** compares two constraint handlers w. r. to their enforcing priority */
54 extern
55 SCIP_DECL_SORTPTRCOMP(SCIPconshdlrCompEnfo);
56 
57 /** compares two constraint handlers w. r. to their feasibility check priority */
58 extern
59 SCIP_DECL_SORTPTRCOMP(SCIPconshdlrCompCheck);
60 
61 /** gets name of constraint handler */
62 extern
63 const char* SCIPconshdlrGetName(
64  SCIP_CONSHDLR* conshdlr /**< constraint handler */
65  );
66 
67 /** gets description of constraint handler */
68 extern
69 const char* SCIPconshdlrGetDesc(
70  SCIP_CONSHDLR* conshdlr /**< constraint handler */
71  );
72 
73 /** gets user data of constraint handler */
74 extern
76  SCIP_CONSHDLR* conshdlr /**< constraint handler */
77  );
78 
79 /** sets user data of constraint handler; user has to free old data in advance! */
80 extern
82  SCIP_CONSHDLR* conshdlr, /**< constraint handler */
83  SCIP_CONSHDLRDATA* conshdlrdata /**< new constraint handler user data */
84  );
85 
86 /** sets all separation related callbacks of the constraint handler */
87 extern
89  SCIP_CONSHDLR* conshdlr, /**< constraint handler */
90  SCIP_DECL_CONSSEPALP ((*conssepalp)), /**< separate cutting planes for LP solution */
91  SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
92  int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
93  int sepapriority, /**< priority of the constraint handler for separation */
94  SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
95  );
96 
97 /** sets both the propagation callback and the propagation frequency of the constraint handler */
98 extern
100  SCIP_CONSHDLR* conshdlr, /**< constraint handler */
101  SCIP_DECL_CONSPROP ((*consprop)), /**< propagate variable domains */
102  int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
103  SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
104  SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */
105  );
106 
107 /** sets the relaxation enforcement method of the constraint handler */
108 extern
110  SCIP_CONSHDLR* conshdlr, /**< constraint handler */
111  SCIP_DECL_CONSENFORELAX ((*consenforelax)) /**< constraint copying method */
112  );
113 
114 /** gets array with constraints of constraint handler; the first SCIPconshdlrGetNActiveConss() entries are the active
115  * constraints, the last SCIPconshdlrGetNConss() - SCIPconshdlrGetNActiveConss() constraints are deactivated
116  *
117  * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local
118  * flag is TRUE) and the current node belongs to the corresponding sub tree.
119  */
120 extern
122  SCIP_CONSHDLR* conshdlr /**< constraint handler */
123  );
124 
125 /** gets array with enforced constraints of constraint handler; this is local information */
126 extern
128  SCIP_CONSHDLR* conshdlr /**< constraint handler */
129  );
130 
131 /** gets array with checked constraints of constraint handler; this is local information */
132 extern
134  SCIP_CONSHDLR* conshdlr /**< constraint handler */
135  );
136 
137 /** gets total number of existing transformed constraints of constraint handler */
138 extern
140  SCIP_CONSHDLR* conshdlr /**< constraint handler */
141  );
142 
143 /** gets number of enforced constraints of constraint handler; this is local information */
144 extern
146  SCIP_CONSHDLR* conshdlr /**< constraint handler */
147  );
148 
149 /** gets number of checked constraints of constraint handler; this is local information */
150 extern
152  SCIP_CONSHDLR* conshdlr /**< constraint handler */
153  );
154 
155 /** gets number of active constraints of constraint handler
156  *
157  * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local
158  * flag is TRUE) and the current node belongs to the corresponding sub tree.
159  */
160 extern
162  SCIP_CONSHDLR* conshdlr /**< constraint handler */
163  );
164 
165 /** gets number of enabled constraints of constraint handler */
166 extern
168  SCIP_CONSHDLR* conshdlr /**< constraint handler */
169  );
170 
171 /** gets time in seconds used for setting up this constraint handler for new stages */
172 extern
174  SCIP_CONSHDLR* conshdlr /**< constraint handler */
175  );
176 
177 /** gets time in seconds used for presolving in this constraint handler */
178 extern
180  SCIP_CONSHDLR* conshdlr /**< constraint handler */
181  );
182 
183 /** gets time in seconds used for separation in this constraint handler */
184 extern
186  SCIP_CONSHDLR* conshdlr /**< constraint handler */
187  );
188 
189 /** gets time in seconds used for LP enforcement in this constraint handler */
190 extern
192  SCIP_CONSHDLR* conshdlr /**< constraint handler */
193  );
194 
195 /** gets time in seconds used for pseudo enforcement in this constraint handler */
196 extern
198  SCIP_CONSHDLR* conshdlr /**< constraint handler */
199  );
200 
201 /** gets time in seconds used for relaxation enforcement in this constraint handler */
202 extern
204  SCIP_CONSHDLR* conshdlr /**< constraint handler */
205  );
206 
207 /** gets time in seconds used for propagation in this constraint handler */
208 extern
210  SCIP_CONSHDLR* conshdlr /**< constraint handler */
211  );
212 
213 /** gets time in seconds used for propagation in this constraint handler during strong branching */
214 extern
216  SCIP_CONSHDLR* conshdlr /**< constraint handler */
217  );
218 
219 /** gets time in seconds used for feasibility checking in this constraint handler */
220 extern
222  SCIP_CONSHDLR* conshdlr /**< constraint handler */
223  );
224 
225 /** gets time in seconds used for resolving propagation in this constraint handler */
226 extern
228  SCIP_CONSHDLR* conshdlr /**< constraint handler */
229  );
230 
231 /** gets number of calls to the constraint handler's separation method */
232 extern
234  SCIP_CONSHDLR* conshdlr /**< constraint handler */
235  );
236 
237 /** gets number of calls to the constraint handler's LP enforcing method */
238 extern
240  SCIP_CONSHDLR* conshdlr /**< constraint handler */
241  );
242 
243 /** gets number of calls to the constraint handler's pseudo enforcing method */
244 extern
246  SCIP_CONSHDLR* conshdlr /**< constraint handler */
247  );
248 
249 /** gets number of calls to the constraint handler's relaxation enforcing method */
250 extern
252  SCIP_CONSHDLR* conshdlr /**< constraint handler */
253  );
254 
255 /** gets number of calls to the constraint handler's propagation method */
256 extern
258  SCIP_CONSHDLR* conshdlr /**< constraint handler */
259  );
260 
261 /** gets number of calls to the constraint handler's checking method */
262 extern
264  SCIP_CONSHDLR* conshdlr /**< constraint handler */
265  );
266 
267 /** gets number of calls to the constraint handler's resolve propagation method */
268 extern
270  SCIP_CONSHDLR* conshdlr /**< constraint handler */
271  );
272 
273 /** gets total number of times, this constraint handler detected a cutoff */
274 extern
276  SCIP_CONSHDLR* conshdlr /**< constraint handler */
277  );
278 
279 /** gets total number of cuts found by this constraint handler */
280 extern
282  SCIP_CONSHDLR* conshdlr /**< constraint handler */
283  );
284 
285 /** gets total number of cuts found by this constraint handler applied to lp */
286 extern
288  SCIP_CONSHDLR* conshdlr /**< constraint handler */
289  );
290 
291 /** gets total number of additional constraints added by this constraint handler */
292 extern
294  SCIP_CONSHDLR* conshdlr /**< constraint handler */
295  );
296 
297 /** gets total number of domain reductions found by this constraint handler */
298 extern
300  SCIP_CONSHDLR* conshdlr /**< constraint handler */
301  );
302 
303 /** gets number of children created by this constraint handler */
304 extern
306  SCIP_CONSHDLR* conshdlr /**< constraint handler */
307  );
308 
309 /** gets maximum number of active constraints of constraint handler existing at the same time */
310 extern
312  SCIP_CONSHDLR* conshdlr /**< constraint handler */
313  );
314 
315 /** gets initial number of active constraints of constraint handler */
316 extern
318  SCIP_CONSHDLR* conshdlr /**< constraint handler */
319  );
320 
321 /** gets number of variables fixed in presolving method of constraint handler */
322 extern
324  SCIP_CONSHDLR* conshdlr /**< constraint handler */
325  );
326 
327 /** gets number of variables aggregated in presolving method of constraint handler */
328 extern
330  SCIP_CONSHDLR* conshdlr /**< constraint handler */
331  );
332 
333 /** gets number of variable types changed in presolving method of constraint handler */
334 extern
336  SCIP_CONSHDLR* conshdlr /**< constraint handler */
337  );
338 
339 /** gets number of bounds changed in presolving method of constraint handler */
340 extern
342  SCIP_CONSHDLR* conshdlr /**< constraint handler */
343  );
344 
345 /** gets number of holes added to domains of variables in presolving method of constraint handler */
346 extern
348  SCIP_CONSHDLR* conshdlr /**< constraint handler */
349  );
350 
351 /** gets number of constraints deleted in presolving method of constraint handler */
352 extern
354  SCIP_CONSHDLR* conshdlr /**< constraint handler */
355  );
356 
357 /** gets number of constraints added in presolving method of constraint handler */
358 extern
360  SCIP_CONSHDLR* conshdlr /**< constraint handler */
361  );
362 
363 /** gets number of constraints upgraded in presolving method of constraint handler */
364 extern
366  SCIP_CONSHDLR* conshdlr /**< constraint handler */
367  );
368 
369 /** gets number of coefficients changed in presolving method of constraint handler */
370 extern
372  SCIP_CONSHDLR* conshdlr /**< constraint handler */
373  );
374 
375 /** gets number of constraint sides changed in presolving method of constraint handler */
376 extern
378  SCIP_CONSHDLR* conshdlr /**< constraint handler */
379  );
380 
381 /** gets number of times the presolving method of the constraint handler was called and tried to find reductions */
382 extern
384  SCIP_CONSHDLR* conshdlr /**< constraint handler */
385  );
386 
387 /** gets separation priority of constraint handler */
388 extern
390  SCIP_CONSHDLR* conshdlr /**< constraint handler */
391  );
392 
393 /** gets enforcing priority of constraint handler */
394 extern
396  SCIP_CONSHDLR* conshdlr /**< constraint handler */
397  );
398 
399 /** gets checking priority of constraint handler */
400 extern
402  SCIP_CONSHDLR* conshdlr /**< constraint handler */
403  );
404 
405 /** gets separation frequency of constraint handler */
406 extern
408  SCIP_CONSHDLR* conshdlr /**< constraint handler */
409  );
410 
411 /** gets propagation frequency of constraint handler */
412 extern
414  SCIP_CONSHDLR* conshdlr /**< constraint handler */
415  );
416 
417 /** gets frequency of constraint handler for eager evaluations in separation, propagation and enforcement */
418 extern
420  SCIP_CONSHDLR* conshdlr /**< constraint handler */
421  );
422 
423 /** needs constraint handler a constraint to be called? */
424 extern
426  SCIP_CONSHDLR* conshdlr /**< constraint handler */
427  );
428 
429 /** does the constraint handler perform presolving? */
430 extern
432  SCIP_CONSHDLR* conshdlr /**< constraint handler */
433  );
434 
435 /** should separation method be delayed, if other separators found cuts? */
436 extern
438  SCIP_CONSHDLR* conshdlr /**< constraint handler */
439  );
440 
441 /** should propagation method be delayed, if other propagators found reductions? */
442 extern
444  SCIP_CONSHDLR* conshdlr /**< constraint handler */
445  );
446 
447 /** was LP separation method delayed at the last call? */
448 extern
450  SCIP_CONSHDLR* conshdlr /**< constraint handler */
451  );
452 
453 /** was primal solution separation method delayed at the last call? */
454 extern
456  SCIP_CONSHDLR* conshdlr /**< constraint handler */
457  );
458 
459 /** was propagation method delayed at the last call? */
460 extern
462  SCIP_CONSHDLR* conshdlr /**< constraint handler */
463  );
464 
465 /** is constraint handler initialized? */
466 extern
468  SCIP_CONSHDLR* conshdlr /**< constraint handler */
469  );
470 
471 /** does the constraint handler have a copy function? */
472 extern
474  SCIP_CONSHDLR* conshdlr /**< constraint handler */
475  );
476 
477 /** returns the timing mask of the propagation method of the constraint handler */
478 extern
480  SCIP_CONSHDLR* conshdlr /**< constraint handler */
481  );
482 
483 /*
484  * Methods for constraint change sets
485  */
486 /** gets added constraints data for a constraint set change */
487 extern
489  SCIP_CONSSETCHG* conssetchg, /**< constraint set change to get data from */
490  SCIP_CONS*** conss, /**< reference to constraints array added in the conssetchg, or NULL */
491  int* nconss /**< reference to store the size of the constraints array, or NULL */
492  );
493 
494 /** sets the timing mask of the propagation method of the constraint handler */
495 extern
497  SCIP_CONSHDLR* conshdlr, /**< constraint handler */
498  SCIP_PROPTIMING proptiming /**< timing mask to be set */
499  );
500 
501 
502 /** returns the timing mask of the presolving method of the constraint handler */
503 extern
505  SCIP_CONSHDLR* conshdlr /**< constraint handler */
506  );
507 
508 /** sets the timing mask of the presolving method of the constraint handler */
509 extern
511  SCIP_CONSHDLR* conshdlr, /**< constraint handler */
512  SCIP_PRESOLTIMING presoltiming /** timing mask to be set */
513  );
514 
515 /* @} */
516 
517 /*
518  * Constraint methods
519  */
520 
521 /**@addtogroup PublicConstraintMethods
522  *
523  * @{
524  */
525 
526 
527 /** returns the name of the constraint
528  *
529  * @note to change the name of a constraint, use SCIPchgConsName() from scip.h
530  */
531 extern
532 const char* SCIPconsGetName(
533  SCIP_CONS* cons /**< constraint */
534  );
535 
536 /** returns the position of constraint in the corresponding handler's conss array */
537 extern
538 int SCIPconsGetPos(
539  SCIP_CONS* cons /**< constraint */
540  );
541 
542 /** returns the constraint handler of the constraint */
543 extern
545  SCIP_CONS* cons /**< constraint */
546  );
547 
548 /** returns the constraint data field of the constraint */
549 extern
551  SCIP_CONS* cons /**< constraint */
552  );
553 
554 /** gets number of times, the constraint is currently captured */
555 extern
556 int SCIPconsGetNUses(
557  SCIP_CONS* cons /**< constraint */
558  );
559 
560 /** for an active constraint, returns the depth in the tree at which the constraint was activated */
561 extern
563  SCIP_CONS* cons /**< constraint */
564  );
565 
566 /** returns the depth in the tree at which the constraint is valid; returns INT_MAX, if the constraint is local
567  * and currently not active
568  */
569 extern
571  SCIP_CONS* cons /**< constraint */
572  );
573 
574 /** returns TRUE iff constraint is active in the current node */
575 extern
577  SCIP_CONS* cons /**< constraint */
578  );
579 
580 /** returns TRUE iff constraint has to be deactivated in update phase */
581 extern
583  SCIP_CONS* cons /**< constraint */
584  );
585 
586 /** returns TRUE iff constraint is enabled in the current node */
587 extern
589  SCIP_CONS* cons /**< constraint */
590  );
591 
592 /** returns TRUE iff constraint's separation is enabled in the current node */
593 extern
595  SCIP_CONS* cons /**< constraint */
596  );
597 
598 /** returns TRUE iff constraint's propagation is enabled in the current node */
599 extern
601  SCIP_CONS* cons /**< constraint */
602  );
603 
604 /** returns TRUE iff constraint is deleted or marked to be deleted */
605 extern
607  SCIP_CONS* cons /**< constraint */
608  );
609 
610 /** returns TRUE iff constraint is marked obsolete */
611 extern
613  SCIP_CONS* cons /**< constraint */
614  );
615 
616 /** returns TRUE iff constraint is marked as a conflict */
617 extern
619  SCIP_CONS* cons /**< constraint */
620  );
621 
622 /** gets age of constraint */
623 extern
625  SCIP_CONS* cons /**< constraint */
626  );
627 
628 /** returns TRUE iff the LP relaxation of constraint should be in the initial LP */
629 extern
631  SCIP_CONS* cons /**< constraint */
632  );
633 
634 /** returns TRUE iff constraint should be separated during LP processing */
635 extern
637  SCIP_CONS* cons /**< constraint */
638  );
639 
640 /** returns TRUE iff constraint should be enforced during node processing */
641 extern
643  SCIP_CONS* cons /**< constraint */
644  );
645 
646 /** returns TRUE iff constraint should be checked for feasibility */
647 extern
649  SCIP_CONS* cons /**< constraint */
650  );
651 
652 /** returns whether the constraint is marked for propagation */
653 extern
655  SCIP_CONS* cons /**< constraint */
656  );
657 
658 /** returns TRUE iff constraint should be propagated during node processing */
659 extern
661  SCIP_CONS* cons /**< constraint */
662  );
663 
664 /** returns TRUE iff constraint is globally valid */
665 extern
667  SCIP_CONS* cons /**< constraint */
668  );
669 
670 /** returns TRUE iff constraint is only locally valid or not added to any (sub)problem */
671 extern
673  SCIP_CONS* cons /**< constraint */
674  );
675 
676 /** returns TRUE iff constraint is modifiable (subject to column generation) */
677 extern
679  SCIP_CONS* cons /**< constraint */
680  );
681 
682 /** returns TRUE iff constraint is subject to aging */
683 extern
685  SCIP_CONS* cons /**< constraint */
686  );
687 
688 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */
689 extern
691  SCIP_CONS* cons /**< constraint */
692  );
693 
694 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */
695 extern
697  SCIP_CONS* cons /**< constraint */
698  );
699 
700 /** returns TRUE iff constraint belongs to the global problem */
701 extern
703  SCIP_CONS* cons /**< constraint */
704  );
705 
706 /** returns TRUE iff constraint is belonging to original space */
707 extern
709  SCIP_CONS* cons /**< constraint */
710  );
711 
712 /** returns TRUE iff constraint is belonging to transformed space */
713 extern
715  SCIP_CONS* cons /**< constraint */
716  );
717 
718 /** returns TRUE iff roundings for variables in constraint are locked */
719 extern
721  SCIP_CONS* cons /**< constraint */
722  );
723 
724 /** returns TRUE iff roundings for variables in constraint's negation are locked */
725 extern
727  SCIP_CONS* cons /**< constraint */
728  );
729 
730 /** returns TRUE iff roundings for variables in constraint or in constraint's negation are locked */
731 extern
733  SCIP_CONS* cons /**< constraint */
734  );
735 
736 /** get number of times the roundings for variables in constraint are locked */
737 extern
739  SCIP_CONS* cons /**< constraint */
740  );
741 
742 /** get number of times the roundings for variables in constraint's negation are locked */
743 extern
745  SCIP_CONS* cons /**< constraint */
746  );
747 
748 /** returns if the constraint was already added to a SCIP instance */
749 extern
751  SCIP_CONS* cons /**< constraint */
752  );
753 
754 /** adds locks to (dis-)allow upgrading of constraint */
755 extern
757  SCIP_CONS* cons, /**< constraint to add locks */
758  int nlocks /**< number of locks to add */
759  );
760 
761 /** gets number of locks against upgrading the constraint, 0 means this constraint can be upgraded */
762 extern
764  SCIP_CONS* cons /**< constraint */
765  );
766 
767 #ifdef NDEBUG
768 
769 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
770  * speed up the algorithms.
771  */
772 
773 #define SCIPconsGetName(cons) (cons)->name
774 #define SCIPconsGetPos(cons) (cons)->consspos
775 #define SCIPconsGetHdlr(cons) (cons)->conshdlr
776 #define SCIPconsGetData(cons) (cons)->consdata
777 #define SCIPconsGetNUses(cons) (cons)->nuses
778 #define SCIPconsGetActiveDepth(cons) (cons)->activedepth
779 #define SCIPconsGetValidDepth(cons) (!(cons)->local ? 0 \
780  : !SCIPconsIsActive(cons) ? INT_MAX \
781  : (cons)->validdepth == -1 ? SCIPconsGetActiveDepth(cons) \
782  : (cons)->validdepth)
783 #define SCIPconsIsActive(cons) ((cons)->updateactivate || ((cons)->active && !(cons)->updatedeactivate))
784 #define SCIPconsIsEnabled(cons) ((cons)->updateenable || ((cons)->enabled && !(cons)->updatedisable))
785 #define SCIPconsIsSeparationEnabled(cons) \
786  (SCIPconsIsEnabled(cons) && ((cons)->updatesepaenable || ((cons)->sepaenabled && !(cons)->updatesepadisable)))
787 #define SCIPconsIsPropagationEnabled(cons) \
788  (SCIPconsIsEnabled(cons) && ((cons)->updatepropenable || ((cons)->propenabled && !(cons)->updatepropdisable)))
789 #define SCIPconsIsDeleted(cons) ((cons)->deleted)
790 #define SCIPconsIsObsolete(cons) ((cons)->updateobsolete || (cons)->obsolete)
791 #define SCIPconsIsConflict(cons) ((cons)->conflict)
792 #define SCIPconsGetAge(cons) (cons)->age
793 #define SCIPconsIsInitial(cons) (cons)->initial
794 #define SCIPconsIsSeparated(cons) (cons)->separate
795 #define SCIPconsIsEnforced(cons) (cons)->enforce
796 #define SCIPconsIsChecked(cons) (cons)->check
797 #define SCIPconsIsMarkedPropagate(cons) ((cons)->updatemarkpropagate || ((cons)->markpropagate && !(cons)->updateunmarkpropagate))
798 #define SCIPconsIsPropagated(cons) (cons)->propagate
799 #define SCIPconsIsGlobal(cons) !(cons)->local
800 #define SCIPconsIsLocal(cons) (cons)->local
801 #define SCIPconsIsModifiable(cons) (cons)->modifiable
802 #define SCIPconsIsDynamic(cons) (cons)->dynamic
803 #define SCIPconsIsRemovable(cons) (cons)->removable
804 #define SCIPconsIsStickingAtNode(cons) (cons)->stickingatnode
805 #define SCIPconsIsInProb(cons) ((cons)->addconssetchg == NULL && (cons)->addarraypos >= 0)
806 #define SCIPconsIsOriginal(cons) (cons)->original
807 #define SCIPconsIsTransformed(cons) !(cons)->original
808 #define SCIPconsIsLockedPos(cons) ((cons)->nlockspos > 0)
809 #define SCIPconsIsLockedNeg(cons) ((cons)->nlocksneg > 0)
810 #define SCIPconsIsLocked(cons) ((cons)->nlockspos > 0 || (cons)->nlocksneg > 0)
811 #define SCIPconsGetNLocksPos(cons) ((cons)->nlockspos)
812 #define SCIPconsGetNLocksNeg(cons) ((cons)->nlocksneg)
813 #define SCIPconsIsAdded(cons) ((cons)->addarraypos >= 0)
814 #define SCIPconsGetNUpgradeLocks(cons) ((cons)->nupgradelocks)
815 
816 #endif
817 
818 /* @} */
819 
820 #ifdef __cplusplus
821 }
822 #endif
823 
824 #endif
void SCIPconshdlrSetPropTiming(SCIP_CONSHDLR *conshdlr, SCIP_PROPTIMING proptiming)
Definition: cons.c:5129
void SCIPconshdlrSetData(SCIP_CONSHDLR *conshdlr, SCIP_CONSHDLRDATA *conshdlrdata)
Definition: cons.c:4143
SCIP_CONS ** SCIPconshdlrGetEnfoConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4495
SCIP_Bool SCIPconshdlrIsSeparationDelayed(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5049
void SCIPconssetchgGetAddedConsData(SCIP_CONSSETCHG *conssetchg, SCIP_CONS ***conss, int *nconss)
Definition: cons.c:5443
SCIP_Bool SCIPconsIsEnabled(SCIP_CONS *cons)
Definition: cons.c:7978
SCIP_Bool SCIPconsIsDynamic(SCIP_CONS *cons)
Definition: cons.c:8140
type definitions for miscellaneous datastructures
int SCIPconsGetValidDepth(SCIP_CONS *cons)
Definition: cons.c:7964
SCIP_DECL_SORTPTRCOMP(SCIPconshdlrCompSepa)
Definition: cons.c:1950
SCIP_DECL_CONSSEPALP(ConshdlrSubtour::scip_sepalp)
SCIP_Longint SCIPconshdlrGetNDomredsFound(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4819
SCIP_Longint SCIPconshdlrGetNCutoffs(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4759
SCIP_Bool SCIPconshdlrIsPropagationDelayed(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5059
SCIP_Bool SCIPconsIsAdded(SCIP_CONS *cons)
Definition: cons.c:8250
int SCIPconshdlrGetNEnabledConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4559
datastructures for constraints and constraint handlers
SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4485
SCIP_Bool SCIPconshdlrDoesPresolve(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5039
int SCIPconsGetPos(SCIP_CONS *cons)
Definition: cons.c:7891
void SCIPconshdlrSetPresolTiming(SCIP_CONSHDLR *conshdlr, SCIP_PRESOLTIMING presoltiming)
Definition: cons.c:5151
SCIP_PRESOLTIMING SCIPconshdlrGetPresolTiming(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5141
SCIP_Bool SCIPconsIsStickingAtNode(SCIP_CONS *cons)
Definition: cons.c:8160
SCIP_Real SCIPconshdlrGetEnfoLPTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4619
int SCIPconshdlrGetNUpgdConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4929
SCIP_Longint SCIPconshdlrGetNCutsApplied(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4779
SCIP_Longint SCIPconshdlrGetNCutsFound(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4769
SCIP_Bool SCIPconsIsTransformed(SCIP_CONS *cons)
Definition: cons.c:8190
SCIP_Bool SCIPconsIsInProb(SCIP_CONS *cons)
Definition: cons.c:8170
SCIP_Real SCIPconshdlrGetEnfoPSTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4629
int SCIPconsGetNLocksNeg(SCIP_CONS *cons)
Definition: cons.c:8240
SCIP_DECL_CONSSEPASOL(ConshdlrSubtour::scip_sepasol)
SCIP_Real SCIPconshdlrGetStrongBranchPropTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4659
int SCIPconshdlrGetSepaFreq(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4999
void SCIPconshdlrSetProp(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPROP((*consprop)), int propfreq, SCIP_Bool delayprop, SCIP_PROPTIMING timingmask)
Definition: cons.c:4175
SCIP_Bool SCIPconsIsLockedNeg(SCIP_CONS *cons)
Definition: cons.c:8210
SCIP_Bool SCIPconsIsRemovable(SCIP_CONS *cons)
Definition: cons.c:8150
SCIP_Longint SCIPconshdlrGetNCheckCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4739
const char * SCIPconshdlrGetDesc(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4123
SCIP_Bool SCIPconsIsActive(SCIP_CONS *cons)
Definition: cons.c:7942
int SCIPconshdlrGetStartNActiveConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4849
int SCIPconshdlrGetSepaPriority(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4969
SCIP_PROPTIMING SCIPconshdlrGetPropTiming(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5119
int SCIPconshdlrGetNFixedVars(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4859
SCIP_Bool SCIPconsIsGlobal(SCIP_CONS *cons)
Definition: cons.c:8110
SCIP_Bool SCIPconsIsOriginal(SCIP_CONS *cons)
Definition: cons.c:8180
SCIP_Bool SCIPconshdlrIsClonable(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5109
int SCIPconshdlrGetNChgSides(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4949
int SCIPconshdlrGetNChgBds(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4889
int SCIPconshdlrGetCheckPriority(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4989
int SCIPconshdlrGetEagerFreq(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5019
void SCIPconshdlrSetEnforelax(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSENFORELAX((*consenforelax)))
Definition: cons.c:4194
SCIP_Bool SCIPconsIsLocked(SCIP_CONS *cons)
Definition: cons.c:8220
int SCIPconshdlrGetNEnfoConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4525
SCIP_Real SCIPconsGetAge(SCIP_CONS *cons)
Definition: cons.c:8040
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4113
SCIP_Real SCIPconshdlrGetCheckTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4669
SCIP_Longint SCIPconshdlrGetNRespropCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4749
SCIP_Real SCIPconshdlrGetSepaTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4609
const char * SCIPconsGetName(SCIP_CONS *cons)
Definition: cons.c:7881
int SCIPconshdlrGetNDelConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4909
SCIP_Bool SCIPconsIsPropagated(SCIP_CONS *cons)
Definition: cons.c:8100
SCIP_CONSHDLRDATA * SCIPconshdlrGetData(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4133
int SCIPconshdlrGetNChgCoefs(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4939
SCIP_Longint SCIPconshdlrGetNPropCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4729
int SCIPconsGetNLocksPos(SCIP_CONS *cons)
Definition: cons.c:8230
int SCIPconshdlrGetPropFreq(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5009
unsigned int SCIP_PRESOLTIMING
Definition: type_timing.h:52
SCIP_Longint SCIPconshdlrGetNConssFound(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4809
SCIP_Bool SCIPconsIsLocal(SCIP_CONS *cons)
Definition: cons.c:8120
void SCIPconshdlrSetSepa(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), int sepafreq, int sepapriority, SCIP_Bool delaysepa)
Definition: cons.c:4154
SCIP_Bool SCIPconsIsLockedPos(SCIP_CONS *cons)
Definition: cons.c:8200
struct SCIP_ConsData SCIP_CONSDATA
Definition: type_cons.h:50
SCIP_Bool SCIPconshdlrNeedsCons(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5029
int SCIPconshdlrGetNConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4515
SCIP_Real SCIPconshdlrGetRespropTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4679
SCIP_Longint SCIPconshdlrGetNEnfoLPCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4699
#define SCIP_Bool
Definition: def.h:61
SCIP_DECL_CONSPROP(ConshdlrSubtour::scip_prop)
SCIP_Bool SCIPconsIsUpdatedeactivate(SCIP_CONS *cons)
Definition: cons.c:7952
SCIP_Longint SCIPconshdlrGetNEnfoRelaxCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4719
SCIP_Bool SCIPconshdlrWasPropagationDelayed(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5089
SCIP_Real SCIPconshdlrGetPresolTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4599
SCIP_Bool SCIPconsIsPropagationEnabled(SCIP_CONS *cons)
Definition: cons.c:7999
SCIP_CONSHDLR * SCIPconsGetHdlr(SCIP_CONS *cons)
Definition: cons.c:7901
SCIP_Bool SCIPconsIsDeleted(SCIP_CONS *cons)
Definition: cons.c:8010
SCIP_Longint SCIPconshdlrGetNEnfoPSCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4709
SCIP_Bool SCIPconshdlrWasLPSeparationDelayed(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5069
SCIP_Bool SCIPconsIsChecked(SCIP_CONS *cons)
Definition: cons.c:8080
SCIP_Bool SCIPconsIsInitial(SCIP_CONS *cons)
Definition: cons.c:8050
SCIP_Real SCIPconshdlrGetPropTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4649
SCIP_Real SCIPconshdlrGetEnfoRelaxTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4639
int SCIPconshdlrGetEnfoPriority(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4979
SCIP_Bool SCIPconshdlrIsInitialized(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5099
int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4549
int SCIPconsGetNUpgradeLocks(SCIP_CONS *cons)
Definition: cons.c:8272
int SCIPconshdlrGetNPresolCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4959
SCIP_Bool SCIPconsIsSeparationEnabled(SCIP_CONS *cons)
Definition: cons.c:7988
int SCIPconshdlrGetNChgVarTypes(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4879
int SCIPconshdlrGetMaxNActiveConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4839
unsigned int SCIP_PROPTIMING
Definition: type_timing.h:66
SCIP_CONSDATA * SCIPconsGetData(SCIP_CONS *cons)
Definition: cons.c:7911
SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4505
#define SCIP_DECL_CONSENFORELAX(x)
Definition: type_cons.h:346
SCIP_Longint SCIPconshdlrGetNChildren(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4829
#define SCIP_Real
Definition: def.h:135
SCIP_Bool SCIPconsIsModifiable(SCIP_CONS *cons)
Definition: cons.c:8130
int SCIPconshdlrGetNCheckConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4535
SCIP_Bool SCIPconsIsEnforced(SCIP_CONS *cons)
Definition: cons.c:8070
SCIP_Longint SCIPconshdlrGetNSepaCalls(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4689
SCIP_Bool SCIPconsIsSeparated(SCIP_CONS *cons)
Definition: cons.c:8060
#define SCIP_Longint
Definition: def.h:120
SCIP_Bool SCIPconsIsObsolete(SCIP_CONS *cons)
Definition: cons.c:8020
int SCIPconshdlrGetNAggrVars(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4869
int SCIPconsGetNUses(SCIP_CONS *cons)
Definition: cons.c:7921
int SCIPconshdlrGetNAddConss(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4919
struct SCIP_ConshdlrData SCIP_CONSHDLRDATA
Definition: type_cons.h:49
int SCIPconsGetActiveDepth(SCIP_CONS *cons)
Definition: cons.c:7931
SCIP_Bool SCIPconsIsConflict(SCIP_CONS *cons)
Definition: cons.c:8030
void SCIPconsAddUpgradeLocks(SCIP_CONS *cons, int nlocks)
Definition: cons.c:8260
SCIP_Bool SCIPconsIsMarkedPropagate(SCIP_CONS *cons)
Definition: cons.c:8090
common defines and data types used in all packages of SCIP
SCIP_Bool SCIPconshdlrWasSolSeparationDelayed(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:5079
int SCIPconshdlrGetNAddHoles(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4899
SCIP_Real SCIPconshdlrGetSetupTime(SCIP_CONSHDLR *conshdlr)
Definition: cons.c:4589
type definitions for constraints and constraint handlers