55#define AGERESETAVG_INIT 1000.0
56#define AGERESETAVG_MIN 100.0
57#define AGERESETAVG_DECAY 0.0005
58#define AGERESETAVG_AGELIMIT 2.0
60#define AGERESETAVG_OBSOLETEAGE 1.8
91 assert(num <= conshdlr->consssize);
115 assert(num <= conshdlr->initconsssize);
139 assert(num <= conshdlr->sepaconsssize);
163 assert(num <= conshdlr->enfoconsssize);
187 assert(num <= conshdlr->checkconsssize);
211 assert(num <= conshdlr->propconsssize);
235 assert(num <= conshdlr->updateconsssize);
247#define checkConssArrays(conshdlr)
249#ifdef CHECKCONSARRAYS
250#undef checkConssArrays
365 && ((
set->cons_agelimit > 0 && cons->
age >
set->cons_agelimit)
380 && ((
set->cons_obsoleteage > 0 && cons->
age >
set->cons_obsoleteage)
866 if( delpos < conshdlr->ninitconsskept )
874 if( delpos < conshdlr->ninitconss-1 )
951 assert(0 <= delpos && delpos < conshdlr->nusefulsepaconss);
953 if( delpos < conshdlr->lastnusefulsepaconss )
964 if( delpos < conshdlr->nsepaconss-1 )
1052 assert(0 <= delpos && delpos < conshdlr->nusefulenfoconss);
1054 if( delpos < conshdlr->lastnusefulenfoconss )
1073 if( delpos < conshdlr->nenfoconss-1 )
1118 assert(0 <= insertpos && insertpos <= conshdlr->ncheckconss);
1149 assert(0 <= delpos && delpos < conshdlr->nusefulcheckconss);
1156 if( delpos < conshdlr->ncheckconss-1 )
1256 assert(0 <= delpos && delpos < conshdlr->nusefulpropconss);
1258 if( delpos < conshdlr->lastnusefulpropconss )
1270 if( delpos < conshdlr->npropconss-1 )
1327 SCIPdebugMessage(
"disable separation of constraint <%s> in constraint handler <%s>\n", cons->
name, conshdlr->
name);
1387 SCIPdebugMessage(
"disable propagation of constraint <%s> in constraint handler <%s>\n", cons->
name, conshdlr->
name);
1454 if( conshdlr->consenable !=
NULL )
1456 SCIP_CALL( conshdlr->consenable(
set->scip, conshdlr, cons) );
1493 if( conshdlr->consdisable !=
NULL )
1495 SCIP_CALL( conshdlr->consdisable(
set->scip, conshdlr, cons) );
1563 SCIPsetDebugMsg(
set,
"activate constraint <%s> in constraint handler <%s> (depth %d, focus=%u)\n",
1590 if( conshdlr->consactive !=
NULL )
1592 SCIP_CALL( conshdlr->consactive(
set->scip, conshdlr, cons) );
1640 if( conshdlr->consdeactive !=
NULL )
1642 SCIP_CALL( conshdlr->consdeactive(
set->scip, conshdlr, cons) );
1706 SCIPsetDebugMsg(
set,
"processing %d constraints that have to be updated in constraint handler <%s>\n",
1722 SCIPsetDebugMsg(
set,
" -> constraint <%s>: insert=%u, activate=%u, deactivate=%u, enable=%u, disable=%u, sepaenable=%u, sepadisable=%u, propenable=%u, propdisable=%u, obsolete=%u, free=%u (consdata=%p)\n",
1889 SCIPdebugMessage(
"constraint updates of constraint handler <%s> will be delayed (count:%d)\n",
1909 SCIPsetDebugMsg(
set,
"constraint updates of constraint handler <%s> will be processed immediately (count:%d)\n",
1938 SCIPsetDebugMsg(
set,
"constraint <%s> of age %g has to be updated in constraint handler <%s> (consdata=%p)\n",
1976 return ((
SCIP_CONS*)elem2)->conshdlr->checkpriority - ((
SCIP_CONS*)elem1)->conshdlr->checkpriority;
1991 if( conshdlr->conshdlrcopy !=
NULL )
2067 assert(conssepalp !=
NULL || conssepasol !=
NULL || sepafreq == -1);
2070 assert(!needscons || ((conshdlrcopy ==
NULL) == (conscopy ==
NULL)));
2077 SCIPmessagePrintError(
"ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate "
2078 "'SCIP_PRESOLTIMING' for <%s> constraint handler instead.\n", name);
2091 (*conshdlr)->sepapriority = sepapriority;
2092 (*conshdlr)->enfopriority = enfopriority;
2093 (*conshdlr)->checkpriority = checkpriority;
2094 (*conshdlr)->sepafreq = sepafreq;
2095 (*conshdlr)->propfreq = propfreq;
2096 (*conshdlr)->eagerfreq = eagerfreq;
2097 (*conshdlr)->maxprerounds = maxprerounds;
2098 (*conshdlr)->conshdlrcopy = conshdlrcopy;
2099 (*conshdlr)->consfree = consfree;
2100 (*conshdlr)->consinit = consinit;
2101 (*conshdlr)->consexit = consexit;
2102 (*conshdlr)->consinitpre = consinitpre;
2103 (*conshdlr)->consexitpre = consexitpre;
2104 (*conshdlr)->consinitsol = consinitsol;
2105 (*conshdlr)->consexitsol = consexitsol;
2106 (*conshdlr)->consdelete = consdelete;
2107 (*conshdlr)->constrans = constrans;
2108 (*conshdlr)->consinitlp = consinitlp;
2109 (*conshdlr)->conssepalp = conssepalp;
2110 (*conshdlr)->conssepasol = conssepasol;
2111 (*conshdlr)->consenfolp = consenfolp;
2112 (*conshdlr)->consenforelax = consenforelax;
2113 (*conshdlr)->consenfops = consenfops;
2114 (*conshdlr)->conscheck = conscheck;
2115 (*conshdlr)->consprop = consprop;
2116 (*conshdlr)->conspresol = conspresol;
2117 (*conshdlr)->consresprop = consresprop;
2118 (*conshdlr)->conslock = conslock;
2119 (*conshdlr)->consactive = consactive;
2120 (*conshdlr)->consdeactive = consdeactive;
2121 (*conshdlr)->consenable = consenable;
2122 (*conshdlr)->consdisable = consdisable;
2123 (*conshdlr)->consprint = consprint;
2124 (*conshdlr)->consdelvars = consdelvars;
2125 (*conshdlr)->conscopy = conscopy;
2126 (*conshdlr)->consparse = consparse;
2127 (*conshdlr)->consgetvars = consgetvars;
2128 (*conshdlr)->consgetnvars = consgetnvars;
2129 (*conshdlr)->conshdlrdata = conshdlrdata;
2130 (*conshdlr)->consgetdivebdchgs = consgetdivebdchgs;
2131 (*conshdlr)->consgetpermsymgraph = consgetpermsymgraph;
2132 (*conshdlr)->consgetsignedpermsymgraph = consgetsignedpermsymgraph;
2133 (*conshdlr)->conss =
NULL;
2134 (*conshdlr)->consssize = 0;
2135 (*conshdlr)->nconss = 0;
2136 (*conshdlr)->nactiveconss = 0;
2137 (*conshdlr)->maxnactiveconss = 0;
2138 (*conshdlr)->startnactiveconss = 0;
2139 (*conshdlr)->initconss =
NULL;
2140 (*conshdlr)->initconsssize = 0;
2141 (*conshdlr)->ninitconss = 0;
2142 (*conshdlr)->ninitconsskept = 0;
2143 (*conshdlr)->sepaconss =
NULL;
2144 (*conshdlr)->sepaconsssize = 0;
2145 (*conshdlr)->nsepaconss = 0;
2146 (*conshdlr)->nusefulsepaconss = 0;
2147 (*conshdlr)->enfoconss =
NULL;
2148 (*conshdlr)->enfoconsssize = 0;
2149 (*conshdlr)->nenfoconss = 0;
2150 (*conshdlr)->nusefulenfoconss = 0;
2151 (*conshdlr)->checkconss =
NULL;
2152 (*conshdlr)->checkconsssize = 0;
2153 (*conshdlr)->ncheckconss = 0;
2154 (*conshdlr)->nusefulcheckconss = 0;
2155 (*conshdlr)->propconss =
NULL;
2156 (*conshdlr)->propconsssize = 0;
2157 (*conshdlr)->npropconss = 0;
2158 (*conshdlr)->nusefulpropconss = 0;
2159 (*conshdlr)->nmarkedpropconss = 0;
2160 (*conshdlr)->updateconss =
NULL;
2161 (*conshdlr)->updateconsssize = 0;
2162 (*conshdlr)->nupdateconss = 0;
2163 (*conshdlr)->nenabledconss = 0;
2164 (*conshdlr)->lastnusefulpropconss = 0;
2165 (*conshdlr)->lastnusefulsepaconss = 0;
2166 (*conshdlr)->lastnusefulenfoconss = 0;
2168 (*conshdlr)->storedpropconss =
NULL;
2169 (*conshdlr)->storedpropconsssize = 0;
2170 (*conshdlr)->storednmarkedpropconss = 0;
2171 (*conshdlr)->storedpropdomchgcount = 0;
2184 (*conshdlr)->nsepacalls = 0;
2185 (*conshdlr)->nenfolpcalls = 0;
2186 (*conshdlr)->nenfopscalls = 0;
2187 (*conshdlr)->nenforelaxcalls = 0;
2188 (*conshdlr)->npropcalls = 0;
2189 (*conshdlr)->ncheckcalls = 0;
2190 (*conshdlr)->nrespropcalls = 0;
2191 (*conshdlr)->ncutoffs = 0;
2192 (*conshdlr)->ncutsfound = 0;
2193 (*conshdlr)->ncutsapplied = 0;
2194 (*conshdlr)->nconssfound = 0;
2195 (*conshdlr)->ndomredsfound = 0;
2196 (*conshdlr)->nchildren = 0;
2197 (*conshdlr)->lastpropdomchgcount = -1;
2198 (*conshdlr)->lastsepalpcount = -1;
2199 (*conshdlr)->lastenfolplpcount = -1;
2200 (*conshdlr)->lastenfolpdomchgcount = -1;
2201 (*conshdlr)->lastenfopsdomchgcount = -1;
2202 (*conshdlr)->lastenforelaxdomchgcount = -1;
2203 (*conshdlr)->lastenforelaxrelaxcount = -1;
2204 (*conshdlr)->lastenfolpnode = -1;
2205 (*conshdlr)->lastenfopsnode = -1;
2209 (*conshdlr)->lastnfixedvars = 0;
2210 (*conshdlr)->lastnaggrvars = 0;
2211 (*conshdlr)->lastnchgvartypes = 0;
2212 (*conshdlr)->lastnchgbds = 0;
2213 (*conshdlr)->lastnaddholes = 0;
2214 (*conshdlr)->lastndelconss = 0;
2215 (*conshdlr)->lastnaddconss = 0;
2216 (*conshdlr)->lastnupgdconss = 0;
2217 (*conshdlr)->lastnchgcoefs = 0;
2218 (*conshdlr)->lastnchgsides = 0;
2219 (*conshdlr)->nfixedvars = 0;
2220 (*conshdlr)->naggrvars = 0;
2221 (*conshdlr)->nchgvartypes = 0;
2222 (*conshdlr)->nchgbds = 0;
2223 (*conshdlr)->naddholes = 0;
2224 (*conshdlr)->ndelconss = 0;
2225 (*conshdlr)->naddconss = 0;
2226 (*conshdlr)->nupgdconss = 0;
2227 (*conshdlr)->nchgcoefs = 0;
2228 (*conshdlr)->nchgsides = 0;
2229 (*conshdlr)->npresolcalls = 0;
2230 (*conshdlr)->delayupdatecount = 0;
2232 (*conshdlr)->needscons = needscons;
2233 (*conshdlr)->sepalpwasdelayed =
FALSE;
2234 (*conshdlr)->sepasolwasdelayed =
FALSE;
2235 (*conshdlr)->propwasdelayed =
FALSE;
2236 (*conshdlr)->duringsepa =
FALSE;
2237 (*conshdlr)->duringprop =
FALSE;
2238 (*conshdlr)->exact =
FALSE;
2239 (*conshdlr)->initialized =
FALSE;
2244 "frequency for separating cuts (-1: never, 0: only in root node)",
2249 "frequency for propagating domains (-1: never, 0: only in root node)",
2259 "frequency for using all instead of only the useful constraints in separation, propagation and enforcement (-1: never, 0: only in first evaluation)",
2264 "maximal number of presolving rounds the constraint handler participates in (-1: no limit)",
2265 &(*conshdlr)->maxprerounds,
TRUE, maxprerounds, -1, INT_MAX,
NULL,
NULL) );
2269 "should separation method be delayed, if other separators found cuts?",
2270 &(*conshdlr)->delaysepa,
TRUE, delaysepa,
NULL,
NULL) );
2274 "should propagation method be delayed, if other propagators found reductions?",
2275 &(*conshdlr)->delayprop,
TRUE, delayprop,
NULL,
NULL) );
2278 (void)
SCIPsnprintf(paramdesc,
SCIP_MAXSTRLEN,
"timing mask of the constraint handler's presolving method (%u:FAST, %u:MEDIUM, %u:EXHAUSTIVE, %u:FINAL)",
2349 assert(conssepalp !=
NULL || conssepasol !=
NULL || sepafreq == -1);
2352 assert(!needscons || ((conshdlrcopy ==
NULL) == (conscopy ==
NULL)));
2355 checkpriority, sepafreq, propfreq, eagerfreq, maxprerounds, delaysepa, delayprop, needscons, proptiming,
2356 presoltiming, conshdlrcopy, consfree, consinit, consexit, consinitpre, consexitpre, consinitsol, consexitsol,
2357 consdelete, constrans, consinitlp, conssepalp, conssepasol, consenfolp, consenforelax, consenfops, conscheck,
2358 consprop, conspresol, consresprop, conslock, consactive, consdeactive, consenable, consdisable, consdelvars,
2359 consprint, conscopy, consparse, consgetvars, consgetnvars, consgetdivebdchgs, consgetpermsymgraph,
2360 consgetsignedpermsymgraph, conshdlrdata),
2373 if( *conshdlr ==
NULL )
2375 assert(!(*conshdlr)->initialized);
2376 assert((*conshdlr)->nconss == 0);
2380 if( (*conshdlr)->consfree !=
NULL )
2382 SCIP_CALL( (*conshdlr)->consfree(
set->scip, *conshdlr) );
2424 if(
set->exact_enable && !conshdlr->
exact )
2433 if(
set->misc_resetstat )
2503 if( conshdlr->consinit !=
NULL )
2542 if(
set->exact_enable && !conshdlr->
exact )
2552 if( conshdlr->consexit !=
NULL )
2590 if(
set->exact_enable && !conshdlr->
exact )
2624 if( conshdlr->consinitpre !=
NULL )
2648 if( stat->
nruns >= 2 )
2681 if(
set->exact_enable && !conshdlr->
exact )
2685 if( conshdlr->consexitpre !=
NULL )
2727 if(
set->exact_enable && !conshdlr->
exact )
2734 if( conshdlr->consinitsol !=
NULL )
2772 if(
set->exact_enable && !conshdlr->
exact )
2776 if( conshdlr->consexitsol !=
NULL )
2823 if(
set->exact_enable && !conshdlr->
exact )
2826 if( conshdlr->consinitlp !=
NULL )
2832 SCIPsetDebugMsg(
set,
"initializing LP with %d initial constraints of handler <%s> (ninitconss=%d, kept=%d, initkept=%u)\n",
2877 assert(currentdepth >= 0);
2939 if(
set->exact_enable && !conshdlr->
exact )
2942 if( conshdlr->conssepalp !=
NULL
2948 if( !conshdlr->
delaysepa || execdelayed )
2961 nusefulconss = nconss;
2972 assert(firstcons + nconss <= conshdlr->nsepaconss);
2973 assert(nusefulconss <= nconss);
2983 int oldnactiveconss;
2984 int lastnusefulsepaconss;
2986 SCIPsetDebugMsg(
set,
"separating constraints %d to %d of %d constraints of handler <%s> (%s LP solution)\n",
2987 firstcons, firstcons + nconss - 1, conshdlr->
nsepaconss, conshdlr->
name,
2991 lastsepalpcount = stat->
lpcount;
2995 conss = &(conshdlr->
sepaconss[firstcons]);
3005 nusefulconss = nconss;
3018 SCIP_CALL( conshdlr->conssepalp(
set->scip, conshdlr, conss, nconss, nusefulconss,
result) );
3055 SCIPerrorMessage(
"LP separation method of constraint handler <%s> returned invalid result <%d>\n",
3100 if(
set->exact_enable && !conshdlr->
exact )
3103 if( conshdlr->conssepasol !=
NULL
3109 if( !conshdlr->
delaysepa || execdelayed )
3117 assert(nusefulconss <= nconss);
3119 if( nconss > 0 || !conshdlr->
needscons )
3125 int oldnactiveconss;
3127 SCIPsetDebugMsg(
set,
"separating %d constraints of handler <%s> (primal solution %p)\n",
3128 nconss, conshdlr->
name, (
void*)
sol);
3141 nusefulconss = nconss;
3187 SCIPerrorMessage(
"SOL separation method of constraint handler <%s> returned invalid result <%d>\n",
3246 if(
set->exact_enable && !conshdlr->
exact )
3258 && ( strcmp(conshdlr->
name,
"integral") != 0 )
3273 lastinfeasible =
TRUE;
3276 lastinfeasible =
FALSE;
3282 nusefulconss = nconss;
3284 relaxchanged =
FALSE;
3292 relaxchanged =
TRUE;
3293 lastinfeasible =
FALSE;
3296 assert(firstcons + nconss <= conshdlr->nenfoconss);
3297 assert(nusefulconss <= nconss);
3300 if( nconss > 0 || (!conshdlr->
needscons && relaxchanged) )
3306 int oldnactiveconss;
3310 SCIPdebugMessage(
"enforcing constraints %d to %d of %d constraints of handler <%s> (%s relaxation solution)\n",
3311 firstcons, firstcons + nconss - 1, conshdlr->
nenfoconss, conshdlr->
name, relaxchanged ?
"new" :
"old");
3323 conss = conshdlr->
enfoconss + firstcons;
3334 nusefulconss = nconss;
3346 SCIP_CALL( conshdlr->consenforelax(
set->scip, relaxsol, conshdlr, conss, nconss, nusefulconss, solinfeasible,
result) );
3387 SCIPerrorMessage(
"enforcing method of constraint handler <%s> for relaxation solutions returned invalid result <%d>\n",
3436 if(
set->exact_enable && !conshdlr->
exact )
3439 if( conshdlr->consenfolp !=
NULL )
3461 lastinfeasible =
FALSE;
3466 lastinfeasible =
TRUE;
3473 nusefulconss = nconss;
3484 lastinfeasible =
FALSE;
3487 assert(firstcons + nconss <= conshdlr->nenfoconss);
3488 assert(nusefulconss <= nconss);
3491 if( nconss > 0 || (!conshdlr->
needscons && lpchanged) )
3497 int oldnactiveconss;
3499 SCIPsetDebugMsg(
set,
"enforcing constraints %d to %d of %d constraints of handler <%s> (%s LP solution)\n",
3500 firstcons, firstcons + nconss - 1, conshdlr->
nenfoconss, conshdlr->
name, lpchanged ?
"new" :
"old");
3509 conss = nconss > 0 ? conshdlr->
enfoconss + firstcons :
NULL;
3519 nusefulconss = nconss;
3531 SCIP_CALL( conshdlr->consenfolp(
set->scip, conshdlr, conss, nconss, nusefulconss, solinfeasible,
result) );
3571 SCIPerrorMessage(
"enforcing method of constraint handler <%s> for LP solutions returned invalid result <%d>\n",
3606 *infeasible =
FALSE;
3610 if(
set->exact_enable && !conshdlr->
exact )
3613 if( conshdlr->consgetdivebdchgs !=
NULL )
3662 if(
set->exact_enable && !conshdlr->
exact )
3665 if( conshdlr->consenfops !=
NULL )
3692 lastinfeasible =
TRUE;
3695 lastinfeasible =
FALSE;
3701 nusefulconss = nconss;
3712 lastinfeasible =
FALSE;
3715 assert(firstcons + nconss <= conshdlr->nenfoconss);
3716 assert(nusefulconss <= nconss);
3719 if( nconss > 0 || (!conshdlr->
needscons && pschanged) )
3725 SCIPsetDebugMsg(
set,
"enforcing constraints %d to %d of %d constraints of handler <%s> (%s pseudo solution, objinfeasible=%u)\n",
3726 firstcons, firstcons + nconss - 1, conshdlr->
nenfoconss, conshdlr->
name, pschanged ?
"new" :
"old", objinfeasible);
3737 conss = conshdlr->
enfoconss + firstcons;
3746 nusefulconss = nconss;
3758 SCIP_CALL( conshdlr->consenfops(
set->scip, conshdlr, conss, nconss, nusefulconss, solinfeasible, objinfeasible,
result) );
3770 else if( !objinfeasible )
3772 SCIPerrorMessage(
"enforcing method of constraint handler <%s> for pseudo solutions was skipped, even though the solution was not objective-infeasible\n",
3812 SCIPerrorMessage(
"enforcing method of constraint handler <%s> for pseudo solutions returned invalid result <%d>\n",
3824 else if( objinfeasible )
3863 if(
set->exact_enable && !conshdlr->
exact )
3881 sol, checkintegrality, checklprows, printreason, completely,
result) );
3934 if(
set->exact_enable && !conshdlr->
exact )
3937 if( conshdlr->consprop !=
NULL
3944 if( !conshdlr->
delayprop || execdelayed )
3948 int nmarkedpropconss;
3958 nusefulconss = nconss;
3969 assert(firstcons + nconss <= conshdlr->npropconss);
3970 assert(nusefulconss <= nconss);
3975 if( nconss > 0 || fullpropagation
3983 int lastnusefulpropconss;
3985 SCIPsetDebugMsg(
set,
"propagating constraints %d to %d of %d constraints of handler <%s> (%s pseudo solution, %d useful)\n",
3986 firstcons, firstcons + nconss - 1, conshdlr->
npropconss, conshdlr->
name,
3994 conss = nconss > 0 ? (conshdlr->
propconss + firstcons) :
NULL;
4003 nusefulconss = nconss;
4013 if( instrongbranching )
4018 assert(nusefulconss <= nconss);
4019 assert(nmarkedpropconss <= nconss);
4022 SCIP_CALL( conshdlr->consprop(
set->scip, conshdlr, conss, nconss, nusefulconss, nmarkedpropconss, proptiming,
result) );
4026 if( instrongbranching )
4065 SCIPerrorMessage(
"propagation method of constraint handler <%s> returned invalid result <%d>\n",
4127 if(
set->exact_enable && !conshdlr->
exact )
4130 if( conshdlr->conspresol !=
NULL
4141 int nnewchgvartypes;
4185 nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds, nnewholes,
4186 nnewdelconss, nnewaddconss, nnewupgdconss, nnewchgcoefs, nnewchgsides,
4187 nfixedvars, naggrvars, nchgvartypes, nchgbds, naddholes,
4188 ndelconss, naddconss, nupgdconss, nchgcoefs, nchgsides,
result) );
4227 SCIPerrorMessage(
"presolving method of constraint handler <%s> returned invalid result <%d>\n",
4256 if(
set->exact_enable && !conshdlr->
exact )
4259 if( conshdlr->consdelvars !=
NULL )
4291 if(
set->exact_enable && !conshdlr->
exact )
4311 if(
set->exact_enable && !conshdlr->
exact )
4326 return conshdlr->
name;
4336 return conshdlr->
desc;
4367 return conshdlr->
exact;
4395 assert(conssepalp !=
NULL || conssepasol !=
NULL || sepafreq == -1);
4397 conshdlr->conssepalp = conssepalp;
4398 conshdlr->conssepasol = conssepasol;
4417 conshdlr->consprop = consprop;
4431 conshdlr->consenforelax = consenforelax;
4445 conshdlr->conshdlrcopy = conshdlrcopy;
4446 conshdlr->conscopy = conscopy;
4457 conshdlr->consfree = consfree;
4468 conshdlr->consinit = consinit;
4479 conshdlr->consexit = consexit;
4490 conshdlr->consinitsol = consinitsol;
4501 conshdlr->consexitsol = consexitsol;
4512 conshdlr->consinitpre = consinitpre;
4523 conshdlr->consexitpre = consexitpre;
4536 conshdlr->conspresol = conspresol;
4544 SCIPmessagePrintError(
"ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate "
4545 "'SCIP_PRESOLTIMING' for <%s> constraint handler instead.\n", conshdlr->
name);
4563 conshdlr->consdelete = consdelete;
4574 conshdlr->constrans = constrans;
4585 conshdlr->consinitlp = consinitlp;
4596 conshdlr->consresprop = consresprop;
4607 conshdlr->consactive = consactive;
4618 conshdlr->consdeactive = consdeactive;
4629 conshdlr->consenable = consenable;
4640 conshdlr->consdisable = consdisable;
4651 conshdlr->consdelvars = consdelvars;
4662 conshdlr->consprint = consprint;
4673 conshdlr->consparse = consparse;
4684 conshdlr->consgetvars = consgetvars;
4695 conshdlr->consgetnvars = consgetnvars;
4706 conshdlr->consgetdivebdchgs = consgetdivebdchgs;
4718 conshdlr->consgetpermsymgraph = consgetpermsymgraph;
4730 conshdlr->consgetsignedpermsymgraph = consgetsignedpermsymgraph;
4745 return conshdlr->
conss;
5333 return (conshdlr->conspresol !=
NULL);
5403 return (conshdlr->conshdlrcopy !=
NULL);
5456 return conshdlr->consgetpermsymgraph !=
NULL;
5466 return conshdlr->consgetsignedpermsymgraph !=
NULL;
5484 (*conssetchg)->addedconss =
NULL;
5485 (*conssetchg)->disabledconss =
NULL;
5486 (*conssetchg)->addedconsssize = 0;
5487 (*conssetchg)->naddedconss = 0;
5488 (*conssetchg)->disabledconsssize = 0;
5489 (*conssetchg)->ndisabledconss = 0;
5535 if( *conssetchg !=
NULL )
5568 assert(num <= conssetchg->addedconsssize);
5592 assert(num <= conssetchg->disabledconsssize);
5615 if( *conssetchg ==
NULL )
5622 (*conssetchg)->addedconss[(*conssetchg)->naddedconss] = cons;
5623 (*conssetchg)->naddedconss++;
5657 if( *conssetchg ==
NULL )
5664 (*conssetchg)->disabledconss[(*conssetchg)->ndisabledconss] = cons;
5665 (*conssetchg)->ndisabledconss++;
5686 assert(0 <= arraypos && arraypos < conssetchg->naddedconss);
5691 SCIPsetDebugMsg(
set,
"delete added constraint <%s> at position %d from constraint set change data\n", cons->
name, arraypos);
5704 for( ; arraypos < conssetchg->
naddedconss-1; ++arraypos )
5729 assert(0 <= arraypos && arraypos < conssetchg->ndisabledconss);
5732 SCIPsetDebugMsg(
set,
"delete disabled constraint <%s> at position %d from constraint set change data\n",
5759 if( nconss !=
NULL )
5776 if( conssetchg ==
NULL )
5779 SCIPsetDebugMsg(
set,
"applying constraint set changes at %p: %d constraint additions, %d constraint disablings\n",
5827 SCIPsetDebugMsg(
set,
"constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n",
5861 if( conssetchg ==
NULL )
5864 SCIPsetDebugMsg(
set,
"undoing constraint set changes at %p: %d constraint additions, %d constraint disablings\n",
5887 SCIPsetDebugMsg(
set,
"constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n",
5952 if( *conssetchg ==
NULL )
5955 SCIPsetDebugMsg(
set,
"moving constraint set changes at %p to global problem: %d constraint additions, %d constraint disablings\n",
5956 (
void*)*conssetchg, (*conssetchg)->
naddedconss, (*conssetchg)->ndisabledconss);
5961 for(
i = (*conssetchg)->naddedconss-1;
i >= 0; --
i )
5963 cons = (*conssetchg)->addedconss[
i];
5990 for(
i = (*conssetchg)->ndisabledconss-1;
i >= 0; --
i )
5992 cons = (*conssetchg)->disabledconss[
i];
6010 if( (*conssetchg)->naddedconss == 0 && (*conssetchg)->ndisabledconss == 0 )
6074 assert(!original || deleteconsdata);
6080 (*cons)->scip =
set->scip;
6082 (*cons)->conshdlr = conshdlr;
6083 (*cons)->consdata = consdata;
6084 (*cons)->transorigcons =
NULL;
6085 (*cons)->addconssetchg =
NULL;
6086 (*cons)->addarraypos = -1;
6087 (*cons)->consspos = -1;
6088 (*cons)->initconsspos = -1;
6089 (*cons)->sepaconsspos = -1;
6090 (*cons)->enfoconsspos = -1;
6091 (*cons)->checkconsspos = -1;
6092 (*cons)->propconsspos = -1;
6093 (*cons)->confconsspos = -1;
6094 (*cons)->activedepth = -2;
6095 (*cons)->validdepth = (local ? -1 : 0);
6098 (*cons)->nupgradelocks = 0;
6099 (*cons)->initial = initial;
6101 (*cons)->enforce = enforce;
6102 (*cons)->check = check;
6106 (*cons)->local = local;
6107 (*cons)->modifiable = modifiable;
6108 (*cons)->dynamic = dynamic;
6109 (*cons)->removable = removable;
6110 (*cons)->stickingatnode = stickingatnode;
6111 (*cons)->original = original;
6112 (*cons)->deleteconsdata = deleteconsdata;
6113 (*cons)->active =
FALSE;
6114 (*cons)->conflict =
FALSE;
6115 (*cons)->enabled =
FALSE;
6116 (*cons)->obsolete =
FALSE;
6117 (*cons)->markpropagate =
TRUE;
6118 (*cons)->deleted =
FALSE;
6119 (*cons)->update =
FALSE;
6120 (*cons)->updateinsert =
FALSE;
6121 (*cons)->updateactivate =
FALSE;
6122 (*cons)->updatedeactivate =
FALSE;
6123 (*cons)->updateenable =
FALSE;
6124 (*cons)->updatedisable =
FALSE;
6125 (*cons)->updatesepaenable =
FALSE;
6126 (*cons)->updatesepadisable =
FALSE;
6127 (*cons)->updatepropenable =
FALSE;
6128 (*cons)->updatepropdisable =
FALSE;
6129 (*cons)->updateobsolete =
FALSE;
6130 (*cons)->updatemarkpropagate =
FALSE;
6131 (*cons)->updateunmarkpropagate =
FALSE;
6132 (*cons)->updatefree =
FALSE;
6133 (*cons)->updateactfocus =
FALSE;
6137 (*cons)->nlockspos[
i] = 0;
6138 (*cons)->nlocksneg[
i] = 0;
6151 (*cons)->updateinsert =
TRUE;
6154 assert((*cons)->nuses == 2);
6214 if( sourceconshdlr->conscopy !=
NULL )
6216 SCIP_CALL( sourceconshdlr->conscopy(
set->scip, cons, name, sourcescip, sourceconshdlr, sourcecons, varmap, consmap,
6217 initial,
separate, enforce, check,
propagate, local, modifiable, dynamic, removable, stickingatnode, global,
valid) );
6276 if( endptr ==
NULL || endptr == str )
6284 if(
set->exact_enable )
6287 if( strcmp(conshdlrname,
"linear") == 0 )
6288 strcpy(conshdlrname,
"exactlinear");
6290#ifdef SCIP_DISABLED_CODE
6295 if( strcmp(conshdlrname,
"exactlinear") == 0 )
6296 strcpy(conshdlrname,
"linear");
6304 if( endptr ==
NULL || endptr == str )
6333 if( conshdlr ==
NULL )
6335 SCIPmessagePrintWarning(messagehdlr,
"constraint handler <%s> doesn't exist in SCIP data structure\n", conshdlrname);
6340 if ( conshdlr->consparse ==
NULL )
6342 SCIPmessagePrintWarning(messagehdlr,
"constraint handler <%s> does not support parsing constraints\n", conshdlrname);
6346 SCIP_CALL( conshdlr->consparse(
set->scip, conshdlr, cons, consname, str,
6347 initial,
separate, enforce, check,
propagate, local, modifiable, dynamic, removable, stickingatnode, success) );
6384 assert((*cons)->nuses == 0);
6385 assert(!(*cons)->active);
6386 assert(!(*cons)->update);
6387 assert(!(*cons)->original || (*cons)->transorigcons ==
NULL);
6393 (*cons)->name, (*cons)->consspos, (*cons)->conshdlr->name);
6396 if( (*cons)->conshdlr->consdelete !=
NULL && (*cons)->consdata !=
NULL && (*cons)->deleteconsdata )
6398 SCIP_CALL( (*cons)->conshdlr->consdelete(
set->scip, (*cons)->conshdlr, *cons, &(*cons)->
consdata) );
6400 else if( !(*cons)->deleteconsdata )
6401 (*cons)->consdata =
NULL;
6405 if( (*cons)->transorigcons !=
NULL )
6407 assert(!(*cons)->original);
6408 assert((*cons)->transorigcons->original);
6409 assert((*cons)->transorigcons->transorigcons == *cons);
6411 (*cons)->transorigcons->transorigcons =
NULL;
6415 if( !(*cons)->original )
6420 assert((*cons)->consspos == -1);
6421 assert((*cons)->confconsspos == -1);
6453 assert((*cons)->nuses >= 1);
6457 SCIPsetDebugMsg(
set,
"release constraint <%s> with nuses=%d, cons pointer %p\n", (*cons)->name, (*cons)->nuses, (
void*)(*cons));
6459 if( (*cons)->nuses == 0 )
6461 assert(!(*cons)->active || (*cons)->updatedeactivate);
6467 (*cons)->updatefree =
TRUE;
6470 assert((*cons)->nuses == 1);
6501 if( conshdlr->consprint !=
NULL )
6503 SCIP_CALL( conshdlr->consprint(
set->scip, conshdlr, cons, file) );
6506 SCIPmessageFPrintInfo(messagehdlr, file,
"constraint handler <%s> doesn't support printing constraint", conshdlr->
name);
6539 if( conshdlr->consgetvars !=
NULL )
6541 SCIP_CALL( conshdlr->consgetvars(
set->scip, conshdlr, cons,
vars, varssize, success) );
6574 if( conshdlr->consgetnvars !=
NULL )
6610 if( conshdlr->consgetpermsymgraph !=
NULL )
6612 SCIP_CALL( conshdlr->consgetpermsymgraph(
set->scip, conshdlr, cons, graph, success) );
6643 if( conshdlr->consgetsignedpermsymgraph !=
NULL )
6645 SCIP_CALL( conshdlr->consgetsignedpermsymgraph(
set->scip, conshdlr, cons, graph, success) );
6777 if( cons->
initial != initial )
6845 if( cons->
enforce != enforce )
6880 if( cons->
check != check )
6882 cons->
check = check;
6960 cons->
local = local;
7019 cons->
name = (
char*)name;
7059 SCIPsetDebugMsg(
set,
"delayed activation of constraint <%s> in constraint handler <%s> (depth %d)\n",
7095 SCIPsetDebugMsg(
set,
"delayed deactivation of constraint <%s> in constraint handler <%s>\n",
7399 cons->
age += deltaage;
7524 if( conshdlr->consresprop !=
NULL )
7529 SCIP_CALL( conshdlr->consresprop(
set->scip, conshdlr, cons, infervar, inferinfo, inferboundtype, bdchgidx,
7541 SCIPerrorMessage(
"propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n",
7548 SCIPerrorMessage(
"propagation conflict resolving method of constraint handler <%s> is not implemented\n",
7576 assert(-2 <= nlockspos && nlockspos <= 2);
7577 assert(-2 <= nlocksneg && nlocksneg <= 2);
7582 oldnlockspos = cons->
nlockspos[locktype];
7583 oldnlocksneg = cons->
nlocksneg[locktype];
7590 updlockpos = (int)(cons->
nlockspos[locktype] > 0) - (int)(oldnlockspos > 0);
7591 updlockneg = (int)(cons->
nlocksneg[locktype] > 0) - (int)(oldnlocksneg > 0);
7594 if( updlockpos != 0 || updlockneg != 0 )
7626 SCIP_CALL( conshdlr->conscheck(
set->scip, conshdlr, &cons, 1,
sol, checkintegrality, checklprows, printreason,
7632 SCIPerrorMessage(
"feasibility check of constraint handler <%s> on constraint <%s> returned invalid result <%d>\n",
7662 SCIP_CALL( conshdlr->consenfops(
set->scip, conshdlr, &cons, 1, 1, solinfeasible, objinfeasible,
result) );
7674 SCIPerrorMessage(
"enforcing method of constraint handler <%s> for pseudo solutions returned invalid result <%d>\n",
7705 SCIP_CALL( conshdlr->consenfolp(
set->scip, conshdlr, &cons, 1, 1, solinfeasible,
result) );
7716 SCIPerrorMessage(
"enforcing method of constraint handler <%s> for LP returned invalid result <%d>\n",
7760 SCIPerrorMessage(
"enforcing method of constraint handler <%s> for relaxation returned invalid result <%d>\n",
7788 if( conshdlr->consinitlp !=
NULL )
7790 SCIP_CALL( conshdlr->consinitlp(
set->scip, conshdlr, &cons, 1, infeasible) );
7814 if( conshdlr->conssepalp !=
NULL )
7828 SCIPerrorMessage(
"separation method of constraint handler <%s> returned invalid result <%d>\n", conshdlr->
name,
7857 if( conshdlr->conssepasol !=
NULL )
7871 SCIPerrorMessage(
"separation method of constraint handler for arbitrary primal solution <%s> returned invalid result <%d>\n",
7901 if( conshdlr->consprop !=
NULL )
7903 SCIP_CALL( conshdlr->consprop(
set->scip, conshdlr, &cons, 1, 1, 1, proptiming,
result) );
7913 SCIPerrorMessage(
"propagation method of constraint handler <%s> returned invalid result <%d>\n",
7947 if( conshdlr->consresprop !=
NULL )
7949 SCIP_CALL( conshdlr->consresprop(
set->scip, conshdlr, cons, infervar, inferinfo, boundtype, bdchgidx, relaxedbd,
result) );
7955 SCIPerrorMessage(
"propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n",
7972 int nnewchgvartypes,
8014 if( conshdlr->conspresol !=
NULL )
8016 SCIP_CALL( conshdlr->conspresol(
set->scip, conshdlr, &cons, 1, nrounds, timing,
8017 nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds, nnewholes, nnewdelconss, nnewaddconss,
8018 nnewupgdconss, nnewchgcoefs, nnewchgsides, nfixedvars, naggrvars, nchgvartypes,
8019 nchgbds, naddholes, ndelconss, naddconss, nupgdconss, nchgcoefs, nchgsides,
result) );
8029 SCIPerrorMessage(
"presolving method of constraint handler <%s> returned invalid result <%d>\n",
8054 if( conshdlr->consactive !=
NULL )
8056 SCIP_CALL( conshdlr->consactive(
set->scip, conshdlr, cons) );
8078 if( conshdlr->consdeactive !=
NULL )
8080 SCIP_CALL( conshdlr->consdeactive(
set->scip, conshdlr, cons) );
8126 assert(num <= conshdlr->storedpropconsssize);
8142 assert(conshdlrs !=
NULL || nconshdlrs == 0);
8144 for(
c = nconshdlrs - 1;
c >= 0; --
c )
8146 conshdlr = conshdlrs[
c];
8184 assert(conshdlrs !=
NULL || nconshdlrs == 0);
8186 for(
c = nconshdlrs - 1;
c >= 0; --
c )
8188 conshdlr = conshdlrs[
c];
8262 linconsstats->
sum = 0;
8274 return linconsstats->
counter[(int)linconstype];
8284 return linconsstats->
sum;
8298 linconsstats->
counter[(int)linconstype] += increment;
8299 linconsstats->
sum += increment;
8346#undef SCIPconsGetName
8347#undef SCIPconsGetPos
8348#undef SCIPconsGetHdlr
8349#undef SCIPconsGetData
8350#undef SCIPconsGetNUses
8351#undef SCIPconsGetActiveDepth
8352#undef SCIPconsGetValidDepth
8353#undef SCIPconsIsActive
8354#undef SCIPconsIsEnabled
8355#undef SCIPconsIsSeparationEnabled
8356#undef SCIPconsIsPropagationEnabled
8357#undef SCIPconsIsDeleted
8358#undef SCIPconsIsObsolete
8359#undef SCIPconsIsConflict
8360#undef SCIPconsGetAge
8361#undef SCIPconsIsInitial
8362#undef SCIPconsIsSeparated
8363#undef SCIPconsIsEnforced
8364#undef SCIPconsIsChecked
8365#undef SCIPconsIsMarkedPropagate
8366#undef SCIPconsIsPropagated
8367#undef SCIPconsIsGlobal
8368#undef SCIPconsIsLocal
8369#undef SCIPconsIsModifiable
8370#undef SCIPconsIsDynamic
8371#undef SCIPconsIsRemovable
8372#undef SCIPconsIsStickingAtNode
8373#undef SCIPconsIsInProb
8374#undef SCIPconsIsOriginal
8375#undef SCIPconsIsTransformed
8376#undef SCIPconsIsLockedPos
8377#undef SCIPconsIsLockedNeg
8378#undef SCIPconsIsLocked
8379#undef SCIPconsGetNLocksPos
8380#undef SCIPconsGetNLocksNeg
8381#undef SCIPconsIsLockedTypePos
8382#undef SCIPconsIsLockedTypeNeg
8383#undef SCIPconsIsLockedType
8384#undef SCIPconsGetNLocksTypePos
8385#undef SCIPconsGetNLocksTypeNeg
8386#undef SCIPconsIsAdded
8387#undef SCIPconsGetNUpgradeLocks
8483 return (!cons->
local ? 0
8628 return !cons->
local;
static GRAPHNODE ** active
int SCIPbranchcandGetNPseudoCands(SCIP_BRANCHCAND *branchcand)
internal methods for branching rules and branching candidate storage
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
void SCIPclockReset(SCIP_CLOCK *clck)
void SCIPclockFree(SCIP_CLOCK **clck)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
internal methods for clocks and timing issues
SCIP_RETCODE SCIPconshdlrsStorePropagationStatus(SCIP_SET *set, SCIP_CONSHDLR **conshdlrs, int nconshdlrs)
void SCIPconshdlrSetExitpre(SCIP_CONSHDLR *conshdlr,)
static SCIP_RETCODE conshdlrAddInitcons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons)
SCIP_RETCODE SCIPconsAddLocks(SCIP_CONS *cons, SCIP_SET *set, SCIP_LOCKTYPE locktype, int nlockspos, int nlocksneg)
SCIP_RETCODE SCIPconshdlrSeparateLP(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SEPASTORE *sepastore, int depth, SCIP_Bool execdelayed, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsParse(SCIP_CONS **cons, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, const char *str, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool *success)
void SCIPconshdlrSetGetPermsymGraph(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconssetchgUndo(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPconsEnableSeparation(SCIP_CONS *cons, SCIP_SET *set)
static SCIP_RETCODE conssetchgEnsureAddedconssSize(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_RETCODE SCIPconshdlrSetPresol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRESOL((*conspresol)), int maxprerounds, SCIP_PRESOLTIMING presoltiming)
void SCIPconshdlrIncNCutsFound(SCIP_CONSHDLR *conshdlr)
SCIP_RETCODE SCIPconshdlrInit(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
static SCIP_RETCODE conssetchgDelAddedCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos)
static SCIP_RETCODE conshdlrEnableCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons)
void SCIPconshdlrSetDelvars(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsEnable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat)
void SCIPconsCapture(SCIP_CONS *cons)
SCIP_RETCODE SCIPconsProp(SCIP_CONS *cons, SCIP_SET *set, SCIP_PROPTIMING proptiming, SCIP_RESULT *result)
static SCIP_RETCODE conssetchgCreate(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPconsPrint(SCIP_CONS *cons, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
SCIP_RETCODE SCIPconsCreate(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set, const char *name, SCIP_CONSHDLR *conshdlr, SCIP_CONSDATA *consdata, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool original, SCIP_Bool deleteconsdata)
void SCIPconshdlrIncNAppliedCuts(SCIP_CONSHDLR *conshdlr)
static SCIP_RETCODE conshdlrEnsureCheckconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num)
static void conshdlrDelPropcons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
static SCIP_Bool conshdlrAreUpdatesDelayed(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetInit(SCIP_CONSHDLR *conshdlr,)
void SCIPconsSetLocal(SCIP_CONS *cons, SCIP_Bool local)
SCIP_RETCODE SCIPconsMarkPropagate(SCIP_CONS *cons, SCIP_SET *set)
SCIP_RETCODE SCIPconshdlrEnforceRelaxSol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_SEPASTORE *sepastore, SCIP_SOL *relaxsol, SCIP_Bool solinfeasible, SCIP_RESULT *result)
static SCIP_RETCODE conshdlrDisableConsSeparation(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
static SCIP_Real conshdlrGetAgeresetavg(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetGetNVars(SCIP_CONSHDLR *conshdlr,)
static SCIP_RETCODE conssetchgEnsureDisabledconssSize(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
void SCIPconshdlrSetGetSignedPermsymGraph(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsDeactivate(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat)
static SCIP_RETCODE conshdlrEnsurePropconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num)
SCIP_RETCODE SCIPconshdlrExitsol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool restart)
SCIP_RETCODE SCIPconshdlrSeparateSol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SEPASTORE *sepastore, SCIP_SOL *sol, int depth, SCIP_Bool execdelayed, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsDisable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPconsDeactive(SCIP_CONS *cons, SCIP_SET *set)
static SCIP_RETCODE conshdlrMarkConsObsolete(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
SCIP_RETCODE SCIPconshdlrLockVars(SCIP_CONSHDLR *conshdlr, SCIP_SET *set)
SCIP_RETCODE SCIPconshdlrEnforceLPSol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_SEPASTORE *sepastore, SCIP_Bool solinfeasible, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsGetPermsymGraph(SCIP_CONS *cons, SCIP_SET *set, SYM_GRAPH *graph, SCIP_Bool *success)
SCIP_RETCODE SCIPconsGetNVars(SCIP_CONS *cons, SCIP_SET *set, int *nvars, SCIP_Bool *success)
static SCIP_RETCODE conshdlrEnsureUpdateconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num)
void SCIPconsSetStickingAtNode(SCIP_CONS *cons, SCIP_Bool stickingatnode)
SCIP_RETCODE SCIPconsSetSeparated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool separate)
#define checkConssArrays(conshdlr)
SCIP_RETCODE SCIPconsSepalp(SCIP_CONS *cons, SCIP_SET *set, SCIP_RESULT *result)
static SCIP_RETCODE conssetchgRelease(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set)
static SCIP_RETCODE conshdlrProcessUpdates(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPconsEnfops(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_Bool objinfeasible, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsActive(SCIP_CONS *cons, SCIP_SET *set)
#define AGERESETAVG_AGELIMIT
SCIP_RETCODE SCIPconsResetAge(SCIP_CONS *cons, SCIP_SET *set)
static SCIP_RETCODE conshdlrEnsureInitconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num)
void SCIPconshdlrSetExit(SCIP_CONSHDLR *conshdlr,)
void SCIPconshdlrSetResprop(SCIP_CONSHDLR *conshdlr,)
void SCIPconshdlrSetTrans(SCIP_CONSHDLR *conshdlr,)
static SCIP_RETCODE conshdlrAddCheckcons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
static SCIP_RETCODE ensurePropagationStorage(SCIP_SET *set, SCIP_CONSHDLR *conshdlr, int num)
void SCIPconshdlrSetDelete(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsResprop(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR *infervar, int inferinfo, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd, SCIP_RESULT *result)
void SCIPconshdlrSetParse(SCIP_CONSHDLR *conshdlr,)
void SCIPconsSetRemovable(SCIP_CONS *cons, SCIP_Bool removable)
void SCIPconshdlrSetExitsol(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconshdlrCreate(SCIP_CONSHDLR **conshdlr, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int sepapriority, int enfopriority, int checkpriority, int sepafreq, int propfreq, int eagerfreq, int maxprerounds, SCIP_Bool delaysepa, SCIP_Bool delayprop, SCIP_Bool needscons, SCIP_PROPTIMING proptiming, SCIP_PRESOLTIMING presoltiming, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSFREE((*consfree)), SCIP_DECL_CONSINIT((*consinit)), SCIP_DECL_CONSEXIT((*consexit)), SCIP_DECL_CONSINITPRE((*consinitpre)), SCIP_DECL_CONSEXITPRE((*consexitpre)), SCIP_DECL_CONSINITSOL((*consinitsol)), SCIP_DECL_CONSEXITSOL((*consexitsol)), SCIP_DECL_CONSDELETE((*consdelete)), SCIP_DECL_CONSTRANS((*constrans)), SCIP_DECL_CONSINITLP((*consinitlp)), SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), SCIP_DECL_CONSENFOLP((*consenfolp)), SCIP_DECL_CONSENFORELAX((*consenforelax)), SCIP_DECL_CONSENFOPS((*consenfops)), SCIP_DECL_CONSCHECK((*conscheck)), SCIP_DECL_CONSPROP((*consprop)), SCIP_DECL_CONSPRESOL((*conspresol)), SCIP_DECL_CONSRESPROP((*consresprop)), SCIP_DECL_CONSLOCK((*conslock)), SCIP_DECL_CONSACTIVE((*consactive)), SCIP_DECL_CONSDEACTIVE((*consdeactive)), SCIP_DECL_CONSENABLE((*consenable)), SCIP_DECL_CONSDISABLE((*consdisable)), SCIP_DECL_CONSDELVARS((*consdelvars)), SCIP_DECL_CONSPRINT((*consprint)), SCIP_DECL_CONSCOPY((*conscopy)), SCIP_DECL_CONSPARSE((*consparse)), SCIP_DECL_CONSGETVARS((*consgetvars)), SCIP_DECL_CONSGETNVARS((*consgetnvars)), SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)), SCIP_DECL_CONSGETPERMSYMGRAPH((*consgetpermsymgraph)), SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH((*consgetsignedpermsymgraph)), SCIP_CONSHDLRDATA *conshdlrdata)
void SCIPconshdlrEnableOrDisableClocks(SCIP_CONSHDLR *conshdlr, SCIP_Bool enable)
static SCIP_RETCODE conssetchgDelDisabledCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos)
void SCIPconshdlrSetDisable(SCIP_CONSHDLR *conshdlr,)
void SCIPconshdlrSetActive(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsTransform(SCIP_CONS *origcons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS **transcons)
static SCIP_Bool consExceedsAgelimit(SCIP_CONS *cons, SCIP_SET *set)
static SCIP_RETCODE conshdlrAddSepacons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
SCIP_RETCODE SCIPconsCheck(SCIP_CONS *cons, SCIP_SET *set, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_RESULT *result)
#define AGERESETAVG_OBSOLETEAGE
static void conshdlrDelEnfocons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
SCIP_RETCODE SCIPconssetchgAddAddedCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons, int depth, SCIP_Bool focusnode, SCIP_Bool active)
SCIP_RETCODE SCIPconshdlrInitLP(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_Bool initkeptconss, SCIP_Bool *cutoff)
static SCIP_RETCODE conshdlrDisableConsPropagation(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
static SCIP_RETCODE conshdlrEnsureConssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num)
static void conshdlrUnmarkConsPropagate(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
static void conshdlrMarkConsPropagate(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
SCIP_RETCODE SCIPconsAddAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real deltaage, SCIP_REOPT *reopt)
SCIP_RETCODE SCIPconsEnablePropagation(SCIP_CONS *cons, SCIP_SET *set)
static void conshdlrDelCheckcons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
static void conshdlrDelayUpdates(SCIP_CONSHDLR *conshdlr)
static void conshdlrDelInitcons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
static SCIP_RETCODE conshdlrForceUpdates(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPconsEnfolp(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_RESULT *result)
static SCIP_RETCODE conshdlrAddCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
SCIP_RETCODE SCIPconsSetInitial(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool initial)
SCIP_RETCODE SCIPconssetchgFree(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set)
static SCIP_RETCODE conshdlrEnsureEnfoconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num)
SCIP_RETCODE SCIPconsChgName(SCIP_CONS *cons, BMS_BLKMEM *blkmem, const char *name)
static SCIP_RETCODE conshdlrDisableCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons)
SCIP_RETCODE SCIPconsIncAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_REOPT *reopt)
static SCIP_Bool consExceedsObsoleteage(SCIP_CONS *cons, SCIP_SET *set)
void SCIPconshdlrSetEnable(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconshdlrInitpre(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
void SCIPconsSetDynamic(SCIP_CONS *cons, SCIP_Bool dynamic)
SCIP_RETCODE SCIPconsSepasol(SCIP_CONS *cons, SCIP_SET *set, SCIP_SOL *sol, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsFree(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set)
static SCIP_RETCODE conshdlrMarkConsUseful(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
static SCIP_RETCODE conshdlrEnableConsPropagation(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
SCIP_RETCODE SCIPconssetchgAddDisabledCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS *cons)
void SCIPconshdlrSetDeactive(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsDelete(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_REOPT *reopt)
void SCIPconshdlrSetGetVars(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsPresol(SCIP_CONS *cons, SCIP_SET *set, int nrounds, SCIP_PRESOLTIMING timing, int nnewfixedvars, int nnewaggrvars, int nnewchgvartypes, int nnewchgbds, int nnewholes, int nnewdelconss, int nnewaddconss, int nnewupgdconss, int nnewchgcoefs, int nnewchgsides, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsDisablePropagation(SCIP_CONS *cons, SCIP_SET *set)
SCIP_RETCODE SCIPconsCopy(SCIP_CONS **cons, SCIP_SET *set, const char *name, SCIP *sourcescip, SCIP_CONSHDLR *sourceconshdlr, SCIP_CONS *sourcecons, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool global, SCIP_Bool *valid)
static void conshdlrDelCons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
void SCIPconshdlrSetGetDiveBdChgs(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsRelease(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_RETCODE SCIPconsResolvePropagation(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR *infervar, int inferinfo, SCIP_BOUNDTYPE inferboundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsSetPropagated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool propagate)
SCIP_RETCODE SCIPconsDisableSeparation(SCIP_CONS *cons, SCIP_SET *set)
static SCIP_RETCODE conshdlrEnsureSepaconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num)
void SCIPconshdlrSetInitsol(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsGetSignedPermsymGraph(SCIP_CONS *cons, SCIP_SET *set, SYM_GRAPH *graph, SCIP_Bool *success)
SCIP_RETCODE SCIPconshdlrUnlockVars(SCIP_CONSHDLR *conshdlr, SCIP_SET *set)
SCIP_RETCODE SCIPconsSetChecked(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool check)
SCIP_RETCODE SCIPconsInitlp(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool *infeasible)
SCIP_RETCODE SCIPconsEnforelax(SCIP_CONS *cons, SCIP_SET *set, SCIP_SOL *sol, SCIP_Bool solinfeasible, SCIP_RESULT *result)
static SCIP_RETCODE conshdlrAddUpdateCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
static SCIP_RETCODE doConshdlrCreate(SCIP_CONSHDLR **conshdlr, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int sepapriority, int enfopriority, int checkpriority, int sepafreq, int propfreq, int eagerfreq, int maxprerounds, SCIP_Bool delaysepa, SCIP_Bool delayprop, SCIP_Bool needscons, SCIP_PROPTIMING proptiming, SCIP_PRESOLTIMING presoltiming, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSFREE((*consfree)), SCIP_DECL_CONSINIT((*consinit)), SCIP_DECL_CONSEXIT((*consexit)), SCIP_DECL_CONSINITPRE((*consinitpre)), SCIP_DECL_CONSEXITPRE((*consexitpre)), SCIP_DECL_CONSINITSOL((*consinitsol)), SCIP_DECL_CONSEXITSOL((*consexitsol)), SCIP_DECL_CONSDELETE((*consdelete)), SCIP_DECL_CONSTRANS((*constrans)), SCIP_DECL_CONSINITLP((*consinitlp)), SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), SCIP_DECL_CONSENFOLP((*consenfolp)), SCIP_DECL_CONSENFORELAX((*consenforelax)), SCIP_DECL_CONSENFOPS((*consenfops)), SCIP_DECL_CONSCHECK((*conscheck)), SCIP_DECL_CONSPROP((*consprop)), SCIP_DECL_CONSPRESOL((*conspresol)), SCIP_DECL_CONSRESPROP((*consresprop)), SCIP_DECL_CONSLOCK((*conslock)), SCIP_DECL_CONSACTIVE((*consactive)), SCIP_DECL_CONSDEACTIVE((*consdeactive)), SCIP_DECL_CONSENABLE((*consenable)), SCIP_DECL_CONSDISABLE((*consdisable)), SCIP_DECL_CONSDELVARS((*consdelvars)), SCIP_DECL_CONSPRINT((*consprint)), SCIP_DECL_CONSCOPY((*conscopy)), SCIP_DECL_CONSPARSE((*consparse)), SCIP_DECL_CONSGETVARS((*consgetvars)), SCIP_DECL_CONSGETNVARS((*consgetnvars)), SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)), SCIP_DECL_CONSGETPERMSYMGRAPH((*consgetpermsymgraph)), SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH((*consgetsignedpermsymgraph)), SCIP_CONSHDLRDATA *conshdlrdata)
SCIP_RETCODE SCIPconshdlrsResetPropagationStatus(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONSHDLR **conshdlrs, int nconshdlrs)
SCIP_RETCODE SCIPconshdlrCopyInclude(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_Bool *valid)
SCIP_RETCODE SCIPconsMarkConflict(SCIP_CONS *cons)
SCIP_RETCODE SCIPconsActivate(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode)
static SCIP_RETCODE conshdlrAddEnfocons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
static SCIP_RETCODE conshdlrEnableConsSeparation(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
static void conshdlrDelSepacons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons)
SCIP_CONS * SCIPconsGetTransformed(SCIP_CONS *cons)
#define AGERESETAVG_DECAY
SCIP_RETCODE SCIPconshdlrPropagate(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool fullpropagation, SCIP_Bool execdelayed, SCIP_Bool instrongbranching, SCIP_PROPTIMING proptiming, SCIP_RESULT *result)
void SCIPconshdlrSetInitlp(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconsUnmarkPropagate(SCIP_CONS *cons, SCIP_SET *set)
SCIP_RETCODE SCIPconshdlrGetDiveBoundChanges(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_DIVESET *diveset, SCIP_SOL *sol, SCIP_Bool *success, SCIP_Bool *infeasible)
static void conshdlrUpdateAgeresetavg(SCIP_CONSHDLR *conshdlr, SCIP_Real age)
void SCIPconshdlrSetCopy(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)),)
void SCIPconshdlrSetFree(SCIP_CONSHDLR *conshdlr,)
static SCIP_RETCODE conshdlrAddPropcons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons)
SCIP_RETCODE SCIPconshdlrPresolve(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRESOLTIMING timing, int nrounds, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result)
SCIP_RETCODE SCIPconsGetVars(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR **vars, int varssize, SCIP_Bool *success)
void SCIPconsSetNamePointer(SCIP_CONS *cons, const char *name)
SCIP_RETCODE SCIPconshdlrEnforcePseudoSol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_BRANCHCAND *branchcand, SCIP_Bool solinfeasible, SCIP_Bool objinfeasible, SCIP_Bool forced, SCIP_RESULT *result)
void SCIPconshdlrSetInitpre(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconssetchgApply(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode)
SCIP_RETCODE SCIPconshdlrDelVars(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPconsSetEnforced(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool enforce)
void SCIPconsSetModifiable(SCIP_CONS *cons, SCIP_Bool modifiable)
static SCIP_RETCODE conshdlrDeactivateCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons)
SCIP_RETCODE SCIPconshdlrExitpre(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPconshdlrInitsol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPconssetchgMakeGlobal(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_REOPT *reopt)
void SCIPconshdlrSetPrint(SCIP_CONSHDLR *conshdlr,)
SCIP_RETCODE SCIPconshdlrCheck(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_Bool completely, SCIP_RESULT *result)
SCIP_RETCODE SCIPconshdlrExit(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
static SCIP_RETCODE conshdlrActivateCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons, int depth, SCIP_Bool focusnode)
SCIP_RETCODE SCIPconshdlrFree(SCIP_CONSHDLR **conshdlr, SCIP_SET *set)
internal methods for constraints and constraint handlers
common defines and data types used in all packages of SCIP
#define SCIP_MAXTREEDEPTH
#define SCIP_CALL_FINALLY(x, y)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
int SCIPconshdlrGetNCheckConss(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetData(SCIP_CONSHDLR *conshdlr, SCIP_CONSHDLRDATA *conshdlrdata)
void SCIPconshdlrSetEnforelax(SCIP_CONSHDLR *conshdlr,)
int SCIPconshdlrGetMaxNActiveConss(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetCheckTime(SCIP_CONSHDLR *conshdlr)
SCIP_PROPTIMING SCIPconshdlrGetPropTiming(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrWasSolSeparationDelayed(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNCheckCalls(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNChgSides(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetPresolTime(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetEagerFreq(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrDoesPresolve(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetProp(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPROP((*consprop)), int propfreq, SCIP_Bool delayprop, SCIP_PROPTIMING timingmask)
int SCIPconshdlrGetNFixedVars(SCIP_CONSHDLR *conshdlr)
SCIP_PRESOLTIMING SCIPconshdlrGetPresolTiming(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetEnfoLPTime(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNPresolCalls(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNDomredsFound(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetSepaPriority(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNCutsApplied(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNChgCoefs(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetPresolTiming(SCIP_CONSHDLR *conshdlr, SCIP_PRESOLTIMING presoltiming)
void SCIPconshdlrMarkExact(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNUpdateConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetEnfoConss(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetSepa(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), int sepafreq, int sepapriority, SCIP_Bool delaysepa)
SCIP_Real SCIPconshdlrGetStrongBranchPropTime(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNCutsFound(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrSupportsSignedPermsymDetection(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrIsPropagationDelayed(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetPropTime(SCIP_CONSHDLR *conshdlr)
void SCIPconssetchgGetAddedConsData(SCIP_CONSSETCHG *conssetchg, SCIP_CONS ***conss, int *nconss)
SCIP_Real SCIPconshdlrGetEnfoPSTime(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetPropFreq(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNConss(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNCutoffs(SCIP_CONSHDLR *conshdlr)
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNEnabledConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetUpdateConss(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrIsSeparationDelayed(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNSepaCalls(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNDelConss(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrWasLPSeparationDelayed(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNChildren(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetEnfoRelaxTime(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetPropTiming(SCIP_CONSHDLR *conshdlr, SCIP_PROPTIMING proptiming)
SCIP_Bool SCIPconshdlrNeedsCons(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNAggrVars(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNEnfoPSCalls(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNAddHoles(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNEnfoConss(SCIP_CONSHDLR *conshdlr)
void SCIPconshdlrSetNeedsCons(SCIP_CONSHDLR *conshdlr, SCIP_Bool needscons)
SCIP_Bool SCIPconshdlrIsInitialized(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNUpgdConss(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetStartNActiveConss(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrIsExact(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrWasPropagationDelayed(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNAddConss(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrSupportsPermsymDetection(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNChgBds(SCIP_CONSHDLR *conshdlr)
const char * SCIPconshdlrGetDesc(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLRDATA * SCIPconshdlrGetData(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNConssFound(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetCheckPriority(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetSepaFreq(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNPropCalls(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNEnfoLPCalls(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetEnfoPriority(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetSetupTime(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNRespropCalls(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetSepaTime(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconshdlrIsClonable(SCIP_CONSHDLR *conshdlr)
int SCIPconshdlrGetNChgVarTypes(SCIP_CONSHDLR *conshdlr)
SCIP_Real SCIPconshdlrGetRespropTime(SCIP_CONSHDLR *conshdlr)
SCIP_Longint SCIPconshdlrGetNEnfoRelaxCalls(SCIP_CONSHDLR *conshdlr)
SCIP_Bool SCIPconsIsLockedNeg(SCIP_CONS *cons)
SCIP_CONSDATA * SCIPconsGetData(SCIP_CONS *cons)
void SCIPconsAddUpgradeLocks(SCIP_CONS *cons, int nlocks)
int SCIPconsGetPos(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsConflict(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsDynamic(SCIP_CONS *cons)
SCIP_Real SCIPconsGetAge(SCIP_CONS *cons)
SCIP_CONSHDLR * SCIPconsGetHdlr(SCIP_CONS *cons)
int SCIPconsGetActiveDepth(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsLockedPos(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsPropagationEnabled(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsInitial(SCIP_CONS *cons)
int SCIPconsGetNUpgradeLocks(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsMarkedPropagate(SCIP_CONS *cons)
int SCIPconsGetNLocksTypeNeg(SCIP_CONS *cons, SCIP_LOCKTYPE locktype)
int SCIPconsGetValidDepth(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsOriginal(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsChecked(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsDeleted(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsUpdatedeactivate(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsTransformed(SCIP_CONS *cons)
int SCIPconsGetNLocksPos(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsLockedType(SCIP_CONS *cons, SCIP_LOCKTYPE locktype)
SCIP_Bool SCIPconsIsEnforced(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsInProb(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsGlobal(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsActive(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsPropagated(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsLocal(SCIP_CONS *cons)
int SCIPconsGetNLocksNeg(SCIP_CONS *cons)
int SCIPconsGetNUses(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsLockedTypePos(SCIP_CONS *cons, SCIP_LOCKTYPE locktype)
SCIP_Bool SCIPconsIsEnabled(SCIP_CONS *cons)
const char * SCIPconsGetName(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsLocked(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsSeparationEnabled(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsLockedTypeNeg(SCIP_CONS *cons, SCIP_LOCKTYPE locktype)
SCIP_Bool SCIPconsIsModifiable(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsAdded(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsObsolete(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsStickingAtNode(SCIP_CONS *cons)
int SCIPconsGetNLocksTypePos(SCIP_CONS *cons, SCIP_LOCKTYPE locktype)
SCIP_Bool SCIPconsIsSeparated(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsRemovable(SCIP_CONS *cons)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPallocBlockMemory(scip, ptr)
int SCIPlinConsStatsGetSum(SCIP_LINCONSSTATS *linconsstats)
void SCIPlinConsStatsIncTypeCount(SCIP_LINCONSSTATS *linconsstats, SCIP_LINCONSTYPE linconstype, int increment)
int SCIPlinConsStatsGetTypeCount(SCIP_LINCONSSTATS *linconsstats, SCIP_LINCONSTYPE linconstype)
void SCIPlinConsStatsFree(SCIP *scip, SCIP_LINCONSSTATS **linconsstats)
void SCIPlinConsStatsReset(SCIP_LINCONSSTATS *linconsstats)
void SCIPprintLinConsStats(SCIP *scip, FILE *file, SCIP_LINCONSSTATS *linconsstats)
SCIP_RETCODE SCIPlinConsStatsCreate(SCIP *scip, SCIP_LINCONSSTATS **linconsstats)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_Real SCIPgetVarUbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_Real SCIPgetVarLbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
int SCIPsnprintf(char *t, int len, const char *s,...)
void SCIPstrCopySection(const char *str, char startchar, char endchar, char *token, int size, char **endptr)
SCIP_RETCODE SCIPskipSpace(char **s)
static SCIP_DIVESET * diveset
assert(minobj< SCIPgetCutoffbound(scip))
static SCIP_Bool propagate
static const char * paramname[]
#define BMSduplicateBlockMemoryArray(mem, ptr, source, num)
#define BMSfreeMemory(ptr)
#define BMSfreeBlockMemory(mem, ptr)
#define BMSallocBlockMemory(mem, ptr)
#define BMSreallocMemoryArray(ptr, num)
#define BMSfreeBlockMemoryArrayNull(mem, ptr, num)
#define BMSduplicateMemoryArray(ptr, source, num)
#define BMSclearMemory(ptr)
#define BMScopyMemoryArray(ptr, source, num)
#define BMSfreeBlockMemoryArray(mem, ptr, num)
#define BMSreallocBlockMemoryArray(mem, ptr, oldnum, newnum)
#define BMSclearMemoryArray(ptr, num)
struct BMS_BlkMem BMS_BLKMEM
#define BMSfreeMemoryArrayNull(ptr)
#define BMSallocMemory(ptr)
void SCIPmessagePrintError(const char *formatstr,...)
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...)
SCIP_RETCODE SCIPprobDelCons(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons)
SCIP_RETCODE SCIPprobAddCons(SCIP_PROB *prob, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons)
internal methods for storing and manipulating the main problem
public data structures and miscellaneous methods
SCIP_Bool SCIPreoptConsCanBeDeleted(SCIP_REOPT *reopt, SCIP_CONS *cons)
data structures and methods for collecting reoptimization information
static SCIP_RETCODE separate(SCIP *scip, SCIP_SEPA *sepa, SCIP_SOL *sol, SCIP_RESULT *result)
Main separation function.
int SCIPsepastoreGetNCuts(SCIP_SEPASTORE *sepastore)
internal methods for storing separated cuts
SCIP_RETCODE SCIPsetAddIntParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPsetAddBoolParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_CONSHDLR * SCIPsetFindConshdlr(SCIP_SET *set, const char *name)
SCIP_STAGE SCIPsetGetStage(SCIP_SET *set)
int SCIPsetCalcMemGrowSize(SCIP_SET *set, int num)
internal methods for global SCIP settings
internal methods for problem statistics
SCIP_CONS ** disabledconss
int nlocksneg[NLOCKTYPES]
unsigned int updatesepaenable
unsigned int updateobsolete
unsigned int updatesepadisable
SCIP_CONSSETCHG * addconssetchg
unsigned int updateenable
unsigned int updateactfocus
unsigned int updateunmarkpropagate
unsigned int updateactivate
SCIP_CONS * transorigcons
unsigned int updatedisable
unsigned int updatedeactivate
unsigned int updatepropenable
unsigned int stickingatnode
int nlockspos[NLOCKTYPES]
unsigned int markpropagate
unsigned int updatemarkpropagate
unsigned int updatepropdisable
unsigned int updateinsert
SCIP_RESULT lastenfolpresult
SCIP_Longint ndomredsfound
SCIP_PRESOLTIMING presoltiming
SCIP_Longint lastenfolpdomchgcount
SCIP_CLOCK * enforelaxtime
int storednmarkedpropconss
SCIP_Longint nenfolpcalls
SCIP_RESULT lastenfopsresult
SCIP_Longint nenforelaxcalls
SCIP_Longint lastsepalpcount
SCIP_Longint lastenfolplpcount
SCIP_Bool sepasolwasdelayed
SCIP_Bool sepalpwasdelayed
SCIP_Longint ncutsapplied
SCIP_RESULT lastenforelaxresult
SCIP_Longint nenfopscalls
SCIP_Longint lastenforelaxrelaxcount
SCIP_Longint storedpropdomchgcount
SCIP_Longint lastenfolpnode
SCIP_PROPTIMING proptiming
SCIP_Longint lastenforelaxnode
SCIP_CONS ** storedpropconss
SCIP_Longint lastpropdomchgcount
SCIP_Longint lastenfopsnode
SCIP_Longint lastenforelaxdomchgcount
SCIP_Longint nrespropcalls
SCIP_CONSHDLRDATA * conshdlrdata
SCIP_Longint lastenfopsdomchgcount
int counter[SCIP_NLINCONSTYPES]
SCIP_Longint nprobholechgs
SCIP_Longint ninitconssadded
SCIP_Longint nprobboundchgs
datastructures for constraints and constraint handlers
SCIP_Bool SCIPtreeProbing(SCIP_TREE *tree)
int SCIPtreeGetCurrentDepth(SCIP_TREE *tree)
internal methods for branch and bound tree
struct SCIP_BranchCand SCIP_BRANCHCAND
#define SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH(x)
#define SCIP_DECL_CONSGETPERMSYMGRAPH(x)
#define SCIP_DECL_CONSENFOLP(x)
#define SCIP_DECL_CONSINITPRE(x)
#define SCIP_DECL_CONSDELETE(x)
struct SCIP_Cons SCIP_CONS
#define SCIP_DECL_CONSEXIT(x)
#define SCIP_DECL_CONSGETVARS(x)
#define SCIP_DECL_CONSINITSOL(x)
#define SCIP_DECL_CONSPRINT(x)
struct SCIP_ConshdlrData SCIP_CONSHDLRDATA
#define SCIP_DECL_CONSSEPALP(x)
#define SCIP_DECL_CONSDISABLE(x)
struct SCIP_ConsSetChg SCIP_CONSSETCHG
struct SYM_Graph SYM_GRAPH
#define SCIP_DECL_CONSENFORELAX(x)
struct SCIP_LinConsStats SCIP_LINCONSSTATS
#define SCIP_DECL_CONSGETDIVEBDCHGS(x)
#define SCIP_DECL_CONSPROP(x)
#define SCIP_DECL_CONSGETNVARS(x)
#define SCIP_DECL_CONSRESPROP(x)
@ SCIP_LINCONSTYPE_BINPACKING
@ SCIP_LINCONSTYPE_VARBOUND
@ SCIP_LINCONSTYPE_INVKNAPSACK
@ SCIP_LINCONSTYPE_PRECEDENCE
@ SCIP_LINCONSTYPE_AGGREGATION
@ SCIP_LINCONSTYPE_MIXEDBINARY
@ SCIP_LINCONSTYPE_SINGLETON
@ SCIP_LINCONSTYPE_SETCOVERING
@ SCIP_LINCONSTYPE_EQKNAPSACK
@ SCIP_LINCONSTYPE_KNAPSACK
@ SCIP_LINCONSTYPE_SETPARTITION
@ SCIP_LINCONSTYPE_INTKNAPSACK
@ SCIP_LINCONSTYPE_SETPACKING
@ SCIP_LINCONSTYPE_GENERAL
@ SCIP_LINCONSTYPE_CARDINALITY
#define SCIP_DECL_CONSACTIVE(x)
#define SCIP_DECL_CONSENFOPS(x)
#define SCIP_DECL_CONSPARSE(x)
#define SCIP_DECL_CONSTRANS(x)
#define SCIP_DECL_CONSDEACTIVE(x)
#define SCIP_DECL_CONSPRESOL(x)
#define SCIP_DECL_CONSENABLE(x)
#define SCIP_DECL_CONSINITLP(x)
#define SCIP_DECL_CONSEXITPRE(x)
#define SCIP_DECL_CONSLOCK(x)
struct SCIP_Conshdlr SCIP_CONSHDLR
#define SCIP_DECL_CONSCOPY(x)
#define SCIP_DECL_CONSINIT(x)
struct SCIP_ConsData SCIP_CONSDATA
#define SCIP_DECL_CONSCHECK(x)
#define SCIP_DECL_CONSHDLRCOPY(x)
#define SCIP_DECL_CONSEXITSOL(x)
#define SCIP_NLINCONSTYPES
#define SCIP_DECL_CONSFREE(x)
#define SCIP_DECL_CONSSEPASOL(x)
enum SCIP_LinConstype SCIP_LINCONSTYPE
#define SCIP_DECL_CONSDELVARS(x)
struct SCIP_Diveset SCIP_DIVESET
enum SCIP_BoundType SCIP_BOUNDTYPE
struct SCIP_Messagehdlr SCIP_MESSAGEHDLR
struct SCIP_HashMap SCIP_HASHMAP
#define SCIP_DECL_SORTPTRCOMP(x)
#define SCIP_DECL_HASHGETKEY(x)
struct SCIP_Prob SCIP_PROB
struct SCIP_Reopt SCIP_REOPT
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
struct SCIP_SepaStore SCIP_SEPASTORE
struct SCIP_Stat SCIP_STAT
#define SCIP_PRESOLTIMING_MAX
#define SCIP_PRESOLTIMING_FINAL
unsigned int SCIP_PROPTIMING
#define SCIP_PRESOLTIMING_MEDIUM
unsigned int SCIP_PRESOLTIMING
#define SCIP_PROPTIMING_AFTERLPLOOP
#define SCIP_PRESOLTIMING_FAST
#define SCIP_PRESOLTIMING_EXHAUSTIVE
#define SCIP_PROPTIMING_BEFORELP
#define SCIP_PROPTIMING_ALWAYS
#define SCIP_PROPTIMING_DURINGLPLOOP
struct SCIP_Tree SCIP_TREE
struct SCIP_BdChgIdx SCIP_BDCHGIDX
enum SCIP_LockType SCIP_LOCKTYPE
internal methods for problem variables