A RetroSearch Logo

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

Search Query:

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

SCIP Doxygen Documentation: cons_varbound.c Source File

88#define CONSHDLR_NAME "varbound" 89#define CONSHDLR_DESC "variable bounds lhs <= x + c*y <= rhs, x non-binary, y non-continuous" 90#define CONSHDLR_SEPAPRIORITY +900000 91#define CONSHDLR_ENFOPRIORITY -500000 92#define CONSHDLR_CHECKPRIORITY -500000 93#define CONSHDLR_SEPAFREQ 0 94#define CONSHDLR_PROPFREQ 1 95#define CONSHDLR_EAGERFREQ 100 97#define CONSHDLR_MAXPREROUNDS -1 98#define CONSHDLR_DELAYSEPA FALSE 99#define CONSHDLR_DELAYPROP FALSE 100#define CONSHDLR_NEEDSCONS TRUE 102#define CONSHDLR_PRESOLTIMING (SCIP_PRESOLTIMING_FAST | SCIP_PRESOLTIMING_MEDIUM) 103#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP 105#define EVENTHDLR_NAME "varbound" 106#define EVENTHDLR_DESC "bound change event handler for variable bound constraints" 108#define LINCONSUPGD_PRIORITY +50000 117#define DEFAULT_PRESOLPAIRWISE TRUE 118#define DEFAULT_MAXLPCOEF 1e+09 119#define DEFAULT_USEBDWIDENING TRUE 122#define MAXSCALEDCOEF 1000LL 136 unsigned int

presolved:1;

137 unsigned int

varboundsadded:1;

138 unsigned int

changed:1;

139 unsigned int

tightened:1;

143struct

SCIP_ConshdlrData

185

assert(elem1 !=

NULL

);

186

assert(elem2 !=

NULL

);

191

assert(consdata1 !=

NULL

);

192

assert(consdata2 !=

NULL

);

204

&& !consdata1->changed && consdata2->changed) )

208

&& (consdata1->changed == consdata2->changed) )

223

assert(conshdlrdata !=

NULL

);

228

(*conshdlrdata)->eventhdlr = eventhdlr;

241

assert(conshdlrdata !=

NULL

);

242

assert(*conshdlrdata !=

NULL

);

259

assert(cons !=

NULL

);

260

assert(eventhdlr !=

NULL

);

262

assert(consdata !=

NULL

);

279

assert(cons !=

NULL

);

280

assert(eventhdlr !=

NULL

);

282

assert(consdata !=

NULL

);

302

assert(consdata !=

NULL

);

319 SCIPerrorMessage

(

"left hand side of varbound constraint greater than right hand side\n"

);

335

(*consdata)->var = var;

336

(*consdata)->vbdvar = vbdvar;

337

(*consdata)->vbdcoef = vbdcoef;

338

(*consdata)->lhs = lhs;

339

(*consdata)->rhs = rhs;

340

(*consdata)->row =

NULL

;

341

(*consdata)->nlrow =

NULL

;

342

(*consdata)->presolved =

FALSE

;

343

(*consdata)->varboundsadded =

FALSE

;

344

(*consdata)->changed =

TRUE

;

345

(*consdata)->tightened =

FALSE

;

373

assert(consdata !=

NULL

);

374

assert(*consdata !=

NULL

);

377 if

( (*consdata)->row !=

NULL

)

383 if

( (*consdata)->nlrow !=

NULL

)

407

assert(consdata !=

NULL

);

408

assert(consdata->row ==

NULL

);

431

assert(consdata !=

NULL

);

435 if

( conshdlr ==

NULL

)

442

assert(conshdlrdata !=

NULL

);

450 if

( consdata->row ==

NULL

)

454

assert(consdata->row !=

NULL

);

482

assert(consdata !=

NULL

);

484 if

( consdata->nlrow ==

NULL

)

489

assert(consdata->lhs <= consdata->rhs);

491

vars[0] = consdata->var;

492

vars[1] = consdata->vbdvar;

495

coefs[1] = consdata->vbdcoef;

500

assert(consdata->nlrow !=

NULL

);

525

assert(consdata !=

NULL

);

527 SCIPdebugMsg

(

scip

,

"checking variable bound constraint <%s> for feasibility of solution %p (lprows=%u)\n"

,

539

absviol =

MAX

(consdata->lhs - sum, sum - consdata->rhs);

542

relviol =

MAX

(lhsrelviol, rhsrelviol);

579

assert(consdata !=

NULL

);

583

assert(var !=

NULL

);

585

vbdvar = consdata->vbdvar;

586

assert(vbdvar !=

NULL

);

588

vbdcoef = consdata->vbdcoef;

595

assert(infervar == var);

674

assert(infervar == vbdvar);

783

assert(infervar == var);

861

assert(infervar == vbdvar);

1001 if

( usebdwidening )

1010

relaxedub = inferbd - 1.0;

1017

assert(consdata !=

NULL

);

1020

assert(infervar == consdata->var);

1022

abscoef =

REALABS

(consdata->vbdcoef);

1042

inferbd = inferbd + 1.0;

1049

assert(consdata !=

NULL

);

1052

assert(infervar == consdata->var);

1054

abscoef =

REALABS

(consdata->vbdcoef);

1069 if

( usebdwidening )

1080

relaxedlb = inferbd + 1.0;

1087

assert(consdata !=

NULL

);

1090

assert(infervar == consdata->var);

1092

abscoef =

REALABS

(consdata->vbdcoef);

1112

inferbd = inferbd - 1.0;

1119

assert(consdata !=

NULL

);

1122

assert(infervar == consdata->var);

1124

abscoef =

REALABS

(consdata->vbdcoef);

1164

assert(cons !=

NULL

);

1165

assert(result !=

NULL

);

1168

assert(consdata !=

NULL

);

1172 if

( conshdlr ==

NULL

)

1180

var = consdata->var;

1181

vbdvar = consdata->vbdvar;

1182

vbdcoef = consdata->vbdcoef;

1203

&cutoff, &tightened) );

1215 else if

( tightened )

1234

&cutoff, &tightened) );

1246 else if

( tightened )

1261 if

( consdata->row ==

NULL

)

1265

assert(consdata->row !=

NULL

);

1298

assert(cons !=

NULL

);

1306

assert(consdata !=

NULL

);

1307

assert(consdata->var !=

NULL

&& consdata->vbdvar !=

NULL

);

1314

assert(consdata->row ==

NULL

);

1318

consdata->rhs = lhs;

1327 if

( consdata->vbdcoef > 0.0 )

1341 if

( consdata->vbdcoef > 0.0 )

1354

consdata->varboundsadded =

FALSE

;

1355

consdata->tightened =

FALSE

;

1360

consdata->presolved =

FALSE

;

1361

consdata->lhs = lhs;

1362

consdata->changed =

TRUE

;

1378

assert(cons !=

NULL

);

1386

assert(consdata !=

NULL

);

1387

assert(consdata->var !=

NULL

&& consdata->vbdvar !=

NULL

);

1394

assert(consdata->row ==

NULL

);

1398

consdata->lhs = rhs;

1408 if

( consdata->vbdcoef > 0.0 )

1422 if

( consdata->vbdcoef > 0.0 )

1435

consdata->varboundsadded =

FALSE

;

1436

consdata->tightened =

FALSE

;

1441

consdata->presolved =

FALSE

;

1442

consdata->rhs = rhs;

1443

consdata->changed =

TRUE

;

1470

assert(cutoff !=

NULL

);

1471

assert(nchgbds !=

NULL

);

1474

assert(consdata !=

NULL

);

1476 SCIPdebugMsg

(

scip

,

"propagating variable bound constraint <%s>: %.15g <= <%s>[%.9g, %.9g] + %.15g<%s>[%.9g, %.9g] <= %.15g\n"

,

1514

tightenedround =

FALSE

;

1526 if

( consdata->vbdcoef > 0.0 )

1576

tightenedround =

TRUE

;

1590 if

( consdata->vbdcoef > 0.0 )

1598 if

( newlb > ylb + 0.5 )

1615

tightenedround =

TRUE

;

1630 if

( newub < yub - 0.5 )

1649

tightenedround =

TRUE

;

1669 if

( consdata->vbdcoef > 0.0 )

1719

tightenedround =

TRUE

;

1733 if

( consdata->vbdcoef > 0.0 )

1741 if

( newub < yub - 0.5 )

1760

tightenedround =

TRUE

;

1775 if

( newlb > ylb + 0.5 )

1794

tightenedround =

TRUE

;

1805 while

( tightenedround );

1812

((consdata->vbdcoef > 0.0 &&

SCIPisGE

(

scip

, xlb + consdata->vbdcoef * ylb, consdata->lhs))

1813

|| (consdata->vbdcoef < 0.0 &&

SCIPisGE

(

scip

, xlb + consdata->vbdcoef * yub, consdata->lhs))) )

1823

((consdata->vbdcoef > 0.0 &&

SCIPisLE

(

scip

, xub + consdata->vbdcoef * yub, consdata->rhs))

1824

|| (consdata->vbdcoef < 0.0 &&

SCIPisLE

(

scip

, xub + consdata->vbdcoef * ylb, consdata->rhs))) )

1834

|| (consdata->vbdcoef > 0.0 &&

SCIPisGE

(

scip

, xlb + consdata->vbdcoef * ylb, consdata->lhs))

1835

|| (consdata->vbdcoef < 0.0 &&

SCIPisGE

(

scip

, xlb + consdata->vbdcoef * yub, consdata->lhs)))

1837

|| (consdata->vbdcoef > 0.0 &&

SCIPisLE

(

scip

, xub + consdata->vbdcoef * yub, consdata->rhs))

1838

|| (consdata->vbdcoef < 0.0 &&

SCIPisLE

(

scip

, xub + consdata->vbdcoef * ylb, consdata->rhs))) )

1840 SCIPdebugMsg

(

scip

,

"variable bound constraint <%s> is redundant: <%s>[%.15g,%.15g], <%s>[%.15g,%.15g]\n"

,

1847#ifdef SCIP_DISABLED_CODE 1892 if

( ndelconss !=

NULL

)

1944

assert(var !=

NULL

);

1945

assert(vbdvar !=

NULL

);

1946

assert(sideequal !=

NULL

);

1947

assert(cons0sidered !=

NULL

);

1948

assert(cons1sidered !=

NULL

);

1949

assert(coef0 * coef1 > 0.0);

1953

*sideequal =

FALSE

;

1957

redundant0 = cons1sidered;

1958

redundant1 = cons0sidered;

1962

redundant0 = cons0sidered;

1963

redundant1 = cons1sidered;

1976 if

( !*redundant0 && !*redundant1 )

1994

boundxlb1 = side0 - lbvbdvar * coef0;

1995

boundxlb2 = side1 - lbvbdvar * coef1;

2012

boundylb1 = (side0 - lbvar) / coef0;

2013

boundylb2 = (side1 - lbvar) / coef1;

2030

boundxub1 = side0 - ubvbdvar * coef0;

2031

boundxub2 = side1 - ubvbdvar * coef1;

2048

boundyub1 = (side0 - ubvar) / coef0;

2049

boundyub2 = (side1 - ubvar) / coef1;

2054

boundvaluex1 =

MAX

(boundxlb1, boundxlb2);

2055

boundvaluex2 =

MAX

(boundxub1, boundxub2);

2059

boundvaluex1 =

MIN

(boundxlb1, boundxlb2);

2060

boundvaluex2 =

MIN

(boundxub1, boundxub2);

2066

valuex1 =

MIN

(boundvaluex1, ubvar);

2067

valuex1 =

MAX

(valuex1, lbvar);

2068

valuex2 =

MAX

(boundvaluex2, lbvar);

2069

valuex2 =

MIN

(valuex2, ubvar);

2080

valuex1 =

MAX

(boundvaluex1, lbvar);

2081

valuex1 =

MIN

(valuex1, ubvar);

2082

valuex2 =

MIN

(boundvaluex2, ubvar);

2083

valuex2 =

MAX

(valuex2, lbvar);

2099

valuey1 = side0 / coef0;

2100

valuey2 = side1 / coef1;

2103 else if

( valuex1 > 0.0 )

2117

valuey1 = (side0 - valuex1) / coef0;

2118

valuey2 = (side1 - valuex1) / coef1;

2124 else if

( coef0 > 0.0 )

2126 if

( valuey1 < valuey2 )

2127

*redundant1 =

TRUE

;

2129

*redundant0 =

TRUE

;

2133 if

( valuey1 < valuey2 )

2134

*redundant0 =

TRUE

;

2136

*redundant1 =

TRUE

;

2145

valuey1 = side0 / coef0;

2146

valuey2 = side1 / coef1;

2149 else if

( valuex2 > 0.0 )

2163

valuey1 = (side0 - valuex2) / coef0;

2164

valuey2 = (side1 - valuex2) / coef1;

2173

assert(!(*redundant0));

2174

assert(!(*redundant1));

2178

*sideequal =

FALSE

;

2179

*redundant1 =

TRUE

;

2183

*sideequal =

FALSE

;

2184

*redundant0 =

TRUE

;

2188 else if

( ( *redundant1 &&

SCIPisGT

(

scip

, valuey1, valuey2) )

2189

|| ( *redundant0 &&

SCIPisLT

(

scip

, valuey1, valuey2) ) )

2191

*redundant0 =

FALSE

;

2192

*redundant1 =

FALSE

;

2201

assert(!(*redundant0));

2202

assert(!(*redundant1));

2206

*sideequal =

FALSE

;

2207

*redundant0 =

TRUE

;

2211

*sideequal =

FALSE

;

2212

*redundant1 =

TRUE

;

2216 else if

( ( *redundant0 &&

SCIPisGT

(

scip

, valuey1, valuey2) )

2217

|| ( *redundant1 &&

SCIPisLT

(

scip

, valuey1, valuey2) ) )

2219

*redundant0 =

FALSE

;

2220

*redundant1 =

FALSE

;

2224

assert(*sideequal || *redundant0 || *redundant1);

2231

boundvaluey1 =

MAX

(boundylb1, boundylb2);

2232

boundvaluey2 =

MAX

(boundyub1, boundyub2);

2236

boundvaluey1 =

MIN

(boundylb1, boundylb2);

2237

boundvaluey2 =

MIN

(boundyub1, boundyub2);

2240

valuey1 =

MIN

(boundvaluey1, ubvbdvar);

2241

valuey1 =

MAX

(valuey1, lbvbdvar);

2242

valuey2 =

MAX

(boundvaluey2, lbvbdvar);

2243

valuey2 =

MIN

(valuey2, ubvbdvar);

2252

boundvaluey1 =

MIN

(boundylb1, boundylb2);

2253

boundvaluey2 =

MIN

(boundyub1, boundyub2);

2257

boundvaluey1 =

MAX

(boundylb1, boundylb2);

2258

boundvaluey2 =

MAX

(boundyub1, boundyub2);

2261

valuey1 =

MAX

(boundvaluey1, lbvbdvar);

2262

valuey1 =

MIN

(valuey1, ubvbdvar);

2263

valuey2 =

MIN

(boundvaluey2, ubvbdvar);

2264

valuey2 =

MAX

(valuey2, lbvbdvar);

2280 else if

( valuey1 > 0.0 )

2294

valuex1 = side0 - valuey1 * coef0;

2295

valuex2 = side1 - valuey1 * coef1;

2301

assert(!(*redundant0));

2302

assert(!(*redundant1));

2306

*sideequal =

FALSE

;

2307

*redundant1 =

TRUE

;

2311

*sideequal =

FALSE

;

2312

*redundant0 =

TRUE

;

2315 else if

( ( *redundant1 &&

SCIPisGT

(

scip

, valuex1, valuex2) )

2316

|| ( *redundant0 &&

SCIPisLT

(

scip

, valuex1, valuex2) ) )

2318

*redundant0 =

FALSE

;

2319

*redundant1 =

FALSE

;

2333 else if

( valuey2 > 0.0 )

2347

valuex1 = side0 - valuey2 * coef0;

2348

valuex2 = side1 - valuey2 * coef1;

2354

assert(!(*redundant0));

2355

assert(!(*redundant1));

2359

*sideequal =

FALSE

;

2360

*redundant1 =

TRUE

;

2364

*sideequal =

FALSE

;

2365

*redundant0 =

TRUE

;

2368 else if

( ( *redundant1 &&

SCIPisGT

(

scip

, valuex1, valuex2) )

2369

|| ( *redundant0 &&

SCIPisLT

(

scip

, valuex1, valuex2) ) )

2371

*redundant0 =

FALSE

;

2372

*redundant1 =

FALSE

;

2375

assert(*redundant0 || *redundant1 || *sideequal);

2437

assert(conss !=

NULL

);

2438

assert(cutoff !=

NULL

);

2439

assert(nchgbds !=

NULL

);

2440

assert(ndelconss !=

NULL

);

2441

assert(nchgcoefs !=

NULL

);

2442

assert(nchgsides !=

NULL

);

2448 SCIPsortPtr

((

void

**)sortedconss, consVarboundComp, nconss);

2451 for

( c = nconss - 1; c > 0 && !(*cutoff); --c )

2456

cons0 = sortedconss[c];

2462

assert(consdata0 !=

NULL

);

2463

assert(consdata0->var !=

NULL

);

2464

assert(consdata0->vbdvar !=

NULL

);

2470 if

( !consdata0->changed )

2473

consdata0->changed =

FALSE

;

2475 for

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

2484

cons1 = sortedconss[s];

2490

assert(consdata1 !=

NULL

);

2491

assert(consdata1->var !=

NULL

);

2492

assert(consdata1->vbdvar !=

NULL

);

2498

lhs = consdata0->lhs;

2499

rhs = consdata0->rhs;

2500

coef = consdata0->vbdcoef;

2503 if

( consdata0->var == consdata1->vbdvar && consdata0->vbdvar == consdata1->var &&

2511

scalar = (1.0 - coef * consdata1->vbdcoef);

2523

bnd = (lhs - coef * consdata1->rhs)/scalar;

2529

bnd = (lhs - coef * consdata1->lhs)/scalar;

2578

bnd = (rhs - coef * consdata1->lhs)/scalar;

2584

bnd = (rhs - coef * consdata1->rhs)/scalar;

2633

bnd = (consdata1->lhs - consdata1->vbdcoef * rhs)/scalar;

2639

bnd = (consdata1->lhs - consdata1->vbdcoef * lhs)/scalar;

2688

bnd = (consdata1->rhs - consdata1->vbdcoef * lhs)/scalar;

2694

bnd = (consdata1->rhs - consdata1->vbdcoef * rhs)/scalar;

2738 if

( consdata0->var != consdata1->var || consdata0->vbdvar != consdata1->vbdvar )

2742

deletecons1 =

TRUE

;

2747

lhs =

MAX

(consdata1->lhs, lhs);

2748

rhs =

MIN

(consdata1->rhs, rhs);

2761

lhs =

MAX

(consdata1->lhs, lhs);

2762

coef = lhs -

MAX

(consdata1->lhs - consdata1->vbdcoef, consdata0->lhs - coef);

2767

rhs =

MIN

(consdata1->rhs, rhs);

2768

coef = rhs -

MIN

(consdata1->rhs - consdata1->vbdcoef, consdata0->rhs - coef);

2790 checkRedundancySide

(

scip

, consdata0->var, consdata0->vbdvar, coef, consdata1->vbdcoef, lhs, consdata1->lhs, &lhsequal, &cons0lhsred, &cons1lhsred,

TRUE

);

2793 checkRedundancySide

(

scip

, consdata0->var, consdata0->vbdvar, coef, consdata1->vbdcoef, rhs, consdata1->rhs, &rhsequal, &cons0rhsred, &cons1rhsred,

FALSE

);

2796 if

( (lhsequal || cons0lhsred) && (rhsequal || cons0rhsred) )

2813 else if

( cons1lhsred && cons1rhsred )

2853

deletecons1 =

FALSE

;

2879

deletecons1 =

FALSE

;

2932

rhs = (lhs + rhs)/2;

2989 if

( consdata0->vbdcoef * coef < 0.0 )

2996 if

( consdata0->vbdcoef > 0.0 )

3018

consdata0->varboundsadded =

FALSE

;

3019

consdata0->tightened =

FALSE

;

3020

consdata0->presolved =

FALSE

;

3021

consdata0->changed =

FALSE

;

3023

consdata0->vbdcoef = coef;

3078

assert(conss !=

NULL

|| nconss == 0);

3079

assert(nchgcoefs !=

NULL

);

3080

assert(nchgsides !=

NULL

);

3086 for

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

3088

assert(conss !=

NULL

);

3094

assert(consdata !=

NULL

);

3118

success =

SCIPrealToRational

(consdata->vbdcoef, -epsilon, epsilon , maxmult, &numerator, &denominator);

3125

denominator /= numerator;

3129

success = success && (denominator <= maxmult);

3132 if

( success &&

ABS

(denominator) > 1 && numerator == 1 )

3139

assert(

SCIPisEQ

(

scip

, consdata->vbdcoef * denominator, 1.0));

3142 if

( consdata->vbdcoef < 0 )

3144

assert(denominator < 0);

3151

consdata->lhs = consdata->rhs * denominator;

3159

consdata->rhs = consdata->lhs * denominator;

3169

tmp = consdata->lhs;

3170

consdata->lhs = consdata->rhs * denominator;

3171

consdata->rhs = tmp * denominator;

3172

consdata->tightened =

FALSE

;

3182

assert(denominator > 0);

3187

consdata->lhs *= denominator;

3195

consdata->rhs *= denominator;

3200

assert(

SCIPisGE

(

scip

, consdata->rhs, consdata->lhs));

3204

swapvar = consdata->var;

3205

consdata->var = consdata->vbdvar;

3206

consdata->vbdvar = swapvar;

3209

consdata->vbdcoef = (

SCIP_Real

)denominator;

3213

consdata->varboundsadded =

FALSE

;

3214

consdata->tightened =

FALSE

;

3249

assert(cons !=

NULL

);

3250

assert(cutoff !=

NULL

);

3251

assert(nchgbds !=

NULL

);

3252

assert(ndelconss !=

NULL

);

3253

assert(naddconss !=

NULL

);

3260

assert(consdata !=

NULL

);

3263

var = consdata->var;

3267

vbdvar = consdata->vbdvar;

3269

vbdvarconstant = 0.0;

3271

varschanged = (var != consdata->var || vbdvar != consdata->vbdvar);

3279 SCIPdebugMsg

(

scip

,

"variable bound constraint <%s> has equal variable and vbd variable <%s>\n"

,

3285

scalar = varscalar + consdata->vbdcoef * vbdvarscalar;

3286

constant = varconstant + consdata->vbdcoef * vbdvarconstant;

3296 else if

( scalar > 0.0 )

3302

newbnd = (consdata->lhs - constant) / scalar;

3319

newbnd = (consdata->rhs - constant) / scalar;

3339

newbnd = (consdata->lhs - constant) / scalar;

3356

newbnd = (consdata->rhs - constant) / scalar;

3390 SCIP_Real

activity = varconstant + consdata->vbdcoef * vbdvarconstant;

3392 SCIPdebugMsg

(

scip

,

"variable bound constraint <%s>: variable <%s> is fixed to %.15g\n"

,

3404

assert( consdata->vbdcoef != 0.0 );

3405

assert( vbdvarscalar != 0.0 );

3410 if

( consdata->vbdcoef > 0.0 )

3414

newbnd = (consdata->lhs - varconstant) / consdata->vbdcoef;

3420 else if

( tightened )

3430

newbnd = (consdata->lhs - varconstant) / consdata->vbdcoef;

3436 else if

( tightened )

3445 if

( consdata->vbdcoef > 0.0 )

3449

newbnd = (consdata->rhs - varconstant) / consdata->vbdcoef;

3455 else if

( tightened )

3465

newbnd = (consdata->rhs - varconstant) / consdata->vbdcoef;

3471 else if

( tightened )

3481 else if

( var != consdata->var )

3489 if

( consdata->vbdcoef > 0.0 )

3501 if

( varscalar > 0.0 )

3508

consdata->lhs = (consdata->lhs - varconstant)/varscalar;

3510

consdata->rhs = (consdata->rhs - varconstant)/varscalar;

3511

consdata->vbdcoef /= varscalar;

3517

consdata->tightened =

FALSE

;

3523

assert(varscalar != 0.0);

3529

lhs = consdata->lhs;

3530

consdata->lhs = -consdata->rhs;

3531

consdata->rhs = -lhs;

3533

consdata->lhs = (consdata->lhs + varconstant)/(-varscalar);

3535

consdata->rhs = (consdata->rhs + varconstant)/(-varscalar);

3536

consdata->vbdcoef /= varscalar;

3542

consdata->tightened =

FALSE

;

3545

consdata->var = var;

3553 if

( consdata->vbdcoef > 0.0 )

3568 SCIPdebugMsg

(

scip

,

"variable bound constraint <%s>: vbd variable <%s> is fixed to %.15g\n"

,

3582

newbnd = consdata->lhs - consdata->vbdcoef * vbdvarconstant;

3588 else if

( tightened )

3598

newbnd = consdata->rhs - consdata->vbdcoef * vbdvarconstant;

3604 else if

( tightened )

3613 else if

( !(*cutoff) && vbdvar != consdata->vbdvar )

3616 if

( consdata->vbdcoef > 0.0 )

3638

consdata->lhs -= consdata->vbdcoef * vbdvarconstant;

3640

consdata->rhs -= consdata->vbdcoef * vbdvarconstant;

3642

consdata->tightened =

FALSE

;

3643

consdata->vbdcoef *= vbdvarscalar;

3644

consdata->vbdvar = vbdvar;

3648 if

( consdata->vbdcoef > 0.0 )

3676

consdata->changed =

TRUE

;

3686

lhs = consdata->lhs;

3687

rhs = consdata->rhs;

3697 if

( var != consdata->var )

3717

assert(var == consdata->var);

3723 if

( vbdvar != consdata->vbdvar )

3743

assert(vbdvar == consdata->vbdvar);

3791

assert(nchgcoefs !=

NULL

);

3792

assert(nchgsides !=

NULL

);

3793

assert(ndelconss !=

NULL

);

3796

assert(consdata !=

NULL

);

3799 if

( consdata->tightened )

3804

consdata->tightened =

TRUE

;

3815

consdata->changed =

TRUE

;

3821

consdata->changed =

TRUE

;

3829

oldnchgcoefs = *nchgcoefs;

3830

oldnchgsides = *nchgsides;

3831

oldcoef = consdata->vbdcoef;

3917 else if

( (

SCIPisInfinity

(

scip

, -consdata->lhs) ||

SCIPisFeasGE

(

scip

, consdata->vbdcoef -

SCIPfeasFloor

(

scip

, consdata->vbdcoef), consdata->lhs -

SCIPfeasFloor

(

scip

, consdata->lhs))) && (

SCIPisInfinity

(

scip

, consdata->rhs) ||

SCIPisFeasGT

(

scip

, consdata->vbdcoef -

SCIPfeasFloor

(

scip

, consdata->vbdcoef), consdata->rhs -

SCIPfeasFloor

(

scip

, consdata->rhs))) )

3938 else if

( (

SCIPisInfinity

(

scip

, -consdata->lhs) ||

SCIPisFeasLT

(

scip

, consdata->vbdcoef -

SCIPfeasFloor

(

scip

, consdata->vbdcoef), consdata->lhs -

SCIPfeasFloor

(

scip

, consdata->lhs))) && (

SCIPisInfinity

(

scip

, consdata->rhs) ||

SCIPisFeasLE

(

scip

, consdata->vbdcoef -

SCIPfeasFloor

(

scip

, consdata->vbdcoef), consdata->rhs -

SCIPfeasFloor

(

scip

, consdata->rhs))) )

4038

consdata->vbdcoef = oldcoef;

4066

oldrhs = consdata->rhs;

4072

newcoef =

MAX

(consdata->vbdcoef - consdata->rhs + xub, consdata->lhs - xlb);

4086

newrhs = consdata->rhs - consdata->vbdcoef + newcoef;

4089 "tighten varbound %.15g <= <%s>[%.15g,%.15g] %+.15g<%s> <= %.15g to %.15g <= <%s> %+.15g<%s> <= %.15g\n"

,

4090

consdata->lhs,

SCIPvarGetName

(consdata->var), xlb, xub, consdata->vbdcoef,

4096

assert(consdata->vbdcoef * newcoef > 0);

4098

consdata->vbdcoef = newcoef;

4099

consdata->rhs =

MAX

(newrhs, consdata->lhs);

4109

consdata->tightened =

FALSE

;

4111

assert(consdata->tightened);

4124

oldlhs = consdata->lhs;

4130

newcoef =

MIN

(consdata->vbdcoef - consdata->lhs + xlb, consdata->rhs - xub);

4144

newlhs = consdata->lhs - consdata->vbdcoef + newcoef;

4147 "tighten varbound %.15g <= <%s>[%.15g,%.15g] %+.15g<%s> <= %.15g to %.15g <= <%s> %+.15g<%s> <= %.15g\n"

,

4148

consdata->lhs,

SCIPvarGetName

(consdata->var), xlb, xub, consdata->vbdcoef,

4154

assert(consdata->vbdcoef * newcoef > 0);

4156

consdata->vbdcoef = newcoef;

4157

consdata->lhs =

MIN

(newlhs, consdata->rhs);

4167

consdata->tightened =

FALSE

;

4169

assert(consdata->tightened);

4180 if

( consdata->vbdcoef > 0.0 &&

SCIPisFeasGT

(

scip

, xlb, consdata->lhs - consdata->vbdcoef) )

4188

newcoef = consdata->lhs - xlb;

4201 SCIPdebugMsg

(

scip

,

"tighten binary VLB <%s>[%.15g,%.15g] %+.15g<%s> >= %.15g to <%s> %+.15g<%s> >= %.15g\n"

,

4208

assert(consdata->vbdcoef * newcoef > 0);

4210

consdata->vbdcoef = newcoef;

4214 else if

( consdata->vbdcoef < 0.0 &&

SCIPisFeasGT

(

scip

, xlb, consdata->lhs) )

4222

newcoef = consdata->vbdcoef - consdata->lhs + xlb;

4235 SCIPdebugMsg

(

scip

,

"tighten binary VLB <%s>[%.15g,%.15g] %+.15g<%s> >= %.15g to <%s> %+.15g<%s> >= %.15g\n"

,

4238 SCIPvarGetName

(consdata->var), consdata->vbdcoef - consdata->lhs + xlb,

4242

assert(consdata->vbdcoef * newcoef > 0);

4244

consdata->vbdcoef = newcoef;

4245

consdata->lhs = xlb;

4254 if

( consdata->vbdcoef > 0.0 &&

SCIPisFeasLT

(

scip

, xub, consdata->rhs) )

4262

newcoef = consdata->vbdcoef - consdata->rhs + xub;

4275 SCIPdebugMsg

(

scip

,

"tighten binary VUB <%s>[%.15g,%.15g] %+.15g<%s> <= %.15g to <%s> %+.15g<%s> <= %.15g\n"

,

4278 SCIPvarGetName

(consdata->var), consdata->vbdcoef - consdata->rhs + xub,

4282

assert(consdata->vbdcoef * newcoef > 0);

4284

consdata->vbdcoef = newcoef;

4285

consdata->rhs = xub;

4290 else if

( consdata->vbdcoef < 0.0 &&

SCIPisFeasLT

(

scip

, xub, consdata->rhs - consdata->vbdcoef) )

4298

newcoef = consdata->rhs - xub;

4311 SCIPdebugMsg

(

scip

,

"tighten binary VUB <%s>[%.15g,%.15g] %+.15g<%s> <= %.15g to <%s> %+.15g<%s> <= %.15g\n"

,

4316

assert(consdata->vbdcoef * newcoef > 0);

4318

consdata->vbdcoef = newcoef;

4327 if

( *nchgcoefs > oldnchgcoefs || *nchgsides > oldnchgsides )

4329

consdata->varboundsadded =

FALSE

;

4330

consdata->changed =

TRUE

;

4361

assert(conshdlrdata !=

NULL

);

4362

assert(conss !=

NULL

|| nconss == 0);

4363

assert(cutoff !=

NULL

);

4364

assert(naggrvars !=

NULL

);

4365

assert(nchgbds !=

NULL

);

4366

assert(nchgcoefs !=

NULL

);

4367

assert(nchgsides !=

NULL

);

4368

assert(ndelconss !=

NULL

);

4369

assert(naddconss !=

NULL

);

4378

assert(conss !=

NULL

);

4380 for

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

4383

assert(cons !=

NULL

);

4389

assert(consdata !=

NULL

);

4390

assert(

SCIPisLE

(

scip

, consdata->lhs, consdata->rhs));

4392 if

( !consdata->presolved )

4414 if

( !consdata->tightened )

4424

assert(

SCIPisLE

(

scip

, consdata->lhs, consdata->rhs));

4437 if

( consdata->vbdcoef > 0.0 )

4448 SCIPdebugMsg

(

scip

,

"varbound constraint <%s>: aggregate <%s> + <%s> == 1\n"

,

4453

assert(!infeasible);

4461

assert(consdata->lhs < 0.5);

4463

vars[0] = consdata->var;

4464

vars[1] = consdata->vbdvar;

4487 SCIPdebugMsg

(

scip

,

"varbound constraint <%s>: aggregate <%s> - <%s> == 0\n"

,

4492

assert(!infeasible);

4500

assert(consdata->lhs < -0.5);

4502

vars[0] = consdata->var;

4511

vars[1] = consdata->vbdvar;

4550

assert(upgdcons !=

NULL

);

4557

upgrade = (nvars == 2) && (nposbin + nnegbin <= 1) && (nposcont + nnegcont <= 1);

4588

var = vars[1-vbdind];

4589

vbdvar = vars[vbdind];

4592

vbdcoef = vals[vbdind]/vals[1-vbdind];

4594 if

( vals[1-vbdind] > 0.0 )

4636

assert(cons !=

NULL

);

4637

assert(graph !=

NULL

);

4638

assert(success !=

NULL

);

4657

cons, lhs, rhs, success) );

4678

assert(conshdlr !=

NULL

);

4696

assert(conshdlr !=

NULL

);

4701

assert(conshdlrdata !=

NULL

);

4718 for

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

4735 for

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

4738

assert(consdata !=

NULL

);

4740 if

( consdata->row !=

NULL

)

4745 if

( consdata->nlrow !=

NULL

)

4762

assert(conshdlrdata !=

NULL

);

4784

assert(conshdlr !=

NULL

);

4787

assert(conshdlrdata !=

NULL

);

4790

assert(sourcedata !=

NULL

);

4794

sourcedata->var, sourcedata->vbdvar, sourcedata->vbdcoef, sourcedata->lhs, sourcedata->rhs) );

4816

*infeasible =

FALSE

;

4818 for

( i = 0; i < nconss && !(*infeasible); i++ )

4835

assert(conshdlr !=

NULL

);

4838

assert(conshdlrdata !=

NULL

);

4843 for

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

4849 for

( i = nusefulconss; i < nconss && *result ==

SCIP_DIDNOTFIND

; ++i )

4865

assert(conshdlr !=

NULL

);

4868

assert(conshdlrdata !=

NULL

);

4873 for

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

4879 for

( i = nusefulconss; i < nconss && *result ==

SCIP_DIDNOTFIND

; ++i )

4895

assert(conshdlr !=

NULL

);

4898

assert(conshdlrdata !=

NULL

);

4902 for

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

4935

assert(conshdlr !=

NULL

);

4938

assert(conshdlrdata !=

NULL

);

4942 for

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

4974 for

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

5003 for

( i = 0; i < nconss && (*result ==

SCIP_FEASIBLE

|| completely); i++ )

5015

assert( consdata !=

NULL

);

5048

assert(conshdlr !=

NULL

);

5051

assert(conshdlrdata !=

NULL

);

5055 SCIPdebugMsg

(

scip

,

"propagating %d variable bound constraints\n"

, nmarkedconss);

5058 for

( i = 0; i < nmarkedconss && !cutoff; i++ )

5065 else if

( nchgbds > 0 )

5091

assert(conshdlr !=

NULL

);

5093

assert(result !=

NULL

);

5097

assert(conshdlrdata !=

NULL

);

5100

oldnchgbds = *nchgbds;

5101

oldndelconss = *ndelconss;

5102

oldnaddconss = *naddconss;

5103

oldnchgcoefs = *nchgcoefs;

5104

oldnchgsides = *nchgsides;

5105

oldnaggrvars = *naggrvars;

5107 for

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

5110

assert(cons !=

NULL

);

5115

assert(consdata !=

NULL

);

5122

consdata->presolved =

FALSE

;

5124 if

( consdata->presolved )

5126

consdata->presolved =

TRUE

;

5152 if

( !consdata->varboundsadded )

5156 int

localoldnchgbds;

5158

localoldnchgbds = *nchgbds;

5163 SCIPdebugMsg

(

scip

,

"adding variable lower bound <%s> >= %g<%s> + %g (and potentially also <%s> %s %g<%s> + %g)\n"

,

5165 SCIPvarGetName

(consdata->vbdvar), (consdata->vbdcoef > 0 ?

">="

:

"<="

), 1.0/-consdata->vbdcoef,

5166 SCIPvarGetName

(consdata->var), consdata->lhs/consdata->vbdcoef);

5169

&infeasible, &nlocalchgbds) );

5170

assert(!infeasible);

5172

*nchgbds += nlocalchgbds;

5178 SCIPdebugMsg

(

scip

,

"adding variable upper bound <%s> <= %g<%s> + %g (and potentially also <%s> %s %g<%s> + %g)\n"

,

5180 SCIPvarGetName

(consdata->vbdvar), (consdata->vbdcoef > 0 ?

"<="

:

">="

), 1.0/-consdata->vbdcoef,

5181 SCIPvarGetName

(consdata->var), consdata->rhs/consdata->vbdcoef);

5184

&infeasible, &nlocalchgbds) );

5185

assert(!infeasible);

5187

*nchgbds += nlocalchgbds;

5189

consdata->varboundsadded =

TRUE

;

5191 if

( *nchgbds > localoldnchgbds )

5207 SCIP_CALL

(

upgradeConss

(

scip

, conshdlrdata, conss, nconss, &cutoff, naggrvars, nchgbds, nchgcoefs, nchgsides, ndelconss, naddconss) );

5219 else if

( *nchgbds > oldnchgbds || *ndelconss > oldndelconss || *naddconss > oldnaddconss

5220

|| *nchgcoefs > oldnchgcoefs || *nchgsides > oldnchgsides || *naggrvars > oldnaggrvars )

5235

assert(conshdlr !=

NULL

);

5238

assert(conshdlrdata !=

NULL

);

5255

assert(consdata !=

NULL

);

5260 if

( consdata->vbdcoef > 0.0 )

5273 if

( consdata->vbdcoef > 0.0 )

5304

assert(cons !=

NULL

);

5307

assert(consdata !=

NULL

);

5327

assert(conshdlr !=

NULL

);

5328

assert(cons !=

NULL

);

5331

assert(consdata !=

NULL

);

5368 const char

* consname;

5387

initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode, global, valid) );

5408

assert(success !=

NULL

);

5409

assert(str !=

NULL

);

5410

assert(name !=

NULL

);

5411

assert(cons !=

NULL

);

5417

(*success) =

FALSE

;

5426 if

( isdigit(str[0]) || ((str[0] ==

'-'

|| str[0] ==

'+'

) && isdigit(str[1])) )

5437 if

( endstr[0] !=

'<'

|| endstr[1] !=

'='

)

5439 SCIPerrorMessage

(

"missing \"<=\" after left hand side(, found %c%c)\n"

, endstr[0], endstr[1]);

5456 if

( requiredsize == 2 && *success )

5470 if

( *str !=

'\0'

&& *(str+1) !=

'\0'

&&

SCIPparseReal

(

scip

, str+2, &value, &endstr) )

5476

assert(str[1] ==

'='

);

5480

assert(str[1] ==

'='

);

5486

assert(str[1] ==

'='

);

5495 else if

( strncmp(str,

"[free]"

, 6) != 0 )

5502

initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode) );

5516

assert( success !=

NULL

);

5519

(*success) =

FALSE

;

5523

assert(cons !=

NULL

);

5524

assert(vars !=

NULL

);

5527

assert(consdata !=

NULL

);

5529

vars[0] = consdata->var;

5530

vars[1] = consdata->vbdvar;

5576

assert(event !=

NULL

);

5578

assert(cons !=

NULL

);

5580

assert(consdata !=

NULL

);

5584

consdata->presolved =

FALSE

;

5590

consdata->presolved =

FALSE

;

5591

consdata->tightened =

FALSE

;

5613

eventExecVarbound,

NULL

) );

5621

consEnfolpVarbound, consEnfopsVarbound, consCheckVarbound, consLockVarbound,

5623

assert(conshdlr !=

NULL

);

5658 "should pairwise constraint comparison be performed in presolving?"

,

5662 "maximum coefficient in varbound constraint to be added as a row into LP"

,

5665 "constraints/" CONSHDLR_NAME "/usebdwidening"

,

"should bound widening be used in conflict analysis?"

,

5715 if

( conshdlr ==

NULL

)

5722

assert(conshdlrdata !=

NULL

);

5728 SCIP_CALL

(

SCIPcreateCons

(

scip

, cons, name, conshdlr, consdata, initial, separate, enforce, check, propagate,

5729

local, modifiable, dynamic, removable, stickingatnode) );

5780

assert(consdata !=

NULL

);

5782 return

consdata->lhs;

5803

assert(consdata !=

NULL

);

5805 return

consdata->rhs;

5826

assert(consdata !=

NULL

);

5828 return

consdata->var;

5849

assert(consdata !=

NULL

);

5851 return

consdata->vbdvar;

5872

assert(consdata !=

NULL

);

5874 return

consdata->vbdcoef;

5895

assert(consdata !=

NULL

);

5897 if

( consdata->row !=

NULL

)

5921

assert(consdata !=

NULL

);

5923 if

( consdata->row !=

NULL

)

5949

assert(consdata !=

NULL

);

5951 return

consdata->row;

5972 if

( conshdlr ==

NULL

)

5975

assert(infeasible !=

NULL

);

5976

*infeasible =

FALSE

;

5978

assert(naddconss !=

NULL

);

5979

assert(ndelconss !=

NULL

);

5980

assert(nchgbds !=

NULL

);

5983

assert(conshdlrdata !=

NULL

);

5985

eventhdlr = conshdlrdata->eventhdlr;

5990 for

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

Constraint handler for linear constraints in their most general form, .

Constraint handler for the set partitioning / packing / covering constraints .

static SCIP_DECL_CONSCHECK(consCheckVarbound)

static SCIP_RETCODE addRelaxation(SCIP *scip, SCIP_CONS *cons, SCIP_Bool *infeasible)

static SCIP_DECL_CONSRESPROP(consRespropVarbound)

static SCIP_DECL_SORTPTRCOMP(consVarboundComp)

static SCIP_RETCODE dropEvents(SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr)

#define DEFAULT_USEBDWIDENING

#define CONSHDLR_NEEDSCONS

#define CONSHDLR_SEPAFREQ

static SCIP_DECL_EVENTEXEC(eventExecVarbound)

static SCIP_DECL_CONSGETPERMSYMGRAPH(consGetPermsymGraphVarbound)

static SCIP_DECL_CONSACTIVE(consActiveVarbound)

#define CONSHDLR_CHECKPRIORITY

static SCIP_DECL_CONSINITSOL(consInitsolVarbound)

static SCIP_DECL_CONSPROP(consPropVarbound)

static SCIP_DECL_CONSLOCK(consLockVarbound)

static SCIP_RETCODE upgradeConss(SCIP *scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_CONS **conss, int nconss, SCIP_Bool *cutoff, int *naggrvars, int *nchgbds, int *nchgcoefs, int *nchgsides, int *ndelconss, int *naddconss)

static SCIP_RETCODE applyFixings(SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr, SCIP_Bool *cutoff, int *nchgbds, int *ndelconss, int *naddconss)

static SCIP_DECL_CONSPRESOL(consPresolVarbound)

static SCIP_DECL_CONSGETNVARS(consGetNVarsVarbound)

static SCIP_RETCODE consdataCreate(SCIP *scip, SCIP_CONSDATA **consdata, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real vbdcoef, SCIP_Real lhs, SCIP_Real rhs)

static SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH(consGetSignedPermsymGraphVarbound)

static SCIP_RETCODE tightenCoefs(SCIP *scip, SCIP_CONS *cons, int *nchgcoefs, int *nchgsides, int *ndelconss, SCIP_Bool *cutoff, int *nchgbds)

static SCIP_RETCODE createRelaxation(SCIP *scip, SCIP_CONS *cons)

static SCIP_DECL_CONSEXITSOL(consExitsolVarbound)

#define CONSHDLR_PROP_TIMING

static void checkRedundancySide(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real coef0, SCIP_Real coef1, SCIP_Real side0, SCIP_Real side1, SCIP_Bool *sideequal, SCIP_Bool *cons0sidered, SCIP_Bool *cons1sidered, SCIP_Bool islhs)

static void conshdlrdataFree(SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata)

static SCIP_DECL_CONSGETVARS(consGetVarsVarbound)

static SCIP_DECL_CONSCOPY(consCopyVarbound)

#define CONSHDLR_MAXPREROUNDS

static SCIP_Bool checkCons(SCIP *scip, SCIP_CONS *cons, SCIP_SOL *sol, SCIP_Bool checklprows)

#define DEFAULT_PRESOLPAIRWISE

static SCIP_DECL_CONSSEPASOL(consSepasolVarbound)

static SCIP_DECL_CONSFREE(consFreeVarbound)

#define CONSHDLR_SEPAPRIORITY

#define DEFAULT_MAXLPCOEF

static SCIP_DECL_CONSPRINT(consPrintVarbound)

static void prettifyConss(SCIP *scip, SCIP_CONS **conss, int nconss, int *nchgcoefs, int *nchgsides)

static SCIP_RETCODE addSymmetryInformation(SCIP *scip, SYM_SYMTYPE symtype, SCIP_CONS *cons, SYM_GRAPH *graph, SCIP_Bool *success)

static SCIP_RETCODE preprocessConstraintPairs(SCIP *scip, SCIP_CONS **conss, int nconss, SCIP_Bool *cutoff, int *nchgbds, int *ndelconss, int *nchgcoefs, int *nchgsides)

static SCIP_RETCODE chgLhs(SCIP *scip, SCIP_CONS *cons, SCIP_Real lhs)

static SCIP_DECL_CONSDEACTIVE(consDeactiveVarbound)

static SCIP_DECL_CONSSEPALP(consSepalpVarbound)

static SCIP_DECL_CONSDELETE(consDeleteVarbound)

static SCIP_RETCODE analyzeConflict(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *infervar, SCIP_Real inferbd, PROPRULE proprule, SCIP_BOUNDTYPE boundtype, SCIP_Bool usebdwidening)

static SCIP_DECL_CONSTRANS(consTransVarbound)

static SCIP_RETCODE chgRhs(SCIP *scip, SCIP_CONS *cons, SCIP_Real rhs)

#define CONSHDLR_PROPFREQ

static SCIP_DECL_CONSPARSE(consParseVarbound)

static SCIP_DECL_CONSENFOPS(consEnfopsVarbound)

static SCIP_RETCODE resolvePropagation(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *infervar, PROPRULE proprule, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real inferbd, SCIP_Bool usebdwidening)

static SCIP_DECL_CONSENFORELAX(consEnforelaxVarbound)

static SCIP_RETCODE propagateCons(SCIP *scip, SCIP_CONS *cons, SCIP_Bool usebdwidening, SCIP_Bool *cutoff, int *nchgbds, int *nchgsides, int *ndelconss)

#define CONSHDLR_PRESOLTIMING

static SCIP_RETCODE consdataFree(SCIP *scip, SCIP_CONSDATA **consdata)

static SCIP_DECL_LINCONSUPGD(linconsUpgdVarbound)

static SCIP_DECL_CONSINITLP(consInitlpVarbound)

static SCIP_RETCODE addNlrow(SCIP *scip, SCIP_CONS *cons)

#define CONSHDLR_EAGERFREQ

static SCIP_RETCODE conshdlrdataCreate(SCIP *scip, SCIP_CONSHDLRDATA **conshdlrdata, SCIP_EVENTHDLR *eventhdlr)

static SCIP_DECL_CONSENFOLP(consEnfolpVarbound)

#define CONSHDLR_ENFOPRIORITY

static SCIP_DECL_CONSHDLRCOPY(conshdlrCopyVarbound)

static SCIP_RETCODE catchEvents(SCIP *scip, SCIP_CONS *cons, SCIP_EVENTHDLR *eventhdlr)

#define LINCONSUPGD_PRIORITY

static SCIP_RETCODE separateCons(SCIP *scip, SCIP_CONS *cons, SCIP_Bool usebdwidening, SCIP_SOL *sol, SCIP_RESULT *result)

#define CONSHDLR_DELAYSEPA

#define CONSHDLR_DELAYPROP

Constraint handler for variable bound constraints .

defines macros for basic operations in double-double arithmetic giving roughly twice the precision of...

#define SCIPquadprecDivQD(r, a, b)

#define SCIPquadprecProdDD(r, a, b)

#define SCIPquadprecProdQD(r, a, b)

#define SCIPquadprecSumQD(r, a, b)

#define QUAD_ASSIGN(a, constant)

#define SCIPquadprecSumDD(r, a, b)

#define SCIPquadprecSumQQ(r, a, b)

#define SCIP_VARTYPE_INTEGER_CHAR

#define SCIP_VARTYPE_IMPLINT_CHAR

#define SCIP_VARTYPE_BINARY_CHAR

#define SCIP_VARTYPE_CONTINUOUS_CHAR

SCIP_RETCODE SCIPincludeLinconsUpgrade(SCIP *scip, SCIP_DECL_LINCONSUPGD((*linconsupgd)), int priority, const char *conshdlrname)

SCIP_Real SCIPgetVbdcoefVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPchgRhsLinear(SCIP *scip, SCIP_CONS *cons, SCIP_Real rhs)

SCIP_Real SCIPgetDualfarkasVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPaddCoefLinear(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var, SCIP_Real val)

SCIP_RETCODE SCIPcreateConsBasicVarbound(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real vbdcoef, SCIP_Real lhs, SCIP_Real rhs)

SCIP_ROW * SCIPgetRowVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_VAR * SCIPgetVbdvarVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPcreateConsSetpack(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)

SCIP_RETCODE SCIPcleanupConssVarbound(SCIP *scip, SCIP_Bool onlychecked, SCIP_Bool *infeasible, int *naddconss, int *ndelconss, int *nchgbds)

SCIP_VAR * SCIPgetVarVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPcopyConsLinear(SCIP *scip, SCIP_CONS **cons, SCIP *sourcescip, const char *name, int nvars, SCIP_VAR **sourcevars, SCIP_Real *sourcecoefs, SCIP_Real lhs, SCIP_Real rhs, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool global, SCIP_Bool *valid)

SCIP_Real SCIPgetLhsVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPcreateConsLinear(SCIP *scip, SCIP_CONS **cons, const char *name, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)

SCIP_Real SCIPgetRhsVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_Real SCIPgetDualsolVarbound(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPcreateConsVarbound(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_VAR *var, SCIP_VAR *vbdvar, SCIP_Real vbdcoef, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)

SCIP_RETCODE SCIPchgLhsLinear(SCIP *scip, SCIP_CONS *cons, SCIP_Real lhs)

SCIP_RETCODE SCIPincludeConshdlrVarbound(SCIP *scip)

SCIP_Bool SCIPisTransformed(SCIP *scip)

SCIP_Bool SCIPisStopped(SCIP *scip)

SCIP_STAGE SCIPgetStage(SCIP *scip)

int SCIPgetNIntVars(SCIP *scip)

int SCIPgetNImplVars(SCIP *scip)

int SCIPgetNVars(SCIP *scip)

SCIP_RETCODE SCIPaddCons(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPdelCons(SCIP *scip, SCIP_CONS *cons)

int SCIPgetNBinVars(SCIP *scip)

SCIP_RETCODE SCIPdelConsLocal(SCIP *scip, SCIP_CONS *cons)

void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)

SCIP_Bool SCIPrealToRational(SCIP_Real val, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Longint *numerator, SCIP_Longint *denominator)

SCIP_Real SCIPrelDiff(SCIP_Real val1, SCIP_Real val2)

SCIP_RETCODE SCIPaddRealParam(SCIP *scip, const char *name, const char *desc, SCIP_Real *valueptr, SCIP_Bool isadvanced, SCIP_Real defaultvalue, SCIP_Real minvalue, SCIP_Real maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)

SCIP_RETCODE SCIPaddConflictLb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx)

SCIP_RETCODE SCIPinitConflictAnalysis(SCIP *scip, SCIP_CONFTYPE conftype, SCIP_Bool iscutoffinvolved)

SCIP_RETCODE SCIPaddConflictUb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx)

SCIP_RETCODE SCIPaddConflictRelaxedLb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedlb)

SCIP_RETCODE SCIPaddConflictRelaxedUb(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedub)

SCIP_Bool SCIPisConflictAnalysisApplicable(SCIP *scip)

SCIP_Real SCIPgetConflictVarUb(SCIP *scip, SCIP_VAR *var)

SCIP_Real SCIPgetConflictVarLb(SCIP *scip, SCIP_VAR *var)

SCIP_RETCODE SCIPanalyzeConflictCons(SCIP *scip, SCIP_CONS *cons, SCIP_Bool *success)

int SCIPconshdlrGetNCheckConss(SCIP_CONSHDLR *conshdlr)

SCIP_RETCODE SCIPsetConshdlrParse(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPARSE((*consparse)))

void SCIPconshdlrSetData(SCIP_CONSHDLR *conshdlr, SCIP_CONSHDLRDATA *conshdlrdata)

SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr)

SCIP_RETCODE SCIPsetConshdlrPresol(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRESOL((*conspresol)), int maxprerounds, SCIP_PRESOLTIMING presoltiming)

SCIP_RETCODE SCIPsetConshdlrGetVars(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETVARS((*consgetvars)))

SCIP_RETCODE SCIPsetConshdlrSepa(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), int sepafreq, int sepapriority, SCIP_Bool delaysepa)

SCIP_RETCODE SCIPsetConshdlrProp(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPROP((*consprop)), int propfreq, SCIP_Bool delayprop, SCIP_PROPTIMING proptiming)

SCIP_RETCODE SCIPincludeConshdlrBasic(SCIP *scip, SCIP_CONSHDLR **conshdlrptr, const char *name, const char *desc, int enfopriority, int chckpriority, int eagerfreq, SCIP_Bool needscons, SCIP_DECL_CONSENFOLP((*consenfolp)), SCIP_DECL_CONSENFOPS((*consenfops)), SCIP_DECL_CONSCHECK((*conscheck)), SCIP_DECL_CONSLOCK((*conslock)), SCIP_CONSHDLRDATA *conshdlrdata)

SCIP_RETCODE SCIPsetConshdlrDeactive(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDEACTIVE((*consdeactive)))

SCIP_RETCODE SCIPsetConshdlrGetPermsymGraph(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETPERMSYMGRAPH((*consgetpermsymgraph)))

SCIP_RETCODE SCIPsetConshdlrDelete(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELETE((*consdelete)))

SCIP_RETCODE SCIPsetConshdlrFree(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSFREE((*consfree)))

SCIP_RETCODE SCIPsetConshdlrEnforelax(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSENFORELAX((*consenforelax)))

const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)

SCIP_RETCODE SCIPsetConshdlrCopy(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSCOPY((*conscopy)))

SCIP_CONSHDLR * SCIPfindConshdlr(SCIP *scip, const char *name)

SCIP_RETCODE SCIPsetConshdlrGetSignedPermsymGraph(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETSIGNEDPERMSYMGRAPH((*consgetsignedpermsymgraph)))

SCIP_RETCODE SCIPsetConshdlrExitsol(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITSOL((*consexitsol)))

SCIP_RETCODE SCIPsetConshdlrInitlp(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITLP((*consinitlp)))

SCIP_RETCODE SCIPsetConshdlrInitsol(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITSOL((*consinitsol)))

SCIP_CONSHDLRDATA * SCIPconshdlrGetData(SCIP_CONSHDLR *conshdlr)

SCIP_RETCODE SCIPsetConshdlrTrans(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSTRANS((*constrans)))

SCIP_RETCODE SCIPsetConshdlrResprop(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSRESPROP((*consresprop)))

int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr)

SCIP_RETCODE SCIPsetConshdlrGetNVars(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETNVARS((*consgetnvars)))

SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr)

SCIP_RETCODE SCIPsetConshdlrActive(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSACTIVE((*consactive)))

SCIP_RETCODE SCIPsetConshdlrPrint(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRINT((*consprint)))

SCIP_CONSDATA * SCIPconsGetData(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsDynamic(SCIP_CONS *cons)

SCIP_CONSHDLR * SCIPconsGetHdlr(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsInitial(SCIP_CONS *cons)

SCIP_RETCODE SCIPprintCons(SCIP *scip, SCIP_CONS *cons, FILE *file)

SCIP_Bool SCIPconsIsMarkedPropagate(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsChecked(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsDeleted(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsTransformed(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsEnforced(SCIP_CONS *cons)

SCIP_RETCODE SCIPunmarkConsPropagate(SCIP *scip, SCIP_CONS *cons)

SCIP_Bool SCIPconsIsActive(SCIP_CONS *cons)

SCIP_RETCODE SCIPcreateCons(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_CONSHDLR *conshdlr, SCIP_CONSDATA *consdata, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)

SCIP_Bool SCIPconsIsPropagated(SCIP_CONS *cons)

SCIP_Bool SCIPconsIsLocal(SCIP_CONS *cons)

const char * SCIPconsGetName(SCIP_CONS *cons)

SCIP_RETCODE SCIPresetConsAge(SCIP *scip, SCIP_CONS *cons)

SCIP_RETCODE SCIPmarkConsPropagate(SCIP *scip, SCIP_CONS *cons)

SCIP_Bool SCIPconsIsModifiable(SCIP_CONS *cons)

SCIP_RETCODE SCIPupdateConsFlags(SCIP *scip, SCIP_CONS *cons0, SCIP_CONS *cons1)

SCIP_Bool SCIPconsIsStickingAtNode(SCIP_CONS *cons)

SCIP_RETCODE SCIPreleaseCons(SCIP *scip, SCIP_CONS **cons)

SCIP_Bool SCIPconsIsSeparated(SCIP_CONS *cons)

SCIP_RETCODE SCIPincConsAge(SCIP *scip, SCIP_CONS *cons)

SCIP_Bool SCIPconsIsRemovable(SCIP_CONS *cons)

SCIP_RETCODE SCIPaddRow(SCIP *scip, SCIP_ROW *row, SCIP_Bool forcecut, SCIP_Bool *infeasible)

SCIP_RETCODE SCIPincludeEventhdlrBasic(SCIP *scip, SCIP_EVENTHDLR **eventhdlrptr, const char *name, const char *desc, SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata)

SCIP_EVENTTYPE SCIPeventGetType(SCIP_EVENT *event)

SCIP_RETCODE SCIPcatchVarEvent(SCIP *scip, SCIP_VAR *var, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)

SCIP_RETCODE SCIPdropVarEvent(SCIP *scip, SCIP_VAR *var, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)

#define SCIPallocBufferArray(scip, ptr, num)

#define SCIPfreeBufferArray(scip, ptr)

#define SCIPduplicateBufferArray(scip, ptr, source, num)

#define SCIPfreeBlockMemory(scip, ptr)

#define SCIPallocBlockMemory(scip, ptr)

SCIP_RETCODE SCIPdelNlRow(SCIP *scip, SCIP_NLROW *nlrow)

SCIP_RETCODE SCIPaddNlRow(SCIP *scip, SCIP_NLROW *nlrow)

SCIP_Bool SCIPisNLPConstructed(SCIP *scip)

SCIP_RETCODE SCIPreleaseNlRow(SCIP *scip, SCIP_NLROW **nlrow)

SCIP_Bool SCIPnlrowIsInNLP(SCIP_NLROW *nlrow)

SCIP_RETCODE SCIPcreateNlRow(SCIP *scip, SCIP_NLROW **nlrow, const char *name, SCIP_Real constant, int nlinvars, SCIP_VAR **linvars, SCIP_Real *lincoefs, SCIP_EXPR *expr, SCIP_Real lhs, SCIP_Real rhs, SCIP_EXPRCURV curvature)

SCIP_Bool SCIPinProbing(SCIP *scip)

SCIP_RETCODE SCIPcreateEmptyRowCons(SCIP *scip, SCIP_ROW **row, SCIP_CONS *cons, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)

SCIP_RETCODE SCIPaddVarToRow(SCIP *scip, SCIP_ROW *row, SCIP_VAR *var, SCIP_Real val)

SCIP_RETCODE SCIPprintRow(SCIP *scip, SCIP_ROW *row, FILE *file)

SCIP_Real SCIPgetRowSolFeasibility(SCIP *scip, SCIP_ROW *row, SCIP_SOL *sol)

SCIP_RETCODE SCIPreleaseRow(SCIP *scip, SCIP_ROW **row)

SCIP_Real SCIProwGetDualfarkas(SCIP_ROW *row)

SCIP_Bool SCIProwIsInLP(SCIP_ROW *row)

SCIP_Real SCIProwGetDualsol(SCIP_ROW *row)

SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var)

void SCIPupdateSolLPConsViolation(SCIP *scip, SCIP_SOL *sol, SCIP_Real absviol, SCIP_Real relviol)

SCIP_Bool SCIPisFeasGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Real SCIPinfinity(SCIP *scip)

SCIP_Bool SCIPisGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisIntegral(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisPositive(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPfeasCeil(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisFeasZero(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPfeasFloor(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPround(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisFeasLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisFeasNegative(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisFeasIntegral(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPfeastol(SCIP *scip)

SCIP_Real SCIPgetHugeValue(SCIP *scip)

SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisNegative(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisFeasGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPepsilon(SCIP *scip)

SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)

SCIP_Bool SCIPisFeasPositive(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPparseReal(SCIP *scip, const char *str, SCIP_Real *value, char **endptr)

SCIP_Bool SCIPinRepropagation(SCIP *scip)

SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)

SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)

SCIP_Bool SCIPvarIsBinary(SCIP_VAR *var)

SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)

SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)

SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)

int SCIPvarGetNLocksUpType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)

SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)

SCIP_RETCODE SCIPaggregateVars(SCIP *scip, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *redundant, SCIP_Bool *aggregated)

SCIP_RETCODE SCIPinferVarUbCons(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)

SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)

SCIP_Real SCIPvarGetObj(SCIP_VAR *var)

SCIP_VAR * SCIPvarGetProbvar(SCIP_VAR *var)

SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)

SCIP_VARTYPE SCIPvarGetType(SCIP_VAR *var)

SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)

SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)

SCIP_RETCODE SCIPaddVarVub(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool *infeasible, int *nbdchgs)

int SCIPvarGetIndex(SCIP_VAR *var)

SCIP_RETCODE SCIPaddVarLocksType(SCIP *scip, SCIP_VAR *var, SCIP_LOCKTYPE locktype, int nlocksdown, int nlocksup)

SCIP_RETCODE SCIPaddVarVlb(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vlbvar, SCIP_Real vlbcoef, SCIP_Real vlbconstant, SCIP_Bool *infeasible, int *nbdchgs)

SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)

const char * SCIPvarGetName(SCIP_VAR *var)

SCIP_RETCODE SCIPreleaseVar(SCIP *scip, SCIP_VAR **var)

SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub)

SCIP_RETCODE SCIPparseVarsLinearsum(SCIP *scip, const char *str, SCIP_VAR **vars, SCIP_Real *vals, int *nvars, int varssize, int *requiredsize, char **endptr, SCIP_Bool *success)

SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb)

SCIP_Bool SCIPvarIsIntegral(SCIP_VAR *var)

SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)

SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)

SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)

SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)

SCIP_RETCODE SCIPinferVarLbCons(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)

int SCIPvarGetNLocksDownType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)

SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)

SCIP_RETCODE SCIPcaptureVar(SCIP *scip, SCIP_VAR *var)

SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)

void SCIPsortPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)

SCIP_RETCODE SCIPskipSpace(char **s)

SCIP_RETCODE SCIPgetSymActiveVariables(SCIP *scip, SYM_SYMTYPE symtype, SCIP_VAR ***vars, SCIP_Real **scalars, int *nvars, SCIP_Real *constant, SCIP_Bool transformed)

SCIP_RETCODE SCIPextendPermsymDetectionGraphLinear(SCIP *scip, SYM_GRAPH *graph, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_CONS *cons, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool *success)

memory allocation routines

public methods for managing constraints

public methods for managing events

public methods for LP management

public methods for message output

#define SCIPdebugPrintCons(x, y, z)

public data structures and miscellaneous methods

methods for sorting joint arrays of various types

public methods for problem variables

public methods for conflict handler plugins and conflict analysis

public methods for constraint handler plugins and constraints

public methods for cuts and aggregation rows

public methods for event handler plugins and event handlers

public methods for the LP relaxation, rows and columns

public methods for memory management

public methods for message handling

public methods for nonlinear relaxation

public methods for numerical tolerances

public methods for SCIP parameter handling

public methods for global and local (sub)problems

public methods for the probing mode

public methods for solutions

public methods for the branch-and-bound tree

public methods for SCIP variables

structs for symmetry computations

methods for dealing with symmetry detection graphs

@ SCIP_CONFTYPE_PROPAGATION

struct SCIP_ConshdlrData SCIP_CONSHDLRDATA

struct SCIP_ConsData SCIP_CONSDATA

struct SCIP_EventData SCIP_EVENTDATA

#define SCIP_EVENTTYPE_VARFIXED

#define SCIP_EVENTTYPE_BOUNDTIGHTENED

enum SCIP_BoundType SCIP_BOUNDTYPE

enum SCIP_Result SCIP_RESULT

enum SCIP_Retcode SCIP_RETCODE

enum SYM_Symtype SYM_SYMTYPE

#define SCIP_PRESOLTIMING_MEDIUM

@ SCIP_VARTYPE_CONTINUOUS

@ SCIP_VARSTATUS_MULTAGGR


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