A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://scip.zib.de/doc/html/var_8c_source.php below:

SCIP Doxygen Documentation: var.c Source File

77#define MAXIMPLSCLOSURE 100 79#define MAXABSVBCOEF 1e+5 94#ifdef DEBUGUSES_VARNAME 102void

print_backtrace(

void

)

109

size = backtrace(array, 10);

110

strings = backtrace_symbols(array, size);

111 if

( strings ==

NULL

)

115 for

( i = 1; i < size; ++i )

124 char

* closepar =

NULL

;

125#ifndef DEBUGUSES_NOADDR2LINE 126

openpar = strchr(strings[i],

'('

);

127 if

( openpar !=

NULL

&& openpar[1] ==

'+'

)

128

closepar = 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);

139

printf(

" %s\n"

, strings[i]);

160

assert(holelist !=

NULL

);

161

assert(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

;

181

assert(holelist !=

NULL

);

182

assert(blkmem !=

NULL

);

184 while

( *holelist !=

NULL

)

189

(*holelist)->hole.left, (*holelist)->hole.right, (

void

*)blkmem);

191

next = (*holelist)->

next

;

193

assert(*holelist ==

NULL

);

197

assert(*holelist ==

NULL

);

209

assert(target !=

NULL

);

211 while

( source !=

NULL

)

215

source = source->

next

;

216

target = &(*target)->

next

;

236

assert(dom !=

NULL

);

237

assert(added !=

NULL

);

241 while

( *insertpos !=

NULL

&& (*insertpos)->hole.left < left )

242

insertpos = &(*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"

,

248

left, right, (*insertpos)->hole.left, (*insertpos)->hole.right);

258

(*insertpos)->next = next;

280

assert(dom !=

NULL

);

292 while

( *holelistptr !=

NULL

)

294 if

( (*holelistptr)->next !=

NULL

)

296

assert(

SCIPsetIsLE

(

set

, lastleft, (*holelistptr)->hole.left) );

297

lastleft = (*holelistptr)->hole.left;

300

holelistptr = &(*holelistptr)->

next

;

308

lastrightptr = &dom->

lb

;

309

lastnextptr = 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);

316

assert(

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

);

323

assert(*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

);

336

dom->

ub

= (*holelistptr)->hole.left;

339

*newub = (*holelistptr)->hole.left;

343

assert(*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);

362

dom->

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);

373

nextholelist = (*holelistptr)->

next

;

378

*lastnextptr = nextholelist;

381

*holelistptr = nextholelist;

386

lastrightptr = &(*holelistptr)->

hole

.

right

;

387

lastnextptr = &(*holelistptr)->

next

;

390

holelistptr = &(*holelistptr)->

next

;

399

lastright = dom->

lb

;

402 while

( *holelistptr !=

NULL

)

405

assert(

SCIPsetIsLE

(

set

, lastright, (*holelistptr)->hole.left) );

408

assert(

SCIPsetIsLT

(

set

, (*holelistptr)->hole.left, (*holelistptr)->hole.right) );

409

lastright = (*holelistptr)->hole.right;

412

holelistptr = &(*holelistptr)->

next

;

434

assert(var !=

NULL

);

446

assert(num <= var->lbchginfossize);

460

assert(var !=

NULL

);

472

assert(num <= var->ubchginfossize);

495

assert(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 )

532

assert(infercons !=

NULL

);

570

assert(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 )

607

assert(infercons !=

NULL

);

643

assert(boundchg !=

NULL

);

644

assert(stat !=

NULL

);

647

assert(cutoff !=

NULL

);

655

var = boundchg->

var

;

656

assert(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"

,

805

assert(var == boundchg->

var

);

837

assert(boundchg !=

NULL

);

838

assert(stat !=

NULL

);

844

var = boundchg->

var

;

845

assert(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"

,

926

assert(boundchg !=

NULL

);

927

assert(cutoff !=

NULL

);

974

assert(boundchg !=

NULL

);

977

assert(boundchg->

var

!=

NULL

);

1011

assert(boundchg !=

NULL

);

1031

assert(boundchg->

var

!=

NULL

);

1044

assert(domchg !=

NULL

);

1045

assert(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;

1068

assert(domchg !=

NULL

);

1069

assert(blkmem !=

NULL

);

1071 if

( *domchg !=

NULL

)

1076 for

( i = 0; i < (int)(*domchg)->domchgbound.nboundchgs; ++i )

1082 switch

( (*domchg)->domchgdyn.domchgtype )

1114

assert(domchg !=

NULL

);

1115

assert(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));

1169

assert(domchg !=

NULL

);

1170

assert(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 )

1257

assert(domchg !=

NULL

);

1268

assert(num <= domchg->domchgdyn.boundchgssize);

1282

assert(domchg !=

NULL

);

1293

assert(num <= domchg->domchgdyn.holechgssize);

1313

assert(cutoff !=

NULL

);

1317 SCIPsetDebugMsg

(

set

,

"applying domain changes at %p in depth %d\n"

, (

void

*)domchg, depth);

1319 if

( domchg ==

NULL

)

1326

branchcand, eventqueue, depth, i, cutoff) );

1361 if

( domchg ==

NULL

)

1397

assert(cutoff !=

NULL

);

1401 if

( domchg ==

NULL

)

1404 SCIPsetDebugMsg

(

set

,

"applying domain changes at %p to the global problem\n"

, (

void

*)domchg);

1410

branchcand, eventqueue, cliquetable, cutoff) );

1440

assert(domchg !=

NULL

);

1441

assert(var !=

NULL

);

1449 SCIPsetDebugMsg

(

set

,

"adding %s bound change <%s: %g> of variable <%s> to domain change at %p pointing to %p\n"

,

1451

newbound, var->

name

, (

void

*)domchg, (

void

*)*domchg);

1456 if

( *domchg ==

NULL

)

1470

boundchg = &(*domchg)->domchgdyn.boundchgs[(*domchg)->domchgdyn.nboundchgs];

1471

boundchg->

var

= var;

1472 switch

( boundchgtype )

1478

assert(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 )

1530

assert(domchg !=

NULL

);

1531

assert(ptr !=

NULL

);

1536 if

( *domchg ==

NULL

)

1550

holechg = &(*domchg)->domchgdyn.holechgs[(*domchg)->domchgdyn.nholechgs];

1551

holechg->

ptr

= ptr;

1554

(*domchg)->domchgdyn.nholechgs++;

1622

assert(var !=

NULL

);

1630

onlyredundant ?

"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++ )

1656

implvar = implvars[i];

1657

impltype = impltypes[i];

1658

assert(implvar != var);

1690

varfixing = !varfixing;

1692 while

( varfixing ==

TRUE

);

1694 if

( removefromvar )

1721 for

( i = 0; i < nvbds; i++ )

1726

assert(newnvbds <= i);

1729

assert(implvar !=

NULL

);

1735 if

( onlyredundant )

1743 if

( removefromvar )

1747

vars[newnvbds] = implvar;

1748

coefs[newnvbds] = coef;

1749

constants[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++ )

1820

assert(newnvbds <= i);

1823

assert(implvar !=

NULL

);

1829 if

( onlyredundant )

1837 if

( removefromvar )

1841

vars[newnvbds] = implvar;

1842

coefs[newnvbds] = coefs[i];

1843

constants[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 )

1904

assert(blkmem !=

NULL

);

1905

assert(var !=

NULL

);

1911

assert(stat !=

NULL

);

1950

assert(var !=

NULL

);

1951

assert(blkmem !=

NULL

);

1952

assert(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

;

2093

assert(var !=

NULL

);

2094

assert(blkmem !=

NULL

);

2095

assert(stat !=

NULL

);

2098 SCIP_CALL

(

varCreate

(var, blkmem,

set

, stat, name, lb, ub, obj, vartype, initial, removable,

2099

varcopy, 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

;

2136

assert(var !=

NULL

);

2137

assert(blkmem !=

NULL

);

2140 SCIP_CALL

(

varCreate

(var, blkmem,

set

, stat, name, lb, ub, obj, vartype, initial, removable,

2141

varcopy, vardelorig, vartrans, vardeltrans, vardata) );

2179

assert(blkmem !=

NULL

);

2180

assert(stat !=

NULL

);

2181

assert(sourcescip !=

NULL

);

2182

assert(sourcevar !=

NULL

);

2183

assert(var !=

NULL

);

2185

assert(varmap !=

NULL

);

2186

assert(consmap !=

NULL

);

2211

assert(*var !=

NULL

);

2214

(*var)->donotaggr = sourcevar->

donotaggr

;

2225

varmap, 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 ==

','

) )

2371

assert(lb !=

NULL

);

2372

assert(ub !=

NULL

);

2373

assert(obj !=

NULL

);

2374

assert(vartype !=

NULL

);

2375

assert(lazylb !=

NULL

);

2376

assert(lazyub !=

NULL

);

2377

assert(success !=

NULL

);

2383

assert(*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

;

2407

assert(*endptr != str);

2430 if

( *endptr ==

NULL

)

2435

assert(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);

2522

assert(var !=

NULL

);

2523

assert(blkmem !=

NULL

);

2524

assert(stat !=

NULL

);

2525

assert(endptr !=

NULL

);

2526

assert(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,

2535

varcopy, 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;

2586

assert(var !=

NULL

);

2587

assert(blkmem !=

NULL

);

2588

assert(endptr !=

NULL

);

2589

assert(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,

2598

varcopy, vardelorig, vartrans, vardeltrans, vardata) );

2607

(*var)->lazylb = lazylb;

2608

(*var)->lazyub = lazyub;

2636

assert(num <= var->parentvarssize);

2650

assert(var !=

NULL

);

2651

assert(parentvar !=

NULL

);

2685 for

( i = 0; i < (*var)->nparentvars; ++i )

2687

assert((*var)->parentvars !=

NULL

);

2689

assert(parentvar !=

NULL

);

2705#ifdef SCIP_DISABLED_CODE 2711

assert(v < parentvar->data.multaggr.nvars && parentvar->

data

.

multaggr

.

vars

[v] == *var);

2712 if

( v < parentvar->data.multaggr.nvars-1 )

2723

assert((*var)->negatedvar == parentvar);

2725

(*var)->negatedvar =

NULL

;

2729 SCIPerrorMessage

(

"parent variable is neither ORIGINAL, AGGREGATED nor NEGATED\n"

);

2752

assert(var !=

NULL

);

2753

assert(*var !=

NULL

);

2755

assert((*var)->nuses == 0);

2756

assert((*var)->probindex == -1);

2765

assert((*var)->data.original.transvar ==

NULL

);

2766 holelistFree

(&(*var)->data.original.origdom.holelist, blkmem);

2767

assert((*var)->data.original.origdom.holelist ==

NULL

);

2794 if

( (*var)->vardelorig !=

NULL

)

2801 if

( (*var)->vardeltrans !=

NULL

)

2808 if

( (*var)->eventfilter !=

NULL

)

2812

assert((*var)->eventfilter ==

NULL

);

2817

assert((*var)->glbdom.holelist ==

NULL

);

2818

assert((*var)->locdom.holelist ==

NULL

);

2851

assert(var !=

NULL

);

2852

assert(var->

nuses

>= 0);

2857#ifdef DEBUGUSES_VARNAME 2858 if

( strcmp(var->

name

, DEBUGUSES_VARNAME) == 0

2859

#ifdef DEBUGUSES_PROBNAME

2865

printf(

"Captured variable "

DEBUGUSES_VARNAME

" in SCIP %p, now %d uses; captured at\n"

, (

void

*)var->

scip

, var->

nuses

);

2880

assert(var !=

NULL

);

2881

assert(*var !=

NULL

);

2882

assert((*var)->nuses >= 1);

2883

assert(blkmem !=

NULL

);

2884

assert((*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) ||

2893

strcmp(

SCIPprobGetName

((*var)->scip->origprob), DEBUGUSES_PROBNAME) == 0)

2897

printf(

"Released variable "

DEBUGUSES_VARNAME

" in SCIP %p, now %d uses; released at\n"

, (

void

*)(*var)->scip, (*var)->nuses);

2902 if

( (*var)->nuses == 0 )

2919

assert(name !=

NULL

);

2935

assert(var !=

NULL

);

2982 if

( holelist ==

NULL

)

2992 while

(holelist !=

NULL

)

3018

assert(var !=

NULL

);

3019

assert(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"

);

3155

assert(var !=

NULL

);

3157

assert(var->

scip

==

set

->scip);

3179

assert(var !=

NULL

);

3180

assert((

int

)locktype >= 0 && (

int

)locktype < (

int

)

NLOCKTYPES

);

3181

assert(var->

nlocksup

[locktype] >= 0);

3183

assert(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"

,

3190

addnlocksdown, addnlocksup, var->

name

, var->

nlocksdown

[locktype], var->

nlocksup

[locktype], locktype);

3197

assert(lockvar !=

NULL

);

3209

lockvar->

nlocksdown

[locktype] += addnlocksdown;

3210

lockvar->

nlocksup

[locktype] += addnlocksup;

3212

assert(lockvar->

nlocksdown

[locktype] >= 0);

3213

assert(lockvar->

nlocksup

[locktype] >= 0);

3220

lockvar->

nlocksdown

[locktype] += addnlocksdown;

3221

lockvar->

nlocksup

[locktype] += addnlocksup;

3223

assert(lockvar->

nlocksdown

[locktype] >= 0);

3224

assert(lockvar->

nlocksup

[locktype] >= 0);

3227

&& lockvar->

nlocksup

[locktype] <= 1 )

3238 int

tmp = addnlocksup;

3240

addnlocksup = addnlocksdown;

3241

addnlocksdown = tmp;

3252

lockvar->

nlocksdown

[locktype] += addnlocksdown;

3253

lockvar->

nlocksup

[locktype] += addnlocksup;

3255

assert(lockvar->

nlocksdown

[locktype] >= 0);

3256

assert(lockvar->

nlocksup

[locktype] >= 0);

3275 int

tmp = addnlocksup;

3281

addnlocksup = addnlocksdown;

3282

addnlocksdown = tmp;

3303

assert(var !=

NULL

);

3304

assert((

int

)locktype >= 0 && (

int

)locktype < (

int

)

NLOCKTYPES

);

3361

assert(var !=

NULL

);

3362

assert((

int

)locktype >= 0 && (

int

)locktype < (

int

)

NLOCKTYPES

);

3363

assert(var->

nlocksup

[locktype] >= 0);

3472

assert(origvar !=

NULL

);

3473

assert(origvar->

scip

==

set

->scip);

3479

assert(transvar !=

NULL

);

3496

origvar->vardelorig, origvar->vartrans, origvar->vardeltrans, origvar->varcopy,

NULL

) );

3514

(*transvar)->nlocksdown[i] = origvar->

nlocksdown

[i];

3515

(*transvar)->nlocksup[i] = origvar->

nlocksup

[i];

3516

assert((*transvar)->nlocksdown[i] >= 0);

3517

assert((*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);

3556

assert(origvar !=

NULL

);

3558

assert(origvar->

scip

==

set

->scip);

3588

assert(var !=

NULL

);

3590

assert(var->

scip

==

set

->scip);

3622

assert(var !=

NULL

);

3624

assert(var->

scip

==

set

->scip);

3668

assert(var !=

NULL

);

3669

assert(var->

scip

==

set

->scip);

3670

assert(0 <= fixeventtype && fixeventtype <= 2);

3683 switch

( fixeventtype )

3772

assert(var !=

NULL

);

3773

assert(var->

scip

==

set

->scip);

3776

assert(infeasible !=

NULL

);

3777

assert(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

;

3808

lp, 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,

3891

branchcand, eventfilter, eventqueue, cliquetable, childfixedval, infeasible, fixed) );

3905 SCIP_CALL

(

SCIPvarFix

(var->

negatedvar

, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp,

3906

branchcand, eventfilter, eventqueue, cliquetable, var->

data

.

negate

.

constant

- fixedval, infeasible, fixed) );

3972

assert(nvars !=

NULL

);

3974

assert(constant !=

NULL

);

3975

assert(requiredsize !=

NULL

);

3976

assert(*nvars <= varssize);

3983

assert(vars !=

NULL

);

3994

activeconstant = 0.0;

3995

activeconstantinf =

FALSE

;

3996

activevarssize = (*nvars) * 2;

3998

tmpvarssize = *nvars;

4013 for

( v = ntmpvars - 1; v >= 0; --v )

4016

scalar = tmpscalars[v];

4018

assert(var !=

NULL

);

4024

assert(var !=

NULL

);

4037

tmpscalars[v] = scalar;

4039

noldtmpvars = ntmpvars;

4042 SCIPsortPtrReal

((

void

**)tmpvars, tmpscalars, SCIPvarComp, noldtmpvars);

4044 for

( v = 1; v < noldtmpvars; ++v )

4049

tmpscalars[ntmpvars] += tmpscalars[v];

4056

tmpscalars[ntmpvars] = tmpscalars[v];

4057

tmpvars[ntmpvars] = tmpvars[v];

4063#ifdef SCIP_MORE_DEBUG 4064 for

( v = 1; v < ntmpvars; ++v )

4069 while

( ntmpvars >= 1 )

4073

var = tmpvars[ntmpvars];

4074

scalar = tmpscalars[ntmpvars];

4076

assert(var !=

NULL

);

4079 if

( scalar == 0.0 )

4092 if

( nactivevars >= activevarssize )

4094

activevarssize *= 2;

4097

assert(nactivevars < activevarssize);

4099

activevars[nactivevars] = var;

4100

activescalars[nactivevars] = scalar;

4111 if

( nmultvars + ntmpvars > tmpvarssize )

4113 while

( nmultvars + ntmpvars > tmpvarssize )

4117

assert(nmultvars + ntmpvars <= tmpvarssize);

4120 if

( nmultvars > tmpvarssize2 )

4122 while

( nmultvars > tmpvarssize2 )

4126

assert(nmultvars <= tmpvarssize2);

4131 for

( ; nmultvars >= 0; --nmultvars )

4133

multvar = multvars[nmultvars];

4134

multscalar = multscalars[nmultvars];

4137

assert(multvar !=

NULL

);

4139

assert(multvar !=

NULL

);

4146 if

( !activeconstantinf )

4152

assert(scalar != 0.0);

4153 if

( scalar * multconstant > 0.0 )

4156

activeconstantinf =

TRUE

;

4161

activeconstantinf =

TRUE

;

4165

activeconstant += scalar * multconstant;

4180

tmpscalars[pos] += scalar * multscalar;

4184

tmpvars2[ntmpvars2] = multvar;

4185

tmpscalars2[ntmpvars2] = scalar * multscalar;

4187

assert(ntmpvars2 <= tmpvarssize2);

4191 if

( ntmpvars2 > 0 )

4194 SCIPsortPtrReal

((

void

**)tmpvars2, tmpscalars2, SCIPvarComp, ntmpvars2);

4196 for

( v = 1; v < ntmpvars2; ++v )

4201

tmpscalars2[pos] += tmpscalars2[v];

4208

tmpscalars2[pos] = tmpscalars2[v];

4209

tmpvars2[pos] = tmpvars2[v];

4213

ntmpvars2 = pos + 1;

4214#ifdef SCIP_MORE_DEBUG 4215 for

( v = 1; v < ntmpvars2; ++v )

4219 for

( v = 1; v < ntmpvars; ++v )

4226

pos = ntmpvars + ntmpvars2 - 1;

4227

ntmpvars += ntmpvars2;

4229 while

( v >= 0 && k >= 0 )

4235

tmpvars[pos] = tmpvars[v];

4236

tmpscalars[pos] = tmpscalars[v];

4241

tmpvars[pos] = tmpvars2[k];

4242

tmpscalars[pos] = tmpscalars2[k];

4251

tmpvars[pos] = tmpvars[v];

4252

tmpscalars[pos] = tmpscalars[v];

4259

tmpvars[pos] = tmpvars2[k];

4260

tmpscalars[pos] = tmpscalars2[k];

4265#ifdef SCIP_MORE_DEBUG 4266 for

( v = 1; v < ntmpvars; ++v )

4272 if

( !activeconstantinf )

4280

assert(scalar != 0.0);

4281 if

( scalar * multconstant > 0.0 )

4284

activeconstantinf =

TRUE

;

4289

activeconstantinf =

TRUE

;

4293

activeconstant += scalar * multconstant;

4320 if

( mergemultiples )

4325 SCIPsortPtrReal

((

void

**)activevars, activescalars, SCIPvarComp, nactivevars);

4328

v = nactivevars - 1;

4334 if

( activescalars[v - 1] + activescalars[v] != 0.0 )

4336

activescalars[v - 1] += activescalars[v];

4338

activevars[v] = activevars[nactivevars];

4339

activescalars[v] = activescalars[nactivevars];

4344

activevars[v] = activevars[nactivevars];

4345

activescalars[v] = activescalars[nactivevars];

4348

activevars[v] = activevars[nactivevars];

4349

activescalars[v] = activescalars[nactivevars];

4363 for

( v = 0; v < nactivevars / 2; ++v )

4365

tmpvar = activevars[v];

4366

tmpscalar = activescalars[v];

4367

activevars[v] = activevars[nactivevars - 1 - v];

4368

activescalars[v] = activescalars[nactivevars - 1 - v];

4369

activevars[nactivevars - 1 - v] = tmpvar;

4370

activescalars[nactivevars - 1 - v] = tmpscalar;

4374

*requiredsize = nactivevars;

4376 if

( varssize >= *requiredsize )

4378

assert(vars !=

NULL

);

4380

*nvars = *requiredsize;

4385 if

( activeconstantinf )

4386

(*constant) = activeconstant;

4388

(*constant) += activeconstant;

4399 for

( v = 0; v < *nvars; ++v )

4401

vars[v] = activevars[v];

4402 scalars

[v] = activescalars[v];

4433 int

multrequiredsize;

4436

assert( var !=

NULL

);

4438

assert(var->

scip

==

set

->scip);

4474 if

( multrequiredsize > multvarssize )

4478

multvarssize = multrequiredsize;

4480

assert( multrequiredsize <= multvarssize );

4575

assert(var !=

NULL

);

4576

assert(var->

scip

==

set

->scip);

4577

assert(aggvar !=

NULL

);

4579

assert(infeasible !=

NULL

);

4580

assert(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);

4592

aggvarbdschanged =

FALSE

;

4600

varlb = aggvar->

glbdom

.

lb

* scalar + constant;

4604

varub = aggvar->

glbdom

.

ub

* scalar + constant;

4611

varub = aggvar->

glbdom

.

lb

* scalar + constant;

4615

varlb = aggvar->

glbdom

.

ub

* scalar + constant;

4626

*infeasible =

TRUE

;

4632 SCIP_CALL

(

SCIPvarFix

(var, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,

4633

eventfilter, eventqueue, cliquetable, varlb, infeasible, fixed) );

4634 if

( !(*infeasible) )

4638 SCIP_CALL

(

SCIPvarFix

(aggvar, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,

4639

eventfilter, eventqueue, cliquetable, (varlb-constant)/scalar, infeasible, &aggfixed) );

4640

assert(*fixed == aggfixed);

4665

aggvarlb = (var->

glbdom

.

lb

- constant) / scalar;

4669

aggvarub = (var->

glbdom

.

ub

- constant) / scalar;

4676

aggvarub = (var->

glbdom

.

lb

- constant) / scalar;

4680

aggvarlb = (var->

glbdom

.

ub

- constant) / scalar;

4691

*infeasible =

TRUE

;

4697 SCIP_CALL

(

SCIPvarFix

(aggvar, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,

4698

eventfilter, eventqueue, cliquetable, aggvarlb, infeasible, fixed) );

4699 if

( !(*infeasible) )

4703 SCIP_CALL

(

SCIPvarFix

(var, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,

4704

eventfilter, eventqueue, cliquetable, aggvarlb * scalar + constant, infeasible, &varfixed) );

4705

assert(*fixed == varfixed);

4729 while

( aggvarbdschanged );

4773

assert(var !=

NULL

);

4774

assert(aggvar !=

NULL

);

4775

assert(var->

scip

==

set

->scip);

4780

assert(infeasible !=

NULL

);

4781

assert(aggregated !=

NULL

);

4783

*infeasible =

FALSE

;

4784

*aggregated =

FALSE

;

4792 SCIP_CALL

(

SCIPvarFix

(var, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, branchcand, eventfilter,

4793

eventqueue, cliquetable, constant, infeasible, aggregated) );

4822 if

( var == aggvar )

4828 SCIP_CALL

(

SCIPvarFix

(var, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,

4829

eventfilter, eventqueue, cliquetable, constant/(1.0-scalar), infeasible, aggregated) );

4835 SCIP_CALL

(

varUpdateAggregationBounds

(var, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp,

4836

branchcand, 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,

4920

eventqueue, 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,

4932

eventqueue, 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,

4963

branchcand, 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 5095

assert(blkmem !=

NULL

);

5096

assert(stat !=

NULL

);

5097

assert(transprob !=

NULL

);

5098

assert(origprob !=

NULL

);

5099

assert(tree !=

NULL

);

5100

assert(lp !=

NULL

);

5101

assert(cliquetable !=

NULL

);

5102

assert(branchcand !=

NULL

);

5103

assert(eventqueue !=

NULL

);

5104

assert(varx !=

NULL

);

5105

assert(vary !=

NULL

);

5106

assert(varx != vary);

5107

assert(infeasible !=

NULL

);

5108

assert(aggregated !=

NULL

);

5117

*infeasible =

FALSE

;

5118

*aggregated =

FALSE

;

5133

assert(scalarxd >= 1);

5134

assert(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,

5172

branchcand, eventfilter, eventqueue, vary, (

SCIP_Real

)(-

b

/

a

), (

SCIP_Real

)(c/

a

), infeasible, aggregated) );

5173

assert(*aggregated);

5180 SCIP_CALL

(

SCIPvarAggregate

(vary, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,

5181

branchcand, eventfilter, eventqueue, varx, (

SCIP_Real

)(-

a

/

b

), (

SCIP_Real

)(c/

b

), infeasible, aggregated) );

5182

assert(*aggregated);

5212

currentclass = c %

a

;

5213 if

( currentclass < 0 )

5215

assert(0 <= currentclass && currentclass <

a

);

5217

classstep = (-

b

) %

a

;

5219 if

( classstep < 0 )

5221

assert(0 <= classstep && classstep <

a

);

5223 while

( currentclass != 0 )

5225

assert(0 <= currentclass && currentclass <

a

);

5226

currentclass += classstep;

5227 if

( currentclass >=

a

)

5232

assert(((c -

b

*ysol) %

a

) == 0);

5234

xsol = (c -

b

*ysol)/

a

;

5259 SCIP_CALL

(

SCIPvarAggregate

(varx, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,

5260

branchcand, eventfilter, eventqueue, aggvar, (

SCIP_Real

)(-

b

), (

SCIP_Real

)xsol, infeasible, aggregated) );

5261

assert(*aggregated || *infeasible);

5263 if

( !(*infeasible) )

5265 SCIP_CALL

(

SCIPvarAggregate

(vary, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,

5266

branchcand, eventfilter, eventqueue, aggvar, (

SCIP_Real

)

a

, (

SCIP_Real

)ysol, infeasible, aggregated) );

5267

assert(*aggregated || *infeasible);

5315

assert(blkmem !=

NULL

);

5316

assert(stat !=

NULL

);

5317

assert(transprob !=

NULL

);

5318

assert(origprob !=

NULL

);

5319

assert(tree !=

NULL

);

5320

assert(lp !=

NULL

);

5321

assert(cliquetable !=

NULL

);

5322

assert(branchcand !=

NULL

);

5323

assert(eventqueue !=

NULL

);

5324

assert(varx !=

NULL

);

5325

assert(vary !=

NULL

);

5326

assert(varx != vary);

5327

assert(infeasible !=

NULL

);

5328

assert(aggregated !=

NULL

);

5335

*infeasible =

FALSE

;

5336

*aggregated =

FALSE

;

5406

scalar = -scalary/scalarx;

5407

constant = rhs/scalarx;

5417

*infeasible =

TRUE

;

5427 SCIP_CALL

(

SCIPvarAggregate

(varx, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,

5428

branchcand, eventfilter, eventqueue, vary, scalar, constant, infeasible, aggregated) );

5435 SCIP_CALL

(

tryAggregateIntVars

(

set

, blkmem, stat, transprob, origprob, primal, tree, reopt, lp, cliquetable,

5436

branchcand, eventfilter, eventqueue, varx, vary, scalarx, scalary, rhs, infeasible, aggregated) );

5479 int

tmprequiredsize;

5482

assert(var !=

NULL

);

5483

assert(var->

scip

==

set

->scip);

5486

assert(naggvars == 0 || aggvars !=

NULL

);

5488

assert(infeasible !=

NULL

);

5489

assert(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"

);

5505

reopt, lp, cliquetable, branchcand, eventfilter, eventqueue, naggvars, aggvars,

scalars

, constant, infeasible, aggregated) );

5512

ntmpvars = naggvars;

5513

tmpvarssize = naggvars;

5514

tmpconstant = constant;

5520 if

( tmprequiredsize > tmpvarssize )

5524

tmpvarssize = tmprequiredsize;

5526

assert( tmprequiredsize <= tmpvarssize );

5534 for

( v = ntmpvars - 1; v >= 0; --v )

5536

assert(tmpvars[v] !=

NULL

);

5539 if

( tmpvars[v]->index == var->

index

)

5541

tmpscalar += tmpscalars[v];

5542

tmpvars[v] = tmpvars[ntmpvars - 1];

5543

tmpscalars[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 )

5567

assert(tmpscalars[0] != 0.0);

5568

assert(tmpvars[0] !=

NULL

);

5571 SCIP_CALL

(

SCIPvarFix

(tmpvars[0], blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp,

5572

branchcand, 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"

,

5582

cliquetable, branchcand, eventfilter, eventqueue, tmpvars[0], tmpvars[1], tmpscalars[0],

5583

tmpscalars[1], -tmpconstant, infeasible, aggregated) );

5596

tmpscalar = 1 - tmpscalar;

5597

tmpconstant /= tmpscalar;

5598 for

( v = ntmpvars - 1; v >= 0; --v )

5599

tmpscalars[v] /= tmpscalar;

5603 if

( ntmpvars == 0 )

5606 SCIP_CALL

(

SCIPvarFix

(var, blkmem,

set

, stat, transprob, origprob, primal, tree, reopt, lp, branchcand,

5607

eventfilter, 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"

,

5618

cliquetable, branchcand, eventfilter, eventqueue, var, tmpvars[0], 1.0, -tmpscalars[0], tmpconstant,

5619

infeasible, aggregated) );

5690 for

( v = 0; v < ntmpvars; ++v )

5692

assert(tmpvars[v] !=

NULL

);

5694

branchfactor =

MAX

(tmpvars[v]->branchfactor, branchfactor);

5695

branchpriority =

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,

5772

cliquetable, branchcand, eventfilter, eventqueue, naggvars, aggvars,

scalars

,

5776 for

( v = 0; v < naggvars; ++v )

5786 if

( *infeasible || *aggregated )

5802

assert(var !=

NULL

);

5810

assert(retvar !=

NULL

);

5851

assert(var !=

NULL

);

5854

assert(retvar !=

NULL

);

5884

assert(var !=

NULL

);

5887

assert(retvar !=

NULL

);

5922

assert(var !=

NULL

);

5923

assert(var->

scip

==

set

->scip);

5924

assert(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

;

5989

assert((*negvar)->nuses == 1);

6009

assert(var !=

NULL

);

6010

assert(probindex >= 0 || var->

vlbs

==

NULL

);

6011

assert(probindex >= 0 || var->

vubs

==

NULL

);

6028

assert(var !=

NULL

);

6029

assert(probindex >= 0);

6043

assert(var !=

NULL

);

6044

assert(name !=

NULL

);

6046

var->

name

= (

char

*)name;

6065

assert(var->

scip

==

set

->scip);

6096

assert(var !=

NULL

);

6109

assert(var !=

NULL

);

6112

assert(retvar !=

NULL

);

6124 SCIPerrorMessage

(

"cannot mark a multi-aggregated variable to not be aggregated.\n"

);

6145

assert(var !=

NULL

);

6148

assert(retvar !=

NULL

);

6160 SCIPerrorMessage

(

"cannot mark a multi-aggregated variable to not be multi-aggregated.\n"

);

6188

assert(var !=

NULL

);

6194 SCIPerrorMessage

(

"cannot change type of variable already in the problem\n"

);

6239

assert(var !=

NULL

);

6240

assert(var->

scip

==

set

->scip);

6274

assert(var !=

NULL

);

6276

assert(var->

scip

==

set

->scip);

6302

oldobj = var->

obj

;

6323 SCIPerrorMessage

(

"cannot change objective value of a fixed, aggregated, multi-aggregated, or negated variable\n"

);

6352

assert(var !=

NULL

);

6354

assert(var->

scip

==

set

->scip);

6375

var->

obj

+= addobj;

6383

oldobj = var->

obj

;

6384

var->

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,

6438

eventfilter, eventqueue, -addobj) );

6458

assert(var !=

NULL

);

6460

assert(var->

scip

==

set

->scip);

6461

assert(lp !=

NULL

);

6494 SCIPerrorMessage

(

"cannot change diving objective value of a multi-aggregated variable\n"

);

6520

assert(var !=

NULL

);

6522

assert(var->

scip

==

set

->scip);

6523

assert(lb !=

NULL

);

6537

assert(var !=

NULL

);

6539

assert(var->

scip

==

set

->scip);

6540

assert(ub !=

NULL

);

6572

assert(var !=

NULL

);

6576

assert(var->

scip

==

set

->scip);

6611

assert(parentvar !=

NULL

);

6631

assert(var !=

NULL

);

6635

assert(var->

scip

==

set

->scip);

6670

assert(parentvar !=

NULL

);

6694

assert(var !=

NULL

);

6697

assert(!

SCIPsetIsEQ

(

set

, oldbound, newbound) || (newbound != oldbound && newbound * oldbound <= 0.0));

6699

assert(var->

scip

==

set

->scip);

6710 SCIPsetDebugMsg

(

set

,

"issue GLBCHANGED event for variable <%s>: %g -> %g\n"

, var->

name

, oldbound, newbound);

6732

assert(var !=

NULL

);

6735

assert(!

SCIPsetIsEQ

(

set

, oldbound, newbound) || (newbound != oldbound && newbound * oldbound <= 0.0));

6737

assert(var->

scip

==

set

->scip);

6748 SCIPsetDebugMsg

(

set

,

"issue GUBCHANGED event for variable <%s>: %g -> %g\n"

, var->

name

, oldbound, newbound);

6768

assert(var !=

NULL

);

6772

assert(var->

scip

==

set

->scip);

6780 SCIPsetDebugMsg

(

set

,

"issue GHOLEADDED event for variable <%s>: (%.15g,%.15g)\n"

, var->

name

, left, right);

6797

assert(var !=

NULL

);

6799

assert(var->

scip

==

set

->scip);

6800

assert(stat !=

NULL

);

6848

assert(var !=

NULL

);

6852

assert(blkmem !=

NULL

);

6854

assert(var->

scip

==

set

->scip);

6855

assert(stat !=

NULL

);

6904 SCIPsetDebugMsg

(

set

,

" -> adjust lower bound change <%s>: %g -> %g due to new global lower bound %g\n"

,

6939

assert(parentvar !=

NULL

);

6951 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

6968

parentnewbound = newbound;

6984

parentnewbound = -newbound;

7024

assert(var !=

NULL

);

7028

assert(blkmem !=

NULL

);

7030

assert(var->

scip

==

set

->scip);

7031

assert(stat !=

NULL

);

7079 SCIPsetDebugMsg

(

set

,

" -> adjust upper bound change <%s>: %g -> %g due to new global upper bound %g\n"

,

7114

assert(parentvar !=

NULL

);

7126 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

7142

parentnewbound = newbound;

7157

parentnewbound = -newbound;

7194

assert(var !=

NULL

);

7195

assert(blkmem !=

NULL

);

7197

assert(var->

scip

==

set

->scip);

7237

cliquetable, newbound) );

7281

childnewbound = newbound;

7296

childnewbound = -newbound;

7308 SCIPerrorMessage

(

"cannot change the bounds of a multi-aggregated variable.\n"

);

7342

assert(var !=

NULL

);

7343

assert(blkmem !=

NULL

);

7345

assert(var->

scip

==

set

->scip);

7429

childnewbound = newbound;

7444

childnewbound = -newbound;

7456 SCIPerrorMessage

(

"cannot change the bounds of a multi-aggregated variable.\n"

);

7482

assert(var !=

NULL

);

7487

assert(var->

scip

==

set

->scip);

7505

assert(var !=

NULL

);

7510

assert(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);

7564

assert(var !=

NULL

);

7567

assert(!

SCIPsetIsEQ

(

set

, oldbound, newbound) || newbound == var->

glbdom

.

lb

|| (newbound != oldbound && newbound * oldbound <= 0.0));

7569

assert(var->

scip

==

set

->scip);

7580 SCIPsetDebugMsg

(

set

,

"issue LBCHANGED event for variable <%s>: %g -> %g\n"

, var->

name

, oldbound, newbound);

7602

assert(var !=

NULL

);

7605

assert(!

SCIPsetIsEQ

(

set

, oldbound, newbound) || newbound == var->

glbdom

.

ub

|| (newbound != oldbound && newbound * oldbound <= 0.0));

7607

assert(var->

scip

==

set

->scip);

7618 SCIPsetDebugMsg

(

set

,

"issue UBCHANGED event for variable <%s>: %g -> %g\n"

, var->

name

, oldbound, newbound);

7659

assert(var !=

NULL

);

7661

assert(var->

scip

==

set

->scip);

7718

assert(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

)

7755

parentnewbound = parentvar->

glbdom

.

ub

;

7759

parentnewbound = newbound;

7779 if

( parentnewbound < parentvar->glbdom.lb )

7783

parentnewbound = parentvar->

glbdom

.

lb

;

7787

parentnewbound = -newbound;

7826

assert(var !=

NULL

);

7828

assert(var->

scip

==

set

->scip);

7885

assert(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 )

7921

parentnewbound = parentvar->

glbdom

.

lb

;

7925

parentnewbound = newbound;

7944 if

( parentnewbound > parentvar->

glbdom

.

ub

)

7948

parentnewbound = parentvar->

glbdom

.

ub

;

7952

parentnewbound = -newbound;

7988

assert(var !=

NULL

);

7989

assert(blkmem !=

NULL

);

7991

assert(var->

scip

==

set

->scip);

8014

&& !(newbound != var->

locdom

.

lb

&& newbound * var->

locdom

.

lb

<= 0.0) )

8055

childnewbound = newbound;

8070

childnewbound = -newbound;

8082 SCIPerrorMessage

(

"cannot change the bounds of a multi-aggregated variable.\n"

);

8115

assert(var !=

NULL

);

8116

assert(blkmem !=

NULL

);

8118

assert(var->

scip

==

set

->scip);

8141

&& !(newbound != var->

locdom

.

ub

&& newbound * var->

locdom

.

ub

<= 0.0) )

8181

childnewbound = newbound;

8196

childnewbound = -newbound;

8208 SCIPerrorMessage

(

"cannot change the bounds of a multi-aggregated variable.\n"

);

8243 switch

( boundtype )

8263

assert(var !=

NULL

);

8265

assert(var->

scip

==

set

->scip);

8266

assert(lp !=

NULL

);

8288 SCIPerrorMessage

(

"cannot change variable's bounds in dive for LOOSE variables\n"

);

8305

childnewbound = newbound;

8316

childnewbound = -newbound;

8327 SCIPerrorMessage

(

"cannot change the bounds of a multi-aggregated variable.\n"

);

8353

assert(var !=

NULL

);

8355

assert(var->

scip

==

set

->scip);

8356

assert(lp !=

NULL

);

8378 SCIPerrorMessage

(

"cannot change variable's bounds in dive for LOOSE variables\n"

);

8395

childnewbound = newbound;

8406

childnewbound = -newbound;

8417 SCIPerrorMessage

(

"cannot change the bounds of a multi-aggregated variable.\n"

);

8453

assert(var !=

NULL

);

8455

assert(var->

scip

==

set

->scip);

8519

assert(var !=

NULL

);

8521

assert(var->

scip

==

set

->scip);

8585

assert(var !=

NULL

);

8587

assert(var->

scip

==

set

->scip);

8651

assert(var !=

NULL

);

8653

assert(var->

scip

==

set

->scip);

8710

assert(var !=

NULL

);

8715

assert(var->

scip

==

set

->scip);

8768

assert(var !=

NULL

);

8769

assert(added !=

NULL

);

8770

assert(blkmem !=

NULL

);

8818

assert(parentvar !=

NULL

);

8823

parentnewleft = left;

8824

parentnewright = right;

8831 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

8870

assert(blkmem !=

NULL

);

8873

parentnewleft, parentnewright, &localadded) );

8895

assert(var !=

NULL

);

8897

assert(blkmem !=

NULL

);

8898

assert(added !=

NULL

);

8920

left, right, added) );

8971

childnewleft, childnewright, added) );

8975 SCIPerrorMessage

(

"cannot add a hole of a multi-aggregated variable.\n"

);

8987

childnewleft, childnewright, added) );

9016

assert(var !=

NULL

);

9017

assert(added !=

NULL

);

9018

assert(blkmem !=

NULL

);

9049#ifdef SCIP_DISABLED_CODE 9065

assert(parentvar !=

NULL

);

9070

parentnewleft = left;

9071

parentnewright = right;

9078 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

9117

assert(blkmem !=

NULL

);

9120

parentnewleft, parentnewright, &localadded) );

9142

assert(var !=

NULL

);

9147

assert(var->

scip

==

set

->scip);

9149

assert(blkmem !=

NULL

);

9150

assert(added !=

NULL

);

9170

left, right, added) );

9210

childnewleft, childnewright, added) );

9214 SCIPerrorMessage

(

"cannot add domain hole to a multi-aggregated variable.\n"

);

9244

assert(var !=

NULL

);

9246

assert(var->

scip

==

set

->scip);

9279

assert(var !=

NULL

);

9400

assert(redundant !=

NULL

);

9401

assert(infeasible !=

NULL

);

9441

assert(infeasible !=

NULL

);

9443

*infeasible =

FALSE

;

9452

*infeasible =

TRUE

;

9461

assert(tree !=

NULL

);

9462

assert(transprob !=

NULL

);

9473 if

( nbdchgs !=

NULL

)

9482

*infeasible =

TRUE

;

9491

assert(tree !=

NULL

);

9492

assert(transprob !=

NULL

);

9503 if

( nbdchgs !=

NULL

)

9544

assert(var !=

NULL

);

9549

assert(infeasible !=

NULL

);

9550

assert(added !=

NULL

);

9555

*infeasible =

FALSE

;

9559 checkImplic

(

set

, implvar, impltype, implbound, &redundant, &conflict);

9560

assert(!redundant || !conflict);

9564 if

( var == implvar )

9589 SCIP_CALL

(

applyImplic

(blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,

9590

cliquetable, implvar, impltype, implbound, infeasible, nbdchgs) );

9612

vals[0] = varfixing;

9616 SCIP_CALL

(

SCIPcliquetableAdd

(cliquetable, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, branchcand,

9617

eventqueue, vars, vals, 2,

FALSE

, &conflict, nbdchgs) );

9629

isshortcut, &conflict, added) );

9632

assert(!conflict || !(*added));

9644

assert(tree !=

NULL

);

9645

assert(transprob !=

NULL

);

9670 if

( nbdchgs !=

NULL

)

9708

varfixing ? implbound - ub : ub - implbound, varfixing ? ub : implbound) );

9716

varfixing ? implbound - lb : lb - implbound, varfixing ? lb : implbound) );

9752

*infeasible =

FALSE

;

9769 while

( i >= 0 && !(*infeasible) )

9773

assert(implvars[i] != implvar);

9780 SCIP_CALL

(

varAddImplic

(var, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, cliquetable, branchcand,

9781

eventqueue, varfixing, implvars[i], impltypes[i], implbounds[i],

TRUE

, infeasible, nbdchgs, &added) );

9784

i =

MIN

(i, nimpls);

9823

assert(var !=

NULL

);

9826

assert(implvar !=

NULL

);

9828

assert(infeasible !=

NULL

);

9831 SCIP_CALL

(

varAddImplic

(var, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, cliquetable, branchcand,

9832

eventqueue, varfixing, implvar, impltype, implbound,

FALSE

, infeasible, nbdchgs, &added) );

9834 if

( *infeasible || var == implvar || !transitive || !added )

9848

cliquetable, branchcand, eventqueue, varfixing, implvar, implvarfixing, infeasible, nbdchgs) );

9851 if

( !(*infeasible) )

9854

cliquetable, branchcand, eventqueue, !implvarfixing, var, !varfixing, infeasible, nbdchgs) );

9880 while

( i >= 0 && !(*infeasible) )

9882

assert(vlbvars[i] != implvar);

9907

vbimplbound = (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,

9913

infeasible, nbdchgs, &added) );

9918 SCIP_CALL

(

varAddImplic

(var, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, cliquetable,

9920

infeasible, nbdchgs, &added) );

9923

i =

MIN

(i, nvlbvars);

9950 while

( i >= 0 && !(*infeasible) )

9952

assert(vubvars[i] != implvar);

9977

vbimplbound = (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,

9983

infeasible, nbdchgs, &added) );

9988 SCIP_CALL

(

varAddImplic

(var, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, cliquetable,

9990

infeasible, nbdchgs, &added) );

9993

i =

MIN

(i, nvubvars);

10028

assert(var !=

NULL

);

10030

assert(var->

scip

==

set

->scip);

10032

assert(infeasible !=

NULL

);

10036

*infeasible =

FALSE

;

10037 if

( nbdchgs !=

NULL

)

10045

cliquetable, 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

;

10091

assert(tree !=

NULL

);

10092

assert(transprob !=

NULL

);

10103 if

( nbdchgs !=

NULL

)

10118

*infeasible =

TRUE

;

10130

assert(tree !=

NULL

);

10131

assert(transprob !=

NULL

);

10142 if

( nbdchgs !=

NULL

)

10152

*infeasible =

TRUE

;

10160

assert(tree !=

NULL

);

10161

assert(transprob !=

NULL

);

10172 if

( nbdchgs !=

NULL

)

10186

assert(vlbcoef != 0.0);

10197 if

( vlbcoef >= 0.0 )

10207

*infeasible =

TRUE

;

10219

assert(tree !=

NULL

);

10220

assert(transprob !=

NULL

);

10232 if

( nbdchgs !=

NULL

)

10235

maxvlb = vlbcoef * zub + vlbconstant;

10237

minvlb = vlbcoef * zlb + vlbconstant;

10242

maxvlb = vlbcoef * zub + vlbconstant;

10244

minvlb = vlbcoef * zlb + vlbconstant;

10257

*infeasible =

TRUE

;

10269

assert(tree !=

NULL

);

10270

assert(transprob !=

NULL

);

10282 if

( nbdchgs !=

NULL

)

10285

maxvlb = vlbcoef * zlb + vlbconstant;

10287

minvlb = vlbcoef * zub + vlbconstant;

10292

maxvlb = vlbcoef * zlb + vlbconstant;

10294

minvlb = vlbcoef * zub + vlbconstant;

10297 if

( maxvlb < minvlb )

10307

*infeasible =

TRUE

;

10319

assert(tree !=

NULL

);

10320

assert(transprob !=

NULL

);

10332 if

( nbdchgs !=

NULL

)

10346 if

( vlbcoef >= 0.0 )

10348

vlbcoef = maxvlb - minvlb;

10349

vlbconstant = minvlb;

10353

vlbcoef = minvlb - maxvlb;

10354

vlbconstant = maxvlb;

10374

cliquetable, branchcand, eventqueue, (vlbcoef >= 0.0), var,

SCIP_BOUNDTYPE_LOWER

, maxvlb, transitive,

10375

infeasible, nbdchgs) );

10384

implbound = -vlbconstant/vlbcoef;

10389 if

( vlbcoef >= 0 )

10396

implbound, transitive, infeasible, nbdchgs) );

10419

*infeasible =

TRUE

;

10451 SCIP_CALL

(

SCIPvarAddVub

(var->

negatedvar

, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, cliquetable,

10452

branchcand, eventqueue, vlbvar, -vlbcoef, var->

data

.

negate

.

constant

- vlbconstant, transitive, infeasible,

10489

assert(var !=

NULL

);

10491

assert(var->

scip

==

set

->scip);

10493

assert(infeasible !=

NULL

);

10497

*infeasible =

FALSE

;

10498 if

( nbdchgs !=

NULL

)

10506

cliquetable, 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

;

10552

assert(tree !=

NULL

);

10553

assert(transprob !=

NULL

);

10564 if

( nbdchgs !=

NULL

)

10579

*infeasible =

TRUE

;

10591

assert(tree !=

NULL

);

10592

assert(transprob !=

NULL

);

10603 if

( nbdchgs !=

NULL

)

10613

*infeasible =

TRUE

;

10621

assert(tree !=

NULL

);

10622

assert(transprob !=

NULL

);

10633 if

( nbdchgs !=

NULL

)

10647

assert(vubcoef != 0.0);

10658 if

( vubcoef >= 0.0 )

10668

*infeasible =

TRUE

;

10680

assert(tree !=

NULL

);

10681

assert(transprob !=

NULL

);

10693 if

( nbdchgs !=

NULL

)

10696

minvub = vubcoef * zlb + vubconstant;

10698

maxvub = vubcoef * zub + vubconstant;

10703

maxvub = vubcoef * zub + vubconstant;

10705

minvub = vubcoef * zlb + vubconstant;

10718

*infeasible =

TRUE

;

10730

assert(tree !=

NULL

);

10731

assert(transprob !=

NULL

);

10743 if

( nbdchgs !=

NULL

)

10746

minvub = vubcoef * zub + vubconstant;

10748

maxvub = vubcoef * zlb + vubconstant;

10753

minvub = vubcoef * zub + vubconstant;

10755

maxvub = vubcoef * zlb + vubconstant;

10758 if

( minvub > maxvub )

10768

*infeasible =

TRUE

;

10780

assert(tree !=

NULL

);

10781

assert(transprob !=

NULL

);

10793 if

( nbdchgs !=

NULL

)

10807 if

( vubcoef >= 0.0 )

10809

vubcoef = maxvub - minvub;

10810

vubconstant = minvub;

10814

vubcoef = minvub - maxvub;

10815

vubconstant = maxvub;

10835

cliquetable, branchcand, eventqueue, (vubcoef < 0.0), var,

SCIP_BOUNDTYPE_UPPER

, minvub, transitive,

10836

infeasible, 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,

10902

branchcand, eventqueue, vubvar, -vubcoef, var->

data

.

negate

.

constant

- vubconstant, transitive, infeasible,

10942

assert(var !=

NULL

);

10944

assert(var->

scip

==

set

->scip);

10946

assert(infeasible !=

NULL

);

10948

*infeasible =

FALSE

;

10949 if

( nbdchgs !=

NULL

)

10957

cliquetable, branchcand, eventqueue, varfixing, implvar, impltype, implbound, transitive, infeasible,

10971 SCIP_CALL

(

applyImplic

(blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,

10972

cliquetable, implvar, impltype, implbound, infeasible, nbdchgs) );

10981 SCIP_CALL

(

varAddTransitiveImplic

(var, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, cliquetable,

10982

branchcand, eventqueue, varfixing, implvar, impltype, implbound, transitive, infeasible, nbdchgs) );

10991 SCIP_CALL

(

applyImplic

(blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, branchcand, eventqueue,

10992

cliquetable, implvar, impltype, implbound, infeasible, nbdchgs) );

11015

cliquetable, branchcand, eventqueue, varfixing, implvar, impltype, implbound, transitive, infeasible,

11021

cliquetable, branchcand, eventqueue, !varfixing, implvar, impltype, implbound, transitive, infeasible,

11045

cliquetable, branchcand, eventqueue, !varfixing, implvar, impltype, implbound, transitive, infeasible, nbdchgs) );

11053 SCIP_CALL

(

SCIPvarAddImplic

(implvar, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, cliquetable,

11056

infeasible, nbdchgs) );

11071

cliquetable, branchcand, eventqueue, implvar, (impltype ==

SCIP_BOUNDTYPE_UPPER

) ? 1.0 : -1.0,

11080

cliquetable, 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,

11091

branchcand, 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,

11100

branchcand, eventqueue, var->

negatedvar

, (varfixing) ? -1.0 : 1.0, (varfixing) ? 1.0 : 0.0,

11101

transitive, infeasible, nbdchgs) );

11126

assert(var !=

NULL

);

11127

assert(implvar !=

NULL

);

11166

assert(lb !=

NULL

);

11167

assert(ub !=

NULL

);

11178 if

( bounds ==

NULL

)

11181 if

( lowerpos >= 0 )

11182

*lb = bounds[lowerpos];

11184 if

( upperpos >= 0 )

11185

*ub = bounds[upperpos];

11208

assert(var !=

NULL

);

11210

assert(var->

scip

==

set

->scip);

11211

assert(infeasible !=

NULL

);

11213

*infeasible =

FALSE

;

11215 if

( value ==

FALSE

)

11218

*infeasible =

TRUE

;

11219 else if

( var->

glbdom

.

ub

> 0.5 )

11226

assert(tree !=

NULL

);

11227

assert(transprob !=

NULL

);

11238 if

( nbdchgs !=

NULL

)

11245

*infeasible =

TRUE

;

11246 else if

( var->

glbdom

.

lb

< 0.5 )

11253

assert(tree !=

NULL

);

11254

assert(transprob !=

NULL

);

11265 if

( nbdchgs !=

NULL

)

11297

assert(var !=

NULL

);

11299

assert(var->

scip

==

set

->scip);

11301

assert(infeasible !=

NULL

);

11303

*infeasible =

FALSE

;

11331 SCIP_CALL

(

SCIPvarFixBinary

(var, blkmem,

set

, stat, transprob, origprob, tree, reopt, lp, branchcand,

11332

eventqueue, 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,

11354

eventqueue, cliquetable, !values[i], infeasible, nbdchgs) );

11375

assert(vars !=

NULL

);

11376

assert(values !=

NULL

);

11379

assert(blkmem !=

NULL

);

11380

assert(clique !=

NULL

);

11382 for

( v = nvars - 1; v >= 0; --v )

11409

assert(var !=

NULL

);

11430

assert(var !=

NULL

);

11448

assert(var !=

NULL

);

11491

assert(var1 !=

NULL

);

11492

assert(var2 !=

NULL

);

11514

assert(var !=

NULL

);

11516

assert(var->

scip

==

set

->scip);

11520

branchfactor =

MAX

(branchfactor,

eps

);

11534

assert(parentvar !=

NULL

);

11546 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

11576

assert(var !=

NULL

);

11578

assert(var->

scip

==

set

->scip);

11579

assert(branchfactor >= 0.0);

11647

assert(var !=

NULL

);

11649 SCIPdebugMessage

(

"process changing branch priority of <%s> from %d to %d\n"

,

11662

assert(parentvar !=

NULL

);

11674 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

11702

assert(var !=

NULL

);

11767

assert(var !=

NULL

);

11769 SCIPdebugMessage

(

"process changing branch direction of <%s> from %u to %d\n"

,

11782

assert(parentvar !=

NULL

);

11794 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

11833

assert(var !=

NULL

);

11917

assert(var1 !=

NULL

);

11918

assert(var2 !=

NULL

);

11927

assert(var1 !=

NULL

);

11928

assert(var2 !=

NULL

);

11935

assert(var1 == var2);

11955

assert(var1 !=

NULL

);

11956

assert(var2 !=

NULL

);

11964

assert(var1 == var2);

11986 else if

( obj1 > obj2 )

12001 if

( key1 == key2 )

12028 int

activevarssize;

12041

assert(nvars !=

NULL

);

12042

assert(vars !=

NULL

|| *nvars == 0);

12043

assert(varssize >= *nvars);

12044

assert(requiredsize !=

NULL

);

12052

activevarssize = *nvars;

12054

tmpvarssize = *nvars;

12061

noldtmpvars = ntmpvars;

12064 SCIPsortPtr

((

void

**)tmpvars, SCIPvarComp, ntmpvars);

12065 for

( v = ntmpvars - 1; v > 0; --v )

12071

tmpvars[v] = tmpvars[ntmpvars];

12075 if

( noldtmpvars > ntmpvars )

12076 SCIPsortPtr

((

void

**)tmpvars, SCIPvarComp, ntmpvars);

12079 while

( ntmpvars >= 1 )

12082

var = tmpvars[ntmpvars];

12083

assert( var !=

NULL

);

12090 SCIPerrorMessage

(

"original variable has no transformed variable attached\n"

);

12111 if

( nactivevars >= activevarssize )

12113

activevarssize *= 2;

12115

assert(nactivevars < activevarssize);

12117

activevars[nactivevars] = var;

12127 if

( nmultvars + ntmpvars > tmpvarssize )

12129 while

( nmultvars + ntmpvars > tmpvarssize )

12132

assert(nmultvars + ntmpvars <= tmpvarssize);

12141

ntmpvars += nmultvars;

12142

noldtmpvars = ntmpvars;

12145 SCIPsortPtr

((

void

**)tmpvars, SCIPvarComp, ntmpvars);

12146 for

( v = ntmpvars - 1; v > 0; --v )

12152

tmpvars[v] = tmpvars[ntmpvars];

12156 if

( noldtmpvars > ntmpvars )

12157 SCIPsortPtr

((

void

**)tmpvars, SCIPvarComp, ntmpvars);

12173 SCIPsortPtr

((

void

**)activevars, SCIPvarComp, nactivevars);

12176

v = nactivevars - 1;

12183

activevars[v] = activevars[nactivevars];

12187

*requiredsize = nactivevars;

12189 if

( varssize >= *requiredsize )

12191

assert(vars !=

NULL

);

12193

*nvars = *requiredsize;

12213

assert(vars !=

NULL

|| nvars == 0);

12215 for

( v = nvars - 1; v >= 0; --v )

12217

assert(vars !=

NULL

);

12218

assert(vars[v] !=

NULL

);

12221

assert(vars[v] !=

NULL

);

12232

assert(var !=

NULL

);

12240

assert(retvar !=

NULL

);

12247 SCIPerrorMessage

(

"original variable has no transformed variable attached\n"

);

12296

assert(vars !=

NULL

);

12297

assert(*vars !=

NULL

|| nvars == 0);

12298

assert(negatedarr !=

NULL

);

12299

assert(*negatedarr !=

NULL

|| nvars == 0);

12301 for

( v = nvars - 1; v >= 0; --v )

12303

var = &((*vars)[v]);

12304

negated = &((*negatedarr)[v]);

12329

assert(var !=

NULL

);

12330

assert(*var !=

NULL

);

12331

assert(negated !=

NULL

);

12335

orignegated = *negated;

12343 if

( (*var)->data.original.transvar ==

NULL

)

12356 if

( (*var)->data.multaggr.nvars == 1 )

12358

assert( (*var)->data.multaggr.vars !=

NULL

);

12359

assert( (*var)->data.multaggr.scalars !=

NULL

);

12361

assert(!

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)) )

12373

assert(

EPSEQ

((*var)->data.multaggr.scalars[0], 1.0, 1e-06));

12382 if

( !

EPSEQ

(

REALABS

((*var)->data.multaggr.scalars[0]), 1.0, 1e-06) )

12392

assert(

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) )

12402

assert(

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) )

12410

assert(

EPSEQ

((*var)->data.multaggr.scalars[0], -1.0, 1e-06) ?

12416

assert(

EPSEQ

((*var)->data.multaggr.scalars[0], -1.0, 1e-06));

12418

constant += (*negated) != orignegated ? -1.0 : 1.0;

12421

*negated = !(*negated);

12431

assert((*var)->data.aggregate.var !=

NULL

);

12432

assert(

EPSEQ

((*var)->data.aggregate.scalar, 1.0, 1e-06) ||

EPSEQ

((*var)->data.aggregate.scalar, -1.0, 1e-06));

12433

assert(

EPSLE

((*var)->data.aggregate.var->glbdom.ub - (*var)->data.aggregate.var->glbdom.lb, 1.0, 1e-06));

12435

constant += (*negated) != orignegated ? -(*var)->data.aggregate.constant : (*var)->data.aggregate.constant;

12438

*negated = ((*var)->data.aggregate.scalar > 0.0) ? *negated : !(*negated);

12443

assert((*var)->negatedvar !=

NULL

);

12445

constant += (*negated) != orignegated ? -1.0 : 1.0;

12448

*negated = !(*negated);

12462

assert(

EPSZ

(constant, 1e-06) ||

EPSEQ

(constant, 1.0, 1e-06));

12463

assert(

EPSZ

(constant, 1e-06) == ((*negated) == orignegated));

12483

assert(var !=

NULL

);

12484

assert(*var !=

NULL

);

12486

assert(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 )

12511

assert( (*var)->data.multaggr.vars !=

NULL

);

12512

assert( (*var)->data.multaggr.scalars !=

NULL

);

12513

assert( (*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 )

12530

assert((*var)->data.aggregate.var !=

NULL

);

12531

assert((*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 )

12547

assert((*var)->negatedvar !=

NULL

);

12549

assert((*var)->negatedvar->negatedvar == *var);

12550

(*bound) = (*var)->data.negate.constant - *

bound

;

12576

assert(var !=

NULL

);

12577

assert(*var !=

NULL

);

12578

assert(left !=

NULL

);

12579

assert(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"

);

12602

assert((*var)->data.aggregate.var !=

NULL

);

12603

assert((*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 )

12627

assert((*var)->negatedvar !=

NULL

);

12629

assert((*var)->negatedvar->negatedvar == *var);

12632

(*left) = (*var)->data.negate.constant - (*left);

12633

(*right) = (*var)->data.negate.constant - (*right);

12662

assert(var !=

NULL

);

12663

assert(scalar !=

NULL

);

12664

assert(constant !=

NULL

);

12666 while

( *var !=

NULL

)

12671 if

( (*var)->data.original.transvar ==

NULL

)

12673 SCIPerrorMessage

(

"original variable has no transformed variable attached\n"

);

12688

assert(*scalar != 0.0);

12689 if

( (*scalar) * (*var)->glbdom.lb > 0.0 )

12695

(*constant) += *scalar * (*var)->glbdom.lb;

12711 if

( (*var)->data.multaggr.nvars == 1 )

12713

assert((*var)->data.multaggr.vars !=

NULL

);

12714

assert((*var)->data.multaggr.scalars !=

NULL

);

12715

assert((*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];

12747

assert((*var)->data.aggregate.var !=

NULL

);

12751

(*constant) += *scalar * (*var)->data.aggregate.constant;

12752

(*scalar) *= (*var)->data.aggregate.scalar;

12757

assert((*var)->negatedvar !=

NULL

);

12759

assert((*var)->negatedvar->negatedvar == *var);

12763

(*constant) += *scalar * (*var)->data.negate.constant;

12790

assert(var !=

NULL

);

12791

assert(*var !=

NULL

);

12792

assert(scalar !=

NULL

);

12793

assert(constant !=

NULL

);

12800 if

( (*var)->nparentvars == 0 )

12806

((*var)->negatedvar->nparentvars == 0 || (*var)->negatedvar->parentvars[0] != *var) )

12809

*constant -= (*var)->data.negate.constant * (*scalar);

12827

assert(parentvar !=

NULL

);

12838 SCIPerrorMessage

(

"column, loose, fixed or multi-aggregated variable cannot be the parent of a variable\n"

);

12861

assert( parentvar !=

NULL

);

12874

assert(var !=

NULL

);

12881

assert(parentvar !=

NULL

);

12886

assert( parentvar !=

NULL

);

12898

assert(var !=

NULL

);

12920 SCIPerrorMessage

(

"cannot get the objective value of a multiple aggregated variable\n"

);

12945

assert(var !=

NULL

);

12947

assert(var->

scip

==

set

->scip);

12990 SCIPerrorMessage

(

"getting the bounds of a multiple aggregated variable is not implemented yet\n"

);

13015

assert(var !=

NULL

);

13017

assert(var->

scip

==

set

->scip);

13059 SCIPerrorMessage

(

"cannot get the bounds of a multi-aggregated variable.\n"

);

13081

assert(var !=

NULL

);

13157

assert(var !=

NULL

);

13205

assert(var !=

NULL

);

13282

assert(var !=

NULL

);

13296

assert(var !=

NULL

);

13298

assert(var->

scip

==

set

->scip);

13324 if

( rootredcost > 0.0 )

13329

cutoffbound = (

bound

- rootsol) * rootredcost + rootlpobjval;

13332 if

( cutoffbound > currcutoffbound )

13365

assert(var !=

NULL

);

13439

assert(col !=

NULL

);

13472#define MAX_CLIQUELENGTH 50 13495#ifdef SCIP_MORE_DEBUG 13502 if

( ncliques > 0 )

13521

assert(prob !=

NULL

);

13531

assert(cliques !=

NULL

);

13533 for

( c = ncliques - 1; c >= 0; --c )

13535

clique = cliques[c];

13536

assert(clique !=

NULL

);

13538

assert(nclqvars > 0);

13545

assert(clqvars !=

NULL

);

13546

assert(clqvalues !=

NULL

);

13550 for

( v = nclqvars - 1; v >= 0; --v )

13552

clqvar = clqvars[v];

13553

assert(clqvar !=

NULL

);

13560

assert(0 < probindex && probindex < nentries);

13562#ifdef SCIP_DISABLED_CODE 13566

assert(!entries[probindex] || entries[probindex] == (clqvalues[v] ? probindex : -probindex));

13568 if

( entries[probindex] == 0 )

13570

ids[nids] = probindex;

13574

entries[probindex] = (clqvalues[v] ? probindex : -probindex);

13581

assert(probvars !=

NULL

);

13584 for

( v = nids - 1; v >= 0; --v )

13587

assert(0 <

id

&&

id

< nentries);

13588

assert(entries[

id

] != 0);

13589

assert(probvars[

id

- 1] !=

NULL

);

13594 if

( (entries[

id

] > 0) != varfixing )

13600

implredcost += redcost;

13610#ifdef SCIP_MORE_DEBUG 13636 for

( v = nvars - 1; v >= 0; --v )

13639

assert(implvar !=

NULL

);

13649

assert(col !=

NULL

);

13653 if

( lpissolbasic )

13664

redcost *= (lb - bounds[v]);

13666

redcost *= (bounds[v] - lb);

13674

redcost *= (bounds[v] - ub);

13676

redcost *= (ub - bounds[v]);

13690

redcost *= (lb - bounds[v]);

13692

redcost *= (bounds[v] - lb);

13700

redcost *= (bounds[v] - ub);

13702

redcost *= (ub - bounds[v]);

13708

implredcost += 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 return

implredcost;

13730

assert(var !=

NULL

);

13794

assert(var !=

NULL

);

13828

assert(var !=

NULL

);

13862

assert(var !=

NULL

);

13878

assert(var !=

NULL

);

13879

assert(relaxation !=

NULL

);

13881

assert(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"

);

13940

assert(var !=

NULL

);

13942

assert(var->

scip

==

set

->scip);

14007

assert(var !=

NULL

);

14020

assert(var !=

NULL

);

14022

assert(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"

);

14077

assert(var !=

NULL

);

14137 int

* closestvlbidx

14142

assert(var !=

NULL

);

14143

assert(stat !=

NULL

);

14145

assert(var->

scip

==

set

->scip);

14146

assert(closestvlb !=

NULL

);

14147

assert(closestvlbidx !=

NULL

);

14149

*closestvlbidx = -1;

14168

assert(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

14217

assert(var !=

NULL

);

14219

assert(var->

scip

==

set

->scip);

14220

assert(closestvub !=

NULL

);

14221

assert(closestvubidx !=

NULL

);

14223

*closestvubidx = -1;

14242

assert(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;

14292

assert(var !=

NULL

);

14294

assert(var->

scip

==

set

->scip);

14295

assert(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=

"."

;

14397

assert(var !=

NULL

);

14399

assert(var->

scip

==

set

->scip);

14400

assert(stat !=

NULL

);

14411 SCIPerrorMessage

(

"cannot update pseudo costs of original untransformed variable\n"

);

14432#ifdef SCIP_HISTORYTOFILE 14435 char

filename[256];

14442

f = fopen(filename,

"a"

);

14445

fprintf(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"

);

14493

assert(var !=

NULL

);

14494

assert(stat !=

NULL

);

14542

assert(var !=

NULL

);

14543

assert(stat !=

NULL

);

14586

assert(var !=

NULL

);

14631

assert(var !=

NULL

);

14696 return MIN

(upscore, downscore);

14706

assert(var !=

NULL

);

14719 if

( onlycurrentrun )

14769 if

( onlycurrentrun )

14774

assert(count >= 1.9);

14776

confidencebound /= count;

14777

confidencebound = sqrt(confidencebound);

14784

confidencebound = 0.0;

14786 return

confidencebound;

14810

size =

MIN

(downsize, upsize);

14820 if

( downsize >= 1.9 )

14826

normval =

MAX

(1.0, normval);

14828

relerrordown /= normval;

14831

relerrordown = 0.0;

14833 if

( upsize >= 1.9 )

14839

normval =

MAX

(1.0, normval);

14840

relerrorup /= normval;

14846

relerror =

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);

15012

assert(var !=

NULL

);

15013

assert(blkmem !=

NULL

);

15015

assert(history !=

NULL

);

15017

(*history) =

NULL

;

15044 if

( !

set

->history_valuebased )

15069

assert(var !=

NULL

);

15084 SCIPerrorMessage

(

"cannot update VSIDS of original untransformed variable\n"

);

15101

assert(history !=

NULL

);

15129 SCIPerrorMessage

(

"cannot update VSIDS of a multi-aggregated variable\n"

);

15133

value = 1.0 - value;

15150

assert(var !=

NULL

);

15157 SCIPerrorMessage

(

"cannot update VSIDS of original untransformed variable\n"

);

15181 SCIPerrorMessage

(

"cannot update VSIDS of a multi-aggregated variable\n"

);

15205

assert(var !=

NULL

);

15217 SCIPerrorMessage

(

"cannot update conflict score of original untransformed variable\n"

);

15234

assert(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"

);

15264

value = 1.0 - value;

15282

assert(var !=

NULL

);

15283

assert(stat !=

NULL

);

15329

assert(var !=

NULL

);

15330

assert(stat !=

NULL

);

15373

assert(var !=

NULL

);

15417

assert(var !=

NULL

);

15465

assert(var !=

NULL

);

15466

assert(stat !=

NULL

);

15478 SCIPerrorMessage

(

"cannot update branching counter of original untransformed variable\n"

);

15497

assert(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"

);

15527

value = 1.0 - value;

15549

assert(var !=

NULL

);

15550

assert(stat !=

NULL

);

15562 SCIPerrorMessage

(

"cannot update inference counter of original untransformed variable\n"

);

15581

assert(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"

);

15611

value = 1.0 - value;

15633

assert(var !=

NULL

);

15634

assert(stat !=

NULL

);

15646 SCIPerrorMessage

(

"cannot update cutoff sum of original untransformed variable\n"

);

15665

assert(history !=

NULL

);

15691 SCIPerrorMessage

(

"cannot update cutoff sum of a multi-aggregated variable\n"

);

15695

value = 1.0 - value;

15712

assert(var !=

NULL

);

15757

assert(var !=

NULL

);

15800

assert(var !=

NULL

);

15845

assert(var !=

NULL

);

15891

assert(var !=

NULL

);

15892

assert(stat !=

NULL

);

15942

assert(var !=

NULL

);

15943

assert(stat !=

NULL

);

15948 SCIPerrorMessage

(

"invalid branching direction %d when asking for VSIDS value\n"

, dir);

15992

assert(var !=

NULL

);

16037

assert(var !=

NULL

);

16081

assert(var !=

NULL

);

16082

assert(stat !=

NULL

);

16138

assert(var !=

NULL

);

16139

assert(stat !=

NULL

);

16192

assert(var !=

NULL

);

16235

assert(var !=

NULL

);

16279

assert(var !=

NULL

);

16280

assert(stat !=

NULL

);

16326

assert(var !=

NULL

);

16327

assert(stat !=

NULL

);

16372

assert(var !=

NULL

);

16373

assert(stat !=

NULL

);

16413

assert(var !=

NULL

);

16414

assert(stat !=

NULL

);

16415

assert(gmieff >= 0);

16456

assert(var !=

NULL

);

16457

assert(stat !=

NULL

);

16497

assert(var !=

NULL

);

16498

assert(stat !=

NULL

);

16499

assert(gmieff >= 0);

16550

assert(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

;

16576

assert(bdchginfo !=

NULL

);

16593

assert(var !=

NULL

);

16649

assert(var !=

NULL

);

16725

assert(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"

);

16844

assert(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"

);

16984

assert(var !=

NULL

);

17008

assert(var !=

NULL

);

17045

assert(bdchgidx !=

NULL

);

17047 return

bdchgidx->

depth

;

17062

assert(var !=

NULL

);

17064

assert(var->

scip

==

set

->scip);

17134

assert(var1 !=

NULL

);

17135

assert(var2 !=

NULL

);

17141

assert(var1 !=

NULL

);

17142

assert(var2 !=

NULL

);

17189

assert(var !=

NULL

);

17190 return

var->

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 17328

assert(boundchg !=

NULL

);

17338

assert(boundchg !=

NULL

);

17340 return

boundchg->

var

;

17348

assert(boundchg !=

NULL

);

17358

assert(boundchg !=

NULL

);

17368

assert(boundchg !=

NULL

);

17387

assert(domchg !=

NULL

);

17398

assert(holelist !=

NULL

);

17408

assert(holelist !=

NULL

);

17418

assert(holelist !=

NULL

);

17420 return

holelist->

next

;

17431

assert(var !=

NULL

);

17433 return

var->

name

;

17441

assert(var !=

NULL

);

17443 return

var->

nuses

;

17451

assert(var !=

NULL

);

17462

assert(var !=

NULL

);

17473

assert(var !=

NULL

);

17476

var->vardelorig = vardelorig;

17485

assert(var !=

NULL

);

17488

var->vartrans = vartrans;

17497

assert(var !=

NULL

);

17499

var->vardeltrans = vardeltrans;

17508

assert(var !=

NULL

);

17510

var->varcopy = varcopy;

17519

assert(var !=

NULL

);

17535

assert(var !=

NULL

);

17550

assert(var !=

NULL

);

17560

assert(var !=

NULL

);

17573

assert(var !=

NULL

);

17586

assert(var !=

NULL

);

17596

assert(var !=

NULL

);

17611

assert(var !=

NULL

);

17622

assert(var !=

NULL

);

17632

assert(var !=

NULL

);

17642

assert(var !=

NULL

);

17652

assert(var !=

NULL

);

17664

assert(var !=

NULL

);

17675

assert(var !=

NULL

);

17688

assert(var !=

NULL

);

17698

assert(var !=

NULL

);

17718

assert(var !=

NULL

);

17736

assert(var !=

NULL

);

17750

assert(var !=

NULL

);

17760

assert(var !=

NULL

);

17770

assert(var !=

NULL

);

17772 return

var->

index

;

17780

assert(var !=

NULL

);

17790

assert(var !=

NULL

);

17801

assert(var !=

NULL

);

17812

assert(var !=

NULL

);

17822

assert(var !=

NULL

);

17834

assert(var !=

NULL

);

17846

assert(var !=

NULL

);

17858

assert(var !=

NULL

);

17870

assert(var !=

NULL

);

17882

assert(var !=

NULL

);

17894

assert(var !=

NULL

);

17906

assert(var !=

NULL

);

17916

assert(var !=

NULL

);

17927

assert(var !=

NULL

);

17938

assert(var !=

NULL

);

17948

assert(var !=

NULL

);

17964

assert(probvar !=

NULL

);

17965

assert(aggrobj !=

NULL

);

17967 while

( probvar !=

NULL

)

18036

assert(var !=

NULL

);

18056

assert(var !=

NULL

);

18076

assert(var !=

NULL

);

18090

assert(var !=

NULL

);

18100

assert(var !=

NULL

);

18110

assert(var !=

NULL

);

18120

assert(var !=

NULL

);

18122 if

( var->

obj

>= 0.0 )

18133

assert(var !=

NULL

);

18135 if

( var->

obj

>= 0.0 )

18146

assert(var !=

NULL

);

18156

assert(var !=

NULL

);

18166

assert(var !=

NULL

);

18176

assert(var !=

NULL

);

18178 if

( var->

obj

>= 0.0 )

18189

assert(var !=

NULL

);

18191 if

( var->

obj

>= 0.0 )

18202

assert(var !=

NULL

);

18204 if

( var->

obj

>= 0.0 )

18215

assert(var !=

NULL

);

18217 if

( var->

obj

>= 0.0 )

18228

assert(var !=

NULL

);

18238

assert(var !=

NULL

);

18250

assert(var !=

NULL

);

18262

assert(var !=

NULL

);

18272

assert(var !=

NULL

);

18282

assert(var !=

NULL

);

18294

assert(var !=

NULL

);

18304

assert(var !=

NULL

);

18314

assert(var !=

NULL

);

18324

assert(var !=

NULL

);

18336

assert(var !=

NULL

);

18346

assert(var !=

NULL

);

18356

assert(var !=

NULL

);

18369

assert(var !=

NULL

);

18386

assert(var !=

NULL

);

18401

assert(var !=

NULL

);

18415

assert(var !=

NULL

);

18431

assert(var !=

NULL

);

18443

assert(var !=

NULL

);

18454

assert(var !=

NULL

);

18464

assert(var !=

NULL

);

18477

assert(var !=

NULL

);

18492

assert(pos < var->nlbchginfos);

18512

assert(pos < var->nubchginfos);

18522

assert(var !=

NULL

);

18532

assert(var !=

NULL

);

18542

assert(var !=

NULL

);

18557

assert(var !=

NULL

);

18576

assert(var !=

NULL

);

18578

assert(var->

scip

==

set

->scip);

18585

eventtype, var->

name

, (

void

*)eventhdlr, (

void

*)eventdata);

18603

assert(var !=

NULL

);

18605

assert(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);

18622

assert(bdchgidx !=

NULL

);

18624 return

bdchgidx->

pos

;

18633

assert(bdchgidx1 !=

NULL

);

18634

assert(bdchgidx1->

depth

>= -2);

18635

assert(bdchgidx1->

pos

>= 0);

18636

assert(bdchgidx2 !=

NULL

);

18637

assert(bdchgidx2->

depth

>= -2);

18638

assert(bdchgidx2->

pos

>= 0);

18640 return

(bdchgidx1->

depth

< bdchgidx2->

depth

)

18641

|| (bdchgidx1->

depth

== bdchgidx2->

depth

&& (bdchgidx1->

pos

< bdchgidx2->

pos

));

18653

assert(bdchgidx1 ==

NULL

|| bdchgidx1->

depth

>= -2);

18654

assert(bdchgidx1 ==

NULL

|| bdchgidx1->

pos

>= 0);

18655

assert(bdchgidx2 ==

NULL

|| bdchgidx2->

depth

>= -2);

18656

assert(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

));

18672

assert(bdchginfo !=

NULL

);

18682

assert(bdchginfo !=

NULL

);

18692

assert(bdchginfo !=

NULL

);

18694 return

bdchginfo->

var

;

18702

assert(bdchginfo !=

NULL

);

18712

assert(bdchginfo !=

NULL

);

18722

assert(bdchginfo !=

NULL

);

18732

assert(bdchginfo !=

NULL

);

18742

assert(bdchginfo !=

NULL

);

18752

assert(bdchginfo !=

NULL

);

18764

assert(bdchginfo !=

NULL

);

18776

assert(bdchginfo !=

NULL

);

18787

assert(bdchginfo !=

NULL

);

18799

assert(bdchginfo !=

NULL

);

18820

assert(bdchginfo !=

NULL

);

18831

assert(bdchginfo !=

NULL

);

18846

assert(bdchginfo1 !=

NULL

);

18847

assert(bdchginfo2 !=

NULL

);

18848

assert(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