print_backtrace(
void)
109size = backtrace(array, 10);
110strings = backtrace_symbols(array, size);
111 if( strings ==
NULL)
115 for( i = 1; i < size; ++i )
124 char* closepar =
NULL;
125#ifndef DEBUGUSES_NOADDR2LINE 126openpar = strchr(strings[i],
'(');
127 if( openpar !=
NULL&& openpar[1] ==
'+')
128closepar = strchr(openpar+2,
')');
130 if( closepar !=
NULL)
133(void)
SCIPsnprintf(cmd,
SCIP_MAXSTRLEN,
"addr2line -f -p -e \"%.*s\" %.*s", openpar - strings[i], strings[i], closepar-openpar-1, openpar+1);
139printf(
" %s\n", strings[i]);
160assert(holelist !=
NULL);
161assert(blkmem !=
NULL);
164 SCIPsetDebugMsg(
set,
"create hole list element (%.15g,%.15g) in blkmem %p\n", left, right, (
void*)blkmem);
167(*holelist)->hole.left = left;
168(*holelist)->hole.right = right;
169(*holelist)->next =
NULL;
181assert(holelist !=
NULL);
182assert(blkmem !=
NULL);
184 while( *holelist !=
NULL)
189(*holelist)->hole.left, (*holelist)->hole.right, (
void*)blkmem);
191next = (*holelist)->
next;
193assert(*holelist ==
NULL);
197assert(*holelist ==
NULL);
209assert(target !=
NULL);
211 while( source !=
NULL)
215source = source->
next;
216target = &(*target)->
next;
236assert(dom !=
NULL);
237assert(added !=
NULL);
241 while( *insertpos !=
NULL&& (*insertpos)->hole.left < left )
242insertpos = &(*insertpos)->
next;
245 if( *insertpos !=
NULL&& (*insertpos)->hole.left == left && (*insertpos)->hole.right >= right )
247 SCIPsetDebugMsg(
set,
"new hole (%.15g,%.15g) is redundant through known hole (%.15g,%.15g)\n",
248left, right, (*insertpos)->hole.left, (*insertpos)->hole.right);
258(*insertpos)->next = next;
280assert(dom !=
NULL);
292 while( *holelistptr !=
NULL)
294 if( (*holelistptr)->next !=
NULL)
296assert(
SCIPsetIsLE(
set, lastleft, (*holelistptr)->hole.left) );
297lastleft = (*holelistptr)->hole.left;
300holelistptr = &(*holelistptr)->
next;
308lastrightptr = &dom->
lb;
309lastnextptr = holelistptr;
311 while( *holelistptr !=
NULL)
313 SCIPsetDebugMsg(
set,
"check hole (%.15g,%.15g) last right interval was <%.15g>\n", (*holelistptr)->hole.left, (*holelistptr)->hole.right, *lastrightptr);
316assert(
SCIPsetIsLT(
set, (*holelistptr)->hole.left, (*holelistptr)->hole.right));
321 SCIPsetDebugMsg(
set,
"remove remaining hole since upper bound <%.15g> is less then the left hand side of the current hole\n", dom->
ub);
323assert(*holelistptr ==
NULL);
326*lastnextptr =
NULL;
331 SCIPsetDebugMsg(
set,
"upper bound <%.15g> lays in current hole; store new upper bound and remove this and all remaining holes\n", dom->
ub);
336dom->
ub= (*holelistptr)->hole.left;
339*newub = (*holelistptr)->hole.left;
343assert(*holelistptr ==
NULL);
346*lastnextptr =
NULL;
348 else if(
SCIPsetIsGT(
set, *lastrightptr, (*holelistptr)->hole.left) )
358 SCIPsetDebugMsg(
set,
"lower bound <%.15g> lays in current hole; store new lower bound and remove hole\n", dom->
lb);
359*lastrightptr =
MAX(*lastrightptr, (*holelistptr)->hole.right);
362dom->
lb= *lastrightptr;
365*newlb = *lastrightptr;
369 SCIPsetDebugMsg(
set,
"current hole overlaps with the previous one (...,%.15g); merge to (...,%.15g)\n",
370*lastrightptr,
MAX(*lastrightptr, (*holelistptr)->hole.right) );
371*lastrightptr =
MAX(*lastrightptr, (*holelistptr)->hole.right);
373nextholelist = (*holelistptr)->
next;
378*lastnextptr = nextholelist;
381*holelistptr = nextholelist;
386lastrightptr = &(*holelistptr)->
hole.
right;
387lastnextptr = &(*holelistptr)->
next;
390holelistptr = &(*holelistptr)->
next;
399lastright = dom->
lb;
402 while( *holelistptr !=
NULL)
405assert(
SCIPsetIsLE(
set, lastright, (*holelistptr)->hole.left) );
408assert(
SCIPsetIsLT(
set, (*holelistptr)->hole.left, (*holelistptr)->hole.right) );
409lastright = (*holelistptr)->hole.right;
412holelistptr = &(*holelistptr)->
next;
434assert(var !=
NULL);
446assert(num <= var->lbchginfossize);
460assert(var !=
NULL);
472assert(num <= var->ubchginfossize);
495assert(var !=
NULL);
505 SCIPsetDebugMsg(
set,
"adding lower bound change info to var <%s>[%g,%g]: depth=%d, pos=%d, infer%s=<%s>, inferinfo=%d, %g -> %g\n",
527 switch( boundchgtype )
532assert(infercons !=
NULL);
570assert(var !=
NULL);
580 SCIPsetDebugMsg(
set,
"adding upper bound change info to var <%s>[%g,%g]: depth=%d, pos=%d, infer%s=<%s>, inferinfo=%d, %g -> %g\n",
602 switch( boundchgtype )
607assert(infercons !=
NULL);
643assert(boundchg !=
NULL);
644assert(stat !=
NULL);
647assert(cutoff !=
NULL);
655var = boundchg->
var;
656assert(var !=
NULL);
684 SCIPsetDebugMsg(
set,
" -> constraint <%s> inference: new lower bound of <%s>[%g,%g]: %g\n",
694 SCIPsetDebugMsg(
set,
" -> propagator <%s> inference: new lower bound of <%s>[%g,%g]: %g\n",
751 SCIPsetDebugMsg(
set,
" -> constraint <%s> inference: new upper bound of <%s>[%g,%g]: %g\n",
761 SCIPsetDebugMsg(
set,
" -> propagator <%s> inference: new upper bound of <%s>[%g,%g]: %g\n",
805assert(var == boundchg->
var);
837assert(boundchg !=
NULL);
838assert(stat !=
NULL);
844var = boundchg->
var;
845assert(var !=
NULL);
858 SCIPsetDebugMsg(
set,
"removed lower bound change info of var <%s>[%g,%g]: depth=%d, pos=%d, %g -> %g\n",
879 SCIPsetDebugMsg(
set,
"removed upper bound change info of var <%s>[%g,%g]: depth=%d, pos=%d, %g -> %g\n",
926assert(boundchg !=
NULL);
927assert(cutoff !=
NULL);
974assert(boundchg !=
NULL);
977assert(boundchg->
var!=
NULL);
1011assert(boundchg !=
NULL);
1031assert(boundchg->
var!=
NULL);
1044assert(domchg !=
NULL);
1045assert(blkmem !=
NULL);
1049(*domchg)->domchgdyn.nboundchgs = 0;
1050(*domchg)->domchgdyn.boundchgs =
NULL;
1051(*domchg)->domchgdyn.nholechgs = 0;
1052(*domchg)->domchgdyn.holechgs =
NULL;
1053(*domchg)->domchgdyn.boundchgssize = 0;
1054(*domchg)->domchgdyn.holechgssize = 0;
1068assert(domchg !=
NULL);
1069assert(blkmem !=
NULL);
1071 if( *domchg !=
NULL)
1076 for( i = 0; i < (int)(*domchg)->domchgbound.nboundchgs; ++i )
1082 switch( (*domchg)->domchgdyn.domchgtype )
1114assert(domchg !=
NULL);
1115assert(blkmem !=
NULL);
1117 SCIPdebugMessage(
"making domain change data %p pointing to %p dynamic\n", (
void*)domchg, (
void*)*domchg);
1119 if( *domchg ==
NULL)
1125 switch( (*domchg)->domchgdyn.domchgtype )
1129(*domchg)->domchgdyn.nholechgs = 0;
1130(*domchg)->domchgdyn.holechgs =
NULL;
1131(*domchg)->domchgdyn.boundchgssize = (int) (*domchg)->domchgdyn.nboundchgs;
1132(*domchg)->domchgdyn.holechgssize = 0;
1137(*domchg)->domchgdyn.boundchgssize = (int) (*domchg)->domchgdyn.nboundchgs;
1138(*domchg)->domchgdyn.holechgssize = (*domchg)->domchgdyn.nholechgs;
1151 for( i = 0; i < (int)(*domchg)->domchgbound.nboundchgs; ++i )
1153||
EPSISINT((*domchg)->domchgbound.boundchgs[i].newbound, 1e-06));
1169assert(domchg !=
NULL);
1170assert(blkmem !=
NULL);
1172 SCIPsetDebugMsg(
set,
"making domain change data %p pointing to %p static\n", (
void*)domchg, (
void*)*domchg);
1174 if( *domchg !=
NULL)
1176 switch( (*domchg)->domchgdyn.domchgtype )
1179 if( (*domchg)->domchgbound.nboundchgs == 0 )
1185 if( (*domchg)->domchgboth.nholechgs == 0 )
1187 if( (*domchg)->domchgbound.nboundchgs == 0 )
1199 if( (*domchg)->domchgboth.nholechgs == 0 )
1201 if( (*domchg)->domchgbound.nboundchgs == 0 )
1209(*domchg)->domchgdyn.boundchgssize, (*domchg)->domchgdyn.nboundchgs) );
1221(*domchg)->domchgdyn.boundchgssize, (*domchg)->domchgdyn.nboundchgs) );
1223(*domchg)->domchgdyn.holechgssize, (*domchg)->domchgdyn.nholechgs) );
1235 if( *domchg !=
NULL)
1238 for( i = 0; i < (int)(*domchg)->domchgbound.nboundchgs; ++i )
1257assert(domchg !=
NULL);
1268assert(num <= domchg->domchgdyn.boundchgssize);
1282assert(domchg !=
NULL);
1293assert(num <= domchg->domchgdyn.holechgssize);
1313assert(cutoff !=
NULL);
1317 SCIPsetDebugMsg(
set,
"applying domain changes at %p in depth %d\n", (
void*)domchg, depth);
1319 if( domchg ==
NULL)
1326branchcand, eventqueue, depth, i, cutoff) );
1361 if( domchg ==
NULL)
1397assert(cutoff !=
NULL);
1401 if( domchg ==
NULL)
1404 SCIPsetDebugMsg(
set,
"applying domain changes at %p to the global problem\n", (
void*)domchg);
1410branchcand, eventqueue, cliquetable, cutoff) );
1440assert(domchg !=
NULL);
1441assert(var !=
NULL);
1449 SCIPsetDebugMsg(
set,
"adding %s bound change <%s: %g> of variable <%s> to domain change at %p pointing to %p\n",
1451newbound, var->
name, (
void*)domchg, (
void*)*domchg);
1456 if( *domchg ==
NULL)
1470boundchg = &(*domchg)->domchgdyn.boundchgs[(*domchg)->domchgdyn.nboundchgs];
1471boundchg->
var= var;
1472 switch( boundchgtype )
1478assert(infercons !=
NULL);
1499(*domchg)->domchgdyn.nboundchgs++;
1504#ifdef SCIP_DISABLED_CODE 1505#ifdef SCIP_MORE_DEBUG 1508 for( i = 0; i < (int)(*domchg)->domchgbound.nboundchgs; ++i )
1530assert(domchg !=
NULL);
1531assert(ptr !=
NULL);
1536 if( *domchg ==
NULL)
1550holechg = &(*domchg)->domchgdyn.holechgs[(*domchg)->domchgdyn.nholechgs];
1551holechg->
ptr= ptr;
1554(*domchg)->domchgdyn.nholechgs++;
1622assert(var !=
NULL);
1630onlyredundant ?
"redundant":
"all", irrelevantvar ?
"irrelevant ":
"",
SCIPvarGetName(var), lb, ub);
1633 if( var->
implics!=
NULL&& (!onlyredundant || lb > 0.5 || ub < 0.5) )
1651 for( i = 0; i < nimpls; i++ )
1656implvar = implvars[i];
1657impltype = impltypes[i];
1658assert(implvar != var);
1690varfixing = !varfixing;
1692 while( varfixing ==
TRUE);
1694 if( removefromvar )
1721 for( i = 0; i < nvbds; i++ )
1726assert(newnvbds <= i);
1729assert(implvar !=
NULL);
1735 if( onlyredundant )
1743 if( removefromvar )
1747vars[newnvbds] = implvar;
1748coefs[newnvbds] = coef;
1749constants[newnvbds] = constants[i];
1764 if( coef > 0.0 && implvar->
vubs!=
NULL)
1766 SCIPsetDebugMsg(
set,
"deleting variable upper bound from <%s> involving variable %s\n",
1772 else if( coef < 0.0 && implvar->vlbs !=
NULL)
1774 SCIPsetDebugMsg(
set,
"deleting variable lower bound from <%s> involving variable %s\n",
1782 if( removefromvar )
1815 for( i = 0; i < nvbds; i++ )
1820assert(newnvbds <= i);
1823assert(implvar !=
NULL);
1829 if( onlyredundant )
1837 if( removefromvar )
1841vars[newnvbds] = implvar;
1842coefs[newnvbds] = coefs[i];
1843constants[newnvbds] = constants[i];
1858 if( coef < 0.0 && implvar->vubs !=
NULL)
1860 SCIPsetDebugMsg(
set,
"deleting variable upper bound from <%s> involving variable %s\n",
1866 else if( coef > 0.0 && implvar->
vlbs!=
NULL)
1868 SCIPsetDebugMsg(
set,
"deleting variable lower bound from <%s> involving variable %s\n",
1876 if( removefromvar )
1904assert(blkmem !=
NULL);
1905assert(var !=
NULL);
1911assert(stat !=
NULL);
1950assert(var !=
NULL);
1951assert(blkmem !=
NULL);
1952assert(stat !=
NULL);
1969 SCIPerrorMessage(
"invalid bounds [%.2g,%.2g] for binary variable <%s>\n", lb, ub, name);
1983(*var)->scip =
set->scip;
1986(*var)->unchangedobj = obj;
1987(*var)->branchfactor = 1.0;
1988(*var)->rootsol = 0.0;
1989(*var)->bestrootsol = 0.0;
1990(*var)->bestrootredcost = 0.0;
1992(*var)->relaxsol = 0.0;
1993(*var)->nlpsol = 0.0;
1994(*var)->primsolavg = 0.5 * (lb + ub);
1997(*var)->conflictrelaxedlb = (*var)->conflictlb;
1998(*var)->conflictrelaxedub = (*var)->conflictub;
2001(*var)->glbdom.holelist =
NULL;
2002(*var)->glbdom.lb = lb;
2003(*var)->glbdom.ub = ub;
2004(*var)->locdom.holelist =
NULL;
2005(*var)->locdom.lb = lb;
2006(*var)->locdom.ub = ub;
2007(*var)->varcopy = varcopy;
2008(*var)->vardelorig = vardelorig;
2009(*var)->vartrans = vartrans;
2010(*var)->vardeltrans = vardeltrans;
2011(*var)->vardata = vardata;
2012(*var)->parentvars =
NULL;
2013(*var)->negatedvar =
NULL;
2014(*var)->vlbs =
NULL;
2015(*var)->vubs =
NULL;
2016(*var)->implics =
NULL;
2017(*var)->cliquelist =
NULL;
2018(*var)->eventfilter =
NULL;
2019(*var)->lbchginfos =
NULL;
2020(*var)->ubchginfos =
NULL;
2021(*var)->index = stat->
nvaridx;
2022(*var)->probindex = -1;
2023(*var)->pseudocandindex = -1;
2024(*var)->eventqueueindexobj = -1;
2025(*var)->eventqueueindexlb = -1;
2026(*var)->eventqueueindexub = -1;
2027(*var)->parentvarssize = 0;
2028(*var)->nparentvars = 0;
2030(*var)->branchpriority = 0;
2032(*var)->lbchginfossize = 0;
2033(*var)->nlbchginfos = 0;
2034(*var)->ubchginfossize = 0;
2035(*var)->nubchginfos = 0;
2036(*var)->conflictlbcount = 0;
2037(*var)->conflictubcount = 0;
2038(*var)->closestvlbidx = -1;
2039(*var)->closestvubidx = -1;
2040(*var)->closestvblpcount = -1;
2041(*var)->initial = initial;
2042(*var)->removable = removable;
2043(*var)->deleted =
FALSE;
2044(*var)->donotaggr =
FALSE;
2045(*var)->donotmultaggr =
FALSE;
2046(*var)->vartype = vartype;
2047(*var)->pseudocostflag =
FALSE;
2048(*var)->eventqueueimpl =
FALSE;
2049(*var)->deletable =
FALSE;
2050(*var)->delglobalstructs =
FALSE;
2051(*var)->relaxationonly =
FALSE;
2055(*var)->nlocksdown[i] = 0;
2056(*var)->nlocksup[i] = 0;
2066(*var)->valuehistory =
NULL;
2093assert(var !=
NULL);
2094assert(blkmem !=
NULL);
2095assert(stat !=
NULL);
2098 SCIP_CALL(
varCreate(var, blkmem,
set, stat, name, lb, ub, obj, vartype, initial, removable,
2099varcopy, vardelorig, vartrans, vardeltrans, vardata) );
2103(*var)->data.original.origdom.holelist =
NULL;
2104(*var)->data.original.origdom.lb = lb;
2105(*var)->data.original.origdom.ub = ub;
2106(*var)->data.original.transvar =
NULL;
2136assert(var !=
NULL);
2137assert(blkmem !=
NULL);
2140 SCIP_CALL(
varCreate(var, blkmem,
set, stat, name, lb, ub, obj, vartype, initial, removable,
2141varcopy, vardelorig, vartrans, vardeltrans, vardata) );
2179assert(blkmem !=
NULL);
2180assert(stat !=
NULL);
2181assert(sourcescip !=
NULL);
2182assert(sourcevar !=
NULL);
2183assert(var !=
NULL);
2185assert(varmap !=
NULL);
2186assert(consmap !=
NULL);
2211assert(*var !=
NULL);
2214(*var)->donotaggr = sourcevar->
donotaggr;
2225varmap, consmap, (*var), &targetdata, &result) );
2230 SCIPerrorMessage(
"variable data copying method returned invalid result <%d>\n", result);
2239(*var)->varcopy = sourcevar->varcopy;
2240(*var)->vardelorig = sourcevar->vardelorig;
2241(*var)->vartrans = sourcevar->vartrans;
2242(*var)->vardeltrans = sourcevar->vardeltrans;
2243(*var)->
vardata= targetdata;
2248 if(
set->history_allowtransfer )
2258(*var)->varcopy = sourcevar->varcopy;
2259(*var)->vardelorig = sourcevar->vardelorig;
2260(*var)->vartrans = sourcevar->vartrans;
2261(*var)->vardeltrans = sourcevar->vardeltrans;
2262(*var)->
vardata= targetdata;
2280 if( strncmp(str,
"+inf", 4) == 0 )
2283(*endptr) = (
char*)str + 4;
2285 else if( strncmp(str,
"-inf", 4) == 0 )
2288(*endptr) = (
char*)str + 4;
2321|| ( strncmp(type,
"original", 8) != 0 && strncmp(type,
"global", 6) != 0 && strncmp(type,
"local", 5) != 0 && strncmp(type,
"lazy", 4) != 0 ) )
2341 while( **endptr !=
'\0'&& (**endptr ==
']'|| **endptr ==
',') )
2371assert(lb !=
NULL);
2372assert(ub !=
NULL);
2373assert(obj !=
NULL);
2374assert(vartype !=
NULL);
2375assert(lazylb !=
NULL);
2376assert(lazyub !=
NULL);
2377assert(success !=
NULL);
2383assert(*endptr != str);
2387 if( strncmp(token,
"binary", 3) == 0 )
2389 else if( strncmp(token,
"integer", 3) == 0 )
2391 else if( strncmp(token,
"implicit", 3) == 0 )
2393 else if( strncmp(token,
"continuous", 3) == 0 )
2398(*success) =
FALSE;
2407assert(*endptr != str);
2430 if( *endptr ==
NULL)
2435assert(strncmp(token,
"global", 6) == 0 || strncmp(token,
"original", 8) == 0);
2445 for( i = 0; i < 2 && *endptr !=
NULL&& **endptr !=
'\0'; ++i )
2454 if( *endptr ==
NULL)
2457 if( strncmp(token,
"local", 5) == 0 && local )
2462 else if( strncmp(token,
"lazy", 4) == 0 )
2470 if( *endptr ==
NULL)
2478 SCIPerrorMessage(
"Parsed invalid bounds for binary variable <%s>: [%f, %f].\n", name, *lb, *ub);
2484 SCIPerrorMessage(
"Parsed invalid lazy bounds for binary variable <%s>: [%f, %f].\n", name, *lazylb, *lazyub);
2522assert(var !=
NULL);
2523assert(blkmem !=
NULL);
2524assert(stat !=
NULL);
2525assert(endptr !=
NULL);
2526assert(success !=
NULL);
2529 SCIP_CALL(
varParse(
set, messagehdlr, str, name, &lb, &ub, &obj, &vartype, &lazylb, &lazyub,
FALSE, endptr, success) );
2534 SCIP_CALL(
varCreate(var, blkmem,
set, stat, name, lb, ub, obj, vartype, initial, removable,
2535varcopy, vardelorig, vartrans, vardeltrans, vardata) );
2539(*var)->data.original.origdom.holelist =
NULL;
2540(*var)->data.original.origdom.lb = lb;
2541(*var)->data.original.origdom.ub = ub;
2542(*var)->data.original.transvar =
NULL;
2545(*var)->lazylb = lazylb;
2546(*var)->lazyub = lazyub;
2586assert(var !=
NULL);
2587assert(blkmem !=
NULL);
2588assert(endptr !=
NULL);
2589assert(success !=
NULL);
2592 SCIP_CALL(
varParse(
set, messagehdlr, str, name, &lb, &ub, &obj, &vartype, &lazylb, &lazyub,
TRUE, endptr, success) );
2597 SCIP_CALL(
varCreate(var, blkmem,
set, stat, name, lb, ub, obj, vartype, initial, removable,
2598varcopy, vardelorig, vartrans, vardeltrans, vardata) );
2607(*var)->lazylb = lazylb;
2608(*var)->lazyub = lazyub;
2636assert(num <= var->parentvarssize);
2650assert(var !=
NULL);
2651assert(parentvar !=
NULL);
2685 for( i = 0; i < (*var)->nparentvars; ++i )
2687assert((*var)->parentvars !=
NULL);
2689assert(parentvar !=
NULL);
2705#ifdef SCIP_DISABLED_CODE 2711assert(v < parentvar->data.multaggr.nvars && parentvar->
data.
multaggr.
vars[v] == *var);
2712 if( v < parentvar->data.multaggr.nvars-1 )
2723assert((*var)->negatedvar == parentvar);
2725(*var)->negatedvar =
NULL;
2729 SCIPerrorMessage(
"parent variable is neither ORIGINAL, AGGREGATED nor NEGATED\n");
2752assert(var !=
NULL);
2753assert(*var !=
NULL);
2755assert((*var)->nuses == 0);
2756assert((*var)->probindex == -1);
2765assert((*var)->data.original.transvar ==
NULL);
2766 holelistFree(&(*var)->data.original.origdom.holelist, blkmem);
2767assert((*var)->data.original.origdom.holelist ==
NULL);
2794 if( (*var)->vardelorig !=
NULL)
2801 if( (*var)->vardeltrans !=
NULL)
2808 if( (*var)->eventfilter !=
NULL)
2812assert((*var)->eventfilter ==
NULL);
2817assert((*var)->glbdom.holelist ==
NULL);
2818assert((*var)->locdom.holelist ==
NULL);
2851assert(var !=
NULL);
2852assert(var->
nuses>= 0);
2857#ifdef DEBUGUSES_VARNAME 2858 if( strcmp(var->
name, DEBUGUSES_VARNAME) == 0
2859#ifdef DEBUGUSES_PROBNAME
2865printf(
"Captured variable "DEBUGUSES_VARNAME
" in SCIP %p, now %d uses; captured at\n", (
void*)var->
scip, var->
nuses);
2880assert(var !=
NULL);
2881assert(*var !=
NULL);
2882assert((*var)->nuses >= 1);
2883assert(blkmem !=
NULL);
2884assert((*var)->scip ==
set->scip);
2886 SCIPsetDebugMsg(
set,
"release variable <%s> with nuses=%d\n", (*var)->name, (*var)->nuses);
2889#ifdef DEBUGUSES_VARNAME 2890 if( strcmp((*var)->name, DEBUGUSES_VARNAME) == 0
2891#ifdef DEBUGUSES_PROBNAME
2892&& (((*var)->scip->transprob !=
NULL&& strcmp(
SCIPprobGetName((*var)->scip->transprob), DEBUGUSES_PROBNAME) == 0) ||
2893strcmp(
SCIPprobGetName((*var)->scip->origprob), DEBUGUSES_PROBNAME) == 0)
2897printf(
"Released variable "DEBUGUSES_VARNAME
" in SCIP %p, now %d uses; released at\n", (
void*)(*var)->scip, (*var)->nuses);
2902 if( (*var)->nuses == 0 )
2919assert(name !=
NULL);
2935assert(var !=
NULL);
2982 if( holelist ==
NULL)
2992 while(holelist !=
NULL)
3018assert(var !=
NULL);
3019assert(var->
scip==
set->scip);
3054 printBounds(
set, messagehdlr, file, lb, ub,
"original bounds");
3065 printHolelist(messagehdlr, file, holelist,
"original holes");
3072 printBounds(
set, messagehdlr, file, lb, ub,
"global bounds");
3089 printHolelist(messagehdlr, file, holelist,
"global holes");
3093 printHolelist(messagehdlr, file, holelist,
"local holes");
3155assert(var !=
NULL);
3157assert(var->
scip==
set->scip);
3179assert(var !=
NULL);
3180assert((
int)locktype >= 0 && (
int)locktype < (
int)
NLOCKTYPES);
3181assert(var->
nlocksup[locktype] >= 0);
3183assert(var->
scip==
set->scip);
3185 if( addnlocksdown == 0 && addnlocksup == 0 )
3189 SCIPsetDebugMsg(
set,
"add rounding locks %d/%d to variable <%s> (locks=%d/%d, type=%u)\n",
3190addnlocksdown, addnlocksup, var->
name, var->
nlocksdown[locktype], var->
nlocksup[locktype], locktype);
3197assert(lockvar !=
NULL);
3209lockvar->
nlocksdown[locktype] += addnlocksdown;
3210lockvar->
nlocksup[locktype] += addnlocksup;
3212assert(lockvar->
nlocksdown[locktype] >= 0);
3213assert(lockvar->
nlocksup[locktype] >= 0);
3220lockvar->
nlocksdown[locktype] += addnlocksdown;
3221lockvar->
nlocksup[locktype] += addnlocksup;
3223assert(lockvar->
nlocksdown[locktype] >= 0);
3224assert(lockvar->
nlocksup[locktype] >= 0);
3227&& lockvar->
nlocksup[locktype] <= 1 )
3238 inttmp = addnlocksup;
3240addnlocksup = addnlocksdown;
3241addnlocksdown = tmp;
3252lockvar->
nlocksdown[locktype] += addnlocksdown;
3253lockvar->
nlocksup[locktype] += addnlocksup;
3255assert(lockvar->
nlocksdown[locktype] >= 0);
3256assert(lockvar->
nlocksup[locktype] >= 0);
3275 inttmp = addnlocksup;
3281addnlocksup = addnlocksdown;
3282addnlocksdown = tmp;
3303assert(var !=
NULL);
3304assert((
int)locktype >= 0 && (
int)locktype < (
int)
NLOCKTYPES);
3361assert(var !=
NULL);
3362assert((
int)locktype >= 0 && (
int)locktype < (
int)
NLOCKTYPES);
3363assert(var->
nlocksup[locktype] >= 0);
3472assert(origvar !=
NULL);
3473assert(origvar->
scip==
set->scip);
3479assert(transvar !=
NULL);
3496origvar->vardelorig, origvar->vartrans, origvar->vardeltrans, origvar->varcopy,
NULL) );
3514(*transvar)->nlocksdown[i] = origvar->
nlocksdown[i];
3515(*transvar)->nlocksup[i] = origvar->
nlocksup[i];
3516assert((*transvar)->nlocksdown[i] >= 0);
3517assert((*transvar)->nlocksup[i] >= 0);
3521(*transvar)->donotaggr = origvar->
donotaggr;
3525(*transvar)->lazylb = origvar->
lazylb;
3526(*transvar)->lazyub = origvar->
lazyub;
3534 if( origvar->vartrans !=
NULL)
3539(*transvar)->vardata = origvar->
vardata;
3542 SCIPsetDebugMsg(
set,
"transformed variable: <%s>[%p] -> <%s>[%p]\n", origvar->
name, (
void*)origvar, (*transvar)->
name, (
void*)*transvar);
3556assert(origvar !=
NULL);
3558assert(origvar->
scip==
set->scip);
3588assert(var !=
NULL);
3590assert(var->
scip==
set->scip);
3622assert(var !=
NULL);
3624assert(var->
scip==
set->scip);
3668assert(var !=
NULL);
3669assert(var->
scip==
set->scip);
3670assert(0 <= fixeventtype && fixeventtype <= 2);
3683 switch( fixeventtype )
3772assert(var !=
NULL);
3773assert(var->
scip==
set->scip);
3776assert(infeasible !=
NULL);
3777assert(fixed !=
NULL);
3781*infeasible =
FALSE;
3787 SCIPsetDebugMsg(
set,
" -> variable already fixed to %g (fixedval=%g): infeasible=%u\n", var->
locdom.
lb, fixedval, *infeasible);
3795*infeasible =
TRUE;
3808lp, branchcand, eventfilter, eventqueue, cliquetable, fixedval, infeasible, fixed) );
3865 SCIP_CALL(
SCIPvarAddObj(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, eventfilter, eventqueue, obj) );
3890 SCIP_CALL(
SCIPvarFix(var->
data.
aggregate.
var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp,
3891branchcand, eventfilter, eventqueue, cliquetable, childfixedval, infeasible, fixed) );
3905 SCIP_CALL(
SCIPvarFix(var->
negatedvar, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp,
3906branchcand, eventfilter, eventqueue, cliquetable, var->
data.
negate.
constant- fixedval, infeasible, fixed) );
3972assert(nvars !=
NULL);
3974assert(constant !=
NULL);
3975assert(requiredsize !=
NULL);
3976assert(*nvars <= varssize);
3983assert(vars !=
NULL);
3994activeconstant = 0.0;
3995activeconstantinf =
FALSE;
3996activevarssize = (*nvars) * 2;
3998tmpvarssize = *nvars;
4013 for( v = ntmpvars - 1; v >= 0; --v )
4016scalar = tmpscalars[v];
4018assert(var !=
NULL);
4024assert(var !=
NULL);
4037tmpscalars[v] = scalar;
4039noldtmpvars = ntmpvars;
4042 SCIPsortPtrReal((
void**)tmpvars, tmpscalars, SCIPvarComp, noldtmpvars);
4044 for( v = 1; v < noldtmpvars; ++v )
4049tmpscalars[ntmpvars] += tmpscalars[v];
4056tmpscalars[ntmpvars] = tmpscalars[v];
4057tmpvars[ntmpvars] = tmpvars[v];
4063#ifdef SCIP_MORE_DEBUG 4064 for( v = 1; v < ntmpvars; ++v )
4069 while( ntmpvars >= 1 )
4073var = tmpvars[ntmpvars];
4074scalar = tmpscalars[ntmpvars];
4076assert(var !=
NULL);
4079 if( scalar == 0.0 )
4092 if( nactivevars >= activevarssize )
4094activevarssize *= 2;
4097assert(nactivevars < activevarssize);
4099activevars[nactivevars] = var;
4100activescalars[nactivevars] = scalar;
4111 if( nmultvars + ntmpvars > tmpvarssize )
4113 while( nmultvars + ntmpvars > tmpvarssize )
4117assert(nmultvars + ntmpvars <= tmpvarssize);
4120 if( nmultvars > tmpvarssize2 )
4122 while( nmultvars > tmpvarssize2 )
4126assert(nmultvars <= tmpvarssize2);
4131 for( ; nmultvars >= 0; --nmultvars )
4133multvar = multvars[nmultvars];
4134multscalar = multscalars[nmultvars];
4137assert(multvar !=
NULL);
4139assert(multvar !=
NULL);
4146 if( !activeconstantinf )
4152assert(scalar != 0.0);
4153 if( scalar * multconstant > 0.0 )
4156activeconstantinf =
TRUE;
4161activeconstantinf =
TRUE;
4165activeconstant += scalar * multconstant;
4180tmpscalars[pos] += scalar * multscalar;
4184tmpvars2[ntmpvars2] = multvar;
4185tmpscalars2[ntmpvars2] = scalar * multscalar;
4187assert(ntmpvars2 <= tmpvarssize2);
4191 if( ntmpvars2 > 0 )
4194 SCIPsortPtrReal((
void**)tmpvars2, tmpscalars2, SCIPvarComp, ntmpvars2);
4196 for( v = 1; v < ntmpvars2; ++v )
4201tmpscalars2[pos] += tmpscalars2[v];
4208tmpscalars2[pos] = tmpscalars2[v];
4209tmpvars2[pos] = tmpvars2[v];
4213ntmpvars2 = pos + 1;
4214#ifdef SCIP_MORE_DEBUG 4215 for( v = 1; v < ntmpvars2; ++v )
4219 for( v = 1; v < ntmpvars; ++v )
4226pos = ntmpvars + ntmpvars2 - 1;
4227ntmpvars += ntmpvars2;
4229 while( v >= 0 && k >= 0 )
4235tmpvars[pos] = tmpvars[v];
4236tmpscalars[pos] = tmpscalars[v];
4241tmpvars[pos] = tmpvars2[k];
4242tmpscalars[pos] = tmpscalars2[k];
4251tmpvars[pos] = tmpvars[v];
4252tmpscalars[pos] = tmpscalars[v];
4259tmpvars[pos] = tmpvars2[k];
4260tmpscalars[pos] = tmpscalars2[k];
4265#ifdef SCIP_MORE_DEBUG 4266 for( v = 1; v < ntmpvars; ++v )
4272 if( !activeconstantinf )
4280assert(scalar != 0.0);
4281 if( scalar * multconstant > 0.0 )
4284activeconstantinf =
TRUE;
4289activeconstantinf =
TRUE;
4293activeconstant += scalar * multconstant;
4320 if( mergemultiples )
4325 SCIPsortPtrReal((
void**)activevars, activescalars, SCIPvarComp, nactivevars);
4328v = nactivevars - 1;
4334 if( activescalars[v - 1] + activescalars[v] != 0.0 )
4336activescalars[v - 1] += activescalars[v];
4338activevars[v] = activevars[nactivevars];
4339activescalars[v] = activescalars[nactivevars];
4344activevars[v] = activevars[nactivevars];
4345activescalars[v] = activescalars[nactivevars];
4348activevars[v] = activevars[nactivevars];
4349activescalars[v] = activescalars[nactivevars];
4363 for( v = 0; v < nactivevars / 2; ++v )
4365tmpvar = activevars[v];
4366tmpscalar = activescalars[v];
4367activevars[v] = activevars[nactivevars - 1 - v];
4368activescalars[v] = activescalars[nactivevars - 1 - v];
4369activevars[nactivevars - 1 - v] = tmpvar;
4370activescalars[nactivevars - 1 - v] = tmpscalar;
4374*requiredsize = nactivevars;
4376 if( varssize >= *requiredsize )
4378assert(vars !=
NULL);
4380*nvars = *requiredsize;
4385 if( activeconstantinf )
4386(*constant) = activeconstant;
4388(*constant) += activeconstant;
4399 for( v = 0; v < *nvars; ++v )
4401vars[v] = activevars[v];
4402 scalars[v] = activescalars[v];
4433 intmultrequiredsize;
4436assert( var !=
NULL);
4438assert(var->
scip==
set->scip);
4474 if( multrequiredsize > multvarssize )
4478multvarssize = multrequiredsize;
4480assert( multrequiredsize <= multvarssize );
4575assert(var !=
NULL);
4576assert(var->
scip==
set->scip);
4577assert(aggvar !=
NULL);
4579assert(infeasible !=
NULL);
4580assert(fixed !=
NULL);
4582*infeasible =
FALSE;
4585 SCIPsetDebugMsg(
set,
"updating bounds of variables in aggregation <%s> == %g*<%s> %+g\n", var->
name, scalar, aggvar->
name, constant);
4592aggvarbdschanged =
FALSE;
4600varlb = aggvar->
glbdom.
lb* scalar + constant;
4604varub = aggvar->
glbdom.
ub* scalar + constant;
4611varub = aggvar->
glbdom.
lb* scalar + constant;
4615varlb = aggvar->
glbdom.
ub* scalar + constant;
4626*infeasible =
TRUE;
4632 SCIP_CALL(
SCIPvarFix(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,
4633eventfilter, eventqueue, cliquetable, varlb, infeasible, fixed) );
4634 if( !(*infeasible) )
4638 SCIP_CALL(
SCIPvarFix(aggvar, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,
4639eventfilter, eventqueue, cliquetable, (varlb-constant)/scalar, infeasible, &aggfixed) );
4640assert(*fixed == aggfixed);
4665aggvarlb = (var->
glbdom.
lb- constant) / scalar;
4669aggvarub = (var->
glbdom.
ub- constant) / scalar;
4676aggvarub = (var->
glbdom.
lb- constant) / scalar;
4680aggvarlb = (var->
glbdom.
ub- constant) / scalar;
4691*infeasible =
TRUE;
4697 SCIP_CALL(
SCIPvarFix(aggvar, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,
4698eventfilter, eventqueue, cliquetable, aggvarlb, infeasible, fixed) );
4699 if( !(*infeasible) )
4703 SCIP_CALL(
SCIPvarFix(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,
4704eventfilter, eventqueue, cliquetable, aggvarlb * scalar + constant, infeasible, &varfixed) );
4705assert(*fixed == varfixed);
4729 while( aggvarbdschanged );
4773assert(var !=
NULL);
4774assert(aggvar !=
NULL);
4775assert(var->
scip==
set->scip);
4780assert(infeasible !=
NULL);
4781assert(aggregated !=
NULL);
4783*infeasible =
FALSE;
4784*aggregated =
FALSE;
4792 SCIP_CALL(
SCIPvarFix(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, branchcand, eventfilter,
4793eventqueue, cliquetable, constant, infeasible, aggregated) );
4822 if( var == aggvar )
4828 SCIP_CALL(
SCIPvarFix(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,
4829eventfilter, eventqueue, cliquetable, constant/(1.0-scalar), infeasible, aggregated) );
4835 SCIP_CALL(
varUpdateAggregationBounds(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp,
4836branchcand, eventfilter, eventqueue, cliquetable, aggvar, scalar, constant, infeasible, &fixed) );
4837 if( *infeasible || fixed )
4839*aggregated = fixed;
4917 for( i = 0; i < nvbds && !(*infeasible); ++i )
4919 SCIP_CALL(
SCIPvarAddVlb(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable, branchcand,
4920eventqueue, vars[i], coefs[i], constants[i],
FALSE, infeasible,
NULL) );
4929 for( i = 0; i < nvbds && !(*infeasible); ++i )
4931 SCIP_CALL(
SCIPvarAddVub(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable, branchcand,
4932eventqueue, vars[i], coefs[i], constants[i],
FALSE, infeasible,
NULL) );
4945 for( i = 0; i < 2; ++i )
4957 for( j = 0; j < nimpls && !(*infeasible); ++j )
4962 SCIP_CALL(
SCIPvarAddImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
4963branchcand, eventqueue, (
SCIP_Bool)i, implvars[j], impltypes[j], implbounds[j],
FALSE, infeasible,
4989 if( scalar >= 0.0 )
5029 SCIP_CALL(
SCIPvarAddObj(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, eventfilter, eventqueue, obj) );
5034*aggregated =
TRUE;
5038 if( *infeasible || *aggregated )
5092#define MAXDNOM 1000000LL 5095assert(blkmem !=
NULL);
5096assert(stat !=
NULL);
5097assert(transprob !=
NULL);
5098assert(origprob !=
NULL);
5099assert(tree !=
NULL);
5100assert(lp !=
NULL);
5101assert(cliquetable !=
NULL);
5102assert(branchcand !=
NULL);
5103assert(eventqueue !=
NULL);
5104assert(varx !=
NULL);
5105assert(vary !=
NULL);
5106assert(varx != vary);
5107assert(infeasible !=
NULL);
5108assert(aggregated !=
NULL);
5117*infeasible =
FALSE;
5118*aggregated =
FALSE;
5133assert(scalarxd >= 1);
5134assert(scalaryd >= 1);
5138 a= (scm/scalarxd)*scalarxn;
5139 b= (scm/scalaryd)*scalaryn;
5153*infeasible =
TRUE;
5171 SCIP_CALL(
SCIPvarAggregate(varx, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,
5172branchcand, eventfilter, eventqueue, vary, (
SCIP_Real)(-
b/
a), (
SCIP_Real)(c/
a), infeasible, aggregated) );
5173assert(*aggregated);
5180 SCIP_CALL(
SCIPvarAggregate(vary, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,
5181branchcand, eventfilter, eventqueue, varx, (
SCIP_Real)(-
a/
b), (
SCIP_Real)(c/
b), infeasible, aggregated) );
5182assert(*aggregated);
5212currentclass = c %
a;
5213 if( currentclass < 0 )
5215assert(0 <= currentclass && currentclass <
a);
5217classstep = (-
b) %
a;
5219 if( classstep < 0 )
5221assert(0 <= classstep && classstep <
a);
5223 while( currentclass != 0 )
5225assert(0 <= currentclass && currentclass <
a);
5226currentclass += classstep;
5227 if( currentclass >=
a)
5232assert(((c -
b*ysol) %
a) == 0);
5234xsol = (c -
b*ysol)/
a;
5259 SCIP_CALL(
SCIPvarAggregate(varx, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,
5260branchcand, eventfilter, eventqueue, aggvar, (
SCIP_Real)(-
b), (
SCIP_Real)xsol, infeasible, aggregated) );
5261assert(*aggregated || *infeasible);
5263 if( !(*infeasible) )
5265 SCIP_CALL(
SCIPvarAggregate(vary, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,
5266branchcand, eventfilter, eventqueue, aggvar, (
SCIP_Real)
a, (
SCIP_Real)ysol, infeasible, aggregated) );
5267assert(*aggregated || *infeasible);
5315assert(blkmem !=
NULL);
5316assert(stat !=
NULL);
5317assert(transprob !=
NULL);
5318assert(origprob !=
NULL);
5319assert(tree !=
NULL);
5320assert(lp !=
NULL);
5321assert(cliquetable !=
NULL);
5322assert(branchcand !=
NULL);
5323assert(eventqueue !=
NULL);
5324assert(varx !=
NULL);
5325assert(vary !=
NULL);
5326assert(varx != vary);
5327assert(infeasible !=
NULL);
5328assert(aggregated !=
NULL);
5335*infeasible =
FALSE;
5336*aggregated =
FALSE;
5406scalar = -scalary/scalarx;
5407constant = rhs/scalarx;
5417*infeasible =
TRUE;
5427 SCIP_CALL(
SCIPvarAggregate(varx, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,
5428branchcand, eventfilter, eventqueue, vary, scalar, constant, infeasible, aggregated) );
5435 SCIP_CALL(
tryAggregateIntVars(
set, blkmem, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,
5436branchcand, eventfilter, eventqueue, varx, vary, scalarx, scalary, rhs, infeasible, aggregated) );
5479 inttmprequiredsize;
5482assert(var !=
NULL);
5483assert(var->
scip==
set->scip);
5486assert(naggvars == 0 || aggvars !=
NULL);
5488assert(infeasible !=
NULL);
5489assert(aggregated !=
NULL);
5491 SCIPsetDebugMsg(
set,
"trying multi-aggregating variable <%s> == ...%d vars... %+g\n", var->
name, naggvars, constant);
5493*infeasible =
FALSE;
5494*aggregated =
FALSE;
5501 SCIPerrorMessage(
"cannot multi-aggregate an untransformed original variable\n");
5505reopt, lp, cliquetable, branchcand, eventfilter, eventqueue, naggvars, aggvars,
scalars, constant, infeasible, aggregated) );
5512ntmpvars = naggvars;
5513tmpvarssize = naggvars;
5514tmpconstant = constant;
5520 if( tmprequiredsize > tmpvarssize )
5524tmpvarssize = tmprequiredsize;
5526assert( tmprequiredsize <= tmpvarssize );
5534 for( v = ntmpvars - 1; v >= 0; --v )
5536assert(tmpvars[v] !=
NULL);
5539 if( tmpvars[v]->index == var->
index)
5541tmpscalar += tmpscalars[v];
5542tmpvars[v] = tmpvars[ntmpvars - 1];
5543tmpscalars[v] = tmpscalars[ntmpvars - 1];
5551 if( ntmpvars == 0 )
5555 SCIPsetDebugMsg(
set,
"Possible multi-aggregation was completely resolved and detected to be redundant.\n");
5560 SCIPsetDebugMsg(
set,
"Multi-aggregation was completely resolved and led to infeasibility.\n");
5561*infeasible =
TRUE;
5565 else if( ntmpvars == 1 )
5567assert(tmpscalars[0] != 0.0);
5568assert(tmpvars[0] !=
NULL);
5571 SCIP_CALL(
SCIPvarFix(tmpvars[0], blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp,
5572branchcand, eventfilter, eventqueue, cliquetable, -constant/tmpscalars[0], infeasible, aggregated) );
5575 else if( ntmpvars == 2 )
5578 SCIPsetDebugMsg(
set,
"Possible multi-aggregation led to aggregation of variables <%s> and <%s> with scalars %g and %g and constant %g.\n",
5582cliquetable, branchcand, eventfilter, eventqueue, tmpvars[0], tmpvars[1], tmpscalars[0],
5583tmpscalars[1], -tmpconstant, infeasible, aggregated) );
5596tmpscalar = 1 - tmpscalar;
5597tmpconstant /= tmpscalar;
5598 for( v = ntmpvars - 1; v >= 0; --v )
5599tmpscalars[v] /= tmpscalar;
5603 if( ntmpvars == 0 )
5606 SCIP_CALL(
SCIPvarFix(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,
5607eventfilter, eventqueue, cliquetable, tmpconstant, infeasible, aggregated) );
5612 if( ntmpvars == 1 )
5614 SCIPsetDebugMsg(
set,
"Possible multi-aggregation led to aggregation of variables <%s> and <%s> with scalars %g and %g and constant %g.\n",
5618cliquetable, branchcand, eventfilter, eventqueue, var, tmpvars[0], 1.0, -tmpscalars[0], tmpconstant,
5619infeasible, aggregated) );
5690 for( v = 0; v < ntmpvars; ++v )
5692assert(tmpvars[v] !=
NULL);
5694branchfactor =
MAX(tmpvars[v]->branchfactor, branchfactor);
5695branchpriority =
MAX(tmpvars[v]->branchpriority, branchpriority);
5700 for( v = 0; v < ntmpvars; ++v )
5706 if( tmpscalars[v] >= 0.0 )
5731 SCIP_CALL(
SCIPvarAddObj(var, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp, eventfilter, eventqueue, obj) );
5733*aggregated =
TRUE;
5754 SCIPerrorMessage(
"cannot multi-aggregate a multiple aggregated variable again\n");
5767 for( v = 0; v < naggvars; ++v )
5771 SCIP_CALL(
SCIPvarMultiaggregate(var->
negatedvar, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp,
5772cliquetable, branchcand, eventfilter, eventqueue, naggvars, aggvars,
scalars,
5776 for( v = 0; v < naggvars; ++v )
5786 if( *infeasible || *aggregated )
5802assert(var !=
NULL);
5810assert(retvar !=
NULL);
5851assert(var !=
NULL);
5854assert(retvar !=
NULL);
5884assert(var !=
NULL);
5887assert(retvar !=
NULL);
5922assert(var !=
NULL);
5923assert(var->
scip==
set->scip);
5924assert(negvar !=
NULL);
5949(*negvar)->data.negate.constant = 1.0;
5960(*negvar)->glbdom.lb = (*negvar)->data.negate.constant - var->
glbdom.
ub;
5961(*negvar)->glbdom.ub = (*negvar)->data.negate.constant - var->
glbdom.
lb;
5962(*negvar)->locdom.lb = (*negvar)->data.negate.constant - var->
locdom.
ub;
5963(*negvar)->locdom.ub = (*negvar)->data.negate.constant - var->
locdom.
lb;
5980(*negvar)->donotaggr = var->
donotaggr;
5984(*negvar)->lazylb = (*negvar)->data.negate.constant - var->
lazyub;
5985(*negvar)->lazyub = (*negvar)->data.negate.constant - var->
lazylb;
5989assert((*negvar)->nuses == 1);
6009assert(var !=
NULL);
6010assert(probindex >= 0 || var->
vlbs==
NULL);
6011assert(probindex >= 0 || var->
vubs==
NULL);
6028assert(var !=
NULL);
6029assert(probindex >= 0);
6043assert(var !=
NULL);
6044assert(name !=
NULL);
6046var->
name= (
char*)name;
6065assert(var->
scip==
set->scip);
6096assert(var !=
NULL);
6109assert(var !=
NULL);
6112assert(retvar !=
NULL);
6124 SCIPerrorMessage(
"cannot mark a multi-aggregated variable to not be aggregated.\n");
6145assert(var !=
NULL);
6148assert(retvar !=
NULL);
6160 SCIPerrorMessage(
"cannot mark a multi-aggregated variable to not be multi-aggregated.\n");
6188assert(var !=
NULL);
6194 SCIPerrorMessage(
"cannot change type of variable already in the problem\n");
6239assert(var !=
NULL);
6240assert(var->
scip==
set->scip);
6274assert(var !=
NULL);
6276assert(var->
scip==
set->scip);
6302oldobj = var->
obj;
6323 SCIPerrorMessage(
"cannot change objective value of a fixed, aggregated, multi-aggregated, or negated variable\n");
6352assert(var !=
NULL);
6354assert(var->
scip==
set->scip);
6375var->
obj+= addobj;
6383oldobj = var->
obj;
6384var->
obj+= addobj;
6406 SCIP_CALL(
SCIPprimalUpdateObjoffset(primal, blkmem,
set, stat, eventfilter, eventqueue, transprob, origprob, tree, reopt, lp) );
6413 SCIP_CALL(
SCIPprimalUpdateObjoffset(primal, blkmem,
set, stat, eventfilter, eventqueue, transprob, origprob, tree, reopt, lp) );
6422 SCIP_CALL(
SCIPprimalUpdateObjoffset(primal, blkmem,
set, stat, eventfilter, eventqueue, transprob, origprob, tree, reopt, lp) );
6436 SCIP_CALL(
SCIPprimalUpdateObjoffset(primal, blkmem,
set, stat, eventfilter, eventqueue, transprob, origprob, tree, reopt, lp) );
6437 SCIP_CALL(
SCIPvarAddObj(var->
negatedvar, blkmem,
set, stat, transprob, origprob, primal, tree, reopt, lp,
6438eventfilter, eventqueue, -addobj) );
6458assert(var !=
NULL);
6460assert(var->
scip==
set->scip);
6461assert(lp !=
NULL);
6494 SCIPerrorMessage(
"cannot change diving objective value of a multi-aggregated variable\n");
6520assert(var !=
NULL);
6522assert(var->
scip==
set->scip);
6523assert(lb !=
NULL);
6537assert(var !=
NULL);
6539assert(var->
scip==
set->scip);
6540assert(ub !=
NULL);
6572assert(var !=
NULL);
6576assert(var->
scip==
set->scip);
6611assert(parentvar !=
NULL);
6631assert(var !=
NULL);
6635assert(var->
scip==
set->scip);
6670assert(parentvar !=
NULL);
6694assert(var !=
NULL);
6697assert(!
SCIPsetIsEQ(
set, oldbound, newbound) || (newbound != oldbound && newbound * oldbound <= 0.0));
6699assert(var->
scip==
set->scip);
6710 SCIPsetDebugMsg(
set,
"issue GLBCHANGED event for variable <%s>: %g -> %g\n", var->
name, oldbound, newbound);
6732assert(var !=
NULL);
6735assert(!
SCIPsetIsEQ(
set, oldbound, newbound) || (newbound != oldbound && newbound * oldbound <= 0.0));
6737assert(var->
scip==
set->scip);
6748 SCIPsetDebugMsg(
set,
"issue GUBCHANGED event for variable <%s>: %g -> %g\n", var->
name, oldbound, newbound);
6768assert(var !=
NULL);
6772assert(var->
scip==
set->scip);
6780 SCIPsetDebugMsg(
set,
"issue GHOLEADDED event for variable <%s>: (%.15g,%.15g)\n", var->
name, left, right);
6797assert(var !=
NULL);
6799assert(var->
scip==
set->scip);
6800assert(stat !=
NULL);
6848assert(var !=
NULL);
6852assert(blkmem !=
NULL);
6854assert(var->
scip==
set->scip);
6855assert(stat !=
NULL);
6904 SCIPsetDebugMsg(
set,
" -> adjust lower bound change <%s>: %g -> %g due to new global lower bound %g\n",
6939assert(parentvar !=
NULL);
6951 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
6968parentnewbound = newbound;
6984parentnewbound = -newbound;
7024assert(var !=
NULL);
7028assert(blkmem !=
NULL);
7030assert(var->
scip==
set->scip);
7031assert(stat !=
NULL);
7079 SCIPsetDebugMsg(
set,
" -> adjust upper bound change <%s>: %g -> %g due to new global upper bound %g\n",
7114assert(parentvar !=
NULL);
7126 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
7142parentnewbound = newbound;
7157parentnewbound = -newbound;
7194assert(var !=
NULL);
7195assert(blkmem !=
NULL);
7197assert(var->
scip==
set->scip);
7237cliquetable, newbound) );
7281childnewbound = newbound;
7296childnewbound = -newbound;
7308 SCIPerrorMessage(
"cannot change the bounds of a multi-aggregated variable.\n");
7342assert(var !=
NULL);
7343assert(blkmem !=
NULL);
7345assert(var->
scip==
set->scip);
7429childnewbound = newbound;
7444childnewbound = -newbound;
7456 SCIPerrorMessage(
"cannot change the bounds of a multi-aggregated variable.\n");
7482assert(var !=
NULL);
7487assert(var->
scip==
set->scip);
7505assert(var !=
NULL);
7510assert(var->
scip==
set->scip);
7539 switch( boundtype )
7542 return SCIPvarChgLbGlobal(var, blkmem,
set, stat, lp, branchcand, eventqueue, cliquetable, newbound);
7544 return SCIPvarChgUbGlobal(var, blkmem,
set, stat, lp, branchcand, eventqueue, cliquetable, newbound);
7564assert(var !=
NULL);
7567assert(!
SCIPsetIsEQ(
set, oldbound, newbound) || newbound == var->
glbdom.
lb|| (newbound != oldbound && newbound * oldbound <= 0.0));
7569assert(var->
scip==
set->scip);
7580 SCIPsetDebugMsg(
set,
"issue LBCHANGED event for variable <%s>: %g -> %g\n", var->
name, oldbound, newbound);
7602assert(var !=
NULL);
7605assert(!
SCIPsetIsEQ(
set, oldbound, newbound) || newbound == var->
glbdom.
ub|| (newbound != oldbound && newbound * oldbound <= 0.0));
7607assert(var->
scip==
set->scip);
7618 SCIPsetDebugMsg(
set,
"issue UBCHANGED event for variable <%s>: %g -> %g\n", var->
name, oldbound, newbound);
7659assert(var !=
NULL);
7661assert(var->
scip==
set->scip);
7718assert(parentvar !=
NULL);
7730 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
7751 if( parentnewbound > parentvar->
glbdom.
ub)
7755parentnewbound = parentvar->
glbdom.
ub;
7759parentnewbound = newbound;
7779 if( parentnewbound < parentvar->glbdom.lb )
7783parentnewbound = parentvar->
glbdom.
lb;
7787parentnewbound = -newbound;
7826assert(var !=
NULL);
7828assert(var->
scip==
set->scip);
7885assert(parentvar !=
NULL);
7897 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
7917 if( parentnewbound < parentvar->glbdom.lb )
7921parentnewbound = parentvar->
glbdom.
lb;
7925parentnewbound = newbound;
7944 if( parentnewbound > parentvar->
glbdom.
ub)
7948parentnewbound = parentvar->
glbdom.
ub;
7952parentnewbound = -newbound;
7988assert(var !=
NULL);
7989assert(blkmem !=
NULL);
7991assert(var->
scip==
set->scip);
8014&& !(newbound != var->
locdom.
lb&& newbound * var->
locdom.
lb<= 0.0) )
8055childnewbound = newbound;
8070childnewbound = -newbound;
8082 SCIPerrorMessage(
"cannot change the bounds of a multi-aggregated variable.\n");
8115assert(var !=
NULL);
8116assert(blkmem !=
NULL);
8118assert(var->
scip==
set->scip);
8141&& !(newbound != var->
locdom.
ub&& newbound * var->
locdom.
ub<= 0.0) )
8181childnewbound = newbound;
8196childnewbound = -newbound;
8208 SCIPerrorMessage(
"cannot change the bounds of a multi-aggregated variable.\n");
8243 switch( boundtype )
8263assert(var !=
NULL);
8265assert(var->
scip==
set->scip);
8266assert(lp !=
NULL);
8288 SCIPerrorMessage(
"cannot change variable's bounds in dive for LOOSE variables\n");
8305childnewbound = newbound;
8316childnewbound = -newbound;
8327 SCIPerrorMessage(
"cannot change the bounds of a multi-aggregated variable.\n");
8353assert(var !=
NULL);
8355assert(var->
scip==
set->scip);
8356assert(lp !=
NULL);
8378 SCIPerrorMessage(
"cannot change variable's bounds in dive for LOOSE variables\n");
8395childnewbound = newbound;
8406childnewbound = -newbound;
8417 SCIPerrorMessage(
"cannot change the bounds of a multi-aggregated variable.\n");
8453assert(var !=
NULL);
8455assert(var->
scip==
set->scip);
8519assert(var !=
NULL);
8521assert(var->
scip==
set->scip);
8585assert(var !=
NULL);
8587assert(var->
scip==
set->scip);
8651assert(var !=
NULL);
8653assert(var->
scip==
set->scip);
8710assert(var !=
NULL);
8715assert(var->
scip==
set->scip);
8768assert(var !=
NULL);
8769assert(added !=
NULL);
8770assert(blkmem !=
NULL);
8818assert(parentvar !=
NULL);
8823parentnewleft = left;
8824parentnewright = right;
8831 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
8870assert(blkmem !=
NULL);
8873parentnewleft, parentnewright, &localadded) );
8895assert(var !=
NULL);
8897assert(blkmem !=
NULL);
8898assert(added !=
NULL);
8920left, right, added) );
8971childnewleft, childnewright, added) );
8975 SCIPerrorMessage(
"cannot add a hole of a multi-aggregated variable.\n");
8987childnewleft, childnewright, added) );
9016assert(var !=
NULL);
9017assert(added !=
NULL);
9018assert(blkmem !=
NULL);
9049#ifdef SCIP_DISABLED_CODE 9065assert(parentvar !=
NULL);
9070parentnewleft = left;
9071parentnewright = right;
9078 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
9117assert(blkmem !=
NULL);
9120parentnewleft, parentnewright, &localadded) );
9142assert(var !=
NULL);
9147assert(var->
scip==
set->scip);
9149assert(blkmem !=
NULL);
9150assert(added !=
NULL);
9170left, right, added) );
9210childnewleft, childnewright, added) );
9214 SCIPerrorMessage(
"cannot add domain hole to a multi-aggregated variable.\n");
9244assert(var !=
NULL);
9246assert(var->
scip==
set->scip);
9279assert(var !=
NULL);
9400assert(redundant !=
NULL);
9401assert(infeasible !=
NULL);
9441assert(infeasible !=
NULL);
9443*infeasible =
FALSE;
9452*infeasible =
TRUE;
9461assert(tree !=
NULL);
9462assert(transprob !=
NULL);
9473 if( nbdchgs !=
NULL)
9482*infeasible =
TRUE;
9491assert(tree !=
NULL);
9492assert(transprob !=
NULL);
9503 if( nbdchgs !=
NULL)
9544assert(var !=
NULL);
9549assert(infeasible !=
NULL);
9550assert(added !=
NULL);
9555*infeasible =
FALSE;
9559 checkImplic(
set, implvar, impltype, implbound, &redundant, &conflict);
9560assert(!redundant || !conflict);
9564 if( var == implvar )
9589 SCIP_CALL(
applyImplic(blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,
9590cliquetable, implvar, impltype, implbound, infeasible, nbdchgs) );
9612vals[0] = varfixing;
9616 SCIP_CALL(
SCIPcliquetableAdd(cliquetable, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand,
9617eventqueue, vars, vals, 2,
FALSE, &conflict, nbdchgs) );
9629isshortcut, &conflict, added) );
9632assert(!conflict || !(*added));
9644assert(tree !=
NULL);
9645assert(transprob !=
NULL);
9670 if( nbdchgs !=
NULL)
9708varfixing ? implbound - ub : ub - implbound, varfixing ? ub : implbound) );
9716varfixing ? implbound - lb : lb - implbound, varfixing ? lb : implbound) );
9752*infeasible =
FALSE;
9769 while( i >= 0 && !(*infeasible) )
9773assert(implvars[i] != implvar);
9780 SCIP_CALL(
varAddImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable, branchcand,
9781eventqueue, varfixing, implvars[i], impltypes[i], implbounds[i],
TRUE, infeasible, nbdchgs, &added) );
9784i =
MIN(i, nimpls);
9823assert(var !=
NULL);
9826assert(implvar !=
NULL);
9828assert(infeasible !=
NULL);
9831 SCIP_CALL(
varAddImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable, branchcand,
9832eventqueue, varfixing, implvar, impltype, implbound,
FALSE, infeasible, nbdchgs, &added) );
9834 if( *infeasible || var == implvar || !transitive || !added )
9848cliquetable, branchcand, eventqueue, varfixing, implvar, implvarfixing, infeasible, nbdchgs) );
9851 if( !(*infeasible) )
9854cliquetable, branchcand, eventqueue, !implvarfixing, var, !varfixing, infeasible, nbdchgs) );
9880 while( i >= 0 && !(*infeasible) )
9882assert(vlbvars[i] != implvar);
9907vbimplbound = (implbound - vlbconstants[i])/vlbcoefs[i];
9908 if( vlbcoefs[i] >= 0.0 )
9911 SCIP_CALL(
varAddImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
9913infeasible, nbdchgs, &added) );
9918 SCIP_CALL(
varAddImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
9920infeasible, nbdchgs, &added) );
9923i =
MIN(i, nvlbvars);
9950 while( i >= 0 && !(*infeasible) )
9952assert(vubvars[i] != implvar);
9977vbimplbound = (implbound - vubconstants[i])/vubcoefs[i];
9978 if( vubcoefs[i] >= 0.0 )
9981 SCIP_CALL(
varAddImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
9983infeasible, nbdchgs, &added) );
9988 SCIP_CALL(
varAddImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
9990infeasible, nbdchgs, &added) );
9993i =
MIN(i, nvubvars);
10028assert(var !=
NULL);
10030assert(var->
scip==
set->scip);
10032assert(infeasible !=
NULL);
10036*infeasible =
FALSE;
10037 if( nbdchgs !=
NULL)
10045cliquetable, branchcand, eventqueue, vlbvar, vlbcoef, vlbconstant, transitive, infeasible, nbdchgs) );
10053 SCIPsetDebugMsg(
set,
" -> transformed to variable lower bound <%s> >= %g<%s> + %g\n",
10057 if( var == vlbvar )
10063*infeasible =
TRUE;
10079*infeasible =
TRUE;
10091assert(tree !=
NULL);
10092assert(transprob !=
NULL);
10103 if( nbdchgs !=
NULL)
10118*infeasible =
TRUE;
10130assert(tree !=
NULL);
10131assert(transprob !=
NULL);
10142 if( nbdchgs !=
NULL)
10152*infeasible =
TRUE;
10160assert(tree !=
NULL);
10161assert(transprob !=
NULL);
10172 if( nbdchgs !=
NULL)
10186assert(vlbcoef != 0.0);
10197 if( vlbcoef >= 0.0 )
10207*infeasible =
TRUE;
10219assert(tree !=
NULL);
10220assert(transprob !=
NULL);
10232 if( nbdchgs !=
NULL)
10235maxvlb = vlbcoef * zub + vlbconstant;
10237minvlb = vlbcoef * zlb + vlbconstant;
10242maxvlb = vlbcoef * zub + vlbconstant;
10244minvlb = vlbcoef * zlb + vlbconstant;
10257*infeasible =
TRUE;
10269assert(tree !=
NULL);
10270assert(transprob !=
NULL);
10282 if( nbdchgs !=
NULL)
10285maxvlb = vlbcoef * zlb + vlbconstant;
10287minvlb = vlbcoef * zub + vlbconstant;
10292maxvlb = vlbcoef * zlb + vlbconstant;
10294minvlb = vlbcoef * zub + vlbconstant;
10297 if( maxvlb < minvlb )
10307*infeasible =
TRUE;
10319assert(tree !=
NULL);
10320assert(transprob !=
NULL);
10332 if( nbdchgs !=
NULL)
10346 if( vlbcoef >= 0.0 )
10348vlbcoef = maxvlb - minvlb;
10349vlbconstant = minvlb;
10353vlbcoef = minvlb - maxvlb;
10354vlbconstant = maxvlb;
10374cliquetable, branchcand, eventqueue, (vlbcoef >= 0.0), var,
SCIP_BOUNDTYPE_LOWER, maxvlb, transitive,
10375infeasible, nbdchgs) );
10384implbound = -vlbconstant/vlbcoef;
10389 if( vlbcoef >= 0 )
10396implbound, transitive, infeasible, nbdchgs) );
10419*infeasible =
TRUE;
10451 SCIP_CALL(
SCIPvarAddVub(var->
negatedvar, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
10452branchcand, eventqueue, vlbvar, -vlbcoef, var->
data.
negate.
constant- vlbconstant, transitive, infeasible,
10489assert(var !=
NULL);
10491assert(var->
scip==
set->scip);
10493assert(infeasible !=
NULL);
10497*infeasible =
FALSE;
10498 if( nbdchgs !=
NULL)
10506cliquetable, branchcand, eventqueue, vubvar, vubcoef, vubconstant, transitive, infeasible, nbdchgs) );
10514 SCIPsetDebugMsg(
set,
" -> transformed to variable upper bound <%s> <= %g<%s> + %g\n",
10518 if( var == vubvar )
10524*infeasible =
TRUE;
10540*infeasible =
TRUE;
10552assert(tree !=
NULL);
10553assert(transprob !=
NULL);
10564 if( nbdchgs !=
NULL)
10579*infeasible =
TRUE;
10591assert(tree !=
NULL);
10592assert(transprob !=
NULL);
10603 if( nbdchgs !=
NULL)
10613*infeasible =
TRUE;
10621assert(tree !=
NULL);
10622assert(transprob !=
NULL);
10633 if( nbdchgs !=
NULL)
10647assert(vubcoef != 0.0);
10658 if( vubcoef >= 0.0 )
10668*infeasible =
TRUE;
10680assert(tree !=
NULL);
10681assert(transprob !=
NULL);
10693 if( nbdchgs !=
NULL)
10696minvub = vubcoef * zlb + vubconstant;
10698maxvub = vubcoef * zub + vubconstant;
10703maxvub = vubcoef * zub + vubconstant;
10705minvub = vubcoef * zlb + vubconstant;
10718*infeasible =
TRUE;
10730assert(tree !=
NULL);
10731assert(transprob !=
NULL);
10743 if( nbdchgs !=
NULL)
10746minvub = vubcoef * zub + vubconstant;
10748maxvub = vubcoef * zlb + vubconstant;
10753minvub = vubcoef * zub + vubconstant;
10755maxvub = vubcoef * zlb + vubconstant;
10758 if( minvub > maxvub )
10768*infeasible =
TRUE;
10780assert(tree !=
NULL);
10781assert(transprob !=
NULL);
10793 if( nbdchgs !=
NULL)
10807 if( vubcoef >= 0.0 )
10809vubcoef = maxvub - minvub;
10810vubconstant = minvub;
10814vubcoef = minvub - maxvub;
10815vubconstant = maxvub;
10835cliquetable, branchcand, eventqueue, (vubcoef < 0.0), var,
SCIP_BOUNDTYPE_UPPER, minvub, transitive,
10836infeasible, nbdchgs) );
10846(1.0-vubconstant)/vubcoef, transitive, infeasible, nbdchgs) );
10869*infeasible =
TRUE;
10901 SCIP_CALL(
SCIPvarAddVlb(var->
negatedvar, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
10902branchcand, eventqueue, vubvar, -vubcoef, var->
data.
negate.
constant- vubconstant, transitive, infeasible,
10942assert(var !=
NULL);
10944assert(var->
scip==
set->scip);
10946assert(infeasible !=
NULL);
10948*infeasible =
FALSE;
10949 if( nbdchgs !=
NULL)
10957cliquetable, branchcand, eventqueue, varfixing, implvar, impltype, implbound, transitive, infeasible,
10971 SCIP_CALL(
applyImplic(blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,
10972cliquetable, implvar, impltype, implbound, infeasible, nbdchgs) );
10981 SCIP_CALL(
varAddTransitiveImplic(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
10982branchcand, eventqueue, varfixing, implvar, impltype, implbound, transitive, infeasible, nbdchgs) );
10991 SCIP_CALL(
applyImplic(blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,
10992cliquetable, implvar, impltype, implbound, infeasible, nbdchgs) );
11015cliquetable, branchcand, eventqueue, varfixing, implvar, impltype, implbound, transitive, infeasible,
11021cliquetable, branchcand, eventqueue, !varfixing, implvar, impltype, implbound, transitive, infeasible,
11045cliquetable, branchcand, eventqueue, !varfixing, implvar, impltype, implbound, transitive, infeasible, nbdchgs) );
11053 SCIP_CALL(
SCIPvarAddImplic(implvar, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
11056infeasible, nbdchgs) );
11071cliquetable, branchcand, eventqueue, implvar, (impltype ==
SCIP_BOUNDTYPE_UPPER) ? 1.0 : -1.0,
11080cliquetable, branchcand, eventqueue, implvar, (impltype ==
SCIP_BOUNDTYPE_UPPER) ? -1.0 : 1.0,
11090 SCIP_CALL(
SCIPvarAddVub(implvar, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
11091branchcand, eventqueue, var->
negatedvar, (varfixing) ? 1.0 : -1.0,
11092(varfixing) ? 0.0 : 1.0, transitive, infeasible, nbdchgs) );
11099 SCIP_CALL(
SCIPvarAddVlb(implvar, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, cliquetable,
11100branchcand, eventqueue, var->
negatedvar, (varfixing) ? -1.0 : 1.0, (varfixing) ? 1.0 : 0.0,
11101transitive, infeasible, nbdchgs) );
11126assert(var !=
NULL);
11127assert(implvar !=
NULL);
11166assert(lb !=
NULL);
11167assert(ub !=
NULL);
11178 if( bounds ==
NULL)
11181 if( lowerpos >= 0 )
11182*lb = bounds[lowerpos];
11184 if( upperpos >= 0 )
11185*ub = bounds[upperpos];
11208assert(var !=
NULL);
11210assert(var->
scip==
set->scip);
11211assert(infeasible !=
NULL);
11213*infeasible =
FALSE;
11215 if( value ==
FALSE)
11218*infeasible =
TRUE;
11219 else if( var->
glbdom.
ub> 0.5 )
11226assert(tree !=
NULL);
11227assert(transprob !=
NULL);
11238 if( nbdchgs !=
NULL)
11245*infeasible =
TRUE;
11246 else if( var->
glbdom.
lb< 0.5 )
11253assert(tree !=
NULL);
11254assert(transprob !=
NULL);
11265 if( nbdchgs !=
NULL)
11297assert(var !=
NULL);
11299assert(var->
scip==
set->scip);
11301assert(infeasible !=
NULL);
11303*infeasible =
FALSE;
11331 SCIP_CALL(
SCIPvarFixBinary(var, blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand,
11332eventqueue, cliquetable, !value, infeasible, nbdchgs) );
11338 if( oppositeentry )
11348 for( i = 0; i < nvars && !(*infeasible); ++i )
11350 if( vars[i] == var )
11353 SCIP_CALL(
SCIPvarFixBinary(vars[i], blkmem,
set, stat, transprob, origprob, tree, reopt, lp, branchcand,
11354eventqueue, cliquetable, !values[i], infeasible, nbdchgs) );
11375assert(vars !=
NULL);
11376assert(values !=
NULL);
11379assert(blkmem !=
NULL);
11380assert(clique !=
NULL);
11382 for( v = nvars - 1; v >= 0; --v )
11409assert(var !=
NULL);
11430assert(var !=
NULL);
11448assert(var !=
NULL);
11491assert(var1 !=
NULL);
11492assert(var2 !=
NULL);
11514assert(var !=
NULL);
11516assert(var->
scip==
set->scip);
11520branchfactor =
MAX(branchfactor,
eps);
11534assert(parentvar !=
NULL);
11546 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
11576assert(var !=
NULL);
11578assert(var->
scip==
set->scip);
11579assert(branchfactor >= 0.0);
11647assert(var !=
NULL);
11649 SCIPdebugMessage(
"process changing branch priority of <%s> from %d to %d\n",
11662assert(parentvar !=
NULL);
11674 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
11702assert(var !=
NULL);
11767assert(var !=
NULL);
11769 SCIPdebugMessage(
"process changing branch direction of <%s> from %u to %d\n",
11782assert(parentvar !=
NULL);
11794 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
11833assert(var !=
NULL);
11917assert(var1 !=
NULL);
11918assert(var2 !=
NULL);
11927assert(var1 !=
NULL);
11928assert(var2 !=
NULL);
11935assert(var1 == var2);
11955assert(var1 !=
NULL);
11956assert(var2 !=
NULL);
11964assert(var1 == var2);
11986 else if( obj1 > obj2 )
12001 if( key1 == key2 )
12028 intactivevarssize;
12041assert(nvars !=
NULL);
12042assert(vars !=
NULL|| *nvars == 0);
12043assert(varssize >= *nvars);
12044assert(requiredsize !=
NULL);
12052activevarssize = *nvars;
12054tmpvarssize = *nvars;
12061noldtmpvars = ntmpvars;
12064 SCIPsortPtr((
void**)tmpvars, SCIPvarComp, ntmpvars);
12065 for( v = ntmpvars - 1; v > 0; --v )
12071tmpvars[v] = tmpvars[ntmpvars];
12075 if( noldtmpvars > ntmpvars )
12076 SCIPsortPtr((
void**)tmpvars, SCIPvarComp, ntmpvars);
12079 while( ntmpvars >= 1 )
12082var = tmpvars[ntmpvars];
12083assert( var !=
NULL);
12090 SCIPerrorMessage(
"original variable has no transformed variable attached\n");
12111 if( nactivevars >= activevarssize )
12113activevarssize *= 2;
12115assert(nactivevars < activevarssize);
12117activevars[nactivevars] = var;
12127 if( nmultvars + ntmpvars > tmpvarssize )
12129 while( nmultvars + ntmpvars > tmpvarssize )
12132assert(nmultvars + ntmpvars <= tmpvarssize);
12141ntmpvars += nmultvars;
12142noldtmpvars = ntmpvars;
12145 SCIPsortPtr((
void**)tmpvars, SCIPvarComp, ntmpvars);
12146 for( v = ntmpvars - 1; v > 0; --v )
12152tmpvars[v] = tmpvars[ntmpvars];
12156 if( noldtmpvars > ntmpvars )
12157 SCIPsortPtr((
void**)tmpvars, SCIPvarComp, ntmpvars);
12173 SCIPsortPtr((
void**)activevars, SCIPvarComp, nactivevars);
12176v = nactivevars - 1;
12183activevars[v] = activevars[nactivevars];
12187*requiredsize = nactivevars;
12189 if( varssize >= *requiredsize )
12191assert(vars !=
NULL);
12193*nvars = *requiredsize;
12213assert(vars !=
NULL|| nvars == 0);
12215 for( v = nvars - 1; v >= 0; --v )
12217assert(vars !=
NULL);
12218assert(vars[v] !=
NULL);
12221assert(vars[v] !=
NULL);
12232assert(var !=
NULL);
12240assert(retvar !=
NULL);
12247 SCIPerrorMessage(
"original variable has no transformed variable attached\n");
12296assert(vars !=
NULL);
12297assert(*vars !=
NULL|| nvars == 0);
12298assert(negatedarr !=
NULL);
12299assert(*negatedarr !=
NULL|| nvars == 0);
12301 for( v = nvars - 1; v >= 0; --v )
12303var = &((*vars)[v]);
12304negated = &((*negatedarr)[v]);
12329assert(var !=
NULL);
12330assert(*var !=
NULL);
12331assert(negated !=
NULL);
12335orignegated = *negated;
12343 if( (*var)->data.original.transvar ==
NULL)
12356 if( (*var)->data.multaggr.nvars == 1 )
12358assert( (*var)->data.multaggr.vars !=
NULL);
12359assert( (*var)->data.multaggr.scalars !=
NULL);
12361assert(!
EPSZ((*var)->data.multaggr.scalars[0], 1e-06));
12371 if(
EPSEQ((*var)->data.multaggr.constant, -1.0, 1e-06) || (
EPSEQ((*var)->data.multaggr.constant, 1.0, 1e-06) &&
EPSEQ((*var)->data.multaggr.scalars[0], 1.0, 1e-06)) )
12373assert(
EPSEQ((*var)->data.multaggr.scalars[0], 1.0, 1e-06));
12382 if( !
EPSEQ(
REALABS((*var)->data.multaggr.scalars[0]), 1.0, 1e-06) )
12392assert(
EPSZ((*var)->data.multaggr.constant, 1e-06) ||
EPSEQ((*var)->data.multaggr.constant, 1.0, 1e-06)
12393||
EPSZ((*var)->data.multaggr.constant + (*var)->data.multaggr.scalars[0], 1e-06)
12394||
EPSEQ((*var)->data.multaggr.constant + (*var)->data.multaggr.scalars[0], 1.0, 1e-06));
12396 if( !
EPSZ((*var)->data.multaggr.constant, 1e-06) && !
EPSEQ((*var)->data.multaggr.constant, 1.0, 1e-06) )
12402assert(
EPSEQ((*var)->data.multaggr.scalars[0], 1.0, 1e-06) ||
EPSEQ((*var)->data.multaggr.scalars[0], -1.0, 1e-06));
12404 if(
EPSZ((*var)->data.multaggr.constant, 1e-06) )
12410assert(
EPSEQ((*var)->data.multaggr.scalars[0], -1.0, 1e-06) ?
12416assert(
EPSEQ((*var)->data.multaggr.scalars[0], -1.0, 1e-06));
12418constant += (*negated) != orignegated ? -1.0 : 1.0;
12421*negated = !(*negated);
12431assert((*var)->data.aggregate.var !=
NULL);
12432assert(
EPSEQ((*var)->data.aggregate.scalar, 1.0, 1e-06) ||
EPSEQ((*var)->data.aggregate.scalar, -1.0, 1e-06));
12433assert(
EPSLE((*var)->data.aggregate.var->glbdom.ub - (*var)->data.aggregate.var->glbdom.lb, 1.0, 1e-06));
12435constant += (*negated) != orignegated ? -(*var)->data.aggregate.constant : (*var)->data.aggregate.constant;
12438*negated = ((*var)->data.aggregate.scalar > 0.0) ? *negated : !(*negated);
12443assert((*var)->negatedvar !=
NULL);
12445constant += (*negated) != orignegated ? -1.0 : 1.0;
12448*negated = !(*negated);
12462assert(
EPSZ(constant, 1e-06) ||
EPSEQ(constant, 1.0, 1e-06));
12463assert(
EPSZ(constant, 1e-06) == ((*negated) == orignegated));
12483assert(var !=
NULL);
12484assert(*var !=
NULL);
12486assert(boundtype !=
NULL);
12488 SCIPdebugMessage(
"get probvar bound %g of type %d of variable <%s>\n", *
bound, *boundtype, (*var)->name);
12493 if( (*var)->data.original.transvar ==
NULL)
12495 SCIPerrorMessage(
"original variable has no transformed variable attached\n");
12509 if( (*var)->data.multaggr.nvars == 1 )
12511assert( (*var)->data.multaggr.vars !=
NULL);
12512assert( (*var)->data.multaggr.scalars !=
NULL);
12513assert( (*var)->data.multaggr.scalars[0] != 0.0 );
12515(*bound) /= (*var)->data.multaggr.scalars[0];
12516(*bound) -= (*var)->data.multaggr.constant/(*var)->data.multaggr.scalars[0];
12517 if( (*var)->data.multaggr.scalars[0] < 0.0 )
12530assert((*var)->data.aggregate.var !=
NULL);
12531assert((*var)->data.aggregate.scalar != 0.0);
12533(*bound) /= (*var)->data.aggregate.scalar;
12534(*bound) -= (*var)->data.aggregate.constant/(*var)->data.aggregate.scalar;
12535 if( (*var)->data.aggregate.scalar < 0.0 )
12547assert((*var)->negatedvar !=
NULL);
12549assert((*var)->negatedvar->negatedvar == *var);
12550(*bound) = (*var)->data.negate.constant - *
bound;
12576assert(var !=
NULL);
12577assert(*var !=
NULL);
12578assert(left !=
NULL);
12579assert(right !=
NULL);
12581 SCIPdebugMessage(
"get probvar hole (%g,%g) of variable <%s>\n", *left, *right, (*var)->name);
12586 if( (*var)->data.original.transvar ==
NULL)
12588 SCIPerrorMessage(
"original variable has no transformed variable attached\n");
12602assert((*var)->data.aggregate.var !=
NULL);
12603assert((*var)->data.aggregate.scalar != 0.0);
12606(*left) /= (*var)->data.aggregate.scalar;
12607(*right) /= (*var)->data.aggregate.scalar;
12610(*left) -= (*var)->data.aggregate.constant/(*var)->data.aggregate.scalar;
12611(*right) -= (*var)->data.aggregate.constant/(*var)->data.aggregate.scalar;
12616 if( (*var)->data.aggregate.scalar < 0.0 )
12627assert((*var)->negatedvar !=
NULL);
12629assert((*var)->negatedvar->negatedvar == *var);
12632(*left) = (*var)->data.negate.constant - (*left);
12633(*right) = (*var)->data.negate.constant - (*right);
12662assert(var !=
NULL);
12663assert(scalar !=
NULL);
12664assert(constant !=
NULL);
12666 while( *var !=
NULL)
12671 if( (*var)->data.original.transvar ==
NULL)
12673 SCIPerrorMessage(
"original variable has no transformed variable attached\n");
12688assert(*scalar != 0.0);
12689 if( (*scalar) * (*var)->glbdom.lb > 0.0 )
12695(*constant) += *scalar * (*var)->glbdom.lb;
12711 if( (*var)->data.multaggr.nvars == 1 )
12713assert((*var)->data.multaggr.vars !=
NULL);
12714assert((*var)->data.multaggr.scalars !=
NULL);
12715assert((*var)->data.multaggr.vars[0] !=
NULL);
12725 if( (*scalar) * (*var)->data.multaggr.constant > 0 )
12738(*constant) += *scalar * (*var)->data.multaggr.constant;
12740(*scalar) *= (*var)->data.multaggr.scalars[0];
12747assert((*var)->data.aggregate.var !=
NULL);
12751(*constant) += *scalar * (*var)->data.aggregate.constant;
12752(*scalar) *= (*var)->data.aggregate.scalar;
12757assert((*var)->negatedvar !=
NULL);
12759assert((*var)->negatedvar->negatedvar == *var);
12763(*constant) += *scalar * (*var)->data.negate.constant;
12790assert(var !=
NULL);
12791assert(*var !=
NULL);
12792assert(scalar !=
NULL);
12793assert(constant !=
NULL);
12800 if( (*var)->nparentvars == 0 )
12806((*var)->negatedvar->nparentvars == 0 || (*var)->negatedvar->parentvars[0] != *var) )
12809*constant -= (*var)->data.negate.constant * (*scalar);
12827assert(parentvar !=
NULL);
12838 SCIPerrorMessage(
"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n");
12861assert( parentvar !=
NULL);
12874assert(var !=
NULL);
12881assert(parentvar !=
NULL);
12886assert( parentvar !=
NULL);
12898assert(var !=
NULL);
12920 SCIPerrorMessage(
"cannot get the objective value of a multiple aggregated variable\n");
12945assert(var !=
NULL);
12947assert(var->
scip==
set->scip);
12990 SCIPerrorMessage(
"getting the bounds of a multiple aggregated variable is not implemented yet\n");
13015assert(var !=
NULL);
13017assert(var->
scip==
set->scip);
13059 SCIPerrorMessage(
"cannot get the bounds of a multi-aggregated variable.\n");
13081assert(var !=
NULL);
13157assert(var !=
NULL);
13205assert(var !=
NULL);
13282assert(var !=
NULL);
13296assert(var !=
NULL);
13298assert(var->
scip==
set->scip);
13324 if( rootredcost > 0.0 )
13329cutoffbound = (
bound- rootsol) * rootredcost + rootlpobjval;
13332 if( cutoffbound > currcutoffbound )
13365assert(var !=
NULL);
13439assert(col !=
NULL);
13472#define MAX_CLIQUELENGTH 50 13495#ifdef SCIP_MORE_DEBUG 13502 if( ncliques > 0 )
13521assert(prob !=
NULL);
13531assert(cliques !=
NULL);
13533 for( c = ncliques - 1; c >= 0; --c )
13535clique = cliques[c];
13536assert(clique !=
NULL);
13538assert(nclqvars > 0);
13545assert(clqvars !=
NULL);
13546assert(clqvalues !=
NULL);
13550 for( v = nclqvars - 1; v >= 0; --v )
13552clqvar = clqvars[v];
13553assert(clqvar !=
NULL);
13560assert(0 < probindex && probindex < nentries);
13562#ifdef SCIP_DISABLED_CODE 13566assert(!entries[probindex] || entries[probindex] == (clqvalues[v] ? probindex : -probindex));
13568 if( entries[probindex] == 0 )
13570ids[nids] = probindex;
13574entries[probindex] = (clqvalues[v] ? probindex : -probindex);
13581assert(probvars !=
NULL);
13584 for( v = nids - 1; v >= 0; --v )
13587assert(0 <
id&&
id< nentries);
13588assert(entries[
id] != 0);
13589assert(probvars[
id- 1] !=
NULL);
13594 if( (entries[
id] > 0) != varfixing )
13600implredcost += redcost;
13610#ifdef SCIP_MORE_DEBUG 13636 for( v = nvars - 1; v >= 0; --v )
13639assert(implvar !=
NULL);
13649assert(col !=
NULL);
13653 if( lpissolbasic )
13664redcost *= (lb - bounds[v]);
13666redcost *= (bounds[v] - lb);
13674redcost *= (bounds[v] - ub);
13676redcost *= (ub - bounds[v]);
13690redcost *= (lb - bounds[v]);
13692redcost *= (bounds[v] - lb);
13700redcost *= (bounds[v] - ub);
13702redcost *= (ub - bounds[v]);
13708implredcost += redcost;
13712#ifdef SCIP_MORE_DEBUG 13713 SCIPsetDebugMsg(
set,
"variable <%s> incl. cliques (%d) and implications (%d) has implied reduced cost of %g\n",
13717 returnimplredcost;
13730assert(var !=
NULL);
13794assert(var !=
NULL);
13828assert(var !=
NULL);
13862assert(var !=
NULL);
13878assert(var !=
NULL);
13879assert(relaxation !=
NULL);
13881assert(var->
scip==
set->scip);
13900 SCIPerrorMessage(
"cannot set relaxation solution value for variable <%s> fixed to %.15g to different value %.15g\n",
13912 SCIPerrorMessage(
"cannot set solution value for multiple aggregated variable\n");
13940assert(var !=
NULL);
13942assert(var->
scip==
set->scip);
14007assert(var !=
NULL);
14020assert(var !=
NULL);
14022assert(var->
scip==
set->scip);
14039 SCIPerrorMessage(
"cannot set NLP solution value for variable <%s> fixed to %.15g to different value %.15g\n",
14052 SCIPerrorMessage(
"cannot set solution value for multiple aggregated variable\n");
14077assert(var !=
NULL);
14137 int* closestvlbidx
14142assert(var !=
NULL);
14143assert(stat !=
NULL);
14145assert(var->
scip==
set->scip);
14146assert(closestvlb !=
NULL);
14147assert(closestvlbidx !=
NULL);
14149*closestvlbidx = -1;
14168assert(0 <= i && i < nvlbs);
14170*closestvlbidx = i;
14171*closestvlb = vlbcoefs[i] *
SCIPvarGetLPSol(vlbvars[i]) + vlbconsts[i];
14176 for( i = 0; i < nvlbs; i++ )
14183 if( vlbsol > *closestvlb )
14185*closestvlb = vlbsol;
14186*closestvlbidx = i;
14212 int* closestvubidx
14217assert(var !=
NULL);
14219assert(var->
scip==
set->scip);
14220assert(closestvub !=
NULL);
14221assert(closestvubidx !=
NULL);
14223*closestvubidx = -1;
14242assert(0 <= i && i < nvubs);
14244*closestvubidx = i;
14245*closestvub = vubcoefs[i] *
SCIPvarGetLPSol(vubvars[i]) + vubconsts[i];
14250 for( i = 0; i < nvubs; i++ )
14257 if( vubsol < *closestvub )
14259*closestvub = vubsol;
14260*closestvubidx = i;
14292assert(var !=
NULL);
14294assert(var->
scip==
set->scip);
14295assert(row !=
NULL);
14308 SCIPerrorMessage(
"cannot add untransformed original variable <%s> to LP row <%s>\n", var->
name, row->
name);
14378#ifdef SCIP_HISTORYTOFILE 14380const char* historypath=
".";
14397assert(var !=
NULL);
14399assert(var->
scip==
set->scip);
14400assert(stat !=
NULL);
14411 SCIPerrorMessage(
"cannot update pseudo costs of original untransformed variable\n");
14432#ifdef SCIP_HISTORYTOFILE 14435 charfilename[256];
14442f = fopen(filename,
"a");
14445fprintf(f,
"%lld %s \t %lld \t %lld \t %lld \t %d \t %15.9f \t %.3f\n",
14461 SCIPerrorMessage(
"cannot update pseudo cost values of a fixed variable\n");
14471 SCIPerrorMessage(
"cannot update pseudo cost values of a multi-aggregated variable\n");
14493assert(var !=
NULL);
14494assert(stat !=
NULL);
14542assert(var !=
NULL);
14543assert(stat !=
NULL);
14586assert(var !=
NULL);
14631assert(var !=
NULL);
14696 return MIN(upscore, downscore);
14706assert(var !=
NULL);
14719 if( onlycurrentrun )
14769 if( onlycurrentrun )
14774assert(count >= 1.9);
14776confidencebound /= count;
14777confidencebound = sqrt(confidencebound);
14784confidencebound = 0.0;
14786 returnconfidencebound;
14810size =
MIN(downsize, upsize);
14820 if( downsize >= 1.9 )
14826normval =
MAX(1.0, normval);
14828relerrordown /= normval;
14831relerrordown = 0.0;
14833 if( upsize >= 1.9 )
14839normval =
MAX(1.0, normval);
14840relerrorup /= normval;
14846relerror =
MAX(relerrorup, relerrordown);
14848 return(relerror <= threshold);
14890 if( varx == vary )
14897 if( countx <= 1.9 || county <= 1.9 )
14955 if( count <= 1.9 )
14994 SCIPerrorMessage(
"Confidence level set to unknown value <%d>", (
int)clevel);
14999 return(probability >= problimit);
15012assert(var !=
NULL);
15013assert(blkmem !=
NULL);
15015assert(history !=
NULL);
15017(*history) =
NULL;
15044 if( !
set->history_valuebased )
15069assert(var !=
NULL);
15084 SCIPerrorMessage(
"cannot update VSIDS of original untransformed variable\n");
15101assert(history !=
NULL);
15129 SCIPerrorMessage(
"cannot update VSIDS of a multi-aggregated variable\n");
15133value = 1.0 - value;
15150assert(var !=
NULL);
15157 SCIPerrorMessage(
"cannot update VSIDS of original untransformed variable\n");
15181 SCIPerrorMessage(
"cannot update VSIDS of a multi-aggregated variable\n");
15205assert(var !=
NULL);
15217 SCIPerrorMessage(
"cannot update conflict score of original untransformed variable\n");
15234assert(history !=
NULL);
15242 SCIPerrorMessage(
"cannot update conflict score of a fixed variable\n");
15260 SCIPerrorMessage(
"cannot update conflict score of a multi-aggregated variable\n");
15264value = 1.0 - value;
15282assert(var !=
NULL);
15283assert(stat !=
NULL);
15329assert(var !=
NULL);
15330assert(stat !=
NULL);
15373assert(var !=
NULL);
15417assert(var !=
NULL);
15465assert(var !=
NULL);
15466assert(stat !=
NULL);
15478 SCIPerrorMessage(
"cannot update branching counter of original untransformed variable\n");
15497assert(history !=
NULL);
15505 SCIPerrorMessage(
"cannot update branching counter of a fixed variable\n");
15523 SCIPerrorMessage(
"cannot update branching counter of a multi-aggregated variable\n");
15527value = 1.0 - value;
15549assert(var !=
NULL);
15550assert(stat !=
NULL);
15562 SCIPerrorMessage(
"cannot update inference counter of original untransformed variable\n");
15581assert(history !=
NULL);
15589 SCIPerrorMessage(
"cannot update inference counter of a fixed variable\n");
15607 SCIPerrorMessage(
"cannot update inference counter of a multi-aggregated variable\n");
15611value = 1.0 - value;
15633assert(var !=
NULL);
15634assert(stat !=
NULL);
15646 SCIPerrorMessage(
"cannot update cutoff sum of original untransformed variable\n");
15665assert(history !=
NULL);
15691 SCIPerrorMessage(
"cannot update cutoff sum of a multi-aggregated variable\n");
15695value = 1.0 - value;
15712assert(var !=
NULL);
15757assert(var !=
NULL);
15800assert(var !=
NULL);
15845assert(var !=
NULL);
15891assert(var !=
NULL);
15892assert(stat !=
NULL);
15942assert(var !=
NULL);
15943assert(stat !=
NULL);
15948 SCIPerrorMessage(
"invalid branching direction %d when asking for VSIDS value\n", dir);
15992assert(var !=
NULL);
16037assert(var !=
NULL);
16081assert(var !=
NULL);
16082assert(stat !=
NULL);
16138assert(var !=
NULL);
16139assert(stat !=
NULL);
16192assert(var !=
NULL);
16235assert(var !=
NULL);
16279assert(var !=
NULL);
16280assert(stat !=
NULL);
16326assert(var !=
NULL);
16327assert(stat !=
NULL);
16372assert(var !=
NULL);
16373assert(stat !=
NULL);
16413assert(var !=
NULL);
16414assert(stat !=
NULL);
16415assert(gmieff >= 0);
16456assert(var !=
NULL);
16457assert(stat !=
NULL);
16497assert(var !=
NULL);
16498assert(stat !=
NULL);
16499assert(gmieff >= 0);
16550assert(bdchginfo !=
NULL);
16553(*bdchginfo)->oldbound = oldbound;
16554(*bdchginfo)->newbound = newbound;
16555(*bdchginfo)->var = var;
16556(*bdchginfo)->inferencedata.var = var;
16557(*bdchginfo)->inferencedata.reason.prop =
NULL;
16558(*bdchginfo)->inferencedata.info = 0;
16559(*bdchginfo)->bdchgidx.depth = INT_MAX;
16560(*bdchginfo)->bdchgidx.pos = -1;
16561(*bdchginfo)->pos = 0;
16563(*bdchginfo)->boundtype = boundtype;
16564(*bdchginfo)->inferboundtype = boundtype;
16565(*bdchginfo)->redundant =
FALSE;
16576assert(bdchginfo !=
NULL);
16593assert(var !=
NULL);
16649assert(var !=
NULL);
16725assert(var !=
NULL);
16730 switch( varstatus )
16738 if( bdchgidx ==
NULL)
16745 if( bdchginfo !=
NULL)
16816 SCIPerrorMessage(
"cannot get the bounds of a multi-aggregated variable.\n");
16844assert(var !=
NULL);
16849 switch( varstatus )
16857 if( bdchgidx ==
NULL)
16864 if( bdchginfo !=
NULL)
16936 SCIPerrorMessage(
"cannot get the bounds of a multiple aggregated variable.\n");
16984assert(var !=
NULL);
17008assert(var !=
NULL);
17045assert(bdchgidx !=
NULL);
17047 returnbdchgidx->
depth;
17062assert(var !=
NULL);
17064assert(var->
scip==
set->scip);
17134assert(var1 !=
NULL);
17135assert(var2 !=
NULL);
17141assert(var1 !=
NULL);
17142assert(var2 !=
NULL);
17189assert(var !=
NULL);
17190 returnvar->
name;
17206#undef SCIPboundchgGetNewbound 17207#undef SCIPboundchgGetVar 17208#undef SCIPboundchgGetBoundchgtype 17209#undef SCIPboundchgGetBoundtype 17210#undef SCIPboundchgIsRedundant 17211#undef SCIPdomchgGetNBoundchgs 17212#undef SCIPdomchgGetBoundchg 17213#undef SCIPholelistGetLeft 17214#undef SCIPholelistGetRight 17215#undef SCIPholelistGetNext 17216#undef SCIPvarGetName 17217#undef SCIPvarGetNUses 17218#undef SCIPvarGetData 17219#undef SCIPvarSetData 17220#undef SCIPvarSetDelorigData 17221#undef SCIPvarSetTransData 17222#undef SCIPvarSetDeltransData 17223#undef SCIPvarGetStatus 17224#undef SCIPvarIsOriginal 17225#undef SCIPvarIsTransformed 17226#undef SCIPvarIsNegated 17227#undef SCIPvarGetType 17228#undef SCIPvarIsBinary 17229#undef SCIPvarIsIntegral 17230#undef SCIPvarIsInitial 17231#undef SCIPvarIsRemovable 17232#undef SCIPvarIsDeleted 17233#undef SCIPvarIsDeletable 17234#undef SCIPvarMarkDeletable 17235#undef SCIPvarMarkNotDeletable 17236#undef SCIPvarIsActive 17237#undef SCIPvarGetIndex 17238#undef SCIPvarGetProbindex 17239#undef SCIPvarGetTransVar 17240#undef SCIPvarGetCol 17241#undef SCIPvarIsInLP 17242#undef SCIPvarGetAggrVar 17243#undef SCIPvarGetAggrScalar 17244#undef SCIPvarGetAggrConstant 17245#undef SCIPvarGetMultaggrNVars 17246#undef SCIPvarGetMultaggrVars 17247#undef SCIPvarGetMultaggrScalars 17248#undef SCIPvarGetMultaggrConstant 17249#undef SCIPvarGetNegatedVar 17250#undef SCIPvarGetNegationVar 17251#undef SCIPvarGetNegationConstant 17252#undef SCIPvarGetObj 17253#undef SCIPvarGetLbOriginal 17254#undef SCIPvarGetUbOriginal 17255#undef SCIPvarGetHolelistOriginal 17256#undef SCIPvarGetLbGlobal 17257#undef SCIPvarGetUbGlobal 17258#undef SCIPvarGetHolelistGlobal 17259#undef SCIPvarGetBestBoundGlobal 17260#undef SCIPvarGetWorstBoundGlobal 17261#undef SCIPvarGetLbLocal 17262#undef SCIPvarGetUbLocal 17263#undef SCIPvarGetHolelistLocal 17264#undef SCIPvarGetBestBoundLocal 17265#undef SCIPvarGetWorstBoundLocal 17266#undef SCIPvarGetBestBoundType 17267#undef SCIPvarGetWorstBoundType 17268#undef SCIPvarGetLbLazy 17269#undef SCIPvarGetUbLazy 17270#undef SCIPvarGetBranchFactor 17271#undef SCIPvarGetBranchPriority 17272#undef SCIPvarGetBranchDirection 17273#undef SCIPvarGetNVlbs 17274#undef SCIPvarGetVlbVars 17275#undef SCIPvarGetVlbCoefs 17276#undef SCIPvarGetVlbConstants 17277#undef SCIPvarGetNVubs 17278#undef SCIPvarGetVubVars 17279#undef SCIPvarGetVubCoefs 17280#undef SCIPvarGetVubConstants 17281#undef SCIPvarGetNImpls 17282#undef SCIPvarGetImplVars 17283#undef SCIPvarGetImplTypes 17284#undef SCIPvarGetImplBounds 17285#undef SCIPvarGetImplIds 17286#undef SCIPvarGetNCliques 17287#undef SCIPvarGetCliques 17288#undef SCIPvarGetLPSol 17289#undef SCIPvarGetNLPSol 17290#undef SCIPvarGetBdchgInfoLb 17291#undef SCIPvarGetNBdchgInfosLb 17292#undef SCIPvarGetBdchgInfoUb 17293#undef SCIPvarGetNBdchgInfosUb 17294#undef SCIPvarGetValuehistory 17295#undef SCIPvarGetPseudoSol 17296#undef SCIPvarCatchEvent 17297#undef SCIPvarDropEvent 17298#undef SCIPvarGetVSIDS 17299#undef SCIPvarGetCliqueComponentIdx 17300#undef SCIPvarIsRelaxationOnly 17301#undef SCIPvarMarkRelaxationOnly 17302#undef SCIPbdchgidxGetPos 17303#undef SCIPbdchgidxIsEarlierNonNull 17304#undef SCIPbdchgidxIsEarlier 17305#undef SCIPbdchginfoGetOldbound 17306#undef SCIPbdchginfoGetNewbound 17307#undef SCIPbdchginfoGetVar 17308#undef SCIPbdchginfoGetChgtype 17309#undef SCIPbdchginfoGetBoundtype 17310#undef SCIPbdchginfoGetDepth 17311#undef SCIPbdchginfoGetPos 17312#undef SCIPbdchginfoGetIdx 17313#undef SCIPbdchginfoGetInferVar 17314#undef SCIPbdchginfoGetInferCons 17315#undef SCIPbdchginfoGetInferProp 17316#undef SCIPbdchginfoGetInferInfo 17317#undef SCIPbdchginfoGetInferBoundtype 17318#undef SCIPbdchginfoIsRedundant 17319#undef SCIPbdchginfoHasInferenceReason 17320#undef SCIPbdchginfoIsTighter 17328assert(boundchg !=
NULL);
17338assert(boundchg !=
NULL);
17340 returnboundchg->
var;
17348assert(boundchg !=
NULL);
17358assert(boundchg !=
NULL);
17368assert(boundchg !=
NULL);
17387assert(domchg !=
NULL);
17398assert(holelist !=
NULL);
17408assert(holelist !=
NULL);
17418assert(holelist !=
NULL);
17420 returnholelist->
next;
17431assert(var !=
NULL);
17433 returnvar->
name;
17441assert(var !=
NULL);
17443 returnvar->
nuses;
17451assert(var !=
NULL);
17462assert(var !=
NULL);
17473assert(var !=
NULL);
17476var->vardelorig = vardelorig;
17485assert(var !=
NULL);
17488var->vartrans = vartrans;
17497assert(var !=
NULL);
17499var->vardeltrans = vardeltrans;
17508assert(var !=
NULL);
17510var->varcopy = varcopy;
17519assert(var !=
NULL);
17535assert(var !=
NULL);
17550assert(var !=
NULL);
17560assert(var !=
NULL);
17573assert(var !=
NULL);
17586assert(var !=
NULL);
17596assert(var !=
NULL);
17611assert(var !=
NULL);
17622assert(var !=
NULL);
17632assert(var !=
NULL);
17642assert(var !=
NULL);
17652assert(var !=
NULL);
17664assert(var !=
NULL);
17675assert(var !=
NULL);
17688assert(var !=
NULL);
17698assert(var !=
NULL);
17718assert(var !=
NULL);
17736assert(var !=
NULL);
17750assert(var !=
NULL);
17760assert(var !=
NULL);
17770assert(var !=
NULL);
17772 returnvar->
index;
17780assert(var !=
NULL);
17790assert(var !=
NULL);
17801assert(var !=
NULL);
17812assert(var !=
NULL);
17822assert(var !=
NULL);
17834assert(var !=
NULL);
17846assert(var !=
NULL);
17858assert(var !=
NULL);
17870assert(var !=
NULL);
17882assert(var !=
NULL);
17894assert(var !=
NULL);
17906assert(var !=
NULL);
17916assert(var !=
NULL);
17927assert(var !=
NULL);
17938assert(var !=
NULL);
17948assert(var !=
NULL);
17964assert(probvar !=
NULL);
17965assert(aggrobj !=
NULL);
17967 while( probvar !=
NULL)
18036assert(var !=
NULL);
18056assert(var !=
NULL);
18076assert(var !=
NULL);
18090assert(var !=
NULL);
18100assert(var !=
NULL);
18110assert(var !=
NULL);
18120assert(var !=
NULL);
18122 if( var->
obj>= 0.0 )
18133assert(var !=
NULL);
18135 if( var->
obj>= 0.0 )
18146assert(var !=
NULL);
18156assert(var !=
NULL);
18166assert(var !=
NULL);
18176assert(var !=
NULL);
18178 if( var->
obj>= 0.0 )
18189assert(var !=
NULL);
18191 if( var->
obj>= 0.0 )
18202assert(var !=
NULL);
18204 if( var->
obj>= 0.0 )
18215assert(var !=
NULL);
18217 if( var->
obj>= 0.0 )
18228assert(var !=
NULL);
18238assert(var !=
NULL);
18250assert(var !=
NULL);
18262assert(var !=
NULL);
18272assert(var !=
NULL);
18282assert(var !=
NULL);
18294assert(var !=
NULL);
18304assert(var !=
NULL);
18314assert(var !=
NULL);
18324assert(var !=
NULL);
18336assert(var !=
NULL);
18346assert(var !=
NULL);
18356assert(var !=
NULL);
18369assert(var !=
NULL);
18386assert(var !=
NULL);
18401assert(var !=
NULL);
18415assert(var !=
NULL);
18431assert(var !=
NULL);
18443assert(var !=
NULL);
18454assert(var !=
NULL);
18464assert(var !=
NULL);
18477assert(var !=
NULL);
18492assert(pos < var->nlbchginfos);
18512assert(pos < var->nubchginfos);
18522assert(var !=
NULL);
18532assert(var !=
NULL);
18542assert(var !=
NULL);
18557assert(var !=
NULL);
18576assert(var !=
NULL);
18578assert(var->
scip==
set->scip);
18585eventtype, var->
name, (
void*)eventhdlr, (
void*)eventdata);
18603assert(var !=
NULL);
18605assert(var->
scip==
set->scip);
18609 SCIPsetDebugMsg(
set,
"drop event of variable <%s> with handler %p and data %p\n", var->
name, (
void*)eventhdlr,
18610(
void*)eventdata);
18622assert(bdchgidx !=
NULL);
18624 returnbdchgidx->
pos;
18633assert(bdchgidx1 !=
NULL);
18634assert(bdchgidx1->
depth>= -2);
18635assert(bdchgidx1->
pos>= 0);
18636assert(bdchgidx2 !=
NULL);
18637assert(bdchgidx2->
depth>= -2);
18638assert(bdchgidx2->
pos>= 0);
18640 return(bdchgidx1->
depth< bdchgidx2->
depth)
18641|| (bdchgidx1->
depth== bdchgidx2->
depth&& (bdchgidx1->
pos< bdchgidx2->
pos));
18653assert(bdchgidx1 ==
NULL|| bdchgidx1->
depth>= -2);
18654assert(bdchgidx1 ==
NULL|| bdchgidx1->
pos>= 0);
18655assert(bdchgidx2 ==
NULL|| bdchgidx2->
depth>= -2);
18656assert(bdchgidx2 ==
NULL|| bdchgidx2->
pos>= 0);
18658 if( bdchgidx1 ==
NULL)
18660 else if( bdchgidx2 ==
NULL)
18663 return(bdchgidx1->
depth< bdchgidx2->
depth)
18664|| (bdchgidx1->
depth== bdchgidx2->
depth&& (bdchgidx1->
pos< bdchgidx2->
pos));
18672assert(bdchginfo !=
NULL);
18682assert(bdchginfo !=
NULL);
18692assert(bdchginfo !=
NULL);
18694 returnbdchginfo->
var;
18702assert(bdchginfo !=
NULL);
18712assert(bdchginfo !=
NULL);
18722assert(bdchginfo !=
NULL);
18732assert(bdchginfo !=
NULL);
18742assert(bdchginfo !=
NULL);
18752assert(bdchginfo !=
NULL);
18764assert(bdchginfo !=
NULL);
18776assert(bdchginfo !=
NULL);
18787assert(bdchginfo !=
NULL);
18799assert(bdchginfo !=
NULL);
18820assert(bdchginfo !=
NULL);
18831assert(bdchginfo !=
NULL);
18846assert(bdchginfo1 !=
NULL);
18847assert(bdchginfo2 !=
NULL);
18848assert(bdchginfo1->
var== bdchginfo2->
var);
static GRAPHNODE ** active
void SCIPconsCapture(SCIP_CONS *cons)
SCIP_RETCODE SCIPconsRelease(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set)
internal methods for constraints and constraint handlers
#define SCIPdebugCheckLbGlobal(scip, var, lb)
#define SCIPdebugCheckImplic(set, var, varfixing, implvar, impltype, implbound)
#define SCIPdebugCheckUbGlobal(scip, var, ub)
#define SCIPdebugCheckVbound(set, var, vbtype, vbvar, vbcoef, vbconstant)
#define SCIPdebugCheckAggregation(set, var, aggrvars, scalars, constant, naggrvars)
#define SCIP_DEFAULT_INFINITY
#define SCIP_CALL_ABORT(x)
SCIP_RETCODE SCIPeventCreateLbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
SCIP_RETCODE SCIPeventCreateVarFixed(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
SCIP_RETCODE SCIPeventCreateUbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
SCIP_RETCODE SCIPeventCreateVarUnlocked(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
SCIP_RETCODE SCIPeventCreateObjChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
SCIP_RETCODE SCIPeventqueueAdd(SCIP_EVENTQUEUE *eventqueue, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENT **event)
SCIP_RETCODE SCIPeventfilterFree(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_Bool SCIPeventqueueIsDelayed(SCIP_EVENTQUEUE *eventqueue)
SCIP_RETCODE SCIPeventCreateGholeAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real left, SCIP_Real right)
SCIP_RETCODE SCIPeventfilterDel(SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
SCIP_RETCODE SCIPeventfilterCreate(SCIP_EVENTFILTER **eventfilter, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPeventProcess(SCIP_EVENT *event, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)
SCIP_RETCODE SCIPeventCreateImplAdded(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var)
SCIP_RETCODE SCIPeventChgType(SCIP_EVENT *event, SCIP_EVENTTYPE eventtype)
SCIP_RETCODE SCIPeventfilterAdd(SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
SCIP_RETCODE SCIPeventCreateGubChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
SCIP_RETCODE SCIPeventCreateGlbChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound)
SCIP_RETCODE SCIPeventCreateTypeChanged(SCIP_EVENT **event, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_VARTYPE oldtype, SCIP_VARTYPE newtype)
internal methods for managing events
const char * SCIPgetProbName(SCIP *scip)
SCIP_RETCODE SCIPhashmapInsert(SCIP_HASHMAP *hashmap, void *origin, void *image)
SCIP_Bool SCIPhashmapExists(SCIP_HASHMAP *hashmap, void *origin)
SCIP_Longint SCIPcalcGreComDiv(SCIP_Longint val1, SCIP_Longint val2)
SCIP_Longint SCIPcalcSmaComMul(SCIP_Longint val1, SCIP_Longint val2)
SCIP_Bool SCIPrealToRational(SCIP_Real val, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Longint *numerator, SCIP_Longint *denominator)
SCIP_Real SCIPcolGetObj(SCIP_COL *col)
SCIP_Real SCIPcolGetLb(SCIP_COL *col)
SCIP_Real SCIPcolGetPrimsol(SCIP_COL *col)
SCIP_Real SCIPcolGetUb(SCIP_COL *col)
SCIP_Bool SCIPcolIsInLP(SCIP_COL *col)
SCIP_BASESTAT SCIPcolGetBasisStatus(SCIP_COL *col)
const char * SCIPconsGetName(SCIP_CONS *cons)
SCIP_Longint SCIPnodeGetNumber(SCIP_NODE *node)
SCIP_NODE * SCIPnodeGetParent(SCIP_NODE *node)
const char * SCIPpropGetName(SCIP_PROP *prop)
SCIP_Longint SCIPgetNLPIterations(SCIP *scip)
SCIP_NODE * SCIPgetFocusNode(SCIP *scip)
int SCIPgetDepth(SCIP *scip)
SCIP_Bool SCIPvarIsInitial(SCIP_VAR *var)
SCIP_Real SCIPvarGetLPSol_rec(SCIP_VAR *var)
int SCIPvarCompareActiveAndNegated(SCIP_VAR *var1, SCIP_VAR *var2)
void SCIPvarSetDelorigData(SCIP_VAR *var, SCIP_DECL_VARDELORIG((*vardelorig)))
SCIP_RETCODE SCIPvarGetOrigvarSum(SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_HOLELIST * SCIPvarGetHolelistLocal(SCIP_VAR *var)
int SCIPvarGetNVlbs(SCIP_VAR *var)
SCIP_RETCODE SCIPvarGetProbvarBound(SCIP_VAR **var, SCIP_Real *bound, SCIP_BOUNDTYPE *boundtype)
SCIP_Bool SCIPvarIsDeleted(SCIP_VAR *var)
SCIP_Real SCIPvarGetNegationConstant(SCIP_VAR *var)
SCIP_COL * SCIPvarGetCol(SCIP_VAR *var)
SCIP_Bool SCIPbdchginfoIsRedundant(SCIP_BDCHGINFO *bdchginfo)
SCIP_Bool SCIPvarWasFixedAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_Real SCIPvarGetAvgBranchdepthCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPvarMayRoundUp(SCIP_VAR *var)
SCIP_Real SCIPvarGetMultaggrConstant(SCIP_VAR *var)
SCIP_BOUNDTYPE SCIPvarGetBestBoundType(SCIP_VAR *var)
void SCIPvarsGetProbvar(SCIP_VAR **vars, int nvars)
SCIP_Real SCIPvarGetSol(SCIP_VAR *var, SCIP_Bool getlpval)
SCIP_VAR * SCIPvarGetNegatedVar(SCIP_VAR *var)
SCIP_Real * SCIPvarGetVlbCoefs(SCIP_VAR *var)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
SCIP_Bool SCIPvarIsBinary(SCIP_VAR *var)
SCIP_BOUNDTYPE SCIPboundchgGetBoundtype(SCIP_BOUNDCHG *boundchg)
SCIP_Real SCIPholelistGetRight(SCIP_HOLELIST *holelist)
void SCIPvarSetTransData(SCIP_VAR *var, SCIP_DECL_VARTRANS((*vartrans)))
SCIP_Real SCIPvarGetAvgBranchdepth(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real SCIPvarGetBestBoundGlobal(SCIP_VAR *var)
SCIP_Bool SCIPbdchgidxIsEarlier(SCIP_BDCHGIDX *bdchgidx1, SCIP_BDCHGIDX *bdchgidx2)
SCIP_Bool SCIPvarWasFixedEarlier(SCIP_VAR *var1, SCIP_VAR *var2)
SCIP_BDCHGIDX * SCIPbdchginfoGetIdx(SCIP_BDCHGINFO *bdchginfo)
SCIP_VAR * SCIPboundchgGetVar(SCIP_BOUNDCHG *boundchg)
SCIP_Bool SCIPvarHasImplic(SCIP_VAR *var, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype)
SCIP_BOUNDCHG * SCIPdomchgGetBoundchg(SCIP_DOMCHG *domchg, int pos)
int SCIPvarGetNImpls(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
int SCIPvarGetNLocksUpType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)
SCIP_BOUNDCHGTYPE SCIPboundchgGetBoundchgtype(SCIP_BOUNDCHG *boundchg)
SCIP_Real SCIPvarGetInferenceSum(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real SCIPvarGetAggrConstant(SCIP_VAR *var)
SCIP_RETCODE SCIPvarGetAggregatedObj(SCIP_VAR *var, SCIP_Real *aggrobj)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
int SCIPvarGetNLocksDown(SCIP_VAR *var)
SCIP_Real SCIPvarGetBestRootSol(SCIP_VAR *var)
void SCIPvarSetDeltransData(SCIP_VAR *var, SCIP_DECL_VARDELTRANS((*vardeltrans)))
SCIP_HOLELIST * SCIPholelistGetNext(SCIP_HOLELIST *holelist)
SCIP_Real SCIPvarGetLbOriginal(SCIP_VAR *var)
SCIP_BDCHGINFO * SCIPvarGetLbchgInfo(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_DECL_HASHGETKEY(SCIPvarGetHashkey)
SCIP_Bool SCIPvarIsTransformed(SCIP_VAR *var)
void SCIPvarMarkDeletable(SCIP_VAR *var)
void SCIPvarGetImplicVarBounds(SCIP_VAR *var, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_Real *lb, SCIP_Real *ub)
SCIP_PROP * SCIPbdchginfoGetInferProp(SCIP_BDCHGINFO *bdchginfo)
SCIP_Real SCIPboundchgGetNewbound(SCIP_BOUNDCHG *boundchg)
SCIP_Bool SCIPvarMayRoundDown(SCIP_VAR *var)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_Real SCIPvarGetAggrScalar(SCIP_VAR *var)
SCIP_DECL_SORTPTRCOMP(SCIPvarCompActiveAndNegated)
SCIP_VAR * SCIPvarGetProbvar(SCIP_VAR *var)
void SCIPvarMarkRelaxationOnly(SCIP_VAR *var)
SCIP_VARTYPE SCIPvarGetType(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_RETCODE SCIPvarSetInitial(SCIP_VAR *var, SCIP_Bool initial)
SCIP_VAR ** SCIPvarGetImplVars(SCIP_VAR *var, SCIP_Bool varfixing)
void SCIPvarSetBestRootSol(SCIP_VAR *var, SCIP_Real rootsol, SCIP_Real rootredcost, SCIP_Real rootlpobjval)
int SCIPbdchginfoGetDepth(SCIP_BDCHGINFO *bdchginfo)
int SCIPbdchginfoGetInferInfo(SCIP_BDCHGINFO *bdchginfo)
int SCIPvarGetIndex(SCIP_VAR *var)
SCIP_CONS * SCIPbdchginfoGetInferCons(SCIP_BDCHGINFO *bdchginfo)
SCIP_Real SCIPvarGetNLPSol_rec(SCIP_VAR *var)
SCIP_BDCHGIDX * SCIPvarGetLastBdchgIndex(SCIP_VAR *var)
int SCIPbdchginfoGetPos(SCIP_BDCHGINFO *bdchginfo)
SCIP_Real SCIPvarGetWorstBoundLocal(SCIP_VAR *var)
int SCIPvarGetNUses(SCIP_VAR *var)
int SCIPdomchgGetNBoundchgs(SCIP_DOMCHG *domchg)
int SCIPvarGetProbindex(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbOriginal(SCIP_VAR *var)
SCIP_Real SCIPvarGetWorstBoundGlobal(SCIP_VAR *var)
SCIP_VAR * SCIPbdchginfoGetVar(SCIP_BDCHGINFO *bdchginfo)
SCIP_Bool SCIPvarHasBinaryImplic(SCIP_VAR *var, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_Bool implvarfixing)
void SCIPvarMarkDeleteGlobalStructures(SCIP_VAR *var)
SCIP_Real * SCIPvarGetVlbConstants(SCIP_VAR *var)
SCIP_Real SCIPvarGetRootSol(SCIP_VAR *var)
int * SCIPvarGetImplIds(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_Real SCIPvarGetBestBoundLocal(SCIP_VAR *var)
int SCIPvarGetNVubs(SCIP_VAR *var)
SCIP_Real SCIPvarGetBranchFactor(SCIP_VAR *var)
SCIP_Real SCIPvarGetAvgSol(SCIP_VAR *var)
SCIP_Bool SCIPvarIsDeletable(SCIP_VAR *var)
SCIP_Real SCIPbdchginfoGetOldbound(SCIP_BDCHGINFO *bdchginfo)
SCIP_Bool SCIPvarIsIntegral(SCIP_VAR *var)
SCIP_Bool SCIPvarIsTransformedOrigvar(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbLazy(SCIP_VAR *var)
SCIP_Real SCIPvarGetPseudoSol(SCIP_VAR *var)
SCIP_BRANCHDIR SCIPvarGetBranchDirection(SCIP_VAR *var)
SCIP_BOUNDTYPE SCIPbdchginfoGetInferBoundtype(SCIP_BDCHGINFO *bdchginfo)
void SCIPvarSetData(SCIP_VAR *var, SCIP_VARDATA *vardata)
SCIP_Real * SCIPvarGetImplBounds(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_Real SCIPvarGetLPSol(SCIP_VAR *var)
SCIP_BDCHGINFO * SCIPvarGetBdchgInfo(SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_VARDATA * SCIPvarGetData(SCIP_VAR *var)
SCIP_VAR ** SCIPvarGetMultaggrVars(SCIP_VAR *var)
SCIP_Bool SCIPbdchginfoIsTighter(SCIP_BDCHGINFO *bdchginfo1, SCIP_BDCHGINFO *bdchginfo2)
int SCIPvarGetMultaggrNVars(SCIP_VAR *var)
SCIP_RETCODE SCIPvarSetRemovable(SCIP_VAR *var, SCIP_Bool removable)
SCIP_HOLELIST * SCIPvarGetHolelistOriginal(SCIP_VAR *var)
SCIP_Bool SCIPvarIsRemovable(SCIP_VAR *var)
int SCIPvarGetNCliques(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_BOUNDCHGTYPE SCIPbdchginfoGetChgtype(SCIP_BDCHGINFO *bdchginfo)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
SCIP_Bool SCIPvarIsNegated(SCIP_VAR *var)
SCIP_DECL_HASHKEYEQ(SCIPvarIsHashkeyEq)
SCIP_VAR * SCIPbdchginfoGetInferVar(SCIP_BDCHGINFO *bdchginfo)
SCIP_Bool SCIPbdchginfoHasInferenceReason(SCIP_BDCHGINFO *bdchginfo)
SCIP_Bool SCIPboundchgIsRedundant(SCIP_BOUNDCHG *boundchg)
SCIP_Longint SCIPvarGetNBranchings(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPvarIsRelaxationOnly(SCIP_VAR *var)
SCIP_VAR * SCIPvarGetNegationVar(SCIP_VAR *var)
SCIP_RETCODE SCIPvarGetProbvarHole(SCIP_VAR **var, SCIP_Real *left, SCIP_Real *right)
SCIP_VAR ** SCIPvarGetVlbVars(SCIP_VAR *var)
SCIP_BDCHGINFO * SCIPvarGetUbchgInfo(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_Real SCIPholelistGetLeft(SCIP_HOLELIST *holelist)
int SCIPvarGetBranchPriority(SCIP_VAR *var)
SCIP_Bool SCIPvarIsOriginal(SCIP_VAR *var)
SCIP_CLIQUE ** SCIPvarGetCliques(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
void SCIPvarMarkNotDeletable(SCIP_VAR *var)
SCIP_Real SCIPvarGetBestRootRedcost(SCIP_VAR *var)
SCIP_BDCHGINFO * SCIPvarGetBdchgInfoLb(SCIP_VAR *var, int pos)
SCIP_DECL_HASHKEYVAL(SCIPvarGetHashkeyVal)
int SCIPvarCompare(SCIP_VAR *var1, SCIP_VAR *var2)
SCIP_Real SCIPvarGetCutoffSumCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real SCIPvarGetBestRootLPObjval(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_RETCODE SCIPvarGetProbvarBinary(SCIP_VAR **var, SCIP_Bool *negated)
SCIP_Longint SCIPvarGetNBranchingsCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real * SCIPvarGetVubConstants(SCIP_VAR *var)
int SCIPvarGetNLocksUp(SCIP_VAR *var)
SCIP_VAR * SCIPvarGetTransVar(SCIP_VAR *var)
SCIP_Real SCIPvarGetNLPSol(SCIP_VAR *var)
SCIP_VAR ** SCIPvarGetVubVars(SCIP_VAR *var)
int SCIPvarGetNBdchgInfosUb(SCIP_VAR *var)
SCIP_BOUNDTYPE SCIPbdchginfoGetBoundtype(SCIP_BDCHGINFO *bdchginfo)
SCIP_VALUEHISTORY * SCIPvarGetValuehistory(SCIP_VAR *var)
SCIP_BOUNDTYPE SCIPvarGetWorstBoundType(SCIP_VAR *var)
SCIP_Real SCIPvarGetInferenceSumCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPvarsHaveCommonClique(SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
SCIP_Bool SCIPbdchgidxIsEarlierNonNull(SCIP_BDCHGIDX *bdchgidx1, SCIP_BDCHGIDX *bdchgidx2)
SCIP_Real * SCIPvarGetVubCoefs(SCIP_VAR *var)
SCIP_HOLELIST * SCIPvarGetHolelistGlobal(SCIP_VAR *var)
SCIP_Real SCIPvarGetBdAtIndex(SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_Real SCIPbdchginfoGetNewbound(SCIP_BDCHGINFO *bdchginfo)
int SCIPvarGetNLocksDownType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)
SCIP_Real SCIPvarGetUbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_BDCHGINFO * SCIPvarGetBdchgInfoUb(SCIP_VAR *var, int pos)
int SCIPvarGetNBdchgInfosLb(SCIP_VAR *var)
SCIP_BOUNDTYPE * SCIPvarGetImplTypes(SCIP_VAR *var, SCIP_Bool varfixing)
int SCIPvarGetLastBdchgDepth(SCIP_VAR *var)
void SCIPvarSetCopyData(SCIP_VAR *var, SCIP_DECL_VARCOPY((*varcopy)))
SCIP_RETCODE SCIPvarsGetProbvarBinary(SCIP_VAR ***vars, SCIP_Bool **negatedarr, int nvars)
SCIP_Real SCIPvarGetUnchangedObj(SCIP_VAR *var)
SCIP_Real * SCIPvarGetMultaggrScalars(SCIP_VAR *var)
SCIP_Real SCIPvarGetCutoffSum(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real SCIPvarGetLbLazy(SCIP_VAR *var)
SCIP_Bool SCIPvarIsInLP(SCIP_VAR *var)
SCIP_VAR * SCIPvarGetAggrVar(SCIP_VAR *var)
SCIP_Real SCIPnormalCDF(SCIP_Real mean, SCIP_Real variance, SCIP_Real value)
SCIP_Real SCIPcomputeTwoSampleTTestValue(SCIP_Real meanx, SCIP_Real meany, SCIP_Real variancex, SCIP_Real variancey, SCIP_Real countx, SCIP_Real county)
SCIP_Real SCIPstudentTGetCriticalValue(SCIP_CONFIDENCELEVEL clevel, int df)
SCIP_Bool SCIPsortedvecFindPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *val, int len, int *pos)
void SCIPsortPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
int SCIPsnprintf(char *t, int len, const char *s,...)
SCIP_Bool SCIPstrToRealValue(const char *str, SCIP_Real *value, char **endptr)
void SCIPstrCopySection(const char *str, char startchar, char endchar, char *token, int size, char **endptr)
SCIP_RETCODE SCIPvaluehistoryCreate(SCIP_VALUEHISTORY **valuehistory, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPvaluehistoryFind(SCIP_VALUEHISTORY *valuehistory, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Real value, SCIP_HISTORY **history)
void SCIPvaluehistoryFree(SCIP_VALUEHISTORY **valuehistory, BMS_BLKMEM *blkmem)
void SCIPvaluehistoryScaleVSIDS(SCIP_VALUEHISTORY *valuehistory, SCIP_Real scalar)
void SCIPhistoryReset(SCIP_HISTORY *history)
SCIP_Real SCIPhistoryGetPseudocost(SCIP_HISTORY *history, SCIP_Real solvaldelta)
SCIP_Real SCIPhistoryGetAvgInferences(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPhistoryGetNActiveConflicts(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPhistoryGetNBranchings(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Real SCIPhistoryGetAvgConflictlength(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Real SCIPhistoryGetAvgCutoffs(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPhistoryCreate(SCIP_HISTORY **history, BMS_BLKMEM *blkmem)
void SCIPhistorySetLastGMIeff(SCIP_HISTORY *history, SCIP_Real gmieff)
void SCIPhistoryIncInferenceSum(SCIP_HISTORY *history, SCIP_BRANCHDIR dir, SCIP_Real weight)
SCIP_Real SCIPhistoryGetCutoffSum(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Real SCIPhistoryGetPseudocostCount(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Real SCIPhistoryGetPseudocostVariance(SCIP_HISTORY *history, SCIP_BRANCHDIR direction)
void SCIPhistoryIncNActiveConflicts(SCIP_HISTORY *history, SCIP_BRANCHDIR dir, SCIP_Real length)
void SCIPhistoryScaleVSIDS(SCIP_HISTORY *history, SCIP_Real scalar)
void SCIPhistoryIncCutoffSum(SCIP_HISTORY *history, SCIP_BRANCHDIR dir, SCIP_Real weight)
void SCIPhistoryIncNBranchings(SCIP_HISTORY *history, SCIP_BRANCHDIR dir, int depth)
void SCIPhistoryUpdatePseudocost(SCIP_HISTORY *history, SCIP_SET *set, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
SCIP_Real SCIPhistoryGetVSIDS(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Real SCIPhistoryGetAvgBranchdepth(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
SCIP_Real SCIPhistoryGetLastGMIeff(SCIP_HISTORY *history)
SCIP_Real SCIPhistoryGetAvgGMIeff(SCIP_HISTORY *history)
SCIP_Real SCIPhistoryGetInferenceSum(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
void SCIPhistoryFree(SCIP_HISTORY **history, BMS_BLKMEM *blkmem)
void SCIPhistoryUnite(SCIP_HISTORY *history, SCIP_HISTORY *addhistory, SCIP_Bool switcheddirs)
void SCIPhistoryIncGMIeffSum(SCIP_HISTORY *history, SCIP_Real gmieff)
SCIP_BRANCHDIR SCIPbranchdirOpposite(SCIP_BRANCHDIR dir)
void SCIPhistoryIncVSIDS(SCIP_HISTORY *history, SCIP_BRANCHDIR dir, SCIP_Real weight)
internal methods for branching and inference history
SCIP_VAR ** SCIPimplicsGetVars(SCIP_IMPLICS *implics, SCIP_Bool varfixing)
void SCIPcliqueDelVar(SCIP_CLIQUE *clique, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_Bool value)
void SCIPcliquelistRemoveFromCliques(SCIP_CLIQUELIST *cliquelist, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_Bool irrelevantvar)
void SCIPvboundsFree(SCIP_VBOUNDS **vbounds, BMS_BLKMEM *blkmem)
SCIP_Real * SCIPvboundsGetCoefs(SCIP_VBOUNDS *vbounds)
void SCIPvboundsShrink(SCIP_VBOUNDS **vbounds, BMS_BLKMEM *blkmem, int newnvbds)
SCIP_VAR ** SCIPcliqueGetVars(SCIP_CLIQUE *clique)
SCIP_CLIQUE ** SCIPcliquelistGetCliques(SCIP_CLIQUELIST *cliquelist, SCIP_Bool value)
SCIP_Bool SCIPcliquelistsHaveCommonClique(SCIP_CLIQUELIST *cliquelist1, SCIP_Bool value1, SCIP_CLIQUELIST *cliquelist2, SCIP_Bool value2)
SCIP_Real * SCIPimplicsGetBounds(SCIP_IMPLICS *implics, SCIP_Bool varfixing)
void SCIPcliquelistCheck(SCIP_CLIQUELIST *cliquelist, SCIP_VAR *var)
SCIP_VAR ** SCIPvboundsGetVars(SCIP_VBOUNDS *vbounds)
int SCIPcliqueGetNVars(SCIP_CLIQUE *clique)
SCIP_Bool * SCIPcliqueGetValues(SCIP_CLIQUE *clique)
SCIP_RETCODE SCIPvboundsDel(SCIP_VBOUNDS **vbounds, BMS_BLKMEM *blkmem, SCIP_VAR *vbdvar, SCIP_Bool negativecoef)
SCIP_RETCODE SCIPcliquetableAdd(SCIP_CLIQUETABLE *cliquetable, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool isequation, SCIP_Bool *infeasible, int *nbdchgs)
int * SCIPimplicsGetIds(SCIP_IMPLICS *implics, SCIP_Bool varfixing)
SCIP_RETCODE SCIPimplicsAdd(SCIP_IMPLICS **implics, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool isshortcut, SCIP_Bool *conflict, SCIP_Bool *added)
SCIP_RETCODE SCIPvboundsAdd(SCIP_VBOUNDS **vbounds, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_BOUNDTYPE vboundtype, SCIP_VAR *var, SCIP_Real coef, SCIP_Real constant, SCIP_Bool *added)
void SCIPcliquelistFree(SCIP_CLIQUELIST **cliquelist, BMS_BLKMEM *blkmem)
int SCIPimplicsGetNImpls(SCIP_IMPLICS *implics, SCIP_Bool varfixing)
SCIP_RETCODE SCIPcliqueAddVar(SCIP_CLIQUE *clique, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_VAR *var, SCIP_Bool value, SCIP_Bool *doubleentry, SCIP_Bool *oppositeentry)
SCIP_BOUNDTYPE * SCIPimplicsGetTypes(SCIP_IMPLICS *implics, SCIP_Bool varfixing)
int SCIPcliquelistGetNCliques(SCIP_CLIQUELIST *cliquelist, SCIP_Bool value)
SCIP_RETCODE SCIPcliquelistDel(SCIP_CLIQUELIST **cliquelist, BMS_BLKMEM *blkmem, SCIP_Bool value, SCIP_CLIQUE *clique)
SCIP_Bool SCIPcliqueIsCleanedUp(SCIP_CLIQUE *clique)
void SCIPimplicsGetVarImplicPoss(SCIP_IMPLICS *implics, SCIP_Bool varfixing, SCIP_VAR *implvar, int *lowerimplicpos, int *upperimplicpos)
SCIP_RETCODE SCIPimplicsDel(SCIP_IMPLICS **implics, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype)
SCIP_Real * SCIPvboundsGetConstants(SCIP_VBOUNDS *vbounds)
int SCIPvboundsGetNVbds(SCIP_VBOUNDS *vbounds)
SCIP_Bool SCIPimplicsContainsImpl(SCIP_IMPLICS *implics, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype)
void SCIPimplicsFree(SCIP_IMPLICS **implics, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPcliquelistAdd(SCIP_CLIQUELIST **cliquelist, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Bool value, SCIP_CLIQUE *clique)
methods for implications, variable bounds, and cliques
SCIP_Bool SCIPlpIsSolBasic(SCIP_LP *lp)
SCIP_RETCODE SCIPcolChgUb(SCIP_COL *col, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newub)
SCIP_RETCODE SCIPcolFree(SCIP_COL **col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPcolChgLb(SCIP_COL *col, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newlb)
void SCIPlpDecNLoosevars(SCIP_LP *lp)
SCIP_RETCODE SCIProwAddConstant(SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_Real addval)
SCIP_RETCODE SCIPcolChgObj(SCIP_COL *col, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newobj)
SCIP_RETCODE SCIProwIncCoef(SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_COL *col, SCIP_Real incval)
SCIP_Bool SCIPlpDiving(SCIP_LP *lp)
SCIP_Real SCIPcolGetRedcost(SCIP_COL *col, SCIP_STAT *stat, SCIP_LP *lp)
SCIP_RETCODE SCIPcolCreate(SCIP_COL **col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, int len, SCIP_ROW **rows, SCIP_Real *vals, SCIP_Bool removable)
SCIP_RETCODE SCIPlpUpdateVarLoose(SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var)
static const SCIP_Real scalars[]
SCIP_RETCODE SCIPlpUpdateVarColumn(SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var)
internal methods for LP management
#define BMSreallocBlockMemorySize(mem, ptr, oldsize, newsize)
#define BMSduplicateBlockMemoryArray(mem, ptr, source, num)
#define BMSfreeBlockMemory(mem, ptr)
#define BMSallocBlockMemory(mem, ptr)
#define BMSfreeBlockMemoryArrayNull(mem, ptr, num)
#define BMSfreeBlockMemorySize(mem, ptr, size)
#define BMScopyMemoryArray(ptr, source, num)
#define BMSfreeBlockMemoryArray(mem, ptr, num)
#define BMSreallocBlockMemoryArray(mem, ptr, oldnum, newnum)
#define BMSallocBlockMemorySize(mem, ptr, size)
struct BMS_BlkMem BMS_BLKMEM
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...)
SCIP_RETCODE SCIPprimalUpdateObjoffset(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
internal methods for collecting primal CIP solutions and primal informations
void SCIPprobUpdateNObjVars(SCIP_PROB *prob, SCIP_SET *set, SCIP_Real oldobj, SCIP_Real newobj)
int SCIPprobGetNContVars(SCIP_PROB *prob)
SCIP_RETCODE SCIPprobAddVar(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var)
SCIP_RETCODE SCIPprobVarChangedStatus(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var)
const char * SCIPprobGetName(SCIP_PROB *prob)
void SCIPprobAddObjoffset(SCIP_PROB *prob, SCIP_Real addval)
int SCIPprobGetNVars(SCIP_PROB *prob)
SCIP_VAR ** SCIPprobGetVars(SCIP_PROB *prob)
SCIP_Bool SCIPprobIsTransformed(SCIP_PROB *prob)
internal methods for storing and manipulating the main problem
public methods for managing constraints
public methods for branching and inference history structure
public methods for implications, variable bounds, and cliques
public methods for LP management
public methods for message output
public data structures and miscellaneous methods
methods for sorting joint arrays of various types
public methods for propagators
public methods for problem variables
void SCIPrelaxationSolObjAdd(SCIP_RELAXATION *relaxation, SCIP_Real val)
internal methods for relaxators
SCIP_Bool SCIPsetIsDualfeasZero(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetFloor(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasPositive(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetFeasCeil(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasNegative(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetFeastol(SCIP_SET *set)
SCIP_Real SCIPsetCeil(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsPositive(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetFeasFloor(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsDualfeasNegative(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetEpsilon(SCIP_SET *set)
SCIP_Bool SCIPsetIsEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasZero(SCIP_SET *set, SCIP_Real val)
SCIP_STAGE SCIPsetGetStage(SCIP_SET *set)
SCIP_Bool SCIPsetIsFeasLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetInfinity(SCIP_SET *set)
SCIP_Bool SCIPsetIsLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsInfinity(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsDualfeasPositive(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsIntegral(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetGetHugeValue(SCIP_SET *set)
SCIP_Real SCIPsetRound(SCIP_SET *set, SCIP_Real val)
int SCIPsetCalcMemGrowSize(SCIP_SET *set, int num)
SCIP_Bool SCIPsetIsFeasIntegral(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsNegative(SCIP_SET *set, SCIP_Real val)
internal methods for global SCIP settings
#define SCIPsetFreeBufferArray(set, ptr)
#define SCIPsetFreeCleanBufferArray(set, ptr)
#define SCIPsetAllocBufferArray(set, ptr, num)
#define SCIPsetAllocCleanBufferArray(set, ptr, num)
#define SCIPsetDuplicateBufferArray(set, ptr, source, num)
#define SCIPsetReallocBufferArray(set, ptr, num)
SCIP_Real SCIPsolGetVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var)
internal methods for storing primal CIP solutions
SCIP_RETCODE SCIPstatUpdateVarRootLPBestEstimate(SCIP_STAT *stat, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldrootpscostscore)
internal methods for problem statistics
#define SCIPstatIncrement(stat, set, field)
SCIP_INFERENCEDATA inferencedata
unsigned int boundchgtype
unsigned int inferboundtype
union SCIP_BoundChg::@21 data
SCIP_INFERENCEDATA inferencedata
SCIP_BRANCHINGDATA branchingdata
unsigned int inferboundtype
unsigned int boundchgtype
SCIP_BOUNDCHG * boundchgs
SCIP_BOUNDCHG * boundchgs
SCIP_HISTORY * glbhistory
SCIP_BRANCHDIR lastbranchdir
SCIP_Bool collectvarhistory
SCIP_HISTORY * glbhistorycrun
SCIP_Real lastbranchvalue
SCIP_EVENTFILTER * eventfilter
SCIP_BDCHGINFO * lbchginfos
int nlocksdown[NLOCKTYPES]
SCIP_HISTORY * historycrun
unsigned int relaxationonly
unsigned int donotmultaggr
SCIP_Real conflictrelaxedub
SCIP_BDCHGINFO * ubchginfos
SCIP_Real bestrootredcost
SCIP_Real conflictrelaxedlb
SCIP_CLIQUELIST * cliquelist
unsigned int branchdirection
unsigned int delglobalstructs
SCIP_Longint closestvblpcount
SCIP_Real bestrootlpobjval
SCIP_VALUEHISTORY * valuehistory
datastructures for managing events
data structures for LP management
datastructures for storing and manipulating the main problem
SCIP main data structure.
datastructures for global SCIP settings
datastructures for problem statistics
datastructures for problem variables
SCIP_NODE * SCIPtreeGetRootNode(SCIP_TREE *tree)
SCIP_RETCODE SCIPnodeAddBoundchg(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype, SCIP_Bool probingchange)
internal methods for branch and bound tree
#define SCIP_EVENTTYPE_GHOLEADDED
#define SCIP_EVENTTYPE_GUBCHANGED
struct SCIP_EventData SCIP_EVENTDATA
#define SCIP_EVENTTYPE_FORMAT
#define SCIP_EVENTTYPE_GLBCHANGED
#define SCIP_EVENTTYPE_VARCHANGED
#define SCIP_EVENTTYPE_LBCHANGED
#define SCIP_EVENTTYPE_UBCHANGED
#define SCIP_EVENTTYPE_LHOLEADDED
@ SCIP_BRANCHDIR_DOWNWARDS
enum SCIP_BranchDir SCIP_BRANCHDIR
enum SCIP_BoundType SCIP_BOUNDTYPE
enum SCIP_BaseStat SCIP_BASESTAT
@ SCIP_CONFIDENCELEVEL_MAX
@ SCIP_CONFIDENCELEVEL_MEDIUM
@ SCIP_CONFIDENCELEVEL_HIGH
@ SCIP_CONFIDENCELEVEL_MIN
@ SCIP_CONFIDENCELEVEL_LOW
enum SCIP_Confidencelevel SCIP_CONFIDENCELEVEL
enum SCIP_Objsense SCIP_OBJSENSE
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_STAGE_TRANSFORMING
struct SCIP_VarData SCIP_VARDATA
enum SCIP_BoundchgType SCIP_BOUNDCHGTYPE
#define SCIP_DECL_VARDELORIG(x)
@ SCIP_DOMCHGTYPE_DYNAMIC
#define SCIP_DECL_VARTRANS(x)
@ SCIP_VARTYPE_CONTINUOUS
@ SCIP_BOUNDCHGTYPE_PROPINFER
@ SCIP_BOUNDCHGTYPE_BRANCHING
@ SCIP_BOUNDCHGTYPE_CONSINFER
@ SCIP_VARSTATUS_ORIGINAL
@ SCIP_VARSTATUS_MULTAGGR
@ SCIP_VARSTATUS_AGGREGATED
#define SCIP_DECL_VARCOPY(x)
#define SCIP_DECL_VARDELTRANS(x)
enum SCIP_LockType SCIP_LOCKTYPE
enum SCIP_Vartype SCIP_VARTYPE
enum SCIP_Varstatus SCIP_VARSTATUS
SCIP_DOMCHGBOUND domchgbound
SCIP_DOMCHGBOTH domchgboth
SCIP_RETCODE SCIPvarRemove(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_CLIQUETABLE *cliquetable, SCIP_SET *set, SCIP_Bool final)
static SCIP_RETCODE varParse(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, const char *str, char *name, SCIP_Real *lb, SCIP_Real *ub, SCIP_Real *obj, SCIP_VARTYPE *vartype, SCIP_Real *lazylb, SCIP_Real *lazyub, SCIP_Bool local, char **endptr, SCIP_Bool *success)
SCIP_RETCODE SCIPvarAddObj(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_Real addobj)
SCIP_Real SCIPvarGetObjLP(SCIP_VAR *var)
SCIP_Real SCIPvarGetPseudocost(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real solvaldelta)
SCIP_RETCODE SCIPvarsGetActiveVars(SCIP_SET *set, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
static SCIP_RETCODE tryAggregateIntVars(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
SCIP_RETCODE SCIPvarIncNBranchings(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, int depth)
static SCIP_RETCODE varEventGlbChanged(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real oldbound, SCIP_Real newbound)
static SCIP_RETCODE varEnsureUbchginfosSize(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_RETCODE SCIPvarChgLbLazy(SCIP_VAR *var, SCIP_SET *set, SCIP_Real lazylb)
static SCIP_RETCODE domchgEnsureBoundchgsSize(SCIP_DOMCHG *domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_RETCODE SCIPvarCreateTransformed(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
static SCIP_RETCODE varProcessChgUbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound)
SCIP_Real SCIPvarGetPseudocostCount(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarResetBounds(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
void SCIPbdchginfoFree(SCIP_BDCHGINFO **bdchginfo, BMS_BLKMEM *blkmem)
static SCIP_RETCODE domAddHole(SCIP_DOM *dom, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Real left, SCIP_Real right, SCIP_Bool *added)
SCIP_RETCODE SCIPvarGetTransformed(SCIP_VAR *origvar, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **transvar)
SCIP_RETCODE SCIPvarChgObj(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newobj)
static SCIP_RETCODE varProcessChgBranchPriority(SCIP_VAR *var, int branchpriority)
static SCIP_RETCODE parseValue(SCIP_SET *set, const char *str, SCIP_Real *value, char **endptr)
SCIP_Real SCIPvarGetPseudocostVariance(SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
static SCIP_RETCODE boundchgApplyGlobal(SCIP_BOUNDCHG *boundchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff)
SCIP_Real SCIPvarGetImplRedcost(SCIP_VAR *var, SCIP_SET *set, SCIP_Bool varfixing, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp)
static SCIP_RETCODE varCreate(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata)
SCIP_RETCODE SCIPvarSetLastGMIScore(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real gmieff)
SCIP_RETCODE SCIPvarFix(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
static SCIP_RETCODE varAddImplic(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool isshortcut, SCIP_Bool *infeasible, int *nbdchgs, SCIP_Bool *added)
void SCIPvarInitSolve(SCIP_VAR *var)
SCIP_RETCODE SCIPvarIncInferenceSum(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real weight)
static void printBounds(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file, SCIP_Real lb, SCIP_Real ub, const char *name)
SCIP_RETCODE SCIPvarIncVSIDS(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real weight)
static SCIP_RETCODE varProcessChgLbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound)
static SCIP_RETCODE varAddLbchginfo(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Real oldbound, SCIP_Real newbound, int depth, int pos, SCIP_VAR *infervar, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_BOUNDTYPE inferboundtype, SCIP_BOUNDCHGTYPE boundchgtype)
SCIP_RETCODE SCIPdomchgUndo(SCIP_DOMCHG *domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue)
static SCIP_RETCODE varProcessAddHoleLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_Real left, SCIP_Real right, SCIP_Bool *added)
SCIP_Real SCIPvarGetAvgCutoffs(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPboundchgApply(SCIP_BOUNDCHG *boundchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, int depth, int pos, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPdomchgMakeStatic(SCIP_DOMCHG **domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
static void checkImplic(SCIP_SET *set, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool *redundant, SCIP_Bool *infeasible)
static SCIP_VAR * varGetActiveVar(SCIP_VAR *var)
SCIP_RETCODE SCIPvarUpdatePseudocost(SCIP_VAR *var, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
SCIP_RETCODE SCIPvarTransform(SCIP_VAR *origvar, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_OBJSENSE objsense, SCIP_VAR **transvar)
SCIP_RETCODE SCIPvarAddHoleOriginal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Real left, SCIP_Real right)
SCIP_RETCODE SCIPvarAddCliqueToList(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Bool value, SCIP_CLIQUE *clique)
static SCIP_RETCODE varEventObjChanged(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_Real oldobj, SCIP_Real newobj)
static SCIP_RETCODE varFree(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPvarAddHoleGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_Real left, SCIP_Real right, SCIP_Bool *added)
SCIP_Real SCIPvarGetAvgInferencesCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
static SCIP_RETCODE varEventImplAdded(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue)
SCIP_RETCODE SCIPvarRelease(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
void SCIPvarGetClosestVub(SCIP_VAR *var, SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real *closestvub, int *closestvubidx)
SCIP_RETCODE SCIPvarIncNActiveConflicts(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real length)
void SCIPvarAdjustLb(SCIP_VAR *var, SCIP_SET *set, SCIP_Real *lb)
SCIP_RETCODE SCIPvarDropEvent(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
SCIP_RETCODE SCIPvarChgLbGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real newbound)
SCIP_RETCODE SCIPvarSetNLPSol(SCIP_VAR *var, SCIP_SET *set, SCIP_Real solval)
SCIP_RETCODE SCIPvarCopy(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP *sourcescip, SCIP_VAR *sourcevar, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool global)
SCIP_Real SCIPvarCalcPscostConfidenceBound(SCIP_VAR *var, SCIP_SET *set, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
static SCIP_BDCHGIDX presolvebdchgidx
static SCIP_RETCODE varEventLbChanged(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real oldbound, SCIP_Real newbound)
SCIP_Bool SCIPvarIsPscostRelerrorReliable(SCIP_VAR *var, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
SCIP_RETCODE SCIPvarChgLbOriginal(SCIP_VAR *var, SCIP_SET *set, SCIP_Real newbound)
SCIP_RETCODE SCIPvarAddToRow(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *prob, SCIP_LP *lp, SCIP_ROW *row, SCIP_Real val)
SCIP_Real SCIPvarGetLbLP(SCIP_VAR *var, SCIP_SET *set)
void SCIPvarAdjustBd(SCIP_VAR *var, SCIP_SET *set, SCIP_BOUNDTYPE boundtype, SCIP_Real *bd)
static SCIP_RETCODE varEventUbChanged(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real oldbound, SCIP_Real newbound)
SCIP_RETCODE SCIPvarChgObjDive(SCIP_VAR *var, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newobj)
SCIP_RETCODE SCIPdomchgFree(SCIP_DOMCHG **domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_Real SCIPvarGetRelaxSolTransVar(SCIP_VAR *var)
SCIP_RETCODE SCIPvarPrint(SCIP_VAR *var, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
SCIP_Real SCIPvarGetAvgGMIScore(SCIP_VAR *var, SCIP_STAT *stat)
SCIP_Real SCIPvarGetVSIDS(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
static SCIP_RETCODE varEventVarFixed(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, int fixeventtype)
SCIP_RETCODE SCIPvarIncCutoffSum(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real weight)
SCIP_Real SCIPvarGetMultaggrLbLocal(SCIP_VAR *var, SCIP_SET *set)
static SCIP_RETCODE varUpdateAggregationBounds(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *aggvar, SCIP_Real scalar, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *fixed)
SCIP_Bool SCIPvarSignificantPscostDifference(SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *varx, SCIP_Real fracx, SCIP_VAR *vary, SCIP_Real fracy, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel, SCIP_Bool onesided)
void SCIPvarCapture(SCIP_VAR *var)
static SCIP_RETCODE varEventGubChanged(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real oldbound, SCIP_Real newbound)
SCIP_RETCODE SCIPvarChgBranchDirection(SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
SCIP_Real SCIPvarGetPseudocostCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real solvaldelta)
static SCIP_Real adjustedLb(SCIP_SET *set, SCIP_VARTYPE vartype, SCIP_Real lb)
SCIP_RETCODE SCIPdomchgAddHolechg(SCIP_DOMCHG **domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_HOLELIST **ptr, SCIP_HOLELIST *newlist, SCIP_HOLELIST *oldlist)
void SCIPvarStoreRootSol(SCIP_VAR *var, SCIP_Bool roothaslp)
static SCIP_RETCODE domchgEnsureHolechgsSize(SCIP_DOMCHG *domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
static SCIP_RETCODE varEnsureLbchginfosSize(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_Bool SCIPvarDoNotAggr(SCIP_VAR *var)
SCIP_RETCODE SCIPvarChgType(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_VARTYPE vartype)
SCIP_RETCODE SCIPvarFlattenAggregationGraph(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue)
SCIP_Longint SCIPvarGetNActiveConflicts(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
void SCIPvarUpdateBestRootSol(SCIP_VAR *var, SCIP_SET *set, SCIP_Real rootsol, SCIP_Real rootredcost, SCIP_Real rootlpobjval)
SCIP_RETCODE SCIPvarCreateOriginal(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
SCIP_Real SCIPvarGetVSIDS_rec(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarChgBdLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype)
SCIP_RETCODE SCIPvarFixBinary(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool value, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_RETCODE SCIPvarScaleVSIDS(SCIP_VAR *var, SCIP_Real scalar)
static SCIP_RETCODE findValuehistoryEntry(SCIP_VAR *var, SCIP_Real value, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_HISTORY **history)
SCIP_Real SCIPvarGetAvgConflictlength(SCIP_VAR *var, SCIP_BRANCHDIR dir)
static SCIP_RETCODE varProcessChgUbGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real newbound)
SCIP_Real SCIPvarGetPseudocostCountCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarChgUbGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real newbound)
static SCIP_RETCODE varEnsureParentvarsSize(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_RETCODE SCIPvarGetActiveRepresentatives(SCIP_SET *set, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples)
SCIP_RETCODE SCIPvarParseTransformed(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success)
SCIP_Real SCIPvarGetUbLP(SCIP_VAR *var, SCIP_SET *set)
SCIP_RETCODE SCIPvarColumn(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp)
SCIP_RETCODE SCIPvarChgUbOriginal(SCIP_VAR *var, SCIP_SET *set, SCIP_Real newbound)
SCIP_RETCODE SCIPvarChgUbDive(SCIP_VAR *var, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newbound)
static void domMerge(SCIP_DOM *dom, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Real *newlb, SCIP_Real *newub)
SCIP_Real SCIPvarGetAvgInferences(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
int SCIPvarGetConflictingBdchgDepth(SCIP_VAR *var, SCIP_SET *set, SCIP_BOUNDTYPE boundtype, SCIP_Real bound)
static SCIP_RETCODE varEventVarUnlocked(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue)
SCIP_Real SCIPvarGetMultaggrUbGlobal(SCIP_VAR *var, SCIP_SET *set)
void SCIPvarGetClosestVlb(SCIP_VAR *var, SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real *closestvlb, int *closestvlbidx)
SCIP_RETCODE SCIPvarChgUbLazy(SCIP_VAR *var, SCIP_SET *set, SCIP_Real lazyub)
static SCIP_RETCODE varAddVbound(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_BOUNDTYPE vbtype, SCIP_VAR *vbvar, SCIP_Real vbcoef, SCIP_Real vbconstant)
SCIP_Bool SCIPvarPscostThresholdProbabilityTest(SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
SCIP_RETCODE SCIPdomchgApplyGlobal(SCIP_DOMCHG *domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPvarTryAggregateVars(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
SCIP_RETCODE SCIPboundchgUndo(SCIP_BOUNDCHG *boundchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue)
void SCIPvarMarkDeleted(SCIP_VAR *var)
static SCIP_RETCODE varSetName(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_STAT *stat, const char *name)
void SCIPvarMergeHistories(SCIP_VAR *targetvar, SCIP_VAR *othervar, SCIP_STAT *stat)
static SCIP_RETCODE varEventGholeAdded(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_Real left, SCIP_Real right)
static void printHolelist(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, SCIP_HOLELIST *holelist, const char *name)
static SCIP_RETCODE varAddUbchginfo(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Real oldbound, SCIP_Real newbound, int depth, int pos, SCIP_VAR *infervar, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_BOUNDTYPE inferboundtype, SCIP_BOUNDCHGTYPE boundchgtype)
SCIP_RETCODE SCIPvarCatchEvent(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
SCIP_RETCODE SCIPvarAddHoleLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_Real left, SCIP_Real right, SCIP_Bool *added)
SCIP_Bool SCIPvarIsMarkedDeleteGlobalStructures(SCIP_VAR *var)
SCIP_RETCODE SCIPdomchgApply(SCIP_DOMCHG *domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, int depth, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPvarDelClique(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool value, SCIP_CLIQUE *clique)
SCIP_RETCODE SCIPvarAggregate(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *aggvar, SCIP_Real scalar, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
SCIP_Real SCIPvarGetRelaxSol(SCIP_VAR *var, SCIP_SET *set)
SCIP_RETCODE SCIPvarDelCliqueFromList(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_Bool value, SCIP_CLIQUE *clique)
int SCIPbdchgidxGetPos(SCIP_BDCHGIDX *bdchgidx)
SCIP_RETCODE SCIPvarChgBdGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype)
static SCIP_Bool useValuehistory(SCIP_VAR *var, SCIP_Real value, SCIP_SET *set)
static SCIP_Real adjustedUb(SCIP_SET *set, SCIP_VARTYPE vartype, SCIP_Real ub)
SCIP_RETCODE SCIPvarAddImplic(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool transitive, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_RETCODE SCIPvarsAddClique(SCIP_VAR **vars, SCIP_Bool *values, int nvars, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CLIQUE *clique)
SCIP_RETCODE SCIPvarMarkDoNotAggr(SCIP_VAR *var)
static SCIP_RETCODE varProcessChgBranchFactor(SCIP_VAR *var, SCIP_SET *set, SCIP_Real branchfactor)
SCIP_RETCODE SCIPdomchgAddBoundchg(SCIP_DOMCHG **domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_VAR *var, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype, SCIP_BOUNDCHGTYPE boundchgtype, SCIP_Real lpsolval, SCIP_VAR *infervar, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_BOUNDTYPE inferboundtype)
SCIP_RETCODE SCIPvarChgLbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound)
SCIP_RETCODE SCIPvarLoose(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *prob, SCIP_LP *lp)
static SCIP_RETCODE varFreeParents(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
static SCIP_BDCHGIDX initbdchgidx
SCIP_RETCODE SCIPvarChgBranchPriority(SCIP_VAR *var, int branchpriority)
static SCIP_RETCODE domchgCreate(SCIP_DOMCHG **domchg, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPvarMarkDoNotMultaggr(SCIP_VAR *var)
static SCIP_RETCODE holelistCreate(SCIP_HOLELIST **holelist, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_Real left, SCIP_Real right)
SCIP_RETCODE SCIPvarAddLocks(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LOCKTYPE locktype, int addnlocksdown, int addnlocksup)
SCIP_RETCODE SCIPvarNegate(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **negvar)
SCIP_Real SCIPvarGetMultaggrUbLocal(SCIP_VAR *var, SCIP_SET *set)
SCIP_RETCODE SCIPbdchginfoCreate(SCIP_BDCHGINFO **bdchginfo, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_Real oldbound, SCIP_Real newbound)
static SCIP_RETCODE varAddTransitiveImplic(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool transitive, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_Real SCIPvarGetMinPseudocostScore(SCIP_VAR *var, SCIP_STAT *stat, SCIP_SET *set, SCIP_Real solval)
SCIP_RETCODE SCIPvarGetProbvarSum(SCIP_VAR **var, SCIP_SET *set, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_RETCODE SCIPvarIncGMIeffSum(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real gmieff)
static void holelistFree(SCIP_HOLELIST **holelist, BMS_BLKMEM *blkmem)
static SCIP_RETCODE varProcessChgLbGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real newbound)
static SCIP_RETCODE applyImplic(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_Real SCIPvarGetLastGMIScore(SCIP_VAR *var, SCIP_STAT *stat)
void SCIPvarAdjustUb(SCIP_VAR *var, SCIP_SET *set, SCIP_Real *ub)
SCIP_Real SCIPbdchginfoGetRelaxedBound(SCIP_BDCHGINFO *bdchginfo)
static SCIP_Real getImplVarRedcost(SCIP_VAR *var, SCIP_SET *set, SCIP_Bool varfixing, SCIP_STAT *stat, SCIP_LP *lp)
SCIP_RETCODE SCIPvarChgLbDive(SCIP_VAR *var, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newbound)
SCIP_RETCODE SCIPvarMultiaggregate(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, int naggvars, SCIP_VAR **aggvars, SCIP_Real *scalars, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
static SCIP_Real SCIPvarGetPseudoSol_rec(SCIP_VAR *var)
SCIP_Real SCIPvarGetAvgConflictlengthCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarChgUbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound)
static SCIP_RETCODE domchgMakeDynamic(SCIP_DOMCHG **domchg, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPvarAddVlb(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *vlbvar, SCIP_Real vlbcoef, SCIP_Real vlbconstant, SCIP_Bool transitive, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_RETCODE SCIPvarParseOriginal(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success)
static SCIP_RETCODE parseBounds(SCIP_SET *set, const char *str, char *type, SCIP_Real *lb, SCIP_Real *ub, char **endptr)
SCIP_Real SCIPvarGetVSIDSCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
static void varIncRootboundchgs(SCIP_VAR *var, SCIP_SET *set, SCIP_STAT *stat)
void SCIPvarSetNamePointer(SCIP_VAR *var, const char *name)
static SCIP_RETCODE holelistDuplicate(SCIP_HOLELIST **target, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_HOLELIST *source)
SCIP_RETCODE SCIPvarChgName(SCIP_VAR *var, BMS_BLKMEM *blkmem, const char *name)
void SCIPvarSetHistory(SCIP_VAR *var, SCIP_HISTORY *history, SCIP_STAT *stat)
static SCIP_RETCODE varProcessAddHoleGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_Real left, SCIP_Real right, SCIP_Bool *added)
void SCIPvarSetProbindex(SCIP_VAR *var, int probindex)
SCIP_RETCODE SCIPvarAddVub(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool transitive, SCIP_Bool *infeasible, int *nbdchgs)
static SCIP_RETCODE varAddParent(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_VAR *parentvar)
SCIP_Real SCIPvarGetMultaggrLbGlobal(SCIP_VAR *var, SCIP_SET *set)
SCIP_RETCODE SCIPvarSetRelaxSol(SCIP_VAR *var, SCIP_SET *set, SCIP_RELAXATION *relaxation, SCIP_Real solval, SCIP_Bool updateobj)
SCIP_RETCODE SCIPvarChgBranchFactor(SCIP_VAR *var, SCIP_SET *set, SCIP_Real branchfactor)
static SCIP_RETCODE boundchgReleaseData(SCIP_BOUNDCHG *boundchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_Longint SCIPvarGetNActiveConflictsCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarAddClique(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool value, SCIP_CLIQUE *clique, SCIP_Bool *infeasible, int *nbdchgs)
static SCIP_RETCODE boundchgCaptureData(SCIP_BOUNDCHG *boundchg)
static SCIP_RETCODE varProcessChgBranchDirection(SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
SCIP_Real SCIPvarGetAvgCutoffsCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPvarDoNotMultaggr(SCIP_VAR *var)
SCIP_RETCODE SCIPvarRemoveCliquesImplicsVbs(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_CLIQUETABLE *cliquetable, SCIP_SET *set, SCIP_Bool irrelevantvar, SCIP_Bool onlyredundant, SCIP_Bool removefromvar)
static void varSetProbindex(SCIP_VAR *var, int probindex)
static SCIP_RETCODE varAddTransitiveBinaryClosureImplic(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_Bool implvarfixing, SCIP_Bool *infeasible, int *nbdchgs)
internal methods for problem variables
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4