A RetroSearch Logo

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

Search Query:

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

SCIP Doxygen Documentation: tree.c Source File

65#define MAXREPROPMARK 511 80

assert(tree !=

NULL

);

92

assert(num <= tree->childrensize);

105

assert(tree !=

NULL

);

118

assert(num <= tree->pathsize);

131

assert(tree !=

NULL

);

142

assert(num <= tree->pendingbdchgssize);

157

assert(elem1 !=

NULL

);

158

assert(elem2 !=

NULL

);

175

assert(fork !=

NULL

);

191

assert(fork !=

NULL

);

193

assert(blkmem !=

NULL

);

214

assert(subroot !=

NULL

);

219 SCIPdebugMessage

(

"captured LPI state of subroot %p %d times -> new nlpistateref=%d\n"

,

231

assert(subroot !=

NULL

);

233

assert(blkmem !=

NULL

);

253

assert(node !=

NULL

);

268 SCIPerrorMessage

(

"node for capturing the LPI state is neither fork nor subroot\n"

);

282

assert(node !=

NULL

);

294 SCIPerrorMessage

(

"node for releasing the LPI state is neither fork nor subroot\n"

);

307

assert(probingnode !=

NULL

);

311

(*probingnode)->lpistate =

NULL

;

312

(*probingnode)->lpinorms =

NULL

;

315

(*probingnode)->ncols = (*probingnode)->ninitialcols;

316

(*probingnode)->nrows = (*probingnode)->ninitialrows;

317

(*probingnode)->origobjvars =

NULL

;

318

(*probingnode)->origobjvals =

NULL

;

319

(*probingnode)->nchgdobjs = 0;

321 SCIPdebugMessage

(

"created probingnode information (%d cols, %d rows)\n"

, (*probingnode)->ncols, (*probingnode)->nrows);

337

assert(probingnode !=

NULL

);

389

assert(probingnode !=

NULL

);

390

assert(*probingnode !=

NULL

);

393 if

( (*probingnode)->lpistate !=

NULL

)

398 if

( (*probingnode)->lpinorms !=

NULL

)

404 if

( (*probingnode)->nchgdobjs > 0 )

406

assert((*probingnode)->origobjvars !=

NULL

);

407

assert((*probingnode)->origobjvals !=

NULL

);

425

assert(junction !=

NULL

);

426

assert(tree !=

NULL

);

451

assert(pseudofork !=

NULL

);

452

assert(blkmem !=

NULL

);

453

assert(tree !=

NULL

);

460

(*pseudofork)->addedcols =

NULL

;

461

(*pseudofork)->addedrows =

NULL

;

464

(*pseudofork)->nchildren = tree->

nchildren

;

466 SCIPdebugMessage

(

"creating pseudofork information with %d children (%d new cols, %d new rows)\n"

,

467

(*pseudofork)->nchildren, (*pseudofork)->naddedcols, (*pseudofork)->naddedrows);

469 if

( (*pseudofork)->naddedcols > 0 )

474 if

( (*pseudofork)->naddedrows > 0 )

482 for

( i = 0; i < (*pseudofork)->naddedrows; ++i )

506

assert(pseudofork !=

NULL

);

507

assert(*pseudofork !=

NULL

);

508

assert((*pseudofork)->nchildren == 0);

509

assert(blkmem !=

NULL

);

513 for

( i = 0; i < (*pseudofork)->naddedrows; ++i )

536

assert(fork !=

NULL

);

537

assert(blkmem !=

NULL

);

538

assert(tree !=

NULL

);

556

(*fork)->nlpistateref = 0;

557

(*fork)->addedcols =

NULL

;

558

(*fork)->addedrows =

NULL

;

561

(*fork)->nchildren = (

unsigned

int) tree->

nchildren

;

563 SCIPsetDebugMsg

(

set

,

"creating fork information with %u children (%d new cols, %d new rows)\n"

, (*fork)->nchildren, (*fork)->naddedcols, (*fork)->naddedrows);

565 if

( (*fork)->naddedcols > 0 )

570 if

( (*fork)->naddedrows > 0 )

578 for

( i = 0; i < (*fork)->naddedrows; ++i )

599

assert(fork !=

NULL

);

600

assert(*fork !=

NULL

);

601

assert((*fork)->nchildren == 0);

602

assert((*fork)->nlpistateref == 0);

603

assert((*fork)->lpistate ==

NULL

);

604

assert(blkmem !=

NULL

);

609 for

( i = (*fork)->naddedrows - 1; i >= 0; --i )

635

assert(subroot !=

NULL

);

636

assert(blkmem !=

NULL

);

637

assert(tree !=

NULL

);

648

(*subroot)->nlpistateref = 0;

651

(*subroot)->nchildren = (

unsigned

int) tree->

nchildren

;

658 if

( (*subroot)->ncols != 0 )

663

(*subroot)->cols =

NULL

;

664 if

( (*subroot)->nrows != 0 )

669

(*subroot)->rows =

NULL

;

672 for

( i = 0; i < (*subroot)->nrows; ++i )

693

assert(subroot !=

NULL

);

694

assert(*subroot !=

NULL

);

695

assert((*subroot)->nchildren == 0);

696

assert((*subroot)->nlpistateref == 0);

697

assert((*subroot)->lpistate ==

NULL

);

698

assert(blkmem !=

NULL

);

703 for

( i = 0; i < (*subroot)->nrows; ++i )

724

assert(tree !=

NULL

);

725

assert(sibling !=

NULL

);

750

assert(tree !=

NULL

);

751

assert(child !=

NULL

);

773

assert(tree !=

NULL

);

774

assert(child !=

NULL

);

803

assert(node !=

NULL

);

809

assert(blkmem !=

NULL

);

811

assert(tree !=

NULL

);

822 if

( parent !=

NULL

)

862

assert(node !=

NULL

);

863

assert(blkmem !=

NULL

);

864

assert(tree !=

NULL

);

871 if

( parent !=

NULL

)

938 if

( freeParent && !parent->

active

)

943 else if

( !

set

->reopt_enable && freeParent == !parent->

active

)

987

singleChild =

FALSE

;

1019

assert(node !=

NULL

);

1022

(*node)->parent =

NULL

;

1023

(*node)->conssetchg =

NULL

;

1024

(*node)->domchg =

NULL

;

1025

(*node)->number = 0;

1028

(*node)->reoptid = 0;

1031

(*node)->active =

FALSE

;

1032

(*node)->cutoff =

FALSE

;

1033

(*node)->reprop =

FALSE

;

1034

(*node)->repropsubtreemark = 0;

1050

assert(node !=

NULL

);

1051

assert(blkmem !=

NULL

);

1053

assert(stat !=

NULL

);

1054

assert(tree !=

NULL

);

1070

(*node)->data.child.arraypos = -1;

1115

assert(node !=

NULL

);

1116

assert(*node !=

NULL

);

1117

assert(!(*node)->active);

1118

assert(blkmem !=

NULL

);

1119

assert(tree !=

NULL

);

1148 SCIPerrorMessage

(

"cannot free focus node - has to be converted into a dead end first\n"

);

1157

assert((*node)->data.sibling.arraypos >= 0);

1158

assert((*node)->data.sibling.arraypos < tree->

nsiblings

);

1159

assert(tree->

siblings

[(*node)->data.sibling.arraypos] == *node);

1169

assert((*node)->data.child.arraypos >= 0);

1170

assert((*node)->data.child.arraypos < tree->

nchildren

);

1171

assert(tree->

children

[(*node)->data.child.arraypos] == *node);

1180 if

( (*node)->data.leaf.lpstatefork !=

NULL

)

1253

assert(stat !=

NULL

);

1254

assert(tree !=

NULL

);

1262 if

(

set

->reopt_enable )

1278 if

( node->

depth

== 0 )

1284 if

(

set

->misc_calcintegral )

1309

assert(node !=

NULL

);

1311

assert(stat !=

NULL

);

1312

assert(tree !=

NULL

);

1333

assert(node !=

NULL

);

1334

assert(tree !=

NULL

);

1362

assert(tree !=

NULL

);

1402

assert(node !=

NULL

);

1410

assert(stat !=

NULL

);

1411

assert(tree !=

NULL

);

1413

assert(cutoff !=

NULL

);

1416

initialreprop = node->

reprop

;

1425 if

( clockisrunning )

1452

assert(!node->

reprop

|| *cutoff);

1477 if

( initialreprop && !(*cutoff) && stat->

nboundchgs

> oldnboundchgs )

1504 if

( clockisrunning )

1540

assert(node !=

NULL

);

1542

assert(stat !=

NULL

);

1543

assert(tree !=

NULL

);

1545

assert(cutoff !=

NULL

);

1568

node->

reprop

=

set

->conf_enable &&

set

->conf_useprop;

1582 SCIP_CALL

(

nodeRepropagate

(node, blkmem,

set

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

1583

eventfilter, eventqueue, cliquetable, &propcutoff) );

1584

*cutoff = *cutoff || propcutoff;

1603

assert(node !=

NULL

);

1605

assert(tree !=

NULL

);

1637

assert(node !=

NULL

);

1638

assert(cons !=

NULL

);

1640

assert(tree !=

NULL

);

1647 if

( cons->

scip

!=

set

->scip )

1680

assert(node !=

NULL

);

1681

assert(tree !=

NULL

);

1682

assert(cons !=

NULL

);

1710

assert(node !=

NULL

);

1718 if

( addedconsssize < *naddedconss )

1722 for

( cons = 0; cons < *naddedconss; cons++ )

1735

assert(node !=

NULL

);

1758

assert(tree !=

NULL

);

1778 if

( node->

depth

== 0 )

1873

assert(node !=

NULL

);

1878

|| node->

depth

== 0);

1880

assert(tree !=

NULL

);

1883

assert(var !=

NULL

);

1884

assert(node->

active

|| (infercons ==

NULL

&& inferprop ==

NULL

));

1898

inferboundtype = boundtype;

1929

newbound =

MIN

(newbound, oldub);

1946

newbound =

MAX

(newbound, oldlb);

1963 SCIPsetDebugMsg

(

set

,

" -> transformed to active variable <%s>: old bounds=[%g,%g], new %s bound: %g, obj: %g\n"

,

1975 int

conflictingdepth;

1979 if

( conflictingdepth >= 0 )

1982

assert(conflictingdepth > 0);

1983

assert(conflictingdepth < tree->pathlen);

1985 SCIPsetDebugMsg

(

set

,

" -> bound change <%s> %s %g violates current local bounds [%g,%g] since depth %d: remember for later application\n"

,

2011

assert(!probingchange);

2013 SCIPsetDebugMsg

(

set

,

" -> bound change in root node: perform global bound change\n"

);

2020 SCIPsetDebugMsg

(

set

,

"marked root node to be repropagated due to global bound change <%s>:[%g,%g] -> [%g,%g] found in depth %u\n"

,

2059 if

(

set

->misc_exactsolve )

2073

0.0, infervar, infercons, inferprop, inferinfo, inferboundtype) );

2126 SCIP_CALL

(

SCIPnodeAddBoundinfer

(node, blkmem,

set

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

2127

cliquetable, var, newbound, boundtype,

NULL

,

NULL

, 0, probingchange) );

2153

assert(node !=

NULL

);

2158

|| node->

depth

== 0);

2159

assert(blkmem !=

NULL

);

2161

assert(tree !=

NULL

);

2164

assert(var !=

NULL

);

2165

assert(node->

active

|| (infercons ==

NULL

&& inferprop ==

NULL

));

2176

adjustedleft = left;

2177

adjustedright = right;

2191 SCIPsetDebugMsg

(

set

,

"adding hole (%g,%g) at node at depth %u to variable <%s>: bounds=[%g,%g], (infer%s=<%s>, inferinfo=%d)\n"

,

2218

assert(!probingchange);

2220 SCIPsetDebugMsg

(

set

,

" -> hole added in root node: perform global domain change\n"

);

2227 SCIPsetDebugMsg

(

set

,

"marked root node to be repropagated due to global added hole <%s>: (%g,%g) found in depth %u\n"

,

2237 SCIPerrorMessage

(

"WARNING: currently domain holes can only be handled globally!\n"

);

2263

assert(node !=

NULL

);

2267

assert(blkmem !=

NULL

);

2269 SCIPsetDebugMsg

(

set

,

"adding hole (%g,%g) at node at depth %u of variable <%s>\n"

,

2273 NULL

,

NULL

, 0, probingchange, added) );

2301

assert(tree !=

NULL

);

2304 for

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

2316 if

( conflictdepth == 0 )

2326

assert(conflictdepth == -1);

2365

assert(var !=

NULL

);

2390

assert(stat !=

NULL

);

2407 if

( node->

depth

== 0 )

2414

assert(lowerbound <= newbound);

2437

assert(lp !=

NULL

);

2454 if

(

set

->misc_exactsolve )

2492

assert(node !=

NULL

);

2521

assert(node !=

NULL

);

2526

assert(cutoff !=

NULL

);

2535 for

( i = 0; i < nboundchgs && !(*cutoff); ++i )

2565 for

( j = 0; j < nimpls; ++j )

2610 SCIP_CALL

(

SCIPnodeAddBoundinfer

(node, blkmem,

set

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

2611

eventqueue, cliquetable, implvars[j], implbounds[j], impltypes[j],

NULL

,

NULL

, 0,

FALSE

) );

2617 for

( j = 0; j < ncliques; ++j )

2627 for

( k = 0; k < nvars; ++k )

2638 if

( vars[k] == var && values[k] == varfixing )

2644 if

( values[k] ==

FALSE

)

2669 SCIP_CALL

(

SCIPnodeAddBoundinfer

(node, blkmem,

set

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

2699

assert(tree !=

NULL

);

2700

assert(startdepth >= 0);

2701

assert(startdepth <= tree->pathlen);

2703 if

( startdepth == 0 )

2714 for

( i = startdepth; i < tree->

pathlen

; ++i )

2716

node = tree->

path

[i];

2717

assert(node !=

NULL

);

2719

assert((

int

)(node->

depth

) == i);

2733 if

( i < tree->pathlen-1 )

2813

assert(tree !=

NULL

);

2828

assert(commonfork !=

NULL

);

2829

assert(newlpfork !=

NULL

);

2830

assert(newlpstatefork !=

NULL

);

2831

assert(newsubroot !=

NULL

);

2832

assert(cutoff !=

NULL

);

2834

*commonfork =

NULL

;

2836

*newlpstatefork =

NULL

;

2837

*newsubroot =

NULL

;

2871

lpfork = lpfork->

parent

;

2872 if

( lpfork ==

NULL

)

2880

*newlpfork = lpfork;

2882

lpstatefork = lpfork;

2885

lpstatefork = lpstatefork->

parent

;

2886 if

( lpstatefork ==

NULL

)

2888 if

( lpstatefork->

cutoff

)

2894

*newlpstatefork = lpstatefork;

2896

subroot = lpstatefork;

2899

subroot = subroot->

parent

;

2900 if

( subroot ==

NULL

)

2908

*newsubroot = subroot;

2926

lpstatefork =

NULL

;

2928

assert(fork !=

NULL

);

2933

assert(fork !=

NULL

);

2944 if

( lpstatefork ==

NULL 2950

assert(lpfork ==

NULL

|| !lpfork->

active

|| lpfork == fork);

2951

assert(lpstatefork ==

NULL

|| !lpstatefork->

active

|| lpstatefork == fork);

2952

assert(subroot ==

NULL

|| !subroot->

active

|| subroot == fork);

2965

assert(fork !=

NULL

);

2975 if

( lpfork ==

NULL

)

2981 while

( lpfork !=

NULL 2986

assert(lpfork->

active

);

2987

lpfork = lpfork->

parent

;

2998

assert(lpfork ==

NULL 3007 if

( lpstatefork ==

NULL

)

3013

lpstatefork = lpfork;

3016 while

( lpstatefork !=

NULL 3020

assert(lpstatefork->

active

);

3021

lpstatefork = lpstatefork->

parent

;

3029

assert(lpstatefork ==

NULL

|| lpstatefork->

depth

<= fork->

depth

);

3030

assert(lpstatefork ==

NULL

|| lpstatefork->

active

);

3032

assert(lpstatefork ==

NULL 3035

assert(lpstatefork ==

NULL

|| (lpfork !=

NULL

&& lpstatefork->

depth

<= lpfork->

depth

));

3036 SCIPdebugMessage

(

"find switch forks: lpstateforkdepth=%d\n"

, lpstatefork ==

NULL

? -1 : (

int

)(lpstatefork->

depth

));

3041 if

( subroot ==

NULL

)

3047

subroot = lpstatefork;

3054

assert(subroot->

active

);

3055

subroot = subroot->

parent

;

3061

assert(subroot ==

NULL

|| subroot->

active

);

3064

assert(subroot ==

NULL

|| (lpstatefork !=

NULL

&& subroot->

depth

<= lpstatefork->

depth

));

3079

*newlpfork = lpfork;

3080

*newlpstatefork = lpstatefork;

3081

*newsubroot = subroot;

3084 while

( fork !=

NULL

)

3117 int

neweffectiverootdepth;

3123

assert(tree !=

NULL

);

3125

assert(fork ==

NULL

|| focusnode !=

NULL

);

3126

assert(focusnode ==

NULL

|| (!focusnode->

active

&& !focusnode->

cutoff

));

3128

assert(cutoff !=

NULL

);

3137

focusnodedepth = (focusnode !=

NULL

? (int)focusnode->

depth

: -1);

3138

forklen = (fork !=

NULL

? (int)fork->

depth

+ 1 : 0);

3139

assert(forklen <= focusnodedepth + 1);

3145 while

( tree->

pathlen

> forklen )

3150

assert(tree->

pathlen

== forklen);

3153 SCIP_CALL

(

treeApplyPendingBdchgs

(tree, reopt, blkmem,

set

, stat, transprob, origprob, lp, branchcand, eventqueue, cliquetable) );

3158 while

( focusnode != fork )

3160

assert(focusnode !=

NULL

);

3161

assert(!focusnode->

active

);

3162

assert(!focusnode->

cutoff

);

3164

tree->

path

[focusnode->

depth

] = focusnode;

3165

focusnode = focusnode->

parent

;

3169 if

( oldfocusnode !=

NULL

)

3221 "shift effective root from depth %d to %d: applying constraint set and bound changes to global problem\n"

,

3233 for

( i = tree->

effectiverootdepth

+ 1; i <= neweffectiverootdepth && !(*cutoff); ++i )

3247 else if

( fork !=

NULL

&& fork->

reprop

&& !(*cutoff) )

3254 SCIP_CALL

(

nodeRepropagate

(fork, blkmem,

set

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

3255

conflict, eventfilter, eventqueue, cliquetable, cutoff) );

3257

assert(fork !=

NULL

|| !(*cutoff));

3270 while

( tree->

pathlen

< focusnodedepth && !(*cutoff) )

3276

lp, branchcand, conflict, eventfilter, eventqueue, cliquetable, cutoff) );

3283 if

( tree->

pathlen

== focusnodedepth && !(*cutoff) )

3289

lp, branchcand, conflict, eventfilter, eventqueue, cliquetable, cutoff) );

3324

assert(subroot !=

NULL

);

3327

assert(blkmem !=

NULL

);

3329

assert(lp !=

NULL

);

3336

assert(ncols == 0 || cols !=

NULL

);

3337

assert(nrows == 0 || rows !=

NULL

);

3339 for

( c = 0; c < ncols; ++c )

3343 for

(

r

= 0;

r

< nrows; ++

r

)

3369

assert(fork !=

NULL

);

3372

assert(blkmem !=

NULL

);

3374

assert(lp !=

NULL

);

3381

assert(ncols == 0 || cols !=

NULL

);

3382

assert(nrows == 0 || rows !=

NULL

);

3384 for

( c = 0; c < ncols; ++c )

3388 for

(

r

= 0;

r

< nrows; ++

r

)

3414

assert(pseudofork !=

NULL

);

3417

assert(blkmem !=

NULL

);

3419

assert(lp !=

NULL

);

3426

assert(ncols == 0 || cols !=

NULL

);

3427

assert(nrows == 0 || rows !=

NULL

);

3429 for

( c = 0; c < ncols; ++c )

3433 for

(

r

= 0;

r

< nrows; ++

r

)

3453

assert(tree !=

NULL

);

3458 for

( d = 0; d < tree->

pathlen

; ++d )

3460

node = tree->

path

[d];

3461

assert(node !=

NULL

);

3462

assert((

int

)(node->

depth

) == d);

3472 if

( d < tree->pathlen-1 )

3503 SCIPerrorMessage

(

"node at depth %d on active path has to be of type JUNCTION, PSEUDOFORK, FORK, SUBROOT, FOCUSNODE, REFOCUSNODE, or PROBINGNODE, but is %d\n"

,

3512#define treeCheckPath(tree) 3530

assert(tree !=

NULL

);

3539

assert(blkmem !=

NULL

);

3541

assert(lp !=

NULL

);

3542

assert(initroot !=

NULL

);

3558 if

( lpfork ==

NULL

)

3570

assert(lpfork->

active

);

3571

assert(tree->

path

[lpfork->

depth

] == lpfork);

3572

lpforkdepth = (int) lpfork->

depth

;

3574

assert(lpforkdepth < tree->pathlen-1);

3598

assert(lpforkdepth < tree->pathlen);

3605

pathnode = tree->

path

[d];

3606

assert(pathnode !=

NULL

);

3607

assert((

int

)(pathnode->

depth

) == d);

3657 int

lpstateforkdepth;

3660

assert(tree !=

NULL

);

3670

assert(blkmem !=

NULL

);

3672

assert(lp !=

NULL

);

3681 if

( lpstatefork ==

NULL

)

3686

assert(lpstatefork->

active

);

3687

assert(tree->

path

[lpstatefork->

depth

] == lpstatefork);

3688

lpstateforkdepth = (int) lpstatefork->

depth

;

3689

assert(lpstateforkdepth < tree->pathlen-1);

3690

assert(lpstateforkdepth <= tree->correctlpdepth);

3713

checkbdchgs =

TRUE

;

3720

checkbdchgs =

FALSE

;

3740

assert(d < tree->pathlen);

3780

assert(stat !=

NULL

);

3781

assert(lpstatefork ==

NULL

|| lpstatefork->

depth

< (*node)->depth);

3783

assert(lpstatefork ==

NULL 3792

pathnode = (*node)->

parent

;

3793 while

( pathnode !=

NULL

&& pathnode != lpstatefork )

3797

pathnode = pathnode->

parent

;

3799

assert(pathnode == lpstatefork);

3812

(*node)->data.leaf.lpstatefork = lpstatefork;

3833

assert(*node ==

NULL

);

3863

assert(blkmem !=

NULL

);

3865

assert(stat !=

NULL

);

3866

assert(tree !=

NULL

);

3870

assert(lp !=

NULL

);

3873

needdel = (tree->

focusnode

== tree->

root

?

set

->price_delvarsroot :

set

->price_delvars);

3893

assert(var !=

NULL

);

3957

assert(blkmem !=

NULL

);

3958

assert(tree !=

NULL

);

3968 SCIP_CALL

(

focusnodeCleanupVars

(blkmem,

set

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

TRUE

) );

3997

assert(tree !=

NULL

);

4006 SCIP_CALL

(

nodeToLeaf

(&tree->

focusnode

, blkmem,

set

, stat, eventfilter, eventqueue, tree, reopt, lp, lpstatefork, cutoffbound));

4021

assert(tree !=

NULL

);

4066

assert(blkmem !=

NULL

);

4067

assert(tree !=

NULL

);

4073

assert(lp !=

NULL

);

4079 SCIP_CALL

(

focusnodeCleanupVars

(blkmem,

set

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

FALSE

) );

4120

assert(blkmem !=

NULL

);

4121

assert(tree !=

NULL

);

4127

assert(lp !=

NULL

);

4145 SCIP_CALL

(

SCIPlpSolveAndEval

(lp,

set

, messagehdlr, blkmem, stat, eventqueue, eventfilter, transprob, -1LL,

FALSE

,

FALSE

,

TRUE

,

FALSE

, &lperror) );

4182 SCIP_CALL

(

focusnodeCleanupVars

(blkmem,

set

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

FALSE

) );

4232

assert(blkmem !=

NULL

);

4233

assert(tree !=

NULL

);

4239

assert(lp !=

NULL

);

4253#ifdef SCIP_DISABLED_CODE 4266 SCIP_CALL

(

SCIPlpSolveAndEval

(lp,

set

, messagehdlr, blkmem, stat, eventqueue, eventfilter, transprob, -1LL,

FALSE

,

FALSE

,

TRUE

,

FALSE

, &lperror) );

4269

assert(lp->

solved

|| lperror);

4303 SCIP_CALL

(

focusnodeCleanupVars

(blkmem,

set

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

FALSE

) );

4309 SCIP_CALL

( subrootCreate(&subroot, blkmem,

set

, transprob, tree, lp) );

4347

assert(tree !=

NULL

);

4358 SCIP_CALL

(

nodeToLeaf

(&nodes[*

nnodes

-1], blkmem,

set

, stat, eventfilter, eventqueue, tree, reopt, lp, lpstatefork, cutoffbound) );

4378

assert(tree !=

NULL

);

4395 for

( i = 0; i < tree->

nsiblings

; ++i )

4437

assert(node !=

NULL

);

4438

assert(*node ==

NULL 4442

assert(*node ==

NULL

|| !(*node)->active);

4443

assert(stat !=

NULL

);

4444

assert(tree !=

NULL

);

4446

assert(lp !=

NULL

);

4447

assert(conflictstore !=

NULL

);

4448

assert(cutoff !=

NULL

);

4467 SCIPsetDebugMsg

(

set

,

"focus node: focusnodedepth=%ld, forkdepth=%ld, lpforkdepth=%ld, lpstateforkdepth=%ld, subrootdepth=%ld, cutoff=%u\n"

,

4468

*node !=

NULL

? (

long

)((*node)->depth) : -1, fork !=

NULL

? (

long

)(fork->

depth

) : -1,

4469

lpfork !=

NULL

? (

long

)(lpfork->

depth

) : -1, lpstatefork !=

NULL

? (

long

)(lpstatefork->

depth

) : -1,

4470

subroot !=

NULL

? (

long

)(subroot->

depth

) : -1, *cutoff);

4475

assert(*node !=

NULL

);

4481

assert(!(*node)->active);

4484 SCIPsetDebugMsg

(

set

,

"cutting off leaf node #%lld (queuelen=%d) at depth %d with lowerbound=%g\n"

,

4488 if

(

set

->reopt_enable )

4497

(*node)->cutoff =

TRUE

;

4501 if

( (*node)->depth == 0 )

4505 if

(

set

->misc_calcintegral )

4531

assert(lpstatefork ==

NULL

|| lpfork !=

NULL

);

4532

assert(subroot ==

NULL

|| lpstatefork !=

NULL

);

4539

assert(subroot ==

NULL

|| subroot->

active

);

4559 if

( exitsolve && tree->

nchildren

> 0 )

4562 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

children

, &tree->

nchildren

,

NULL

, -

SCIPsetInfinity

(

set

)) );

4580 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

children

, &tree->

nchildren

,

NULL

, -

SCIPsetInfinity

(

set

)) );

4591 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

siblings

, &tree->

nsiblings

, tree->

focuslpstatefork

,

4603

assert(!postponed || *node ==

NULL

);

4609

assert(*node ==

NULL

);

4621 SCIP_CALL

(

focusnodeToDeadend

(blkmem,

set

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

4636

assert(oldcutoffdepth == INT_MAX);

4649 SCIP_CALL

( focusnodeToSubroot(blkmem,

set

, messagehdlr, stat, eventqueue, eventfilter, transprob, origprob, tree, lp, branchcand) );

4659

reopt, lp, branchcand, cliquetable) );

4666

childrenlpstatefork = tree->

focusnode

;

4671 if

( selectedchild )

4688

branchcand, cliquetable) );

4696 if

( selectedchild )

4722 SCIP_CALL

(

focusnodeToDeadend

(blkmem,

set

, stat, eventqueue, transprob, origprob, tree, reopt, lp, branchcand, cliquetable) );

4725

assert(lpstatefork ==

NULL 4728

assert(childrenlpstatefork ==

NULL 4731

assert(lpfork ==

NULL 4738 if

( *node ==

NULL

)

4741 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

siblings

, &tree->

nsiblings

, tree->

focuslpstatefork

,

4745 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

children

, &tree->

nchildren

, childrenlpstatefork,

4761 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

children

, &tree->

nchildren

, childrenlpstatefork,

4779 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

siblings

, &tree->

nsiblings

, tree->

focuslpstatefork

,

4793 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

siblings

, &tree->

nsiblings

, tree->

focuslpstatefork

,

4802 for

( c = 0; c < tree->

nchildren

; ++c )

4812 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

children

, &tree->

nchildren

, childrenlpstatefork,

4835

assert(subroot ==

NULL

|| (lpstatefork !=

NULL

&& subroot->

depth

<= lpstatefork->

depth

));

4836

assert(lpstatefork ==

NULL

|| (lpfork !=

NULL

&& lpstatefork->

depth

<= lpfork->

depth

));

4837

assert(lpfork ==

NULL

|| (*node !=

NULL

&& lpfork->

depth

< (*node)->depth));

4845 SCIP_CALL

(

treeSwitchPath

(tree, reopt, blkmem,

set

, stat, transprob, origprob, primal, lp, branchcand, conflict,

4846

eventfilter, eventqueue, cliquetable, fork, *node, cutoff) );

4850

assert(*node ==

NULL

|| tree->

pathlen

-1 <= (

int

)(*node)->depth);

4873

assert(tree !=

NULL

);

4874

assert(blkmem !=

NULL

);

4878

(*tree)->root =

NULL

;

4883 for

( p = 0; p <= 1; ++p )

4888

(*tree)->ndivebdchanges[p] = 0;

4889

(*tree)->divebdchgsize[p] = 1;

4892

(*tree)->path =

NULL

;

4893

(*tree)->focusnode =

NULL

;

4894

(*tree)->focuslpfork =

NULL

;

4895

(*tree)->focuslpstatefork =

NULL

;

4896

(*tree)->focussubroot =

NULL

;

4897

(*tree)->children =

NULL

;

4898

(*tree)->siblings =

NULL

;

4899

(*tree)->probingroot =

NULL

;

4900

(*tree)->childrenprio =

NULL

;

4901

(*tree)->siblingsprio =

NULL

;

4902

(*tree)->pathnlpcols =

NULL

;

4903

(*tree)->pathnlprows =

NULL

;

4904

(*tree)->probinglpistate =

NULL

;

4905

(*tree)->probinglpinorms =

NULL

;

4906

(*tree)->pendingbdchgs =

NULL

;

4907

(*tree)->probdiverelaxsol =

NULL

;

4908

(*tree)->nprobdiverelaxsol = 0;

4909

(*tree)->pendingbdchgssize = 0;

4910

(*tree)->npendingbdchgs = 0;

4911

(*tree)->focuslpstateforklpcount = -1;

4912

(*tree)->childrensize = 0;

4913

(*tree)->nchildren = 0;

4914

(*tree)->siblingssize = 0;

4915

(*tree)->nsiblings = 0;

4916

(*tree)->pathlen = 0;

4917

(*tree)->pathsize = 0;

4918

(*tree)->effectiverootdepth = 0;

4919

(*tree)->updatedeffectiverootdepth = 0;

4920

(*tree)->lastbranchparentid = -1L;

4921

(*tree)->correctlpdepth = -1;

4922

(*tree)->cutoffdepth = INT_MAX;

4923

(*tree)->repropdepth = INT_MAX;

4924

(*tree)->repropsubtreecount = 0;

4925

(*tree)->focusnodehaslp =

FALSE

;

4926

(*tree)->probingnodehaslp =

FALSE

;

4927

(*tree)->focuslpconstructed =

FALSE

;

4928

(*tree)->cutoffdelayed =

FALSE

;

4929

(*tree)->probinglpwasflushed =

FALSE

;

4930

(*tree)->probinglpwassolved =

FALSE

;

4931

(*tree)->probingloadlpistate =

FALSE

;

4932

(*tree)->probinglpwasrelax =

FALSE

;

4933

(*tree)->probingsolvedlp =

FALSE

;

4934

(*tree)->forcinglpmessage =

FALSE

;

4935

(*tree)->sbprobing =

FALSE

;

4936

(*tree)->probinglpwasprimfeas =

TRUE

;

4937

(*tree)->probinglpwasdualfeas =

TRUE

;

4938

(*tree)->probdiverelaxstored =

FALSE

;

4939

(*tree)->probdiverelaxincludeslp =

FALSE

;

4957

assert(tree !=

NULL

);

4958

assert(*tree !=

NULL

);

4959

assert((*tree)->nchildren == 0);

4960

assert((*tree)->nsiblings == 0);

4961

assert((*tree)->focusnode ==

NULL

);

4970 for

( p = 0; p <= 1; ++p )

5006

assert(tree !=

NULL

);

5024

assert(var !=

NULL

);

5066

assert(tree !=

NULL

);

5094 SCIP_CALL

(

treeNodesToQueue

(tree, reopt, blkmem,

set

, stat, eventfilter, eventqueue, lp, tree->

children

, &tree->

nchildren

,

NULL

,

5122

assert(tree !=

NULL

);

5134 SCIP_CALL

(

SCIPnodeFocus

(&tree->

root

, blkmem,

set

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

5135

conflict, conflictstore, eventfilter, eventqueue, cliquetable, &cutoff,

FALSE

,

FALSE

) );

5164

assert(tree !=

NULL

);

5171 SCIP_CALL

(

SCIPnodeFocus

(&node, blkmem,

set

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

5172

conflict, conflictstore, eventfilter, eventqueue, cliquetable, &cutoff,

FALSE

,

FALSE

) );

5189

assert(tree !=

NULL

);

5203

assert(tree !=

NULL

);

5204

assert(stat !=

NULL

);

5238

assert(tree !=

NULL

);

5239

assert(stat !=

NULL

);

5240

assert(lp !=

NULL

);

5258 for

( i = tree->

nsiblings

-1; i >= 0; --i )

5270 for

( i = tree->

nchildren

-1; i >= 0; --i )

5316 switch

( branchdir )

5328 switch

(

set

->nodesel_childsel )

5343

prio = targetvalue - varsol;

5346

prio = varrootsol - varsol;

5350 if

( !isroot && haslp )

5351

prio *= (varrootsol - varsol + 1.0);

5360 SCIPerrorMessage

(

"invalid preferred branching direction <%d> of variable <%s>\n"

,

5377 switch

(

set

->nodesel_childsel )

5392

prio = varsol - targetvalue;

5395

prio = varsol - varrootsol;

5399 if

( !isroot && haslp )

5400

prio *= (varsol - varrootsol + 1.0);

5414 SCIPerrorMessage

(

"invalid preferred branching direction <%d> of variable <%s>\n"

,

5449

assert(tree !=

NULL

);

5450

assert(var !=

NULL

);

5473 if

( estimateinc > 0.0 )

5474

estimate += estimateinc;

5526

assert(tree !=

NULL

);

5528

assert(var !=

NULL

);

5531 if

( downchild !=

NULL

)

5533 if

( eqchild !=

NULL

)

5535 if

( upchild !=

NULL

)

5553 if

( scalar == 0.0 )

5560

val = (val - constant) / scalar;

5629 SCIPsetDebugMsg

(

set

,

"fixing continuous variable <%s> with value %g and bounds [%.15g, %.15g], priority %d (current lower bound: %g)\n"

,

5661 SCIPsetDebugMsg

(

set

,

"continuous branch on variable <%s> with bounds [%.15g, %.15g], priority %d (current lower bound: %g), node %p\n"

,

5687 SCIPsetDebugMsg

(

set

,

"continuous branch on variable <%s> with value %g, priority %d (current lower bound: %g)\n"

,

5712

center = (ub + lb) / 2.0;

5713 if

( val <= center )

5716

uplb = downub + 1.0;

5721

downub = uplb - 1.0;

5733

downub = fixval - 1.0;

5737

uplb = fixval + 1.0;

5739 SCIPsetDebugMsg

(

set

,

"integral branch on variable <%s> with value %g, priority %d (current lower bound: %g)\n"

,

5746

uplb = downub + 1.0;

5748 SCIPsetDebugMsg

(

set

,

"fractional branch on variable <%s> with value %g, root value %g, priority %d (current lower bound: %g)\n"

,

5766 SCIPsetDebugMsg

(

set

,

" -> creating child: <%s> <= %g (priority: %g, estimate: %g)\n"

,

5769 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

5774 if

( downchild !=

NULL

)

5783 SCIPsetDebugMsg

(

set

,

" -> creating child: <%s> == %g (priority: %g, estimate: %g)\n"

,

5788 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

5793 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

5799 if

( eqchild !=

NULL

)

5811 SCIPsetDebugMsg

(

set

,

" -> creating child: <%s> >= %g (priority: %g, estimate: %g)\n"

,

5814 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

5819 if

( upchild !=

NULL

)

5850

assert(tree !=

NULL

);

5852

assert(var !=

NULL

);

5860 if

( downchild !=

NULL

)

5862 if

( upchild !=

NULL

)

5917 SCIPsetDebugMsg

(

set

,

" -> creating child: <%s> <= %g (priority: %g, estimate: %g)\n"

,

5921 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

NULL

,

5926 if

( downchild !=

NULL

)

5937 SCIPsetDebugMsg

(

set

,

" -> creating child: <%s> >= %g (priority: %g, estimate: %g)\n"

,

5941 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

5946 if

( upchild !=

NULL

)

6000

assert(tree !=

NULL

);

6002

assert(var !=

NULL

);

6004

assert(minwidth >= 0.0);

6015 SCIP_CALL

(

SCIPtreeBranchVar

(tree, reopt, blkmem,

set

, stat, transprob, origprob, lp, branchcand, eventqueue, var, val,

6016

&downchild, &fixchild, &upchild) );

6018 if

( nchildren !=

NULL

)

6019

*nchildren = (downchild !=

NULL

? 1 : 0) + (fixchild !=

NULL

? 1 : 0) + (upchild !=

NULL

? 1 : 0);

6039 if

( scalar == 0.0 )

6046

val = (val - constant) / scalar;

6120 else if

( widthfactor == 1.0 )

6138

assert(widthfactor > 1.0);

6140

width *= (widthfactor - 1.0) / (pow(widthfactor, (

SCIP_Real

)(n/2)) - 1.0);

6142

width /= 0.5 + widthfactor * (pow(widthfactor, (

SCIP_Real

)(n/2)) - 1.0) / (widthfactor - 1.0);

6145

minwidth =

MAX

(1.0, minwidth);

6146 if

( width < minwidth )

6150 SCIPsetDebugMsg

(

set

,

"%d-ary branching on variable <%s> [%g, %g] around %g, initial width = %g\n"

,

6153 if

( nchildren !=

NULL

)

6160

left = val - width/2.0;

6161

right = val + width/2.0;

6166 if

( left <= right )

6178 SCIPsetDebugMsg

(

set

,

" -> creating middle child: %g <= <%s> <= %g (priority: %g, estimate: %g, width: %g)\n"

,

6179

left,

SCIPvarGetName

(var), right, priority, estimate, right - left);

6182 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

6184 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

6189 if

( nchildren !=

NULL

)

6201

width *= widthfactor;

6209 if

( right - left < 0.5 )

6226 for

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

6257 SCIPsetDebugMsg

(

set

,

" -> creating left child: %g <= <%s> <= %g (priority: %g, estimate: %g, width: %g)\n"

,

6258

bnd,

SCIPvarGetName

(var), left, priority, estimate, left - bnd);

6263 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

6266 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

6271 if

( nchildren !=

NULL

)

6291

bnd = right + width;

6308 SCIPsetDebugMsg

(

set

,

" -> creating right child: %g <= <%s> <= %g (priority: %g, estimate: %g, width: %g)\n"

,

6309

right,

SCIPvarGetName

(var), bnd, priority, estimate, bnd - right);

6312 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

6316 SCIP_CALL

(

SCIPnodeAddBoundchg

(node, blkmem,

set

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

6322 if

( nchildren !=

NULL

)

6330

width *= widthfactor;

6339#define ARRAYGROWTH 5 6349 int

idx = preferred ? 0 : 1;

6352

assert(pos < tree->divebdchgsize[idx]);

6381 int

idx = preferred ? 0 : 1;

6383

assert(variables !=

NULL

);

6384

assert(directions !=

NULL

);

6385

assert(values !=

NULL

);

6386

assert(ndivebdchgs !=

NULL

);

6401 for

( p = 0; p < 2; ++p )

6421

assert(tree !=

NULL

);

6424

assert(blkmem !=

NULL

);

6429

assert(currentnode !=

NULL

);

6437

assert(node !=

NULL

);

6475 SCIPsetDebugMsg

(

set

,

"updated probingnode information of parent (%d cols, %d rows)\n"

,

6511

assert(tree !=

NULL

);

6515

assert(lp !=

NULL

);

6517 SCIPsetDebugMsg

(

set

,

"probing started in depth %d (LP flushed: %u, LP solved: %u, solstat: %d), probing root in depth %d\n"

,

6603

assert(tree !=

NULL

);

6605

assert(lpistate !=

NULL

);

6606

assert(lpinorms !=

NULL

);

6654

assert(tree !=

NULL

);

6670

assert(node !=

NULL

);

6691

assert(node !=

NULL

);

6696 if

( lpistate ==

NULL

)

6707 if

( lpistate !=

NULL

)

6710

lpwasprimfeas, lpwasprimchecked, lpwasdualfeas, lpwasdualchecked) );

6714 if

( lpinorms !=

NULL

)

6735

assert(tree !=

NULL

);

6743

assert(node !=

NULL

);

6777

assert(tree !=

NULL

);

6793

assert(newpathlen >= 1);

6796 if

( newpathlen < tree->pathlen )

6808 while

( tree->

pathlen

> newpathlen )

6853

assert(tree->

pathlen

== newpathlen);

6881 SCIP_CALL

(

treeApplyPendingBdchgs

(tree, reopt, blkmem,

set

, stat, transprob, origprob, lp, branchcand, eventqueue, cliquetable) );

6919

assert(tree !=

NULL

);

6924 SCIP_CALL

(

treeBacktrackProbing

(tree, reopt, blkmem,

set

, stat, transprob, origprob, lp, primal, branchcand,

6925

eventqueue, eventfilter, cliquetable, probingdepth) );

6954

assert(tree !=

NULL

);

6968 SCIP_CALL

(

treeBacktrackProbing

(tree, reopt, blkmem,

set

, stat, transprob, origprob, lp, primal, branchcand,

6969

eventqueue, eventfilter, cliquetable, -1) );

7015 SCIP_CALL

(

SCIPlpSolveAndEval

(lp,

set

, messagehdlr, blkmem, stat, eventqueue, eventfilter, transprob, -1LL,

FALSE

,

FALSE

,

FALSE

,

FALSE

, &lperror) );

7030 "LP was not resolved to a sufficient status after probing\n"

);

7065 SCIPsetDebugMsg

(

set

,

"clearing lp state at end of probing mode because LP was initially unsolved\n"

);

7108

assert(tree !=

NULL

);

7110

assert(relaxation !=

NULL

);

7111

assert(transprob !=

NULL

);

7131 for

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

7152

assert(tree !=

NULL

);

7159

assert( nvars <= tree->nprobdiverelaxsol );

7162 for

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

7182

assert(tree !=

NULL

);

7186 for

( i = 0; i < tree->

nchildren

; ++i )

7208

assert(tree !=

NULL

);

7212 for

( i = 0; i < tree->

nsiblings

; ++i )

7235

assert(tree !=

NULL

);

7238

assert(nodesel !=

NULL

);

7241 for

( i = 0; i < tree->

nchildren

; ++i )

7262

assert(tree !=

NULL

);

7265

assert(nodesel !=

NULL

);

7268 for

( i = 0; i < tree->

nsiblings

; ++i )

7284

assert(tree !=

NULL

);

7301

assert(tree !=

NULL

);

7304

assert(nodesel !=

NULL

);

7312

bestnode = bestchild;

7314

bestnode = bestsibling;

7316

bestnode = bestleaf;

7332

assert(tree !=

NULL

);

7339 for

( i = 0; i < tree->

nchildren

; ++i )

7346 for

( i = 0; i < tree->

nsiblings

; ++i )

7372

assert(tree !=

NULL

);

7381 for

( i = 0; i < tree->

nchildren

; ++i )

7388

lowerboundnode = tree->

children

[i];

7396 for

( i = 0; i < tree->

nsiblings

; ++i )

7403

lowerboundnode = tree->

siblings

[i];

7410 return

lowerboundnode;

7423

assert(tree !=

NULL

);

7437 for

( i = 0; i < tree->

nsiblings

; ++i )

7445 for

( i = 0; i < tree->

nchildren

; ++i )

7468#undef SCIPnodeGetType 7469#undef SCIPnodeGetNumber 7470#undef SCIPnodeGetDepth 7471#undef SCIPnodeGetLowerbound 7472#undef SCIPnodeGetEstimate 7473#undef SCIPnodeGetDomchg 7474#undef SCIPnodeGetParent 7475#undef SCIPnodeGetConssetchg 7476#undef SCIPnodeIsActive 7477#undef SCIPnodeIsPropagatedAgain 7478#undef SCIPtreeGetNLeaves 7479#undef SCIPtreeGetNChildren 7480#undef SCIPtreeGetNSiblings 7481#undef SCIPtreeGetNNodes 7482#undef SCIPtreeIsPathComplete 7483#undef SCIPtreeProbing 7484#undef SCIPtreeGetProbingRoot 7485#undef SCIPtreeGetProbingDepth 7486#undef SCIPtreeGetFocusNode 7487#undef SCIPtreeGetFocusDepth 7488#undef SCIPtreeHasFocusNodeLP 7489#undef SCIPtreeSetFocusNodeLP 7490#undef SCIPtreeIsFocusNodeLPConstructed 7491#undef SCIPtreeInRepropagation 7492#undef SCIPtreeGetCurrentNode 7493#undef SCIPtreeGetCurrentDepth 7494#undef SCIPtreeHasCurrentNodeLP 7495#undef SCIPtreeGetEffectiveRootDepth 7496#undef SCIPtreeGetRootNode 7497#undef SCIPtreeProbingObjChanged 7498#undef SCIPtreeMarkProbingObjChanged 7505

assert(node !=

NULL

);

7515

assert(node !=

NULL

);

7525

assert(node !=

NULL

);

7527 return

(

int

) node->

depth

;

7535

assert(node !=

NULL

);

7545

assert(node !=

NULL

);

7555

assert(node !=

NULL

);

7566

assert(node !=

NULL

);

7576

node->

reopttype

= (

unsigned

int) reopttype;

7586

assert(node !=

NULL

);

7597

assert(node !=

NULL

);

7598

assert(

id

<= 536870911);

7610

assert(node !=

NULL

);

7628

assert(node !=

NULL

);

7630

count_branchings = (nbranchings !=

NULL

);

7631

count_consprop = (nconsprop !=

NULL

);

7632

count_prop = (nprop !=

NULL

);

7635 if

( count_branchings )

7637 if

( count_consprop )

7649 if

( count_branchings )

7652 if

( !count_consprop && !count_prop )

7660 if

( count_consprop )

7690 int

npseudobranchvars;

7692

assert(node !=

NULL

);

7700

npseudobranchvars = 0;

7702

assert(boundchgs !=

NULL

);

7703

assert(nboundchgs >= 0);

7708 for

( i = nboundchgs-1; i >= 0; i--)

7719

npseudobranchvars++;

7724 return

npseudobranchvars;

7743

assert(node !=

NULL

);

7744

assert(vars !=

NULL

);

7745

assert(bounds !=

NULL

);

7746

assert(boundtypes !=

NULL

);

7747

assert(nvars !=

NULL

);

7748

assert(varssize >= 0);

7758

assert(boundchgs !=

NULL

);

7759

assert(nboundchgs >= 0);

7764 for

( i = nboundchgs-1; i >= 0; i--)

7780 if

( varssize >= *nvars )

7784 for

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

7795

vars[j] = boundchgs[i].

var

;

7796

bounds[j] = boundchgs[i].

newbound

;

7810

assert(node !=

NULL

);

7831

assert(node !=

NULL

);

7832

assert(branchvars !=

NULL

);

7833

assert(branchbounds !=

NULL

);

7834

assert(boundtypes !=

NULL

);

7835

assert(nbranchvars !=

NULL

);

7836

assert(branchvarssize >= 0);

7846

assert(boundchgs !=

NULL

);

7847

assert(nboundchgs >= 0);

7852 for

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

7862 for

( ; i < nboundchgs; i++)

7867 if

( branchvarssize >= *nbranchvars )

7869 for

( i = 0; i < *nbranchvars; i++)

7872

branchvars[i] = boundchgs[i].

var

;

7874

branchbounds[i] = boundchgs[i].

newbound

;

7891

assert(node !=

NULL

);

7892

assert(branchvars !=

NULL

);

7893

assert(branchbounds !=

NULL

);

7894

assert(boundtypes !=

NULL

);

7895

assert(nbranchvars !=

NULL

);

7896

assert(branchvarssize >= 0);

7902 int

nodenbranchvars;

7906

start = *nbranchvars < branchvarssize - 1 ? *nbranchvars : branchvarssize - 1;

7907

size = *nbranchvars > branchvarssize ? 0 : branchvarssize-(*nbranchvars);

7910

*nbranchvars += nodenbranchvars;

7929

assert(node !=

NULL

);

7930

assert(parent !=

NULL

);

7931

assert(branchvars !=

NULL

);

7932

assert(branchbounds !=

NULL

);

7933

assert(boundtypes !=

NULL

);

7934

assert(nbranchvars !=

NULL

);

7935

assert(branchvarssize >= 0);

7939 while

( node != parent )

7941 int

nodenbranchvars;

7945

start = *nbranchvars < branchvarssize - 1 ? *nbranchvars : branchvarssize - 1;

7946

size = *nbranchvars > branchvarssize ? 0 : branchvarssize-(*nbranchvars);

7949

*nbranchvars += nodenbranchvars;

7976

assert(node !=

NULL

);

7977

assert(vars !=

NULL

);

7978

assert(varbounds !=

NULL

);

7979

assert(varboundtypes !=

NULL

);

7980

assert(npropvars !=

NULL

);

7981

assert(propvarssize >= 0);

7991

assert(boundchgs !=

NULL

);

7992

assert(nboundchgs >= 0);

7998 for

( i = nbranchings; i < nboundchgs; ++i )

8019 if

( propvarssize < *npropvars )

8022 for

( i = nbranchings, pos = 0; pos < *npropvars; ++i )

8024

assert(i < nboundchgs);

8027

vars[pos] = boundchgs[i].

var

;

8029

varbounds[pos] = boundchgs[i].

newbound

;

8058

assert(node !=

NULL

);

8059

assert(vars !=

NULL

);

8060

assert(varbounds !=

NULL

);

8061

assert(varboundtypes !=

NULL

);

8062

assert(nvars !=

NULL

);

8063

assert(varssize >= 0);

8073

assert(boundchgs !=

NULL

);

8074

assert(nboundchgs >= 0);

8077 for

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

8095 for

( ; i < nboundchgs; ++i )

8113 if

( varssize < *nvars )

8117 for

( i = first_dual, pos = 0; pos < *nvars; ++i )

8119

assert(i < nboundchgs);

8133

vars[pos] = boundchgs[i].

var

;

8135

varbounds[pos] = boundchgs[i].

newbound

;

8164 for

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

8174 if

( nbranchings > 0 )

8210

assert(node !=

NULL

);

8211

assert(branchvars !=

NULL

);

8212

assert(branchbounds !=

NULL

);

8213

assert(boundtypes !=

NULL

);

8214

assert(nbranchvars !=

NULL

);

8215

assert(branchvarssize >= 0);

8223 int

nodenbranchvars;

8228

start = *nbranchvars < branchvarssize - 1 ? *nbranchvars : branchvarssize - 1;

8229

size = *nbranchvars > branchvarssize ? 0 : branchvarssize-(*nbranchvars);

8230 if

( *

nnodes

< nodeswitchsize )

8231

nodeswitches[*

nnodes

] = start;

8235

*nbranchvars += nodenbranchvars;

8248

assert(node1 !=

NULL

);

8249

assert(node2 !=

NULL

);

8263 return

(node1 == node2);

8272

assert(node1 !=

NULL

);

8273

assert(node2 !=

NULL

);

8286 while

( node1 != node2 )

8302

assert(node !=

NULL

);

8312

assert(node !=

NULL

);

8322

assert(node !=

NULL

);

8332

assert(tree !=

NULL

);

8342

assert(tree !=

NULL

);

8352

assert(tree !=

NULL

);

8362

assert(tree !=

NULL

);

8372

assert(tree !=

NULL

);

8389

assert(tree !=

NULL

);

8402

assert(tree !=

NULL

);

8415

assert(tree !=

NULL

);

8432

assert(tree !=

NULL

);

8449

assert(tree !=

NULL

);

8460

assert(tree !=

NULL

);

8470

assert(tree !=

NULL

);

8480

assert(tree !=

NULL

);

8490

assert(tree !=

NULL

);

8507

assert(tree !=

NULL

);

8524

assert(tree !=

NULL

);

8535

assert(tree !=

NULL

);

8546

assert(tree !=

NULL

);

8557

assert(tree !=

NULL

);

8559 return

tree->

root

;

8568

assert(tree !=

NULL

);

8579

assert(tree !=

NULL

);

void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)

SCIP_Bool SCIPclockIsRunning(SCIP_CLOCK *clck)

void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)

internal methods for clocks and timing issues

internal methods for storing conflicts

SCIP_RETCODE SCIPconshdlrsStorePropagationStatus(SCIP_SET *set, SCIP_CONSHDLR **conshdlrs, int nconshdlrs)

SCIP_RETCODE SCIPconssetchgUndo(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)

SCIP_RETCODE SCIPconsDisable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat)

SCIP_RETCODE SCIPconssetchgAddAddedCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons, int depth, SCIP_Bool focusnode, SCIP_Bool active)

SCIP_RETCODE SCIPconssetchgFree(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set)

SCIP_RETCODE SCIPconssetchgAddDisabledCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS *cons)

SCIP_RETCODE SCIPconshdlrsResetPropagationStatus(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONSHDLR **conshdlrs, int nconshdlrs)

SCIP_RETCODE SCIPconssetchgApply(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode)

SCIP_RETCODE SCIPconssetchgMakeGlobal(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_REOPT *reopt)

internal methods for constraints and constraint handlers

#define SCIPdebugCheckLbGlobal(scip, var, lb)

#define SCIPdebugCheckUbGlobal(scip, var, ub)

#define SCIPdebugCheckGlobalLowerbound(blkmem, set)

#define SCIPdebugCheckLocalLowerbound(blkmem, set, node)

#define SCIPdebugRemoveNode(blkmem, set, node)

#define SCIPdebugCheckInference(blkmem, set, node, var, newbound, boundtype)

common defines and data types used in all packages of SCIP

#define SCIP_MAXTREEDEPTH

#define SCIP_LONGINT_FORMAT

SCIP_RETCODE SCIPeventChgNode(SCIP_EVENT *event, SCIP_NODE *node)

SCIP_Bool SCIPeventqueueIsDelayed(SCIP_EVENTQUEUE *eventqueue)

SCIP_RETCODE SCIPeventqueueProcess(SCIP_EVENTQUEUE *eventqueue, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)

SCIP_RETCODE SCIPeventProcess(SCIP_EVENT *event, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter)

SCIP_RETCODE SCIPeventChgType(SCIP_EVENT *event, SCIP_EVENTTYPE eventtype)

SCIP_RETCODE SCIPeventqueueDelay(SCIP_EVENTQUEUE *eventqueue)

internal methods for managing events

void SCIPgmlWriteNode(FILE *file, unsigned int id, const char *label, const char *nodetype, const char *fillcolor, const char *bordercolor)

void SCIPgmlWriteClosing(FILE *file)

void SCIPgmlWriteOpening(FILE *file, SCIP_Bool directed)

void SCIPgmlWriteArc(FILE *file, unsigned int source, unsigned int target, const char *label, const char *color)

SCIP_RETCODE SCIPlpiClearState(SCIP_LPI *lpi)

SCIP_Real SCIPrelDiff(SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPconsIsGlobal(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsActive(SCIP_CONS *cons)

const char * SCIPconsGetName(SCIP_CONS *cons)

void SCIPnodeGetAncestorBranchings(SCIP_NODE *node, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize)

void SCIPnodeSetReopttype(SCIP_NODE *node, SCIP_REOPTTYPE reopttype)

void SCIPnodeSetReoptID(SCIP_NODE *node, unsigned int id)

void SCIPnodeGetAncestorBranchingsPart(SCIP_NODE *node, SCIP_NODE *parent, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize)

void SCIPnodeGetParentBranchings(SCIP_NODE *node, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize)

SCIP_NODETYPE SCIPnodeGetType(SCIP_NODE *node)

SCIP_Real SCIPnodeGetLowerbound(SCIP_NODE *node)

void SCIPnodeGetAncestorBranchingPath(SCIP_NODE *node, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize, int *nodeswitches, int *nnodes, int nodeswitchsize)

void SCIPnodeGetNDomchg(SCIP_NODE *node, int *nbranchings, int *nconsprop, int *nprop)

SCIP_NODE * SCIPnodesGetCommonAncestor(SCIP_NODE *node1, SCIP_NODE *node2)

SCIP_Bool SCIPnodeIsActive(SCIP_NODE *node)

SCIP_DOMCHG * SCIPnodeGetDomchg(SCIP_NODE *node)

SCIP_Longint SCIPnodeGetNumber(SCIP_NODE *node)

SCIP_NODE * SCIPnodeGetParent(SCIP_NODE *node)

SCIP_Bool SCIPnodesSharePath(SCIP_NODE *node1, SCIP_NODE *node2)

int SCIPnodeGetNAddedConss(SCIP_NODE *node)

SCIP_Real SCIPnodeGetEstimate(SCIP_NODE *node)

void SCIPnodeGetAddedConss(SCIP_NODE *node, SCIP_CONS **addedconss, int *naddedconss, int addedconsssize)

int SCIPnodeGetDepth(SCIP_NODE *node)

SCIP_REOPTTYPE SCIPnodeGetReopttype(SCIP_NODE *node)

unsigned int SCIPnodeGetReoptID(SCIP_NODE *node)

SCIP_Bool SCIPnodeIsPropagatedAgain(SCIP_NODE *node)

SCIP_RETCODE SCIPnodePrintAncestorBranchings(SCIP_NODE *node, FILE *file)

SCIP_DECL_SORTPTRCOMP(SCIPnodeCompLowerbound)

SCIP_CONSSETCHG * SCIPnodeGetConssetchg(SCIP_NODE *node)

const char * SCIPnodeselGetName(SCIP_NODESEL *nodesel)

const char * SCIPpropGetName(SCIP_PROP *prop)

SCIP_RETCODE SCIPvarGetProbvarBound(SCIP_VAR **var, SCIP_Real *bound, SCIP_BOUNDTYPE *boundtype)

SCIP_Real SCIPvarGetSol(SCIP_VAR *var, SCIP_Bool getlpval)

SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)

SCIP_Bool SCIPvarIsBinary(SCIP_VAR *var)

SCIP_BOUNDTYPE SCIPboundchgGetBoundtype(SCIP_BOUNDCHG *boundchg)

SCIP_VAR * SCIPboundchgGetVar(SCIP_BOUNDCHG *boundchg)

SCIP_BOUNDCHG * SCIPdomchgGetBoundchg(SCIP_DOMCHG *domchg, int pos)

int SCIPvarGetNImpls(SCIP_VAR *var, SCIP_Bool varfixing)

SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)

SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)

SCIP_Real SCIPvarGetObj(SCIP_VAR *var)

SCIP_VAR * SCIPvarGetProbvar(SCIP_VAR *var)

SCIP_VARTYPE SCIPvarGetType(SCIP_VAR *var)

SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)

SCIP_VAR ** SCIPvarGetImplVars(SCIP_VAR *var, SCIP_Bool varfixing)

SCIP_Real SCIPvarGetWorstBoundLocal(SCIP_VAR *var)

int SCIPdomchgGetNBoundchgs(SCIP_DOMCHG *domchg)

int SCIPvarGetProbindex(SCIP_VAR *var)

const char * SCIPvarGetName(SCIP_VAR *var)

SCIP_Real SCIPvarGetRootSol(SCIP_VAR *var)

SCIP_Bool SCIPvarIsDeletable(SCIP_VAR *var)

SCIP_Bool SCIPvarIsIntegral(SCIP_VAR *var)

SCIP_BRANCHDIR SCIPvarGetBranchDirection(SCIP_VAR *var)

SCIP_Real * SCIPvarGetImplBounds(SCIP_VAR *var, SCIP_Bool varfixing)

SCIP_Real SCIPvarGetLPSol(SCIP_VAR *var)

int SCIPvarGetNCliques(SCIP_VAR *var, SCIP_Bool varfixing)

SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)

SCIP_Bool SCIPboundchgIsRedundant(SCIP_BOUNDCHG *boundchg)

SCIP_RETCODE SCIPvarGetProbvarHole(SCIP_VAR **var, SCIP_Real *left, SCIP_Real *right)

int SCIPvarGetBranchPriority(SCIP_VAR *var)

SCIP_CLIQUE ** SCIPvarGetCliques(SCIP_VAR *var, SCIP_Bool varfixing)

SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)

void SCIPvarMarkNotDeletable(SCIP_VAR *var)

SCIP_BOUNDTYPE * SCIPvarGetImplTypes(SCIP_VAR *var, SCIP_Bool varfixing)

SCIP_Bool SCIPvarIsInLP(SCIP_VAR *var)

int SCIPsnprintf(char *t, int len, const char *s,...)

SCIP_VAR ** SCIPcliqueGetVars(SCIP_CLIQUE *clique)

int SCIPcliqueGetNVars(SCIP_CLIQUE *clique)

SCIP_Bool * SCIPcliqueGetValues(SCIP_CLIQUE *clique)

methods for implications, variable bounds, and cliques

SCIP_RETCODE SCIPlpCleanupNew(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Bool root)

SCIP_Real SCIPlpGetModifiedProvedPseudoObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype)

void SCIProwCapture(SCIP_ROW *row)

SCIP_RETCODE SCIPlpFreeState(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate)

SCIP_RETCODE SCIPlpGetNorms(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPINORMS **lpinorms)

void SCIPlpMarkSize(SCIP_LP *lp)

SCIP_RETCODE SCIPlpGetState(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate)

int SCIPlpGetNNewcols(SCIP_LP *lp)

SCIP_RETCODE SCIPlpAddCol(SCIP_LP *lp, SCIP_SET *set, SCIP_COL *col, int depth)

SCIP_RETCODE SCIPlpSetState(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_EVENTQUEUE *eventqueue, SCIP_LPISTATE *lpistate, SCIP_Bool wasprimfeas, SCIP_Bool wasprimchecked, SCIP_Bool wasdualfeas, SCIP_Bool wasdualchecked)

SCIP_Bool SCIPlpDivingObjChanged(SCIP_LP *lp)

SCIP_RETCODE SCIPlpFlush(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_EVENTQUEUE *eventqueue)

SCIP_Real SCIPlpGetModifiedPseudoObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype)

SCIP_LPSOLSTAT SCIPlpGetSolstat(SCIP_LP *lp)

SCIP_RETCODE SCIPlpShrinkCols(SCIP_LP *lp, SCIP_SET *set, int newncols)

SCIP_ROW ** SCIPlpGetNewrows(SCIP_LP *lp)

void SCIPlpRecomputeLocalAndGlobalPseudoObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)

SCIP_RETCODE SCIPlpClear(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)

void SCIPlpSetIsRelax(SCIP_LP *lp, SCIP_Bool relax)

SCIP_Bool SCIPlpIsRelax(SCIP_LP *lp)

SCIP_RETCODE SCIPlpSolveAndEval(SCIP_LP *lp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_Longint itlim, SCIP_Bool limitresolveiters, SCIP_Bool aging, SCIP_Bool keepsol, SCIP_Bool forcedlpsolve, SCIP_Bool *lperror)

SCIP_Real SCIPlpGetObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)

SCIP_RETCODE SCIPlpCleanupAll(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Bool root)

SCIP_RETCODE SCIPlpGetProvedLowerbound(SCIP_LP *lp, SCIP_SET *set, SCIP_Real *bound)

SCIP_COL ** SCIPlpGetNewcols(SCIP_LP *lp)

SCIP_RETCODE SCIPlpFreeNorms(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPINORMS **lpinorms)

SCIP_Bool SCIPlpDiving(SCIP_LP *lp)

void SCIPlpUnmarkDivingObjChanged(SCIP_LP *lp)

SCIP_RETCODE SCIPlpSetNorms(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPINORMS *lpinorms)

SCIP_RETCODE SCIPlpSetCutoffbound(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob, SCIP_Real cutoffbound)

SCIP_RETCODE SCIPlpShrinkRows(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, int newnrows)

SCIP_RETCODE SCIPlpStartProbing(SCIP_LP *lp)

SCIP_RETCODE SCIPlpRemoveAllObsoletes(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)

SCIP_RETCODE SCIPlpEndProbing(SCIP_LP *lp)

SCIP_RETCODE SCIPlpAddRow(SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_ROW *row, int depth)

SCIP_COL ** SCIPlpGetCols(SCIP_LP *lp)

int SCIPlpGetNCols(SCIP_LP *lp)

SCIP_ROW ** SCIPlpGetRows(SCIP_LP *lp)

int SCIPlpGetNNewrows(SCIP_LP *lp)

int SCIPlpGetNRows(SCIP_LP *lp)

void SCIPlpSetSizeMark(SCIP_LP *lp, int nrows, int ncols)

SCIP_RETCODE SCIProwRelease(SCIP_ROW **row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)

internal methods for LP management

interface methods for specific LP solvers

#define BMSduplicateBlockMemoryArray(mem, ptr, source, num)

#define BMSfreeMemory(ptr)

#define BMSfreeBlockMemory(mem, ptr)

#define BMSallocBlockMemory(mem, ptr)

#define BMSreallocMemoryArray(ptr, num)

#define BMSfreeBlockMemoryArrayNull(mem, ptr, num)

#define BMSallocMemoryArray(ptr, num)

#define BMSfreeMemoryArray(ptr)

#define BMSallocBlockMemoryArray(mem, ptr, num)

#define BMSfreeBlockMemoryArray(mem, ptr, num)

#define BMSreallocBlockMemoryArray(mem, ptr, oldnum, newnum)

struct BMS_BlkMem BMS_BLKMEM

#define BMSfreeMemoryArrayNull(ptr)

#define BMSallocMemory(ptr)

void SCIPmessagePrintVerbInfo(SCIP_MESSAGEHDLR *messagehdlr, SCIP_VERBLEVEL verblevel, SCIP_VERBLEVEL msgverblevel, const char *formatstr,...)

SCIP_Real SCIPnodepqGetLowerbound(SCIP_NODEPQ *nodepq, SCIP_SET *set)

int SCIPnodepqLen(const SCIP_NODEPQ *nodepq)

SCIP_RETCODE SCIPnodepqRemove(SCIP_NODEPQ *nodepq, SCIP_SET *set, SCIP_NODE *node)

int SCIPnodeselCompare(SCIP_NODESEL *nodesel, SCIP_SET *set, SCIP_NODE *node1, SCIP_NODE *node2)

SCIP_RETCODE SCIPnodepqFree(SCIP_NODEPQ **nodepq, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp)

SCIP_RETCODE SCIPnodepqBound(SCIP_NODEPQ *nodepq, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound)

SCIP_RETCODE SCIPnodepqSetNodesel(SCIP_NODEPQ **nodepq, SCIP_SET *set, SCIP_NODESEL *nodesel)

SCIP_RETCODE SCIPnodepqClear(SCIP_NODEPQ *nodepq, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp)

SCIP_NODESEL * SCIPnodepqGetNodesel(SCIP_NODEPQ *nodepq)

SCIP_RETCODE SCIPnodepqInsert(SCIP_NODEPQ *nodepq, SCIP_SET *set, SCIP_NODE *node)

SCIP_NODE * SCIPnodepqFirst(const SCIP_NODEPQ *nodepq)

int SCIPnodepqCompare(SCIP_NODEPQ *nodepq, SCIP_SET *set, SCIP_NODE *node1, SCIP_NODE *node2)

SCIP_RETCODE SCIPnodepqCreate(SCIP_NODEPQ **nodepq, SCIP_SET *set, SCIP_NODESEL *nodesel)

SCIP_Real SCIPnodepqGetLowerboundSum(SCIP_NODEPQ *nodepq)

SCIP_NODE * SCIPnodepqGetLowerboundNode(SCIP_NODEPQ *nodepq, SCIP_SET *set)

internal methods for node selectors and node priority queues

internal methods for collecting primal CIP solutions and primal informations

SCIP_RETCODE SCIPprobPerformVarDeletions(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand)

SCIP_RETCODE SCIPprobDelVar(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Bool *deleted)

int SCIPprobGetNVars(SCIP_PROB *prob)

SCIP_VAR ** SCIPprobGetVars(SCIP_PROB *prob)

SCIP_Bool SCIPprobAllColsInLP(SCIP_PROB *prob, SCIP_SET *set, SCIP_LP *lp)

internal methods for storing and manipulating the main problem

internal methods for propagators

public methods for message output

void SCIPrelaxationSetSolValid(SCIP_RELAXATION *relaxation, SCIP_Bool isvalid, SCIP_Bool includeslp)

SCIP_Bool SCIPrelaxationIsLpIncludedForSol(SCIP_RELAXATION *relaxation)

SCIP_Bool SCIPrelaxationIsSolValid(SCIP_RELAXATION *relaxation)

internal methods for relaxators

SCIP_RETCODE SCIPreoptCheckCutoff(SCIP_REOPT *reopt, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_NODE *node, SCIP_EVENTTYPE eventtype, SCIP_LP *lp, SCIP_LPSOLSTAT lpsolstat, SCIP_Bool isrootnode, SCIP_Bool isfocusnode, SCIP_Real lowerbound, int effectiverootdepth)

data structures and methods for collecting reoptimization information

SCIP_Real SCIPsetFloor(SCIP_SET *set, SCIP_Real val)

SCIP_Bool SCIPsetIsRelLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)

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 SCIPsetCeil(SCIP_SET *set, SCIP_Real val)

SCIP_Bool SCIPsetIsRelEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)

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_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_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 SCIPsetIsRelGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)

int SCIPsetCalcPathGrowSize(SCIP_SET *set, int num)

SCIP_Bool SCIPsetIsRelGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPsetIsGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)

SCIP_Bool SCIPsetIsFeasGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)

int SCIPsetCalcMemGrowSize(SCIP_SET *set, int num)

SCIP_Bool SCIPsetIsFeasIntegral(SCIP_SET *set, SCIP_Real val)

internal methods for global SCIP settings

SCIP_RETCODE SCIPpropagateDomains(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_CONFLICT *conflict, SCIP_CLIQUETABLE *cliquetable, int depth, int maxproprounds, SCIP_PROPTIMING timingmask, SCIP_Bool *cutoff)

internal methods for main solving loop and node processing

void SCIPstatUpdatePrimalDualIntegrals(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real upperbound, SCIP_Real lowerbound)

internal methods for problem statistics

#define SCIPstatIncrement(stat, set, field)

union SCIP_BoundChg::@21 data

SCIP_INFERENCEDATA inferencedata

unsigned int boundchgtype

SCIP_CONS ** disabledconss

unsigned int updatedisable

SCIP_BOUNDCHG * boundchgs

SCIP_BOUNDCHG * boundchgs

unsigned int lpwasprimfeas

unsigned int lpwasprimchecked

unsigned int lpwasdualfeas

unsigned int lpwasdualchecked

unsigned int repropsubtreemark

SCIP_PROBINGNODE * probingnode

SCIP_PSEUDOFORK * pseudofork

union SCIP_Node::@19 data

SCIP_CONSSETCHG * conssetchg

SCIP_Bool lpwasdualchecked

SCIP_Bool lpwasprimchecked

SCIP_Longint nearlybacktracks

SCIP_Longint nactiveconssadded

SCIP_Longint nrepropcutoffs

SCIP_Longint ncreatednodesrun

SCIP_CLOCK * nodeactivationtime

SCIP_Longint nprobholechgs

SCIP_Longint ndeactivatednodes

SCIP_Longint nrepropboundchgs

SCIP_Longint nactivatednodes

SCIP_Longint ncreatednodes

unsigned int lpwasdualchecked

unsigned int lpwasdualfeas

unsigned int lpwasprimchecked

unsigned int lpwasprimfeas

SCIP_Bool focuslpconstructed

SCIP_LPISTATE * probinglpistate

SCIP_PENDINGBDCHG * pendingbdchgs

SCIP_Bool probinglpwasdualchecked

SCIP_NODE * focuslpstatefork

SCIP_Bool probinglpwasprimfeas

SCIP_BRANCHDIR * divebdchgdirs[2]

SCIP_Bool probinglpwassolved

SCIP_Bool probinglpwasrelax

SCIP_Bool probingnodehaslp

SCIP_Bool probingobjchanged

SCIP_Real * divebdchgvals[2]

int updatedeffectiverootdepth

SCIP_Bool probdiverelaxincludeslp

SCIP_VAR ** divebdchgvars[2]

SCIP_Bool probingsolvedlp

SCIP_Bool probinglpwasprimchecked

SCIP_LPINORMS * probinglpinorms

SCIP_Bool probinglpwasflushed

SCIP_Longint lastbranchparentid

SCIP_Bool probdiverelaxstored

SCIP_Real * probdiverelaxsol

SCIP_Bool probingloadlpistate

SCIP_Longint focuslpstateforklpcount

SCIP_Bool probinglpwasdualfeas

datastructures for managing events

datastructures for block memory pools and memory buffers

SCIP main data structure.

void SCIPnodeUpdateLowerbound(SCIP_NODE *node, SCIP_STAT *stat, SCIP_SET *set, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real newbound)

SCIP_Bool SCIPtreeIsFocusNodeLPConstructed(SCIP_TREE *tree)

SCIP_NODE * SCIPtreeGetProbingRoot(SCIP_TREE *tree)

SCIP_RETCODE SCIPnodeReleaseLPIState(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_LP *lp)

SCIP_RETCODE SCIPnodeAddHoleinfer(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange, SCIP_Bool *added)

static SCIP_RETCODE forkCreate(SCIP_FORK **fork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)

static void treeCheckPath(SCIP_TREE *tree)

static void subrootCaptureLPIState(SCIP_SUBROOT *subroot, int nuses)

void SCIPnodeGetDualBoundchgs(SCIP_NODE *node, SCIP_VAR **vars, SCIP_Real *bounds, SCIP_BOUNDTYPE *boundtypes, int *nvars, int varssize)

SCIP_NODE * SCIPtreeGetBestSibling(SCIP_TREE *tree, SCIP_SET *set)

SCIP_RETCODE SCIPnodeCutoff(SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_REOPT *reopt, SCIP_LP *lp, BMS_BLKMEM *blkmem)

static SCIP_RETCODE treeApplyPendingBdchgs(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable)

static SCIP_RETCODE focusnodeToFork(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable)

static SCIP_RETCODE treeUpdatePathLPSize(SCIP_TREE *tree, int startdepth)

SCIP_NODE * SCIPtreeGetFocusNode(SCIP_TREE *tree)

SCIP_Bool SCIPtreeProbing(SCIP_TREE *tree)

int SCIPtreeGetFocusDepth(SCIP_TREE *tree)

SCIP_Real SCIPtreeGetAvgLowerbound(SCIP_TREE *tree, SCIP_Real cutoffbound)

static SCIP_RETCODE pseudoforkFree(SCIP_PSEUDOFORK **pseudofork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)

SCIP_Bool SCIPtreeIsPathComplete(SCIP_TREE *tree)

static SCIP_RETCODE focusnodeToLeaf(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_NODE *lpstatefork, SCIP_Real cutoffbound)

static SCIP_RETCODE junctionInit(SCIP_JUNCTION *junction, SCIP_TREE *tree)

SCIP_Bool SCIPtreeProbingObjChanged(SCIP_TREE *tree)

int SCIPtreeGetProbingDepth(SCIP_TREE *tree)

SCIP_RETCODE SCIPtreeSetNodesel(SCIP_TREE *tree, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_NODESEL *nodesel)

static SCIP_RETCODE nodeDeactivate(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue)

SCIP_RETCODE SCIPnodeDelCons(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_CONS *cons)

void SCIPnodeSetEstimate(SCIP_NODE *node, SCIP_SET *set, SCIP_Real newestimate)

SCIP_RETCODE SCIPtreeBranchVarHole(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_NODE **downchild, SCIP_NODE **upchild)

SCIP_RETCODE SCIPtreeBranchVarNary(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real val, int n, SCIP_Real minwidth, SCIP_Real widthfactor, int *nchildren)

void SCIPnodePropagateAgain(SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree)

SCIP_RETCODE SCIPnodeCaptureLPIState(SCIP_NODE *node, int nuses)

static SCIP_RETCODE forkAddLP(SCIP_NODE *fork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)

static SCIP_RETCODE treeCreateProbingNode(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)

static void treeNextRepropsubtreecount(SCIP_TREE *tree)

void SCIPnodeGetPropsAfterDual(SCIP_NODE *node, SCIP_VAR **vars, SCIP_Real *varbounds, SCIP_BOUNDTYPE *varboundtypes, int *nvars, int varssize)

SCIP_RETCODE SCIPtreeStartProbing(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PROB *transprob, SCIP_Bool strongbranching)

static SCIP_RETCODE treeEnsureChildrenMem(SCIP_TREE *tree, SCIP_SET *set, int num)

SCIP_RETCODE SCIPtreeFree(SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)

SCIP_RETCODE SCIPtreeBranchVar(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real val, SCIP_NODE **downchild, SCIP_NODE **eqchild, SCIP_NODE **upchild)

int SCIPtreeGetNChildren(SCIP_TREE *tree)

SCIP_RETCODE SCIPtreeSetProbingLPState(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_LP *lp, SCIP_LPISTATE **lpistate, SCIP_LPINORMS **lpinorms, SCIP_Bool primalfeas, SCIP_Bool dualfeas)

SCIP_RETCODE SCIPnodeFree(SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp)

SCIP_NODE * SCIPtreeGetCurrentNode(SCIP_TREE *tree)

void SCIPnodeMarkPropagated(SCIP_NODE *node, SCIP_TREE *tree)

int SCIPtreeGetNLeaves(SCIP_TREE *tree)

SCIP_NODE * SCIPtreeGetRootNode(SCIP_TREE *tree)

SCIP_RETCODE SCIPtreeStoreRelaxSol(SCIP_TREE *tree, SCIP_SET *set, SCIP_RELAXATION *relaxation, SCIP_PROB *transprob)

SCIP_RETCODE SCIPnodeCreateChild(SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_Real nodeselprio, SCIP_Real estimate)

static void treeRemoveChild(SCIP_TREE *tree, SCIP_NODE *child)

void SCIPtreeMarkProbingObjChanged(SCIP_TREE *tree)

static void treeChildrenToSiblings(SCIP_TREE *tree)

static SCIP_RETCODE nodeToLeaf(SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_NODE *lpstatefork, SCIP_Real cutoffbound)

SCIP_RETCODE SCIPtreeAddDiveBoundChange(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Bool preferred)

SCIP_Bool SCIPtreeHasCurrentNodeLP(SCIP_TREE *tree)

SCIP_Real SCIPtreeGetLowerbound(SCIP_TREE *tree, SCIP_SET *set)

SCIP_RETCODE SCIPnodeAddBoundinfer(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_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange)

SCIP_RETCODE SCIPtreeRestoreRelaxSol(SCIP_TREE *tree, SCIP_SET *set, SCIP_RELAXATION *relaxation, SCIP_PROB *transprob)

static SCIP_RETCODE probingnodeCreate(SCIP_PROBINGNODE **probingnode, BMS_BLKMEM *blkmem, SCIP_LP *lp)

SCIP_RETCODE SCIPnodeAddHolechg(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_Bool probingchange, SCIP_Bool *added)

static void treeFindSwitchForks(SCIP_TREE *tree, SCIP_NODE *node, SCIP_NODE **commonfork, SCIP_NODE **newlpfork, SCIP_NODE **newlpstatefork, SCIP_NODE **newsubroot, SCIP_Bool *cutoff)

SCIP_RETCODE SCIPtreeCreatePresolvingRoot(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable)

SCIP_RETCODE SCIPnodePropagateImplics(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_Bool *cutoff)

static SCIP_RETCODE focusnodeCleanupVars(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool inlp)

SCIP_NODE * SCIPtreeGetBestChild(SCIP_TREE *tree, SCIP_SET *set)

SCIP_RETCODE SCIPtreeLoadProbingLPState(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)

static SCIP_RETCODE treeAddPendingBdchg(SCIP_TREE *tree, SCIP_SET *set, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange)

int SCIPtreeGetEffectiveRootDepth(SCIP_TREE *tree)

static void treeRemoveSibling(SCIP_TREE *tree, SCIP_NODE *sibling)

static SCIP_RETCODE subrootReleaseLPIState(SCIP_SUBROOT *subroot, BMS_BLKMEM *blkmem, SCIP_LP *lp)

SCIP_NODE * SCIPtreeGetPrioSibling(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)

void SCIPtreeSetFocusNodeLP(SCIP_TREE *tree, SCIP_Bool solvelp)

int SCIPnodeGetNDualBndchgs(SCIP_NODE *node)

SCIP_RETCODE SCIPnodeAddCons(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_CONS *cons)

int SCIPtreeGetNNodes(SCIP_TREE *tree)

static SCIP_RETCODE subrootConstructLP(SCIP_NODE *subroot, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)

static SCIP_RETCODE treeSwitchPath(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_NODE *fork, SCIP_NODE *focusnode, SCIP_Bool *cutoff)

static SCIP_RETCODE treeAddChild(SCIP_TREE *tree, SCIP_SET *set, SCIP_NODE *child, SCIP_Real nodeselprio)

static SCIP_RETCODE treeNodesToQueue(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_NODE **nodes, int *nnodes, SCIP_NODE *lpstatefork, SCIP_Real cutoffbound)

static SCIP_RETCODE pseudoforkCreate(SCIP_PSEUDOFORK **pseudofork, BMS_BLKMEM *blkmem, SCIP_TREE *tree, SCIP_LP *lp)

static SCIP_RETCODE probingnodeFree(SCIP_PROBINGNODE **probingnode, BMS_BLKMEM *blkmem, SCIP_LP *lp)

SCIP_Real SCIPtreeCalcNodeselPriority(SCIP_TREE *tree, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_BRANCHDIR branchdir, SCIP_Real targetvalue)

SCIP_RETCODE SCIPtreeClear(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)

static SCIP_RETCODE forkReleaseLPIState(SCIP_FORK *fork, BMS_BLKMEM *blkmem, SCIP_LP *lp)

static SCIP_RETCODE probingnodeUpdate(SCIP_PROBINGNODE *probingnode, BMS_BLKMEM *blkmem, SCIP_TREE *tree, SCIP_LP *lp)

int SCIPtreeGetNSiblings(SCIP_TREE *tree)

SCIP_NODE * SCIPtreeGetBestNode(SCIP_TREE *tree, SCIP_SET *set)

static SCIP_RETCODE treeEnsurePendingbdchgsMem(SCIP_TREE *tree, SCIP_SET *set, int num)

static SCIP_RETCODE nodeReleaseParent(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp)

SCIP_NODE * SCIPtreeGetBestLeaf(SCIP_TREE *tree)

SCIP_RETCODE SCIPtreeEndProbing(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PRIMAL *primal, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)

SCIP_Bool SCIPtreeHasFocusNodeLP(SCIP_TREE *tree)

void SCIPtreeGetDiveBoundChangeData(SCIP_TREE *tree, SCIP_VAR ***variables, SCIP_BRANCHDIR **directions, SCIP_Real **values, int *ndivebdchgs, SCIP_Bool preferred)

SCIP_RETCODE SCIPnodeFocus(SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, 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_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff, SCIP_Bool postponed, SCIP_Bool exitsolve)

SCIP_RETCODE SCIPtreeCreate(SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_NODESEL *nodesel)

void SCIPchildChgNodeselPrio(SCIP_TREE *tree, SCIP_NODE *child, SCIP_Real priority)

int SCIPtreeGetCurrentDepth(SCIP_TREE *tree)

SCIP_NODE * SCIPtreeGetPrioChild(SCIP_TREE *tree)

static SCIP_RETCODE treeEnsurePathMem(SCIP_TREE *tree, SCIP_SET *set, int num)

SCIP_RETCODE SCIPtreeCreateRoot(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)

static SCIP_RETCODE subrootFree(SCIP_SUBROOT **subroot, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)

SCIP_Bool SCIPtreeWasNodeLastBranchParent(SCIP_TREE *tree, SCIP_NODE *node)

SCIP_RETCODE SCIPtreeCreateProbingNode(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)

static SCIP_RETCODE forkFree(SCIP_FORK **fork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)

SCIP_RETCODE SCIPtreeMarkProbingNodeHasLP(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_LP *lp)

SCIP_RETCODE SCIPnodeUpdateLowerboundLP(SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp)

SCIP_RETCODE SCIPtreeCutoff(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_Real cutoffbound)

static SCIP_RETCODE treeBacktrackProbing(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_PRIMAL *primal, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, int probingdepth)

SCIP_RETCODE SCIPtreeLoadLPState(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)

SCIP_Bool SCIPtreeInRepropagation(SCIP_TREE *tree)

static SCIP_RETCODE nodeAssignParent(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_TREE *tree, SCIP_NODE *parent, SCIP_Real nodeselprio)

static SCIP_RETCODE focusnodeToPseudofork(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable)

static void forkCaptureLPIState(SCIP_FORK *fork, int nuses)

SCIP_NODESEL * SCIPtreeGetNodesel(SCIP_TREE *tree)

SCIP_Real SCIPtreeCalcChildEstimate(SCIP_TREE *tree, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real targetvalue)

SCIP_NODE * SCIPtreeGetLowerboundNode(SCIP_TREE *tree, SCIP_SET *set)

SCIP_RETCODE SCIPtreeBacktrackProbing(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_PRIMAL *primal, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, int probingdepth)

static SCIP_RETCODE focusnodeToJunction(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp)

void SCIPnodeGetPropsBeforeDual(SCIP_NODE *node, SCIP_VAR **vars, SCIP_Real *varbounds, SCIP_BOUNDTYPE *varboundtypes, int *npropvars, int propvarssize)

static SCIP_RETCODE nodeActivate(SCIP_NODE *node, 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_CONFLICT *conflict, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff)

SCIP_RETCODE SCIPtreeLoadLP(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp, SCIP_Bool *initroot)

static SCIP_RETCODE nodeCreate(SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set)

static SCIP_RETCODE focusnodeToDeadend(BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable)

void SCIPtreeClearDiveBoundChanges(SCIP_TREE *tree)

SCIP_RETCODE SCIPtreeFreePresolvingRoot(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable)

static SCIP_RETCODE nodeRepropagate(SCIP_NODE *node, 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_CONFLICT *conflict, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff)

static SCIP_RETCODE pseudoforkAddLP(SCIP_NODE *pseudofork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)

internal methods for branch and bound tree

#define SCIP_EVENTTYPE_NODEINFEASIBLE

#define SCIP_EVENTTYPE_NODEDELETE

@ SCIP_BRANCHDIR_DOWNWARDS

enum SCIP_BranchDir SCIP_BRANCHDIR

enum SCIP_BoundType SCIP_BOUNDTYPE

@ SCIP_LPSOLSTAT_NOTSOLVED

@ SCIP_LPSOLSTAT_TIMELIMIT

@ SCIP_LPSOLSTAT_UNBOUNDEDRAY

@ SCIP_LPSOLSTAT_INFEASIBLE

@ SCIP_LPSOLSTAT_OBJLIMIT

@ SCIP_LPSOLSTAT_ITERLIMIT

@ SCIP_REOPTTYPE_INFSUBTREE

@ SCIP_REOPTTYPE_LOGICORNODE

@ SCIP_REOPTTYPE_FEASIBLE

@ SCIP_REOPTTYPE_STRBRANCHED

enum SCIP_ReoptType SCIP_REOPTTYPE

enum SCIP_Retcode SCIP_RETCODE

#define SCIP_PROPTIMING_ALWAYS

enum SCIP_NodeType SCIP_NODETYPE

@ SCIP_NODETYPE_REFOCUSNODE

@ SCIP_NODETYPE_PROBINGNODE

@ SCIP_NODETYPE_PSEUDOFORK

@ SCIP_NODETYPE_FOCUSNODE

@ SCIP_DOMCHGTYPE_DYNAMIC

@ SCIP_VARTYPE_CONTINUOUS

@ SCIP_BOUNDCHGTYPE_PROPINFER

@ SCIP_BOUNDCHGTYPE_BRANCHING

@ SCIP_BOUNDCHGTYPE_CONSINFER

@ SCIP_VARSTATUS_MULTAGGR

SCIP_DOMCHGBOUND domchgbound

SCIP_Real SCIPvarGetPseudocost(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real solvaldelta)

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)

SCIP_RETCODE SCIPdomchgUndo(SCIP_DOMCHG *domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue)

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)

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_RETCODE SCIPvarRelease(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)

void SCIPvarAdjustLb(SCIP_VAR *var, SCIP_SET *set, SCIP_Real *lb)

void SCIPvarAdjustBd(SCIP_VAR *var, SCIP_SET *set, SCIP_BOUNDTYPE boundtype, SCIP_Real *bd)

SCIP_RETCODE SCIPdomchgFree(SCIP_DOMCHG **domchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)

void SCIPvarCapture(SCIP_VAR *var)

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)

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 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_Real SCIPvarGetRelaxSol(SCIP_VAR *var, SCIP_SET *set)

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)

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 SCIPvarGetProbvarSum(SCIP_VAR **var, SCIP_SET *set, SCIP_Real *scalar, SCIP_Real *constant)

void SCIPvarAdjustUb(SCIP_VAR *var, SCIP_SET *set, SCIP_Real *ub)

SCIP_RETCODE SCIPvarSetRelaxSol(SCIP_VAR *var, SCIP_SET *set, SCIP_RELAXATION *relaxation, SCIP_Real solval, SCIP_Bool updateobj)

internal methods for problem variables

SCIP_RETCODE SCIPvisualUpdateChild(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)

void SCIPvisualLowerbound(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real lowerbound)

void SCIPvisualMarkedRepropagateNode(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)

SCIP_RETCODE SCIPvisualNewChild(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)

void SCIPvisualCutoffNode(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node, SCIP_Bool infeasible)

void SCIPvisualRepropagatedNode(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)

methods for creating output for visualization tools (VBC, BAK)


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