assert(nlrow !=
NULL);
128assert(var !=
NULL);
140assert(nlp !=
NULL);
153assert(idx >= 0 && idx < nlp->nvars);
156assert(idx >= 0 && idx < nlp->nvars_solver);
176assert(sourcescip !=
NULL);
177assert(sourcescip == targetscip);
178assert(sourceexpr !=
NULL);
179assert(targetexpr !=
NULL);
180assert(*targetexpr ==
NULL);
181assert(mapexprdata !=
NULL);
193assert(nlpidx < nlp->nvars);
212assert(nlrow !=
NULL);
224assert(nlp !=
NULL);
234 SCIP_CALL(
SCIPexprCopy(
set, stat, blkmem,
set, stat, blkmem, nlrow->
expr, &nlpiexpr, mapvar2varidx, (
void*)nlp,
NULL,
NULL) );
252assert(nlrow !=
NULL);
256assert(nlp !=
NULL);
290assert(nlrow !=
NULL);
302assert(nlp !=
NULL);
339assert(nlp !=
NULL);
340assert(nlrow !=
NULL);
342assert(incr == 1 || incr == -1);
376assert(nlrow !=
NULL);
397assert(nlrow !=
NULL);
398assert(var !=
NULL);
418assert(nlrow !=
NULL);
419assert(0 <= oldpos && oldpos < nlrow->nlinvars);
420assert(0 <= newpos && newpos < nlrow->nlinvars);
423 if( oldpos == newpos )
447assert(nlrow !=
NULL);
448assert(blkmem !=
NULL);
449assert(var !=
NULL);
472 SCIPsetDebugMsg(
set,
"added linear coefficient %g * <%s> at position %d to nonlinear row <%s>\n",
478#ifdef SCIP_DISABLED_CODE 496assert(nlrow !=
NULL);
497assert(blkmem !=
NULL);
498assert(var !=
NULL);
506 if( constant != 0.0 )
551assert(pos < nlrow->nlinvars);
552assert(nlrow->
linvars[pos] == var);
574assert(nlrow !=
NULL);
576assert(0 <= pos && pos < nlrow->nlinvars);
602assert(nlrow !=
NULL);
603assert(0 <= pos && pos < nlrow->nlinvars);
636assert(nlrow !=
NULL);
638assert(stat !=
NULL);
682assert(nlrow !=
NULL);
683assert(blkmem !=
NULL);
685assert(pos < nlrow->nlinvars);
698 if( nlrow->
lincoefs[pos] == 0.0 )
703 if( pos < nlrow->nlinvars )
716 if( oldconstant != nlrow->
constant)
783assert(nlrow !=
NULL);
787 for( i = 0; i <
MIN(oldlen, nlrow->
nlinvars); ++i )
823nlrow->
expr= simplified;
861assert(nlrow !=
NULL);
862assert(var !=
NULL);
915assert(nlrow !=
NULL);
916assert(blkmem !=
NULL);
918assert(name !=
NULL);
920assert(nlinvars == 0 || linvars !=
NULL);
921assert(nlinvars == 0 || lincoefs !=
NULL);
928(*nlrow)->constant = constant;
931 for( i = 0; i < nlinvars; ++i )
933assert(linvars[i] !=
NULL);
939(*nlrow)->nlinvars = nlinvars;
940(*nlrow)->linvarssize = nlinvars;
945(*nlrow)->linvarssorted =
FALSE;
949(*nlrow)->linvars =
NULL;
950(*nlrow)->lincoefs =
NULL;
951(*nlrow)->linvarssorted =
TRUE;
958 SCIP_CALL(
SCIPexprCopy(
set, stat, blkmem,
set, stat, blkmem, expr, &(*nlrow)->expr,
NULL,
NULL,
NULL,
NULL) );
962(*nlrow)->expr =
NULL;
966(*nlrow)->lhs =
MIN(lhs, rhs);
967(*nlrow)->rhs =
MAX(lhs, rhs);
972(*nlrow)->validactivitynlp =
FALSE;
974(*nlrow)->validpsactivitydomchg =
FALSE;
977(*nlrow)->validactivitybdsdomchg =
FALSE;
978(*nlrow)->nlpindex = -1;
979(*nlrow)->nlpiindex = -1;
981(*nlrow)->dualsol = 0.0;
982(*nlrow)->curvature = curvature;
1002assert(nlrow !=
NULL);
1003assert(blkmem !=
NULL);
1005assert(sourcenlrow !=
NULL);
1010sourcenlrow->
expr,
1014(*nlrow)->activity = sourcenlrow->
activity;
1018(*nlrow)->minactivity = sourcenlrow->
minactivity;
1019(*nlrow)->maxactivity = sourcenlrow->
maxactivity;
1039assert(nlrow !=
NULL);
1040assert(blkmem !=
NULL);
1042assert(row !=
NULL);
1053 for( i = 0; i < rownz; ++i )
1056assert(rowvars[i] !=
NULL);
1067 else if( rownz == 1 )
1103assert(nlrow !=
NULL);
1106 if( nlrow->
name!=
NULL&& nlrow->
name[0] !=
'\0')
1118 for( i = 0; i < nlrow->
nlinvars; ++i )
1146assert(nlrow !=
NULL);
1147assert(nlrow->
nuses>= 0);
1161assert(blkmem !=
NULL);
1162assert(nlrow !=
NULL);
1163assert(*nlrow !=
NULL);
1164assert((*nlrow)->nuses >= 1);
1166 SCIPsetDebugMsg(
set,
"release nonlinear row <%s> with nuses=%d\n", (*nlrow)->name, (*nlrow)->nuses);
1168 if( (*nlrow)->nuses > 0 )
1176assert((*nlrow)->nuses == 0);
1177assert((*nlrow)->nlpindex == -1);
1178assert((*nlrow)->nlpiindex == -1);
1185 if( (*nlrow)->expr !=
NULL)
1206assert(nlrow !=
NULL);
1218assert(num <= nlrow->linvarssize);
1282assert(nlrow !=
NULL);
1283assert(var !=
NULL);
1295assert(0 <= pos && pos < nlrow->nlinvars);
1296assert(nlrow->
linvars[pos] == var);
1317assert(nlrow !=
NULL);
1318assert(nlp !=
NULL);
1319assert(var !=
NULL);
1352assert(nlrow !=
NULL);
1353assert(blkmem !=
NULL);
1370 SCIP_CALL(
SCIPexprCopy(
set, stat, blkmem,
set, stat, blkmem, expr, &nlrow->
expr,
NULL,
NULL,
NULL,
NULL) );
1380assert(!infeasible);
1383nlrow->
expr= simplified;
1406assert(nlrow !=
NULL);
1426assert(nlrow !=
NULL);
1452assert(nlrow !=
NULL);
1477assert(nlrow !=
NULL);
1516assert(nlrow !=
NULL);
1517assert(stat !=
NULL);
1518assert(nlp !=
NULL);
1522 SCIPerrorMessage(
"do not have NLP solution for computing NLP activity\n");
1527 for( i = 0; i < nlrow->
nlinvars; ++i )
1567assert(nlrow !=
NULL);
1568assert(stat !=
NULL);
1569assert(activity !=
NULL);
1599assert(nlrow !=
NULL);
1600assert(feasibility !=
NULL);
1603*feasibility =
MIN(nlrow->
rhs- activity, activity - nlrow->
lhs);
1623assert(nlrow !=
NULL);
1624assert(stat !=
NULL);
1627 for( i = 0; i < nlrow->
nlinvars; ++i )
1668assert(nlrow !=
NULL);
1669assert(stat !=
NULL);
1670assert(pseudoactivity !=
NULL);
1701assert(nlrow !=
NULL);
1702assert(stat !=
NULL);
1703assert(pseudofeasibility !=
NULL);
1706*pseudofeasibility =
MIN(nlrow->
rhs- pseudoactivity, pseudoactivity - nlrow->
lhs);
1725assert(nlrow !=
NULL);
1727assert(stat !=
NULL);
1728assert(activity !=
NULL);
1731 for( i = 0; i < nlrow->
nlinvars; ++i )
1741*activity += nlrow->
lincoefs[i] * val1;
1754*activity =
MAX(*activity, -inf);
1755*activity =
MIN(*activity, +inf);
1772assert(nlrow !=
NULL);
1773assert(feasibility !=
NULL);
1777*feasibility =
MIN(nlrow->
rhs- activity, activity - nlrow->
lhs);
1792assert(nlrow !=
NULL);
1794assert(stat !=
NULL);
1806 if( minactivity !=
NULL)
1808 if( maxactivity !=
NULL)
1826assert(nlrow !=
NULL);
1828assert(isredundant !=
NULL);
1832*isredundant =
TRUE;
1835*isredundant =
FALSE;
1842#undef SCIPnlrowGetConstant 1843#undef SCIPnlrowGetNLinearVars 1844#undef SCIPnlrowGetLinearVars 1845#undef SCIPnlrowGetLinearCoefs 1846#undef SCIPnlrowGetExpr 1847#undef SCIPnlrowGetLhs 1848#undef SCIPnlrowGetRhs 1849#undef SCIPnlrowGetCurvature 1850#undef SCIPnlrowGetName 1851#undef SCIPnlrowGetNLPPos 1852#undef SCIPnlrowIsInNLP 1853#undef SCIPnlrowGetDualsol 1861assert(nlrow !=
NULL);
1871assert(nlrow !=
NULL);
1881assert(nlrow !=
NULL);
1891assert(nlrow !=
NULL);
1901assert(nlrow !=
NULL);
1903 returnnlrow->
expr;
1911assert(nlrow !=
NULL);
1913 returnnlrow->
lhs;
1921assert(nlrow !=
NULL);
1923 returnnlrow->
rhs;
1931assert(nlrow !=
NULL);
1940assert(nlrow !=
NULL);
1942 returnnlrow->
name;
1950assert(nlrow !=
NULL);
1960assert(nlrow !=
NULL);
1973assert(nlrow !=
NULL);
1996assert(nlp !=
NULL);
1997assert(nlrow !=
NULL);
2040assert(nlp !=
NULL);
2041assert(blkmem !=
NULL);
2043assert(nlrows !=
NULL|| nnlrows == 0);
2048 for( j = 0; j < nnlrows; ++j )
2061 for( i = 0; i < nlrow->
nlinvars; ++i )
2120assert(nlp !=
NULL);
2121assert(0 <= oldpos && oldpos < nlp->nnlrows);
2122assert(0 <= newpos && newpos < nlp->nnlrows);
2125 if( oldpos == newpos )
2152assert(nlp !=
NULL);
2153assert(blkmem !=
NULL);
2156assert(pos < nlp->nnlrows);
2160nlrow = nlp->
nlrows[pos];
2161assert(nlrow !=
NULL);
2211assert(nlp !=
NULL);
2212assert(var !=
NULL);
2269assert(nlp !=
NULL);
2270assert(var !=
NULL);
2332assert(nlp !=
NULL);
2333assert(blkmem !=
NULL);
2335assert(vars !=
NULL|| nvars == 0);
2336assert(!nlp->
indiving|| nvars == 0);
2344 for( i = 0; i < nvars; ++i )
2392nlp->
nvars+= nvars;
2408assert(nlp !=
NULL);
2409assert(0 <= oldpos && oldpos < nlp->nvars);
2410assert(0 <= newpos && newpos < nlp->nvars);
2411assert(nlp->
vars[oldpos] !=
NULL);
2413 if( oldpos == newpos )
2417nlp->
vars[newpos] = nlp->
vars[oldpos];
2449assert(nlp !=
NULL);
2450assert(blkmem !=
NULL);
2453assert(pos < nlp->nvars);
2456var = nlp->
vars[pos];
2457assert(var !=
NULL);
2461 for( i = 0; i < nlp->
nnlrows; ++i )
2466nlrow = nlp->
nlrows[i];
2467assert(nlrow !=
NULL);
2473 for( j = 0; j < nlrow->
nlinvars; ++j )
2474assert( nlrow->
linvars[j] != var );
2501assert(nlpipos < nlp->nvars_solver);
2539assert(nlp !=
NULL);
2540assert(var !=
NULL);
2546 for( i = 0; i < nlp->
nnlrows; ++i )
2569assert(nlp !=
NULL);
2571assert(nlrow !=
NULL);
2572assert(linidxs !=
NULL);
2582 for( i = 0; i < nlrow->
nlinvars; ++i )
2585assert(var !=
NULL);
2590assert((*linidxs)[i] >= 0);
2608assert(nlp !=
NULL);
2609assert(blkmem !=
NULL);
2622assert(num <= nlp->sizevars_solver);
2636assert(nlp !=
NULL);
2637assert(blkmem !=
NULL);
2650assert(num <= nlp->sizenlrows_solver);
2668assert(nlp !=
NULL);
2669assert(blkmem !=
NULL);
2708assert(rowset[j] <= j);
2709 if( rowset[j] < 0 )
2714 else if( rowset[j] < j )
2761assert(nlp !=
NULL);
2762assert(blkmem !=
NULL);
2802assert(colset[i] <= i);
2803 if( colset[i] < 0 )
2808 else if( colset[i] < i)
2814assert(varpos >= 0);
2815assert(varpos < nlp->nvars);
2862 const char** names;
2864assert(nlp !=
NULL);
2865assert(blkmem !=
NULL);
2876 for( i = 0; i < nlp->
nnlrows; ++i )
2900 for( i = 0; i < nlp->
nnlrows; ++i )
2902nlrow = nlp->
nlrows[i];
2903assert(nlrow !=
NULL);
2908assert(c < nlp->nunflushednlrowadd);
2917lhss[c] = nlrow->
lhs;
2918rhss[c] = nlrow->
rhs;
2926 if( rhss[c] < lhss[c] )
2938 SCIP_CALL(
SCIPexprCopy(
set, stat, blkmem,
set, stat, blkmem, nlrow->
expr, &exprs[c], mapvar2varidx, (
void*)nlp,
NULL,
NULL) );
2944names[c] = nlrow->
name;
2960nlinvars, linidxs, lincoefs,
2966 if( linidxs[c] !=
NULL)
2968 if( exprs[c] !=
NULL)
3004 const char** names;
3006assert(nlp !=
NULL);
3007assert(blkmem !=
NULL);
3016 for( i = 0; i < nlp->
nvars; ++i )
3036 for( i = 0; i < nlp->
nvars; ++i )
3041assert(c < nlp->nunflushedvaradd);
3096assert(nlp !=
NULL);
3097assert(blkmem !=
NULL);
3123lincoefs[nz] = coef;
3128nz, linindices, lincoefs,
3155assert(nlp !=
NULL);
3156assert(blkmem !=
NULL);
3158assert(stat !=
NULL);
3190assert(nlpidx >= 0);
3191assert(nlpidx < nlp->nvars);
3223nlrowdualvals =
NULL;
3224varlbdualvals =
NULL;
3225varubdualvals =
NULL;
3229assert(primalvals !=
NULL|| nlp->
nvars== 0);
3230assert((varlbdualvals !=
NULL) == (varubdualvals !=
NULL));
3235 for( i = 0; i < nlp->
nvars; ++i )
3247 for( i = 0; i < nlp->
nvars; ++i )
3263 for( i = 0; i < nlp->
nnlrows; ++i )
3273 if( varlbdualvals !=
NULL)
3275 for( i = 0; i < nlp->
nvars; ++i )
3285 else if( nlp->
nvars> 0 )
3310assert(nlp !=
NULL);
3311assert(blkmem !=
NULL);
3313assert(stat !=
NULL);
3325 SCIPsetDebugMsg(
set,
"NLP globally infeasible, unbounded, or worse -> no solution values -> no fractional variables\n");
3353maxpriority = INT_MIN;
3356 for( i = 0; i < nlp->
nvars; ++i )
3358var = nlp->
vars[i];
3359assert(var !=
NULL);
3407 if( branchpriority > maxpriority )
3412 if( insertpos != 0 )
3420maxpriority = branchpriority;
3422 else if( branchpriority == maxpriority )
3441 SCIPsetDebugMsg(
set,
" -> candidate %d: var=<%s>, sol=%g, frac=%g, prio=%d (max: %d) -> pos %d\n",
3463assert(eventhdlr !=
NULL);
3464assert(event !=
NULL);
3465assert(eventdata !=
NULL);
3522assert(blkmem !=
NULL);
3549assert(nlp !=
NULL);
3550assert(blkmem !=
NULL);
3552assert(stat !=
NULL);
3553assert(name !=
NULL);
3558 if(
set->nnlpis > 0 )
3560assert(
set->nlp_solver !=
NULL);
3561 if(
set->nlp_solver[0] ==
'\0')
3563assert(
set->nlpis !=
NULL);
3566 if( !
set->nlpissorted )
3569(*nlp)->solver =
set->nlpis[0];
3574 if( (*nlp)->solver ==
NULL)
3580assert((*nlp)->solver !=
NULL);
3587(*nlp)->solver =
NULL;
3588(*nlp)->problem =
NULL;
3592(*nlp)->nunflushedvaradd = 0;
3593(*nlp)->nunflushedvardel = 0;
3594(*nlp)->nunflushednlrowadd = 0;
3595(*nlp)->nunflushednlrowdel = 0;
3596(*nlp)->indiving =
FALSE;
3600(*nlp)->sizevars = 0;
3601(*nlp)->vars =
NULL;
3604(*nlp)->nvars_solver = 0;
3605(*nlp)->sizevars_solver = 0;
3606(*nlp)->varmap_nlp2nlpi =
NULL;
3607(*nlp)->varmap_nlpi2nlp =
NULL;
3610(*nlp)->nnlrows = 0;
3611(*nlp)->sizenlrows = 0;
3612(*nlp)->nlrows =
NULL;
3613(*nlp)->nnlrowlinear = 0;
3614(*nlp)->nnlrowconvexineq = 0;
3615(*nlp)->nnlrownonconvexineq = 0;
3616(*nlp)->nnlrownonlineareq = 0;
3618(*nlp)->nnlrows_solver = 0;
3619(*nlp)->sizenlrows_solver = 0;
3620(*nlp)->nlrowmap_nlpi2nlp =
NULL;
3623(*nlp)->objflushed =
TRUE;
3624(*nlp)->divingobj =
NULL;
3627(*nlp)->haveinitguess =
FALSE;
3628(*nlp)->initialguess =
NULL;
3634(*nlp)->varlbdualvals =
NULL;
3635(*nlp)->varubdualvals =
NULL;
3639 if( (*nlp)->eventhdlr ==
NULL)
3646(*nlp)->eventhdlr, (
SCIP_EVENTDATA*)(*nlp), &(*nlp)->globalfilterpos) );
3649(*nlp)->fracvars =
NULL;
3650(*nlp)->fracvarssol =
NULL;
3651(*nlp)->fracvarsfrac =
NULL;
3652(*nlp)->nfracvars = 0;
3653(*nlp)->npriofracvars = 0;
3654(*nlp)->fracvarssize = 0;
3655(*nlp)->validfracvars = -1;
3673assert(nlp !=
NULL);
3674assert(*nlp !=
NULL);
3675assert(blkmem !=
NULL);
3686(*nlp)->eventhdlr, (
SCIP_EVENTDATA*)(*nlp), (*nlp)->globalfilterpos) );
3689assert((*nlp)->nnlrows == 0);
3690assert((*nlp)->nnlrows_solver == 0);
3691assert((*nlp)->nvars == 0);
3692assert((*nlp)->nvars_solver == 0);
3693assert((*nlp)->initialguess ==
NULL);
3710 if( (*nlp)->problem !=
NULL)
3735assert(nlp !=
NULL);
3736assert(blkmem !=
NULL);
3750 for(i = nlp->
nnlrows- 1; i >= 0; --i)
3755 for(i = nlp->
nvars- 1; i >= 0; --i)
3770assert(nlp !=
NULL);
3782assert(nlp !=
NULL);
3783assert(blkmem !=
NULL);
3803assert(num <= nlp->sizevars);
3816assert(nlp !=
NULL);
3817assert(blkmem !=
NULL);
3819assert(var !=
NULL);
3843assert(nlp !=
NULL);
3844assert(blkmem !=
NULL);
3846assert(vars !=
NULL|| nvars == 0);
3872assert(nlp !=
NULL);
3873assert(blkmem !=
NULL);
3875assert(var !=
NULL);
3904assert(nlp !=
NULL);
3905assert(blkmem !=
NULL);
3918assert(num <= nlp->sizenlrows);
3935assert(nlp !=
NULL);
3936assert(nlrow !=
NULL);
3962assert(nlp !=
NULL);
3963assert(nlrows !=
NULL|| nnlrows == 0);
3991assert(nlp !=
NULL);
3992assert(blkmem !=
NULL);
3994assert(nlrow !=
NULL);
4022assert(nlp !=
NULL);
4023assert(blkmem !=
NULL);
4064assert(nlp !=
NULL);
4065assert(blkmem !=
NULL);
4067assert(stat !=
NULL);
4084assert(nlp !=
NULL);
4102assert(nlp !=
NULL);
4103assert(pseudoobjval !=
NULL);
4114*pseudoobjval = 0.0;
4115 for( i = 0; i < nlp->
nvars; ++i )
4136assert(nlp !=
NULL);
4143 if( fracvars !=
NULL)
4145 if( fracvarssol !=
NULL)
4147 if( fracvarsfrac !=
NULL)
4149 if( nfracvars !=
NULL)
4151 if( npriofracvars !=
NULL)
4169assert(nlp !=
NULL);
4170assert(blkmem !=
NULL);
4172assert(stat !=
NULL);
4186 for( i = 0; i < nlp->
nnlrows; ++i )
4211assert(nlp !=
NULL);
4212assert(blkmem !=
NULL);
4217 if( initguess ==
NULL)
4253assert(nlp !=
NULL);
4255 if( fname !=
NULL)
4257file = fopen(fname,
"w");
4273 for( i = 0; i < nlp->
nvars; ++i )
4279 for( i = 0; i < nlp->
nnlrows; ++i )
4286 if( fname !=
NULL)
4299assert(nlp !=
NULL);
4309assert(nlp !=
NULL);
4311 returnnlp->
nvars;
4329assert(nlp !=
NULL);
4330assert(nlcount !=
NULL|| nlp->
nvars== 0);
4336 for( c = 0; c < nlp->
nnlrows; ++c )
4338nlrow = nlp->
nlrows[c];
4339assert(nlrow !=
NULL);
4353assert(varidx < nlp->nvars);
4354assert(nlcount !=
NULL);
4382assert(nlp !=
NULL);
4388 for( c = 0; c < nlp->
nnlrows&& !*result; ++c )
4390nlrow = nlp->
nlrows[c];
4391assert(nlrow !=
NULL);
4416assert(nlp !=
NULL);
4426assert(nlp !=
NULL);
4436assert(nlp !=
NULL);
4446assert(nlp !=
NULL);
4456 int* nnonconvexineq,
4460assert(nlp !=
NULL);
4462 if( nlinear !=
NULL)
4465 if( nconvexineq !=
NULL)
4468 if( nnonconvexineq !=
NULL)
4480assert(nlp !=
NULL);
4490assert(nlp !=
NULL);
4500assert(nlp !=
NULL);
4510assert(nlp !=
NULL);
4520assert(nlp !=
NULL);
4532assert(nlp !=
NULL);
4535assert(statistics !=
NULL);
4551assert(nlp !=
NULL);
4568assert(nlp !=
NULL);
4580 SCIPerrorMessage(
"Cannot start diving if no NLP solver is available\n");
4604assert(nlp !=
NULL);
4621 for( i = 0; i < nlp->
nvars; ++i )
4666assert(nlp !=
NULL);
4667assert(var !=
NULL);
4689 for( i = 0; i < nlp->
nvars; ++i )
4721assert(nlp !=
NULL);
4722assert(var !=
NULL);
4752assert(nlp !=
NULL);
4753assert(vars !=
NULL|| nvars == 0);
4755assert(lbs !=
NULL|| nvars == 0);
4756assert(ubs !=
NULL|| nvars == 0);
4765 for( i = 0; i < nvars; ++i )
4772assert(poss[i] >= 0);
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
internal methods for clocks and timing issues
#define SCIP_CALL_TERMINATE(retcode, x, TERM)
#define SCIP_LONGINT_FORMAT
SCIP_RETCODE SCIPeventhdlrCreate(SCIP_EVENTHDLR **eventhdlr, SCIP_SET *set, const char *name, const char *desc, SCIP_DECL_EVENTCOPY((*eventcopy)), SCIP_DECL_EVENTFREE((*eventfree)), SCIP_DECL_EVENTINIT((*eventinit)), SCIP_DECL_EVENTEXIT((*eventexit)), SCIP_DECL_EVENTINITSOL((*eventinitsol)), SCIP_DECL_EVENTEXITSOL((*eventexitsol)), SCIP_DECL_EVENTDELETE((*eventdelete)), SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata)
SCIP_RETCODE SCIPeventfilterDel(SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
SCIP_RETCODE SCIPeventfilterAdd(SCIP_EVENTFILTER *eventfilter, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
internal methods for managing events
SCIP_RETCODE SCIPexprPrint(SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_MESSAGEHDLR *messagehdlr, FILE *file, SCIP_EXPR *expr)
SCIP_RETCODE SCIPexprEvalActivity(SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_EXPR *rootexpr)
SCIP_RETCODE SCIPexprCopy(SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_SET *targetset, SCIP_STAT *targetstat, BMS_BLKMEM *targetblkmem, SCIP_EXPR *sourceexpr, SCIP_EXPR **targetexpr, SCIP_DECL_EXPR_MAPEXPR((*mapexpr)), void *mapexprdata, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_RETCODE SCIPexprSimplify(SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_EXPR *rootexpr, SCIP_EXPR **simplified, SCIP_Bool *changed, SCIP_Bool *infeasible, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
SCIP_Bool SCIPexprIsVar(SCIP_SET *set, SCIP_EXPR *expr)
SCIP_Bool SCIPexprIsValue(SCIP_SET *set, SCIP_EXPR *expr)
SCIP_RETCODE SCIPexprRelease(SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_EXPR **rootexpr)
SCIP_RETCODE SCIPexprEval(SCIP_SET *set, SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_EXPR *expr, SCIP_SOL *sol, SCIP_Longint soltag)
private functions to work with algebraic expressions
void SCIPexpriterFree(SCIP_EXPRITER **iterator)
SCIP_RETCODE SCIPexpriterCreate(SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_EXPRITER **iterator)
handler for variable index expressions
SCIP_RETCODE SCIPcreateExprVaridx(SCIP *scip, SCIP_EXPR **expr, int varidx, SCIP_DECL_EXPR_OWNERCREATE((*ownercreate)), void *ownercreatedata)
void SCIPhashmapFree(SCIP_HASHMAP **hashmap)
int SCIPhashmapGetImageInt(SCIP_HASHMAP *hashmap, void *origin)
SCIP_RETCODE SCIPhashmapCreate(SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)
SCIP_Bool SCIPhashmapExists(SCIP_HASHMAP *hashmap, void *origin)
SCIP_RETCODE SCIPhashmapInsertInt(SCIP_HASHMAP *hashmap, void *origin, int image)
SCIP_RETCODE SCIPhashmapRemove(SCIP_HASHMAP *hashmap, void *origin)
SCIP_RETCODE SCIPhashmapSetImageInt(SCIP_HASHMAP *hashmap, void *origin, int image)
SCIP_VAR * SCIPcolGetVar(SCIP_COL *col)
SCIP_EVENTTYPE SCIPeventGetType(SCIP_EVENT *event)
SCIP_VAR * SCIPeventGetVar(SCIP_EVENT *event)
const char * SCIPexprcurvGetName(SCIP_EXPRCURV curv)
SCIP_Bool SCIPexpriterIsEnd(SCIP_EXPRITER *iterator)
SCIP_EXPR * SCIPexpriterRestartDFS(SCIP_EXPRITER *iterator, SCIP_EXPR *expr)
SCIP_Real SCIPgetValueExprValue(SCIP_EXPR *expr)
SCIP_Real SCIPexprGetEvalValue(SCIP_EXPR *expr)
SCIP_EXPR * SCIPexpriterGetNext(SCIP_EXPRITER *iterator)
SCIP_VAR * SCIPgetVarExprVar(SCIP_EXPR *expr)
SCIP_INTERVAL SCIPexprGetActivity(SCIP_EXPR *expr)
SCIP_RETCODE SCIPexpriterInit(SCIP_EXPRITER *iterator, SCIP_EXPR *expr, SCIP_EXPRITER_TYPE type, SCIP_Bool allowrevisit)
SCIP_Real SCIPintervalGetInf(SCIP_INTERVAL interval)
SCIP_Bool SCIPintervalIsEntire(SCIP_Real infinity, SCIP_INTERVAL operand)
void SCIPintervalSet(SCIP_INTERVAL *resultant, SCIP_Real value)
void SCIPintervalSetBounds(SCIP_INTERVAL *resultant, SCIP_Real inf, SCIP_Real sup)
void SCIPintervalMulScalar(SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2)
SCIP_Real SCIPintervalGetSup(SCIP_INTERVAL interval)
void SCIPintervalAdd(SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2)
SCIP_RETCODE SCIPnlrowChgRhs(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_Real rhs)
SCIP_RETCODE SCIPnlrowCreate(SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, 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_RETCODE SCIPnlrowRelease(SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPnlrowEnsureLinearSize(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_RETCODE SCIPnlrowGetNLPFeasibility(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_Real *feasibility)
SCIP_RETCODE SCIPnlrowIsRedundant(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool *isredundant)
const char * SCIPnlrowGetName(SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPnlrowChgLinearCoef(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real coef)
SCIP_Real SCIPnlrowGetRhs(SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPnlrowGetActivityBounds(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real *minactivity, SCIP_Real *maxactivity)
SCIP_RETCODE SCIPnlrowGetSolFeasibility(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Real *feasibility)
SCIP_RETCODE SCIPnlrowAddLinearCoef(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real val)
SCIP_RETCODE SCIPnlrowChgLhs(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_Real lhs)
SCIP_Real SCIPnlrowGetLhs(SCIP_NLROW *nlrow)
SCIP_EXPRCURV SCIPnlrowGetCurvature(SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPnlrowChgExpr(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_EXPR *expr)
int SCIPnlrowGetNLPPos(SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPnlrowGetNLPActivity(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_Real *activity)
int SCIPnlrowGetNLinearVars(SCIP_NLROW *nlrow)
SCIP_VAR ** SCIPnlrowGetLinearVars(SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPnlrowSimplify(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlrowRecalcNLPActivity(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlrowGetSolActivity(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Real *activity)
SCIP_RETCODE SCIPnlrowPrint(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
SCIP_RETCODE SCIPnlrowChgConstant(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_Real constant)
SCIP_Real SCIPnlrowGetDualsol(SCIP_NLROW *nlrow)
SCIP_Real SCIPnlrowGetConstant(SCIP_NLROW *nlrow)
SCIP_EXPR * SCIPnlrowGetExpr(SCIP_NLROW *nlrow)
SCIP_Bool SCIPnlrowIsInNLP(SCIP_NLROW *nlrow)
SCIP_Real * SCIPnlrowGetLinearCoefs(SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPnlrowDelLinearCoef(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var)
void SCIPnlrowSetCurvature(SCIP_NLP *nlp, SCIP_SET *set, SCIP_NLROW *nlrow, SCIP_EXPRCURV curvature)
SCIP_RETCODE SCIPnlrowCreateCopy(SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *sourcenlrow)
SCIP_RETCODE SCIPnlrowGetPseudoFeasibility(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_Real *pseudofeasibility)
SCIP_RETCODE SCIPnlrowCreateFromRow(SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_ROW *row)
SCIP_RETCODE SCIPnlrowRecalcPseudoActivity(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp)
SCIP_RETCODE SCIPnlrowGetPseudoActivity(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_Real *pseudoactivity)
void SCIPnlrowCapture(SCIP_NLROW *nlrow)
SCIP_Real SCIProwGetLhs(SCIP_ROW *row)
int SCIProwGetNNonz(SCIP_ROW *row)
SCIP_COL ** SCIProwGetCols(SCIP_ROW *row)
SCIP_Real SCIProwGetRhs(SCIP_ROW *row)
const char * SCIProwGetName(SCIP_ROW *row)
SCIP_Real SCIProwGetConstant(SCIP_ROW *row)
SCIP_Real * SCIProwGetVals(SCIP_ROW *row)
SCIP_Real SCIPvarGetMultaggrConstant(SCIP_VAR *var)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
SCIP_Bool SCIPvarIsTransformed(SCIP_VAR *var)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_VARTYPE SCIPvarGetType(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPvarGetBestBoundLocal(SCIP_VAR *var)
SCIP_VAR ** SCIPvarGetMultaggrVars(SCIP_VAR *var)
int SCIPvarGetMultaggrNVars(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
int SCIPvarGetBranchPriority(SCIP_VAR *var)
int SCIPvarCompare(SCIP_VAR *var1, SCIP_VAR *var2)
SCIP_Real SCIPvarGetNLPSol(SCIP_VAR *var)
SCIP_Real * SCIPvarGetMultaggrScalars(SCIP_VAR *var)
SCIP_Bool SCIPsortedvecFindPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *val, int len, int *pos)
void SCIPsortPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
#define BMSduplicateBlockMemoryArray(mem, ptr, source, num)
#define BMSfreeMemory(ptr)
#define BMSfreeBlockMemory(mem, ptr)
#define BMSallocBlockMemory(mem, ptr)
#define BMSfreeBlockMemoryArrayNull(mem, ptr, num)
#define BMSallocBlockMemoryArray(mem, ptr, num)
#define BMScopyMemoryArray(ptr, source, num)
#define BMSfreeBlockMemoryArray(mem, ptr, num)
#define BMSreallocBlockMemoryArray(mem, ptr, oldnum, newnum)
#define BMSclearMemoryArray(ptr, num)
struct BMS_BlkMem BMS_BLKMEM
#define BMSallocMemory(ptr)
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...)
static SCIP_DECL_EVENTEXEC(eventExecNlp)
SCIP_RETCODE SCIPnlpDelVar(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_VAR *var)
SCIP_Real * SCIPnlpGetVarsUbDualsol(SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpGetStatistics(SCIP_SET *set, SCIP_NLP *nlp, SCIP_NLPSTATISTICS *statistics)
static SCIP_RETCODE nlrowRemoveFixedLinearCoefPos(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, int pos)
SCIP_Bool SCIPnlpIsDivingObjChanged(SCIP_NLP *nlp)
static SCIP_RETCODE nlpFlushVarAdditions(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
static SCIP_RETCODE nlrowConstantChanged(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpEndDive(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
static SCIP_RETCODE nlrowChgLinearCoefPos(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, int pos, SCIP_Real coef)
SCIP_NLPI * SCIPnlpGetNLPI(SCIP_NLP *nlp)
BMS_BLKMEM * SCIPblkmem(SCIP *scip)
static SCIP_RETCODE nlpEnsureVarsSolverSize(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
static SCIP_RETCODE nlpCalcFracVars(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
static void nlrowMoveLinearCoef(SCIP_NLROW *nlrow, int oldpos, int newpos)
SCIP_RETCODE SCIPnlpFree(SCIP_NLP **nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
static SCIP_RETCODE nlrowRemoveFixedLinearCoefs(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
int SCIPnlpGetNNlRows(SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpWrite(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_MESSAGEHDLR *messagehdlr, const char *fname)
SCIP_RETCODE SCIPnlpReset(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPnlpAddVars(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int nvars, SCIP_VAR **vars)
static SCIP_RETCODE nlpRemoveFixedVar(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_VAR *var)
SCIP_RETCODE SCIPnlpCreate(SCIP_NLP **nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, int nvars_estimate)
static SCIP_RETCODE nlpFlushNlRowDeletions(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_RETCODE SCIPnlpChgVarBoundsDive(SCIP_SET *set, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real lb, SCIP_Real ub)
static SCIP_RETCODE nlpMoveVar(SCIP_NLP *nlp, int oldpos, int newpos)
SCIP_RETCODE SCIPnlpInclude(SCIP_SET *set, BMS_BLKMEM *blkmem)
static SCIP_RETCODE nlpFlushObjective(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
SCIP_Bool SCIPnlpHasCurrentNodeNLP(SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpDelNlRow(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *nlrow)
SCIP_RETCODE SCIPnlpChgVarObjDive(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real coef)
SCIP_RETCODE SCIPnlpEnsureNlRowsSize(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
static SCIP_RETCODE nlrowCalcActivityBounds(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
static SCIP_DECL_EXPR_MAPEXPR(mapvar2varidx)
static void nlrowAddToStat(SCIP_NLP *nlp, SCIP_SET *set, SCIP_NLROW *nlrow, int incr)
static SCIP_RETCODE nlrowRemoveFixedVar(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var)
static SCIP_RETCODE nlpEnsureNlRowsSolverSize(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_Bool SCIPnlpHasSolution(SCIP_NLP *nlp)
static SCIP_RETCODE nlrowLinearCoefChanged(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real coef, SCIP_NLP *nlp)
static void nlrowSortLinear(SCIP_NLROW *nlrow)
static SCIP_RETCODE nlrowSimplifyExpr(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpSetInitialGuess(SCIP_SET *set, SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_Real *initguess)
static SCIP_RETCODE nlpDelNlRowPos(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int pos)
SCIP_RETCODE SCIPnlpGetVarsNonlinearity(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int *nlcount)
void SCIPnlpGetNlRowsStat(SCIP_NLP *nlp, int *nlinear, int *nconvexineq, int *nnonconvexineq, int *nnonlineareq)
static SCIP_RETCODE nlpUpdateVarBounds(SCIP_NLP *nlp, SCIP_SET *set, SCIP_VAR *var, SCIP_Bool tightened)
static SCIP_RETCODE nlpFlushVarDeletions(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
static SCIP_RETCODE nlpRowChanged(SCIP_NLP *nlp, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *nlrow)
static int nlrowSearchLinearCoef(SCIP_NLROW *nlrow, SCIP_VAR *var)
SCIP_RETCODE SCIPnlpRemoveRedundantNlRows(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPnlpAddNlRows(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int nnlrows, SCIP_NLROW **nlrows)
SCIP_RETCODE SCIPnlpGetPseudoObjval(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_Real *pseudoobjval)
static SCIP_RETCODE nlrowExprChanged(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
static SCIP_RETCODE nlpSolve(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLPPARAM *nlpparam)
static SCIP_RETCODE nlpFlushNlRowAdditions(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_RETCODE SCIPnlpChgVarsBoundsDive(SCIP_NLP *nlp, SCIP_SET *set, int nvars, SCIP_VAR **vars, SCIP_Real *lbs, SCIP_Real *ubs)
SCIP_NLPTERMSTAT SCIPnlpGetTermstat(SCIP_NLP *nlp)
static SCIP_RETCODE nlpSetupNlpiIndices(SCIP_NLP *nlp, SCIP_SET *set, SCIP_NLROW *nlrow, int **linidxs)
static SCIP_RETCODE nlrowSideChanged(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpAddNlRow(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *nlrow)
static SCIP_RETCODE nlrowAddLinearCoef(SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real coef)
SCIP_RETCODE SCIPnlpEnsureVarsSize(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
SCIP_VAR ** SCIPnlpGetVars(SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpFlush(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_NLPIPROBLEM * SCIPnlpGetNLPIProblem(SCIP_NLP *nlp)
int SCIPnlpGetNVars(SCIP_NLP *nlp)
static SCIP_RETCODE nlpAddVars(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int nvars, SCIP_VAR **vars)
SCIP_RETCODE SCIPnlpGetFracVars(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR ***fracvars, SCIP_Real **fracvarssol, SCIP_Real **fracvarsfrac, int *nfracvars, int *npriofracvars)
static SCIP_RETCODE nlpDelVarPos(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, int pos)
static void nlpMoveNlrow(SCIP_NLP *nlp, int oldpos, int newpos)
SCIP_RETCODE SCIPnlpStartDive(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
SCIP_Real * SCIPnlpGetVarsLbDualsol(SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpSolve(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLPPARAM *nlpparam)
SCIP_Real SCIPnlpGetObjval(SCIP_NLP *nlp)
static SCIP_RETCODE nlrowDelLinearCoefPos(SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, int pos)
static SCIP_RETCODE nlpAddNlRows(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int nnlrows, SCIP_NLROW **nlrows)
SCIP_NLROW ** SCIPnlpGetNlRows(SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpHasContinuousNonlinearity(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool *result)
static SCIP_RETCODE nlpUpdateObjCoef(SCIP_SET *set, SCIP_NLP *nlp, SCIP_VAR *var)
SCIP_Bool SCIPnlpIsDiving(SCIP_NLP *nlp)
SCIP_NLPSOLSTAT SCIPnlpGetSolstat(SCIP_NLP *nlp)
SCIP_RETCODE SCIPnlpAddVar(SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_VAR *var)
internal methods for NLP management
SCIP_RETCODE SCIPnlpiSetInitialGuess(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_Real *primalvalues, SCIP_Real *consdualvalues, SCIP_Real *varlbdualvalues, SCIP_Real *varubdualvalues)
SCIP_RETCODE SCIPnlpiChgVarBounds(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, const int nvars, const int *indices, const SCIP_Real *lbs, const SCIP_Real *ubs)
SCIP_RETCODE SCIPnlpiSetObjective(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nlins, const int *lininds, const SCIP_Real *linvals, SCIP_EXPR *expr, const SCIP_Real constant)
SCIP_RETCODE SCIPnlpiGetStatistics(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_NLPSTATISTICS *statistics)
SCIP_NLPSOLSTAT SCIPnlpiGetSolstat(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem)
SCIP_RETCODE SCIPnlpiFreeProblem(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM **problem)
SCIP_RETCODE SCIPnlpiDelVarSet(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int *dstats, int dstatssize)
SCIP_RETCODE SCIPnlpiAddConstraints(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nconss, const SCIP_Real *lhss, const SCIP_Real *rhss, const int *nlininds, int *const *lininds, SCIP_Real *const *linvals, SCIP_EXPR **exprs, const char **names)
SCIP_RETCODE SCIPnlpiSolve(SCIP_SET *set, SCIP_STAT *stat, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_NLPPARAM *param)
SCIP_RETCODE SCIPnlpiDelConsSet(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int *dstats, int dstatssize)
SCIP_RETCODE SCIPnlpiAddVars(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nvars, const SCIP_Real *lbs, const SCIP_Real *ubs, const char **varnames)
SCIP_RETCODE SCIPnlpiGetSolution(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_Real **primalvalues, SCIP_Real **consdualvalues, SCIP_Real **varlbdualvalues, SCIP_Real **varubdualvalues, SCIP_Real *objval)
SCIP_RETCODE SCIPnlpiChgExpr(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int idxcons, SCIP_EXPR *expr)
SCIP_RETCODE SCIPnlpiChgConsSides(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nconss, const int *indices, const SCIP_Real *lhss, const SCIP_Real *rhss)
SCIP_NLPTERMSTAT SCIPnlpiGetTermstat(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem)
SCIP_RETCODE SCIPnlpiCreateProblem(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM **problem, const char *name)
SCIP_RETCODE SCIPnlpiChgLinearCoefs(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int idx, int nvals, const int *varidxs, const SCIP_Real *vals)
internal methods for NLP solver interfaces
internal methods for collecting primal CIP solutions and primal informations
public methods for managing events
public functions to work with algebraic expressions
public methods for LP management
public methods for message output
public data structures and miscellaneous methods
methods for sorting joint arrays of various types
public methods for NLP management
public methods for problem variables
SCIP_Bool SCIPsetIsGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasFracIntegral(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetFeastol(SCIP_SET *set)
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 SCIPsetIsEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetInfinity(SCIP_SET *set)
SCIP_RETCODE SCIPsetIncludeEventhdlr(SCIP_SET *set, SCIP_EVENTHDLR *eventhdlr)
SCIP_Bool SCIPsetIsInfinity(SCIP_SET *set, SCIP_Real val)
void SCIPsetSortNlpis(SCIP_SET *set)
SCIP_NLPI * SCIPsetFindNlpi(SCIP_SET *set, const char *name)
SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetFeasFrac(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_EVENTHDLR * SCIPsetFindEventhdlr(SCIP_SET *set, const char *name)
SCIP_Bool SCIPsetIsRelLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
int SCIPsetCalcMemGrowSize(SCIP_SET *set, int num)
internal methods for global SCIP settings
#define SCIPsetFreeBufferArray(set, ptr)
#define SCIPsetAllocBufferArray(set, ptr, num)
SCIP_RETCODE SCIPsolCreateNLPSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_HEUR *heur)
SCIP_RETCODE SCIPsolFree(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_PRIMAL *primal)
SCIP_RETCODE SCIPsolCreatePseudoSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
SCIP_Real SCIPsolGetVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var)
internal methods for storing primal CIP solutions
SCIP_Longint validactivitybdsdomchg
SCIP_Longint validactivitynlp
SCIP_Longint validpsactivitydomchg
SCIP_Real primalsolobjval
SCIP_Longint validfracvars
SCIP_EVENTHDLR * eventhdlr
SCIP_NLPTERMSTAT termstat
SCIP_NLPIPROBLEM * problem
SCIP_Real * varubdualvals
SCIP_Real * varlbdualvals
datastructures for NLP management
SCIP main data structure.
datastructures for global SCIP settings
datastructures for problem statistics
#define SCIP_EVENTTYPE_BOUNDCHANGED
struct SCIP_EventData SCIP_EVENTDATA
#define SCIP_EVENTTYPE_OBJCHANGED
#define SCIP_EVENTTYPE_VARFIXED
#define SCIP_EVENTTYPE_VARDELETED
#define SCIP_EVENTTYPE_FORMAT
#define SCIP_EVENTTYPE_VARADDED
#define SCIP_EVENTTYPE_BOUNDTIGHTENED
enum SCIP_NlpSolStat SCIP_NLPSOLSTAT
@ SCIP_NLPSOLSTAT_UNBOUNDED
@ SCIP_NLPSOLSTAT_GLOBINFEASIBLE
@ SCIP_NLPSOLSTAT_LOCINFEASIBLE
@ SCIP_NLPSOLSTAT_FEASIBLE
@ SCIP_NLPSOLSTAT_GLOBOPT
@ SCIP_NLPSOLSTAT_UNKNOWN
enum SCIP_NlpTermStat SCIP_NLPTERMSTAT
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_VARTYPE_CONTINUOUS
@ SCIP_VARSTATUS_MULTAGGR
SCIP_RETCODE SCIPvarRelease(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
SCIP_RETCODE SCIPvarDropEvent(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
SCIP_RETCODE SCIPvarSetNLPSol(SCIP_VAR *var, SCIP_SET *set, SCIP_Real solval)
SCIP_RETCODE SCIPvarPrint(SCIP_VAR *var, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
void SCIPvarCapture(SCIP_VAR *var)
SCIP_RETCODE SCIPvarCatchEvent(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
SCIP_RETCODE SCIPvarGetProbvarSum(SCIP_VAR **var, SCIP_SET *set, SCIP_Real *scalar, SCIP_Real *constant)
internal methods for problem variables
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4