A RetroSearch Logo

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

Search Query:

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

SCIP Doxygen Documentation: nlhdlr_convex.c Source File

44#define CONVEX_NLHDLR_NAME "convex" 45#define CONVEX_NLHDLR_DESC "handler that identifies and estimates convex expressions" 46#define CONVEX_NLHDLR_DETECTPRIORITY 50 47#define CONVEX_NLHDLR_ENFOPRIORITY 50 49#define CONCAVE_NLHDLR_NAME "concave" 50#define CONCAVE_NLHDLR_DESC "handler that identifies and estimates concave expressions" 51#define CONCAVE_NLHDLR_DETECTPRIORITY 40 52#define CONCAVE_NLHDLR_ENFOPRIORITY 40 54#define DEFAULT_DETECTSUM FALSE 55#define DEFAULT_EXTENDEDFORM TRUE 56#define DEFAULT_CVXQUADRATIC_CONVEX TRUE 57#define DEFAULT_CVXQUADRATIC_CONCAVE FALSE 58#define DEFAULT_CVXSIGNOMIAL TRUE 59#define DEFAULT_CVXPRODCOMP TRUE 60#define DEFAULT_HANDLETRIVIAL FALSE 61#define DEFAULT_MAXPERTURB 0.01 63#define INITLPMAXVARVAL 1000.0 64#define RANDNUMINITSEED 220802 76struct

SCIP_NlhdlrExprData

121#define DECL_CURVCHECK(x) SCIP_RETCODE x( \ 124 SCIP_Bool isrootexpr, \ 126 SCIP_HASHMAP* nlexpr2origexpr, \ 127 SCIP_NLHDLRDATA* nlhdlrdata, \ 128 SCIP_HASHMAP* assumevarfixed, \ 150

assert(nlexpr2origexpr !=

NULL

);

151

assert(nlhdlrexpr !=

NULL

);

152

assert(origexpr !=

NULL

);

157

*nlhdlrexpr = origexpr;

168

assert(*nlhdlrexpr !=

NULL

);

196

assert(nlhdlrexpr !=

NULL

);

202 if

( nchildren == 0 )

205 for

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

226

assert(args !=

NULL

);

228

assert(evaldata !=

NULL

);

230#ifdef SCIP_MORE_DEBUG 233 for

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

235#ifdef SCIP_MORE_DEBUG 257

assert(exprstack !=

NULL

);

258

assert(initsize > 0);

275

assert(exprstack !=

NULL

);

290

assert(exprstack !=

NULL

);

295

assert(exprs !=

NULL

);

315

assert(exprstack !=

NULL

);

327

assert(exprstack !=

NULL

);

351

assert(nlexpr !=

NULL

);

352

assert(stack !=

NULL

);

353

assert(nlexpr2origexpr !=

NULL

);

354

assert(success !=

NULL

);

358 if

( !nlhdlrdata->cvxquadratic )

370

assert(expr !=

NULL

);

382 if

( nquadexprs <= 1 )

386 if

( isrootexpr && !nlhdlrdata->detectsum && nbilinexprs == 0 )

395 if

( presentcurv != wantedcurv )

400 if

( !nlhdlrdata->detectsum )

408 for

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

414 if

( nadjbilin == 0 )

416

assert(sqrexpr !=

NULL

);

436

assert(child !=

NULL

);

463 if

( nlhdlrdata->extendedform )

471 if

( lonelysquares !=

NULL

)

495

assert(nlexpr !=

NULL

);

496

assert(stack !=

NULL

);

497

assert(nlexpr2origexpr !=

NULL

);

498

assert(success !=

NULL

);

502 if

( !nlhdlrdata->cvxsignomial )

509

assert(expr !=

NULL

);

519 for

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

522

assert(child !=

NULL

);

539

nfactors, exponents, bounds, curv) )

553 for

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

556

assert(child !=

NULL

);

566 if

( nlhdlrdata->extendedform )

625

assert(nlexpr !=

NULL

);

626

assert(stack !=

NULL

);

627

assert(nlexpr2origexpr !=

NULL

);

628

assert(success !=

NULL

);

632 if

( !nlhdlrdata->cvxprodcomp )

639

assert(expr !=

NULL

);

645 for

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

664#ifndef NLHDLR_CONVEX_UNITTEST 679#ifdef SCIP_MORE_DEBUG 693 if

( hbounds.

inf

< 0.0 && hbounds.

sup

> 0.0 )

704 SCIP_CALL

( SCIPcallExprMonotonicity(

scip

, f, 0, &fmonotonicity) );

725 if

( hbounds.

inf

>= 0 )

730 if

( fbounds.

inf

< 0.0 )

740 if

( fbounds.

sup

> 0.0 )

757 if

( hbounds.

sup

<= 0 )

762 if

( fbounds.

inf

< 0.0 )

772 if

( fbounds.

sup

> 0.0 )

788#ifndef NLHDLR_CONVEX_UNITTEST 795 if

( nlhdlrdata->extendedform )

832

assert(nlexpr !=

NULL

);

833

assert(stack !=

NULL

);

834

assert(nlexpr2origexpr !=

NULL

);

835

assert(success !=

NULL

);

838

assert(origexpr !=

NULL

);

841 if

( nchildren == 0 )

857 if

( isrootexpr && !nlhdlrdata->detectsum &&

SCIPisExprSum

(

scip

, nlexpr) && nchildren > 1 )

864#ifdef SCIP_MORE_DEBUG 880 if

( nlhdlrdata->extendedform )

883 for

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

906static DECL_CURVCHECK

((*CURVCHECKS[])) = { curvCheckProductComposite, curvCheckSignomial, curvCheckQuadratic, curvCheckExprhdlr };

908static const int NCURVCHECKS

=

sizeof

(CURVCHECKS) /

sizeof

(

void

*);

927

assert(expr !=

NULL

);

933 if

( nchildren <= 1 )

936 for

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

972

assert(nlhdlrdata !=

NULL

);

973

assert(rootnlexpr !=

NULL

);

974

assert(nlexpr2origexpr !=

NULL

);

975

assert(nleafs !=

NULL

);

976

assert(rootexpr !=

NULL

);

983 if

( curvsuccess !=

NULL

)

984

*curvsuccess =

TRUE

;

992

assert(nlexpr !=

NULL

);

1010#ifdef SCIP_MORE_DEBUG 1022 for

( method = 0; method <

NCURVCHECKS

; ++method )

1024 SCIP_CALL

( CURVCHECKS[method](

scip

, nlexpr, isrootexpr, &stack, nlexpr2origexpr, nlhdlrdata, assumevarfixed, &success) );

1040

assert(stack.

stackpos

>= oldstackpos);

1042

isrootexpr =

FALSE

;

1048 if

( stack.

stackpos

== oldstackpos )

1054

*curvsuccess =

FALSE

;

1060 if

( !nlhdlrdata->isnlhdlrconvex && *rootnlexpr !=

NULL

)

1076

assert(child !=

NULL

);

1087#ifdef SCIP_MORE_DEBUG 1089 SCIPinfoMessage

(

scip

,

NULL

,

"... is a multivariate linear sum that we'll treat as auxvar instead (postprocess)\n"

);

1110 if

( *rootnlexpr !=

NULL

)

1161

assert(nlhdlrexprdata !=

NULL

);

1162

assert(nlhdlrexprdata->nlexpr !=

NULL

);

1163

assert(nlhdlrexprdata->nlexpr2origexpr !=

NULL

);

1167

assert(nlhdlrexprdata->nleafs > 0);

1168

assert(nlhdlrexprdata->leafexprs ==

NULL

);

1172

nlhdlrexprdata->nleafs = 0;

1183

assert(nlexpr !=

NULL

);

1192

assert(origexpr !=

NULL

);

1205

assert(var !=

NULL

);

1242

assert(nlhdlrexprdata->nleafs > 0);

1255 if

( entry ==

NULL

)

1259

assert(leaf !=

NULL

);

1264

assert(idx < nlhdlrexprdata->nleafs);

1266

nlhdlrexprdata->leafexprs[idx] = leaf;

1293

assert(expr !=

NULL

);

1294

assert(nlhdlrexprdata !=

NULL

);

1295

assert(*nlhdlrexprdata ==

NULL

);

1296

assert(nlexpr !=

NULL

);

1297

assert(nlexpr2origexpr !=

NULL

);

1303

(*nlhdlrexprdata)->nlexpr = nlexpr;

1304

(*nlhdlrexprdata)->nlexpr2origexpr = nlexpr2origexpr;

1305

(*nlhdlrexprdata)->nleafs = nleafs;

1327

assert(origexpr !=

NULL

);

1394

assert(nlhdlr !=

NULL

);

1395

assert(nlhdlrexprdata !=

NULL

);

1396

assert(rowprep !=

NULL

);

1397

assert(success !=

NULL

);

1409 for

( i = 0; i < nlhdlrexprdata->nleafs; ++i )

1412

assert(var !=

NULL

);

1421

assert(nlhdlrdata !=

NULL

);

1423 if

( nlhdlrdata->evalsol ==

NULL

)

1429

evaldata.

evalsol

= nlhdlrdata->evalsol;

1436 for

( i = 0; i < nlhdlrexprdata->nleafs; ++i )

1439

assert(var !=

NULL

);

1444 SCIPdebugMsg

(

scip

,

"lower bound at -infinity, no estimate possible\n"

);

1451 SCIPdebugMsg

(

scip

,

"upper bound at +infinity, no estimate possible\n"

);

1459

xstar[i] = 0.5 * (box[2*i] + box[2*i+1]);

1475

xstar, box, nlhdlrexprdata->nleafs, targetvalue, success,

SCIProwprepGetCoefs

(rowprep), &facetconstant) );

1485 for

( i = 0; i < nlhdlrexprdata->nleafs; ++i )

1517

assert(nlhdlrexprdata !=

NULL

);

1518

assert(rowprep !=

NULL

);

1519

assert(success !=

NULL

);

1521

nlexpr = nlhdlrexprdata->nlexpr;

1522

assert(nlexpr !=

NULL

);

1530 SCIPdebugMsg

(

scip

,

"gradient evaluation error for %p\n"

, (

void

*)nlexpr);

1540 for

( i = 0; i < nlhdlrexprdata->nleafs; ++i )

1550 SCIPdebugMsg

(

scip

,

"gradient evaluation error for component %d of %p\n"

, i, (

void

*)nlexpr);

1555

assert(var !=

NULL

);

1588

assert(nlhdlrexprdata !=

NULL

);

1589

assert(rowprep !=

NULL

);

1590

assert(success !=

NULL

);

1607

assert(nlhdlrdata !=

NULL

);

1610 if

( nlhdlrdata->maxperturb == 0.0 )

1612 SCIPdebugMsg

(

scip

,

"gradient evaluation error, perturbation disabled\n"

);

1616 SCIPdebugMsg

(

scip

,

"gradient evaluation error, try perturbed point\n"

);

1618 if

( nlhdlrdata->evalsol ==

NULL

)

1623 if

( nlhdlrdata->randnumgen ==

NULL

)

1628 for

( i = 0; i < nlhdlrexprdata->nleafs; ++i )

1637

assert(var !=

NULL

);

1642

val =

MIN

(ub,

MAX

(lb, val));

1644

p =

SCIPrandomGetReal

(nlhdlrdata->randnumgen, -nlhdlrdata->maxperturb, nlhdlrdata->maxperturb);

1651 if

( val + p <= lb )

1653 else if

( val + p >= ub )

1661 if

( val <= lb || val >= ub )

1691

assert(nlhdlrexprdata !=

NULL

);

1692

assert(nlhdlrexprdata->nleafs == 1);

1693

assert(rowprep !=

NULL

);

1694

assert(success !=

NULL

);

1696

nlexpr = nlhdlrexprdata->nlexpr;

1697

assert(nlexpr !=

NULL

);

1702

assert(nlhdlrdata !=

NULL

);

1705

assert(var !=

NULL

);

1737

assert(left != right);

1740 if

( nlhdlrdata->evalsol ==

NULL

)

1767 SCIPdebugMsg

(

scip

,

"f(%g)=%g, f(%g)=%g\n"

, left, fleft, right, fright);

1799

assert(nlhdlrdata !=

NULL

);

1800

assert(*nlhdlrdata !=

NULL

);

1801

assert((*nlhdlrdata)->evalsol ==

NULL

);

1802

assert((*nlhdlrdata)->randnumgen ==

NULL

);

1814

assert(nlhdlrexprdata !=

NULL

);

1815

assert(*nlhdlrexprdata !=

NULL

);

1833

assert(nlhdlrdata !=

NULL

);

1835 if

( nlhdlrdata->evalsol !=

NULL

)

1840 if

( nlhdlrdata->randnumgen !=

NULL

)

1856

assert(nlhdlr !=

NULL

);

1857

assert(expr !=

NULL

);

1858

assert(enforcing !=

NULL

);

1859

assert(participating !=

NULL

);

1860

assert(nlhdlrexprdata !=

NULL

);

1871

assert(nlhdlrdata !=

NULL

);

1872

assert(nlhdlrdata->isnlhdlrconvex);

1874 SCIPdebugMsg

(

scip

,

"nlhdlr_convex detect for expr %p\n"

, (

void

*)expr);

1886 if

( nlexpr !=

NULL

)

1892 SCIPdebugMsg

(

scip

,

"detected expr %p to be convex -> can enforce expr <= auxvar\n"

, (

void

*)expr);

1904 if

( nlexpr !=

NULL

)

1910 SCIPdebugMsg

(

scip

,

"detected expr %p to be concave -> can enforce expr >= auxvar\n"

, (

void

*)expr);

1915

*enforcing |= *participating;

1917

assert(*participating || nlexpr ==

NULL

);

1918 if

( !*participating )

1936

assert(nlhdlrexprdata !=

NULL

);

1937

assert(nlhdlrexprdata->nlexpr !=

NULL

);

1938

assert(auxvalue !=

NULL

);

1962

assert(expr !=

NULL

);

1963

assert(nlhdlrexprdata !=

NULL

);

1968

nlexpr = nlhdlrexprdata->nlexpr;

1969

assert(nlexpr !=

NULL

);

1977

overestimate =

FALSE

;

1979

underestimate =

FALSE

;

1980 if

( !overestimate && !underestimate )

1989

*infeasible =

FALSE

;

1991 for

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

1994

lambda = 0.1 * (k+1);

1996 for

( i = 0; i < nlhdlrexprdata->nleafs; ++i )

2039 SCIPdebugMsg

(

scip

,

"failed to cleanup rowprep numerics for k = %d\n"

, k);

2045

overestimate ?

"over"

:

"under"

, (

void

*)expr, k);

2073

assert(expr !=

NULL

);

2074

assert(nlhdlrexprdata !=

NULL

);

2075

assert(nlhdlrexprdata->nlexpr !=

NULL

);

2076

assert(rowpreps !=

NULL

);

2077

assert(success !=

NULL

);

2079

assert(

SCIPhashmapGetImage

(nlhdlrexprdata->nlexpr2origexpr, (

void

*)nlhdlrexprdata->nlexpr) == expr);

2088

*addedbranchscores =

FALSE

;

2097 if

( nlhdlrexprdata->nleafs == 1 &&

SCIPexprIsIntegral

(nlhdlrexprdata->leafexprs[0]) )

2102

overestimate ?

"over"

:

"under"

,

2104

sol !=

NULL

?

"sol"

:

"lp"

,

2114

overestimate ?

"over"

:

"under"

,

2116

sol !=

NULL

?

"sol"

:

"lp"

,

2140

assert(expr !=

NULL

);

2141

assert(nlhdlrexprdata !=

NULL

);

2142

assert(nlhdlrexprdata->nlexpr !=

NULL

);

2143

assert(

SCIPhashmapGetImage

(nlhdlrexprdata->nlexpr2origexpr, (

void

*)nlhdlrexprdata->nlexpr) == expr);

2144

assert(sol !=

NULL

);

2151

assert(underestimate == !overestimate);

2158 if

( nlhdlrexprdata->nleafs == 1 &&

SCIPexprIsIntegral

(nlhdlrexprdata->leafexprs[0]) )

2163

overestimate ?

"over"

:

"under"

, (

void

*)expr,

SCIPsolGetIndex

(sol));

2172

overestimate ?

"over"

:

"under"

, (

void

*)expr,

SCIPsolGetIndex

(sol));

2201

assert(targetscip !=

NULL

);

2202

assert(sourcenlhdlr !=

NULL

);

2221

nlhdlrdata->isnlhdlrconvex =

TRUE

;

2222

nlhdlrdata->evalsol =

NULL

;

2223

nlhdlrdata->randnumgen =

NULL

;

2227

assert(nlhdlr !=

NULL

);

2230 "whether to run convexity detection when the root of an expression is a non-quadratic sum"

,

2234 "whether to create extended formulations instead of looking for maximal convex expressions"

,

2238 "maximal relative perturbation of non-differentiable reference point"

,

2242 "whether to use convexity check on quadratics"

,

2246 "whether to use convexity check on signomials"

,

2250 "whether to use convexity check on product composition f(h)*h"

,

2254 "whether to also handle trivial convex expressions"

,

2278

assert(nlhdlrdata !=

NULL

);

2279

assert(nlhdlrdata->randnumgen ==

NULL

);

2281 if

( nlhdlrdata->evalsol !=

NULL

)

2299

assert(nlhdlr !=

NULL

);

2300

assert(expr !=

NULL

);

2301

assert(enforcing !=

NULL

);

2302

assert(participating !=

NULL

);

2303

assert(nlhdlrexprdata !=

NULL

);

2314

assert(nlhdlrdata !=

NULL

);

2315

assert(!nlhdlrdata->isnlhdlrconvex);

2317 SCIPdebugMsg

(

scip

,

"nlhdlr_concave detect for expr %p\n"

, (

void

*)expr);

2332 SCIPdebugMsg

(

scip

,

"Too many variables (%d) in constructed expression. Will not be able to estimate. Rejecting.\n"

, nleafs);

2336 if

( nlexpr !=

NULL

)

2342 SCIPdebugMsg

(

scip

,

"detected expr %p to be concave -> can enforce expr <= auxvar\n"

, (

void

*)expr);

2357 SCIPdebugMsg

(

scip

,

"Too many variables (%d) in constructed expression. Will not be able to estimate. Rejecting.\n"

, nleafs);

2361 if

( nlexpr !=

NULL

)

2367 SCIPdebugMsg

(

scip

,

"detected expr %p to be convex -> can enforce expr >= auxvar\n"

, (

void

*)expr);

2372

*enforcing |= *participating;

2374

assert(*participating || nlexpr ==

NULL

);

2375 if

( !*participating )

2400

assert(expr !=

NULL

);

2401

assert(nlhdlrexprdata !=

NULL

);

2403

nlexpr = nlhdlrexprdata->nlexpr;

2404

assert(nlexpr !=

NULL

);

2414

overestimate =

FALSE

;

2416

underestimate =

FALSE

;

2417 if

( !overestimate && !underestimate )

2442

overestimate ?

"over"

:

"under"

, (

void

*)expr);

2454 if

( rowprep !=

NULL

)

2467

assert(expr !=

NULL

);

2468

assert(nlhdlrexprdata !=

NULL

);

2469

assert(nlhdlrexprdata->nlexpr !=

NULL

);

2470

assert(rowpreps !=

NULL

);

2471

assert(success !=

NULL

);

2473

assert(

SCIPhashmapGetImage

(nlhdlrexprdata->nlexpr2origexpr, (

void

*)nlhdlrexprdata->nlexpr) == expr);

2482

*addedbranchscores =

FALSE

;

2493

overestimate ?

"over"

:

"under"

,

2495

sol !=

NULL

?

"sol"

:

"lp"

,

2503 if

( addbranchscores )

2525 if

( !overestimate )

2526

violation =

MAX

(0.0, auxvalue - auxval);

2528

violation =

MAX

(0.0, auxval - auxvalue);

2530

assert(violation >= 0.0);

2533 if

( nlhdlrexprdata->nleafs == 1 )

2548 for

( c = 0; c < nlhdlrexprdata->nleafs; ++c )

2564

assert(targetscip !=

NULL

);

2565

assert(sourcenlhdlr !=

NULL

);

2584

nlhdlrdata->isnlhdlrconvex =

FALSE

;

2585

nlhdlrdata->evalsol =

NULL

;

2586

nlhdlrdata->randnumgen =

NULL

;

2590

assert(nlhdlr !=

NULL

);

2593 "whether to run convexity detection when the root of an expression is a sum"

,

2597

nlhdlrdata->extendedform =

FALSE

;

2600 "whether to use convexity check on quadratics"

,

2604 "whether to use convexity check on signomials"

,

2608 "whether to use convexity check on product composition f(h)*h"

,

2612 "whether to also handle trivial convex expressions"

,

2641

assert(expr !=

NULL

);

2643

assert(success !=

NULL

);

2649

nlhdlrdata.isnlhdlrconvex =

TRUE

;

2650

nlhdlrdata.evalsol =

NULL

;

2651

nlhdlrdata.detectsum =

TRUE

;

2652

nlhdlrdata.extendedform =

FALSE

;

2653

nlhdlrdata.cvxquadratic =

TRUE

;

2654

nlhdlrdata.cvxsignomial =

TRUE

;

2655

nlhdlrdata.cvxprodcomp =

TRUE

;

2656

nlhdlrdata.handletrivial =

TRUE

;

2661 if

( rootnlexpr !=

NULL

)

constraint handler for nonlinear constraints specified by algebraic expressions

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

#define SCIPquadprecSumQD(r, a, b)

#define QUAD_ASSIGN(a, constant)

#define SCIP_CALL_ABORT(x)

#define SCIP_LONGINT_FORMAT

absolute expression handler

variable expression handler

SCIP_Bool SCIPassumeConvexNonlinear(SCIP_CONSHDLR *conshdlr)

SCIP_VAR * SCIPgetExprAuxVarNonlinear(SCIP_EXPR *expr)

SCIP_RETCODE SCIPaddExprsViolScoreNonlinear(SCIP *scip, SCIP_EXPR **exprs, int nexprs, SCIP_Real violscore, SCIP_SOL *sol, SCIP_Bool *success)

SCIP_RETCODE SCIPregisterExprUsageNonlinear(SCIP *scip, SCIP_EXPR *expr, SCIP_Bool useauxvar, SCIP_Bool useactivityforprop, SCIP_Bool useactivityforsepabelow, SCIP_Bool useactivityforsepaabove)

SCIP_RETCODE SCIPcomputeFacetVertexPolyhedralNonlinear(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_Bool overestimate, SCIP_DECL_VERTEXPOLYFUN((*function)), void *fundata, SCIP_Real *xstar, SCIP_Real *box, int nallvars, SCIP_Real targetvalue, SCIP_Bool *success, SCIP_Real *facetcoefs, SCIP_Real *facetconstant)

#define SCIP_MAXVERTEXPOLYDIM

SCIP_RETCODE SCIPcreateExprVar(SCIP *scip, SCIP_EXPR **expr, SCIP_VAR *var, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)

SCIP_Bool SCIPisExprAbs(SCIP *scip, SCIP_EXPR *expr)

void SCIPhashmapFree(SCIP_HASHMAP **hashmap)

void * SCIPhashmapGetImage(SCIP_HASHMAP *hashmap, void *origin)

SCIP_RETCODE SCIPhashmapInsert(SCIP_HASHMAP *hashmap, void *origin, void *image)

SCIP_RETCODE SCIPhashmapSetImage(SCIP_HASHMAP *hashmap, void *origin, void *image)

int SCIPhashmapEntryGetImageInt(SCIP_HASHMAPENTRY *entry)

int SCIPhashmapGetNEntries(SCIP_HASHMAP *hashmap)

SCIP_HASHMAPENTRY * SCIPhashmapGetEntry(SCIP_HASHMAP *hashmap, int entryidx)

SCIP_RETCODE SCIPhashmapCreate(SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)

void * SCIPhashmapEntryGetOrigin(SCIP_HASHMAPENTRY *entry)

SCIP_Bool SCIPhashmapExists(SCIP_HASHMAP *hashmap, void *origin)

SCIP_RETCODE SCIPhashmapInsertInt(SCIP_HASHMAP *hashmap, void *origin, int image)

SCIP_RETCODE SCIPhashmapRemoveAll(SCIP_HASHMAP *hashmap)

void SCIPhashsetFree(SCIP_HASHSET **hashset, BMS_BLKMEM *blkmem)

SCIP_Bool SCIPhashsetExists(SCIP_HASHSET *hashset, void *element)

SCIP_RETCODE SCIPhashsetInsert(SCIP_HASHSET *hashset, BMS_BLKMEM *blkmem, void *element)

SCIP_RETCODE SCIPhashsetCreate(SCIP_HASHSET **hashset, BMS_BLKMEM *blkmem, int size)

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

SCIP_RETCODE SCIPhasExprCurvature(SCIP *scip, SCIP_EXPR *expr, SCIP_EXPRCURV curv, SCIP_Bool *success, SCIP_HASHMAP *assumevarfixed)

SCIP_RETCODE SCIPincludeNlhdlrConvex(SCIP *scip)

SCIP_RETCODE SCIPincludeNlhdlrConcave(SCIP *scip)

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 SCIPaddPoolCut(SCIP *scip, SCIP_ROW *row)

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

SCIP_RETCODE SCIPsetPtrarrayVal(SCIP *scip, SCIP_PTRARRAY *ptrarray, int idx, void *val)

const char * SCIPexprhdlrGetName(SCIP_EXPRHDLR *exprhdlr)

SCIP_Bool SCIPexprhdlrHasBwdiff(SCIP_EXPRHDLR *exprhdlr)

const char * SCIPexprcurvGetName(SCIP_EXPRCURV curv)

SCIP_RETCODE SCIPappendExprChild(SCIP *scip, SCIP_EXPR *expr, SCIP_EXPR *child)

SCIP_RETCODE SCIPevalExpr(SCIP *scip, SCIP_EXPR *expr, SCIP_SOL *sol, SCIP_Longint soltag)

int SCIPexprGetNChildren(SCIP_EXPR *expr)

SCIP_RETCODE SCIPcomputeExprIntegrality(SCIP *scip, SCIP_EXPR *expr)

SCIP_Real SCIPgetExponentExprPow(SCIP_EXPR *expr)

SCIP_Bool SCIPisExprProduct(SCIP *scip, SCIP_EXPR *expr)

SCIP_RETCODE SCIPevalExprGradient(SCIP *scip, SCIP_EXPR *expr, SCIP_SOL *sol, SCIP_Longint soltag)

SCIP_Bool SCIPexpriterIsEnd(SCIP_EXPRITER *iterator)

void SCIPexprSetCurvature(SCIP_EXPR *expr, SCIP_EXPRCURV curvature)

SCIP_EXPR * SCIPexpriterSkipDFS(SCIP_EXPRITER *iterator)

SCIP_Real SCIPexprGetDerivative(SCIP_EXPR *expr)

SCIP_Bool SCIPisExprSum(SCIP *scip, SCIP_EXPR *expr)

SCIP_RETCODE SCIPduplicateExprShallow(SCIP *scip, SCIP_EXPR *expr, SCIP_EXPR **copyexpr, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)

SCIP_Bool SCIPexprIsIntegral(SCIP_EXPR *expr)

void SCIPexprGetQuadraticData(SCIP_EXPR *expr, SCIP_Real *constant, int *nlinexprs, SCIP_EXPR ***linexprs, SCIP_Real **lincoefs, int *nquadexprs, int *nbilinexprs, SCIP_Real **eigenvalues, SCIP_Real **eigenvectors)

SCIP_RETCODE SCIPreplaceExprChild(SCIP *scip, SCIP_EXPR *expr, int childidx, SCIP_EXPR *newchild)

SCIP_Real * SCIPgetCoefsExprSum(SCIP_EXPR *expr)

SCIP_Bool SCIPisExprValue(SCIP *scip, SCIP_EXPR *expr)

SCIP_Real SCIPgetCoefExprProduct(SCIP_EXPR *expr)

int SCIPcompareExpr(SCIP *scip, SCIP_EXPR *expr1, SCIP_EXPR *expr2)

SCIP_RETCODE SCIPreleaseExpr(SCIP *scip, SCIP_EXPR **expr)

SCIP_EXPR * SCIPexpriterGetCurrent(SCIP_EXPRITER *iterator)

SCIP_Bool SCIPexprcurvMonomialInv(SCIP_EXPRCURV monomialcurv, int nfactors, SCIP_Real *exponents, SCIP_INTERVAL *factorbounds, SCIP_EXPRCURV *factorcurv)

void SCIPexpriterSetStagesDFS(SCIP_EXPRITER *iterator, SCIP_EXPRITER_STAGE stopstages)

SCIP_Bool SCIPisExprVar(SCIP *scip, SCIP_EXPR *expr)

SCIP_RETCODE SCIPcomputeExprQuadraticCurvature(SCIP *scip, SCIP_EXPR *expr, SCIP_EXPRCURV *curv, SCIP_HASHMAP *assumevarfixed, SCIP_Bool storeeigeninfo)

SCIP_EXPRCURV SCIPexprcurvMultiply(SCIP_Real factor, SCIP_EXPRCURV curvature)

SCIP_RETCODE SCIPcreateExpriter(SCIP *scip, SCIP_EXPRITER **iterator)

SCIP_RETCODE SCIPprintExpr(SCIP *scip, SCIP_EXPR *expr, FILE *file)

SCIP_EXPRCURV SCIPexprGetCurvature(SCIP_EXPR *expr)

SCIP_Bool SCIPisExprPower(SCIP *scip, SCIP_EXPR *expr)

SCIP_Real SCIPexprGetEvalValue(SCIP_EXPR *expr)

SCIP_EXPR * SCIPexpriterGetNext(SCIP_EXPRITER *iterator)

SCIP_RETCODE SCIPcheckExprQuadratic(SCIP *scip, SCIP_EXPR *expr, SCIP_Bool *isquadratic)

SCIP_EXPR ** SCIPexprGetChildren(SCIP_EXPR *expr)

SCIP_Real SCIPgetConstantExprSum(SCIP_EXPR *expr)

SCIP_VAR * SCIPgetVarExprVar(SCIP_EXPR *expr)

SCIP_INTERVAL SCIPexprGetActivity(SCIP_EXPR *expr)

void SCIPexprGetQuadraticQuadTerm(SCIP_EXPR *quadexpr, int termidx, SCIP_EXPR **expr, SCIP_Real *lincoef, SCIP_Real *sqrcoef, int *nadjbilin, int **adjbilin, SCIP_EXPR **sqrexpr)

int SCIPexpriterGetChildIdxDFS(SCIP_EXPRITER *iterator)

void SCIPfreeExpriter(SCIP_EXPRITER **iterator)

void SCIPcaptureExpr(SCIP_EXPR *expr)

SCIP_RETCODE SCIPexpriterInit(SCIP_EXPRITER *iterator, SCIP_EXPR *expr, SCIP_EXPRITER_TYPE type, SCIP_Bool allowrevisit)

SCIP_Longint SCIPexprGetDiffTag(SCIP_EXPR *expr)

SCIP_RETCODE SCIPremoveExprChildren(SCIP *scip, SCIP_EXPR *expr)

SCIP_RETCODE SCIPevalExprActivity(SCIP *scip, SCIP_EXPR *expr)

SCIP_EXPRHDLR * SCIPexprGetHdlr(SCIP_EXPR *expr)

SCIP_EXPR * SCIPexpriterGetChildExprDFS(SCIP_EXPRITER *iterator)

#define SCIPallocClearBlockMemory(scip, ptr)

int SCIPcalcMemGrowSize(SCIP *scip, int num)

#define SCIPallocBufferArray(scip, ptr, num)

#define SCIPreallocBufferArray(scip, ptr, num)

#define SCIPfreeBufferArray(scip, ptr)

#define SCIPallocBlockMemoryArray(scip, ptr, num)

#define SCIPfreeBlockMemory(scip, ptr)

#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)

#define SCIPallocBlockMemory(scip, ptr)

void SCIPnlhdlrSetCopyHdlr(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRCOPYHDLR((*copy)))

void SCIPnlhdlrSetFreeExprData(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRFREEEXPRDATA((*freeexprdata)))

void SCIPnlhdlrSetSollinearize(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRSOLLINEARIZE((*sollinearize)))

SCIP_NLHDLRDATA * SCIPnlhdlrGetData(SCIP_NLHDLR *nlhdlr)

void SCIPnlhdlrSetFreeHdlrData(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRFREEHDLRDATA((*freehdlrdata)))

void SCIPnlhdlrSetSepa(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINITSEPA((*initsepa)), SCIP_DECL_NLHDLRENFO((*enfo)), SCIP_DECL_NLHDLRESTIMATE((*estimate)), SCIP_DECL_NLHDLREXITSEPA((*exitsepa)))

void SCIPnlhdlrSetInitExit(SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINIT((*init)), SCIP_DECL_NLHDLREXIT((*exit_)))

const char * SCIPnlhdlrGetName(SCIP_NLHDLR *nlhdlr)

SCIP_RETCODE SCIPincludeNlhdlrNonlinear(SCIP *scip, SCIP_NLHDLR **nlhdlr, const char *name, const char *desc, int detectpriority, int enfopriority, SCIP_DECL_NLHDLRDETECT((*detect)), SCIP_DECL_NLHDLREVALAUX((*evalaux)), SCIP_NLHDLRDATA *nlhdlrdata)

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

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

SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)

SCIP_RETCODE SCIPfreeSol(SCIP *scip, SCIP_SOL **sol)

int SCIPsolGetIndex(SCIP_SOL *sol)

SCIP_RETCODE SCIPsetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real val)

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

SCIP_Longint SCIPgetNLPs(SCIP *scip)

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

SCIP_Real SCIPinfinity(SCIP *scip)

SCIP_Bool SCIPisIntegral(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)

SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPround(SCIP *scip, SCIP_Real val)

SCIP_Real SCIPgetHugeValue(SCIP *scip)

SCIP_Real SCIPceil(SCIP *scip, SCIP_Real val)

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_BOUNDTYPE SCIPvarGetBestBoundType(SCIP_VAR *var)

SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)

SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)

const char * SCIPvarGetName(SCIP_VAR *var)

SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)

SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)

void SCIPfreeRandom(SCIP *scip, SCIP_RANDNUMGEN **randnumgen)

SCIP_Real SCIPrandomGetReal(SCIP_RANDNUMGEN *randnumgen, SCIP_Real minrandval, SCIP_Real maxrandval)

SCIP_RETCODE SCIPcreateRandom(SCIP *scip, SCIP_RANDNUMGEN **randnumgen, unsigned int initialseed, SCIP_Bool useglobalseed)

SCIP_RETCODE SCIPcleanupRowprep2(SCIP *scip, SCIP_ROWPREP *rowprep, SCIP_SOL *sol, SCIP_Real maxcoefbound, SCIP_Bool *success)

SCIP_RETCODE SCIPensureRowprepSize(SCIP *scip, SCIP_ROWPREP *rowprep, int size)

SCIP_Real * SCIProwprepGetCoefs(SCIP_ROWPREP *rowprep)

char * SCIProwprepGetName(SCIP_ROWPREP *rowprep)

SCIP_Bool SCIProwprepIsLocal(SCIP_ROWPREP *rowprep)

void SCIProwprepAddConstant(SCIP_ROWPREP *rowprep, SCIP_Real constant)

SCIP_RETCODE SCIPaddRowprepTerm(SCIP *scip, SCIP_ROWPREP *rowprep, SCIP_VAR *var, SCIP_Real coef)

SCIP_RETCODE SCIPgetRowprepRowCons(SCIP *scip, SCIP_ROW **row, SCIP_ROWPREP *rowprep, SCIP_CONS *cons)

SCIP_RETCODE SCIPcreateRowprep(SCIP *scip, SCIP_ROWPREP **rowprep, SCIP_SIDETYPE sidetype, SCIP_Bool local)

void SCIProwprepSetLocal(SCIP_ROWPREP *rowprep, SCIP_Bool islocal)

void SCIPfreeRowprep(SCIP *scip, SCIP_ROWPREP **rowprep)

void SCIPprintRowprep(SCIP *scip, SCIP_ROWPREP *rowprep, FILE *file)

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

static SCIP_DECL_NLHDLREXIT(nlhdlrExitConvex)

#define DEFAULT_HANDLETRIVIAL

static SCIP_RETCODE exprstackInit(SCIP *scip, EXPRSTACK *exprstack, int initsize)

static SCIP_DECL_NLHDLREVALAUX(nlhdlrEvalAuxConvexConcave)

static SCIP_DECL_VERTEXPOLYFUN(nlhdlrExprEvalConcave)

static SCIP_RETCODE estimateGradientInner(SCIP *scip, SCIP_NLHDLREXPRDATA *nlhdlrexprdata, SCIP_SOL *sol, SCIP_ROWPREP *rowprep, SCIP_Bool *success)

#define CONCAVE_NLHDLR_NAME

static SCIP_Bool exprIsMultivarLinear(SCIP *scip, SCIP_EXPR *expr)

#define CONCAVE_NLHDLR_DESC

static SCIP_DECL_NLHDLRFREEHDLRDATA(nlhdlrfreeHdlrDataConvexConcave)

static SCIP_RETCODE exprstackPush(SCIP *scip, EXPRSTACK *exprstack, int nexprs, SCIP_EXPR **exprs)

static void exprstackFree(SCIP *scip, EXPRSTACK *exprstack)

#define CONVEX_NLHDLR_DETECTPRIORITY

#define DEFAULT_EXTENDEDFORM

static SCIP_RETCODE estimateVertexPolyhedral(SCIP *scip, SCIP_CONSHDLR *conshdlr, SCIP_NLHDLR *nlhdlr, SCIP_NLHDLREXPRDATA *nlhdlrexprdata, SCIP_SOL *sol, SCIP_Bool usemidpoint, SCIP_Bool overestimate, SCIP_Real targetvalue, SCIP_ROWPREP *rowprep, SCIP_Bool *success)

static SCIP_RETCODE createNlhdlrExprData(SCIP *scip, SCIP_NLHDLRDATA *nlhdlrdata, SCIP_NLHDLREXPRDATA **nlhdlrexprdata, SCIP_EXPR *expr, SCIP_EXPR *nlexpr, SCIP_HASHMAP *nlexpr2origexpr, int nleafs, SCIP_NLHDLR_METHOD participating)

static SCIP_DECL_NLHDLRCOPYHDLR(nlhdlrCopyhdlrConvex)

#define CONVEX_NLHDLR_DESC

#define CONVEX_NLHDLR_NAME

static SCIP_DECL_NLHDLRFREEEXPRDATA(nlhdlrfreeExprDataConvexConcave)

#define DEFAULT_MAXPERTURB

#define CONCAVE_NLHDLR_DETECTPRIORITY

static SCIP_DECL_NLHDLRINITSEPA(nlhdlrInitSepaConvex)

static const int NCURVCHECKS

static SCIP_DECL_NLHDLRESTIMATE(nlhdlrEstimateConvex)

#define CONVEX_NLHDLR_ENFOPRIORITY

#define DEFAULT_CVXSIGNOMIAL

static SCIP_RETCODE constructExpr(SCIP *scip, SCIP_NLHDLRDATA *nlhdlrdata, SCIP_EXPR **rootnlexpr, SCIP_HASHMAP *nlexpr2origexpr, int *nleafs, SCIP_EXPR *rootexpr, SCIP_EXPRCURV curv, SCIP_HASHMAP *assumevarfixed, SCIP_Bool assumecurvature, SCIP_Bool *curvsuccess)

static SCIP_RETCODE collectLeafs(SCIP *scip, SCIP_NLHDLREXPRDATA *nlhdlrexprdata)

#define DEFAULT_DETECTSUM

static SCIP_RETCODE nlhdlrExprCreate(SCIP *scip, SCIP_HASHMAP *nlexpr2origexpr, SCIP_EXPR **nlhdlrexpr, SCIP_EXPR *origexpr, SCIP_EXPRCURV curv)

#define DEFAULT_CVXPRODCOMP

#define DEFAULT_CVXQUADRATIC_CONCAVE

#define DEFAULT_CVXQUADRATIC_CONVEX

static SCIP_RETCODE estimateConvexSecant(SCIP *scip, SCIP_NLHDLR *nlhdlr, SCIP_NLHDLREXPRDATA *nlhdlrexprdata, SCIP_SOL *sol, SCIP_ROWPREP *rowprep, SCIP_Bool *success)

static SCIP_DECL_NLHDLRSOLLINEARIZE(nlhdlrSollinearizeConvex)

static SCIP_RETCODE nlhdlrExprGrowChildren(SCIP *scip, SCIP_HASHMAP *nlexpr2origexpr, SCIP_EXPR *nlhdlrexpr, SCIP_EXPRCURV *childrencurv)

#define DECL_CURVCHECK(x)

static SCIP_Bool exprstackIsEmpty(EXPRSTACK *exprstack)

static SCIP_EXPR * exprstackPop(EXPRSTACK *exprstack)

#define CONCAVE_NLHDLR_ENFOPRIORITY

static SCIP_DECL_NLHDLRDETECT(nlhdlrDetectConvex)

static SCIP_RETCODE estimateGradient(SCIP *scip, SCIP_NLHDLR *nlhdlr, SCIP_NLHDLREXPRDATA *nlhdlrexprdata, SCIP_SOL *sol, SCIP_ROWPREP *rowprep, SCIP_Bool *success)

nonlinear handlers for convex and concave expressions, respectively

BMS_BLKMEM * SCIPblkmem(SCIP *scip)

preparation of a linear inequality to become a SCIP_ROW

public functions of nonlinear handlers of nonlinear constraints

public functions to work with algebraic expressions

SCIP_NLHDLREXPRDATA * nlhdlrexprdata

#define SCIP_EXPRITER_VISITINGCHILD

#define SCIP_NLHDLR_METHOD_SEPAABOVE

struct SCIP_NlhdlrData SCIP_NLHDLRDATA

#define SCIP_NLHDLR_METHOD_SEPABOTH

unsigned int SCIP_NLHDLR_METHOD

struct SCIP_NlhdlrExprData SCIP_NLHDLREXPRDATA

#define SCIP_NLHDLR_METHOD_SEPABELOW

enum SCIP_Retcode SCIP_RETCODE


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