134 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPcreateVar",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
143 switch(
scip->set->stage )
147 name, lb, ub,
obj, vartype, initial, removable, vardelorig, vartrans, vardeltrans, varcopy, vardata) );
157 name, lb, ub,
obj, vartype, initial, removable, vardelorig, vartrans, vardeltrans, varcopy, vardata) );
204 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPcreateVarBasic",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
206 SCIP_CALL(
SCIPcreateVar(
scip,
var, name, lb, ub,
obj, vartype,
TRUE,
FALSE,
NULL,
NULL,
NULL,
NULL,
NULL) );
240 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPwriteVarName",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
303 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPwriteVarsList",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
305 for( v = 0; v <
nvars; ++v )
354 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPwriteVarsLinearsum",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
356 for( v = 0; v <
nvars; ++v )
365 else if( vals[v] == -1.0 )
408 SCIP_Real** monomialexps,
409 SCIP_Real* monomialcoefs,
419 assert(monomialvars !=
NULL || nmonomials == 0);
420 assert(monomialcoefs !=
NULL || nmonomials == 0);
421 assert(monomialnvars !=
NULL || nmonomials == 0);
423 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPwriteVarsPolynomial",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
425 if( nmonomials == 0 )
431 for(
i = 0;
i < nmonomials; ++
i )
433 if( monomialcoefs[
i] == 1.0 )
438 else if( monomialcoefs[
i] == -1.0 )
443 assert(monomialvars[
i] !=
NULL || monomialnvars[
i] == 0);
445 for( v = 0; v < monomialnvars[
i]; ++v )
448 if( monomialexps !=
NULL && monomialexps[
i] !=
NULL && monomialexps[
i][v] != 1.0 )
491 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPparseVar",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
493 switch(
scip->set->stage )
497 str, initial, removable, varcopy, vardelorig, vartrans, vardeltrans, vardata, endptr, success) );
507 str, initial, removable, varcopy, vardelorig, vartrans, vardeltrans, vardata, endptr, success) );
546 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPparseVarName",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
558 if( *varname ==
'~' )
632 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPparseVarsList",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
641 *endptr = (
char*)str;
652 if( ntmpvars < varssize )
653 tmpvars[ntmpvars] =
var;
659 while( *str == delimiter );
661 *endptr = (
char*)str;
664 if( (*success) && ntmpvars <= varssize )
666 for( v = 0; v < ntmpvars; ++v )
667 vars[v] = tmpvars[v];
674 (*requiredsize) = ntmpvars;
717 SCIP_Real** monomialexps;
718 SCIP_Real* monomialcoefs;
722 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPparseVarsLinearsum",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
744 if( nmonomials == 1 && monomialnvars[0] == 0 && monomialcoefs[0] == 0.0 )
755 *requiredsize = nmonomials;
758 if( varssize >= nmonomials )
762 for( v = 0; v < nmonomials; ++v )
764 if( monomialnvars[v] == 0 )
770 if( monomialnvars[v] > 1 || monomialexps[v][0] != 1.0 )
776 assert(monomialnvars[v] == 1);
778 assert(monomialexps[v][0] == 1.0);
780 vars[v] = monomialvars[v][0];
781 vals[v] = monomialcoefs[v];
817 SCIP_Real*** monomialexps,
818 SCIP_Real** monomialcoefs,
827 SCIPPARSEPOLYNOMIAL_STATE_BEGIN,
828 SCIPPARSEPOLYNOMIAL_STATE_INTERMED,
829 SCIPPARSEPOLYNOMIAL_STATE_COEF,
830 SCIPPARSEPOLYNOMIAL_STATE_VARS,
831 SCIPPARSEPOLYNOMIAL_STATE_EXPONENT,
832 SCIPPARSEPOLYNOMIAL_STATE_END,
833 SCIPPARSEPOLYNOMIAL_STATE_ERROR
834 } SCIPPARSEPOLYNOMIAL_STATES;
836 SCIPPARSEPOLYNOMIAL_STATES state;
843 SCIP_Real* exponents;
856 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPparseVarsPolynomial",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
861 *monomialvars =
NULL;
862 *monomialexps =
NULL;
863 *monomialcoefs =
NULL;
864 *monomialnvars =
NULL;
867 state = SCIPPARSEPOLYNOMIAL_STATE_BEGIN;
876 while( *str && state != SCIPPARSEPOLYNOMIAL_STATE_END && state != SCIPPARSEPOLYNOMIAL_STATE_ERROR )
881 assert(state != SCIPPARSEPOLYNOMIAL_STATE_END);
885 case SCIPPARSEPOLYNOMIAL_STATE_BEGIN:
892 if( monomialssize <= *nmonomials )
909 (*monomialvars)[*nmonomials] =
NULL;
910 (*monomialexps)[*nmonomials] =
NULL;
912 (*monomialcoefs)[*nmonomials] = coef;
913 (*monomialnvars)[*nmonomials] =
nvars;
925 state = SCIPPARSEPOLYNOMIAL_STATE_VARS;
928 else if( *str ==
'-' || *str ==
'+' || isdigit(*str) )
929 state = SCIPPARSEPOLYNOMIAL_STATE_COEF;
931 state = SCIPPARSEPOLYNOMIAL_STATE_END;
936 case SCIPPARSEPOLYNOMIAL_STATE_INTERMED:
941 state = SCIPPARSEPOLYNOMIAL_STATE_VARS;
943 else if( *str ==
'-' || *str ==
'+' || isdigit(*str) )
946 state = SCIPPARSEPOLYNOMIAL_STATE_BEGIN;
949 state = SCIPPARSEPOLYNOMIAL_STATE_END;
954 case SCIPPARSEPOLYNOMIAL_STATE_COEF:
956 if( *str ==
'+' && !isdigit(str[1]) )
962 else if( *str ==
'-' && !isdigit(str[1]) )
975 state = SCIPPARSEPOLYNOMIAL_STATE_ERROR;
980 state = SCIPPARSEPOLYNOMIAL_STATE_INTERMED;
985 case SCIPPARSEPOLYNOMIAL_STATE_VARS:
997 state = SCIPPARSEPOLYNOMIAL_STATE_END;
1004 state = SCIPPARSEPOLYNOMIAL_STATE_ERROR;
1009 if(
nvars + 1 > varssize )
1019 exponents[
nvars] = 1.0;
1025 state = SCIPPARSEPOLYNOMIAL_STATE_EXPONENT;
1027 state = SCIPPARSEPOLYNOMIAL_STATE_INTERMED;
1032 case SCIPPARSEPOLYNOMIAL_STATE_EXPONENT:
1041 SCIPerrorMessage(
"could not parse number in the beginning of '%s'\n", str);
1042 state = SCIPPARSEPOLYNOMIAL_STATE_ERROR;
1048 state = SCIPPARSEPOLYNOMIAL_STATE_INTERMED;
1053 case SCIPPARSEPOLYNOMIAL_STATE_END:
1055 case SCIPPARSEPOLYNOMIAL_STATE_ERROR:
1063 *endptr = (
char*)str;
1068 case SCIPPARSEPOLYNOMIAL_STATE_BEGIN:
1069 case SCIPPARSEPOLYNOMIAL_STATE_END:
1070 case SCIPPARSEPOLYNOMIAL_STATE_INTERMED:
1076 if( monomialssize <= *nmonomials )
1078 monomialssize = *nmonomials+1;
1090 (*monomialvars)[*nmonomials] =
vars;
1091 (*monomialexps)[*nmonomials] = exponents;
1097 (*monomialvars)[*nmonomials] =
NULL;
1098 (*monomialexps)[*nmonomials] =
NULL;
1100 (*monomialcoefs)[*nmonomials] = coef;
1101 (*monomialnvars)[*nmonomials] =
nvars;
1109 case SCIPPARSEPOLYNOMIAL_STATE_COEF:
1110 case SCIPPARSEPOLYNOMIAL_STATE_VARS:
1111 case SCIPPARSEPOLYNOMIAL_STATE_EXPONENT:
1113 SCIPerrorMessage(
"unexpected parsing state at end of polynomial string\n");
1116 case SCIPPARSEPOLYNOMIAL_STATE_ERROR:
1125 if( *success && *nmonomials > 0 )
1128 assert(*nmonomials <= monomialssize);
1160 SCIP_Real*** monomialexps,
1161 SCIP_Real** monomialcoefs,
1162 int** monomialnvars,
1173 assert((*monomialvars !=
NULL) == (nmonomials > 0));
1174 assert((*monomialexps !=
NULL) == (nmonomials > 0));
1175 assert((*monomialcoefs !=
NULL) == (nmonomials > 0));
1176 assert((*monomialnvars !=
NULL) == (nmonomials > 0));
1178 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPfreeParseVarsPolynomialData",
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
1180 if( nmonomials == 0 )
1183 for(
i = nmonomials - 1;
i >= 0; --
i )
1218 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPcaptureVar",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
1256 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPreleaseVar",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
1258 switch(
scip->set->stage )
1277 SCIPerrorMessage(
"cannot release last use of original variable while associated transformed variable exists\n");
1304 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarName",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
1309 SCIPerrorMessage(
"variable names can only be changed in problem creation stage\n");
1356 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtransformVar",
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
1400 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtransformVars",
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
1402 for( v = 0; v <
nvars; ++v )
1406 transvars[v] =
vars[v];
1446 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetTransformedVar",
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
1491 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetTransformedVars",
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
1493 for( v = 0; v <
nvars; ++v )
1496 transvars[v] =
vars[v];
1532 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetNegatedVar",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
1568 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetNegatedVars",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
1570 for( v = 0; v <
nvars; ++v )
1609 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetBinvarRepresentative",
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
1658 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetBinvarRepresentatives",
FALSE,
TRUE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
1669 for( v =
nvars - 1; v >= 0; --v )
1699 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPflattenVarAggregationGraph",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
1750 SCIP_Real* constant,
1755 SCIP_Bool mergemultiples
1766 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetProbvarLinearSum",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
1805 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetProbvarSum",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
1847 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetActiveVars",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
2013 if( bdchgidx ==
NULL )
2018 if( bdchginfo !=
NULL )
2107 SCIPerrorMessage(
"cannot get the bounds of a multi-aggregated variable.\n");
2149 if( bdchgidx ==
NULL )
2154 if( bdchginfo !=
NULL )
2243 SCIPerrorMessage(
"cannot get the bounds of a multiple aggregated variable.\n");
2311 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarSol",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2338 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarSols",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2342 for( v = 0; v <
nvars; ++v )
2347 for( v = 0; v <
nvars; ++v )
2374 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPclearRelaxSolVals",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2385 for( v = 0; v <
nvars; v++ )
2422 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsetRelaxSolVal",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2452 SCIP_Bool includeslp
2461 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsetRelaxSolVals",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2465 for( v = 0; v <
nvars; v++ )
2492 SCIP_Bool includeslp
2502 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsetRelaxSolValsSol",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2512 for( v = 0; v <
nvars; v++ )
2542 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisRelaxSolValid",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2559 SCIP_Bool includeslp
2564 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPmarkRelaxSolValid",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2587 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPmarkRelaxSolInvalid",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2611 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetRelaxSolVal",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2637 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetRelaxSolObj",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2659 switch(
scip->set->branch_firstsbchild )
2668 assert(
scip->set->branch_firstsbchild ==
'h');
2687 SCIP_Bool enablepropagation
2691 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPstartStrongbranch",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2700 if( enablepropagation )
2704 SCIPerrorMessage(
"cannot start strong branching with propagation while in probing mode\n");
2710 SCIPerrorMessage(
"cannot start strong branching with propagation while in diving mode\n");
2749 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPendStrongbranch",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2779 for(
i = 0, nbnds = 0;
i < nboundchgs; ++
i )
2795 SCIPdebugMsg(
scip,
"ending strong branching with probing: %d bound changes collected\n", nbnds);
2803 scip->branchcand,
scip->eventqueue,
scip->eventfilter,
scip->cliquetable) );
2806 for(
i = 0;
i < nbnds; ++
i )
2843 SCIP_Bool* downconflict,
2845 SCIP_Bool* upconflict
2850 SCIP_Bool downcutoff;
2859 if( downinf !=
NULL )
2860 *downinf = downcutoff;
2868 if(
scip->set->conf_enable &&
scip->set->conf_usesb &&
scip->set->nconflicthdlrs > 0
2877 scip->transprob,
scip->origprob,
scip->tree,
scip->reopt,
scip->lp,
scip->branchcand,
scip->eventqueue,
scip->cliquetable, col, downconflict, upconflict) );
2922 SCIP_Bool idempotent,
2925 SCIP_Bool* downvalid,
2931 SCIP_Bool* downconflict,
2933 SCIP_Bool* upconflict,
2940 SCIP_Real localdown;
2942 SCIP_Bool localdownvalid;
2943 SCIP_Bool localupvalid;
2951 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarStrongbranchFrac",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
2953 if( downvalid !=
NULL )
2955 if( upvalid !=
NULL )
2957 if( downinf !=
NULL )
2961 if( downconflict !=
NULL )
2962 *downconflict =
FALSE;
2963 if( upconflict !=
NULL )
2964 *upconflict =
FALSE;
2991 &localdown, &localup, &localdownvalid, &localupvalid,
lperror) );
3004 if( downinf !=
NULL )
3015 if( downvalid !=
NULL )
3016 *downvalid = localdownvalid;
3017 if( upvalid !=
NULL )
3018 *upvalid = localupvalid;
3029 SCIP_Bool firstchild,
3038 SCIP_Longint* ndomreductions,
3039 SCIP_Bool* conflict,
3047 SCIP_Bool* foundsol,
3051 SCIP_Longint ndomreds;
3078 if( conflict !=
NULL )
3100 if( conflict !=
NULL )
3139 if( conflict !=
NULL )
3160 if( ndomreductions !=
NULL )
3161 *ndomreductions = ndomreds;
3173 SCIPdebugMsg(
scip,
"%s branch of var <%s> detected infeasible during propagation\n",
3193 SCIPdebugMsg(
scip,
"%s branch of var <%s> detected infeasible in LP solving: status=%d\n",
3208 SCIPdebugMsg(
scip,
"probing LP solved to optimality, objective value: %16.9g\n", *value);
3218 ++
scip->stat->nsbtimesiterlimhit;
3225 SCIP_Real looseobjval;
3250 *value =
objval + looseobjval;
3305 for( v = 0; v <
nvars; ++v )
3314 for( v = 0; v <
nvars; ++v )
3319 newlbs[v] =
MIN(newlbs[v], lb);
3320 newubs[v] =
MAX(newubs[v], ub);
3361 SCIP_Bool* downvalid,
3365 SCIP_Longint* ndomredsdown,
3366 SCIP_Longint* ndomredsup,
3369 SCIP_Bool* downconflict,
3371 SCIP_Bool* upconflict,
3381 SCIP_Longint oldniters;
3386 SCIP_Bool downchild;
3387 SCIP_Bool firstchild;
3389 SCIP_Bool downvalidlocal;
3390 SCIP_Bool upvalidlocal;
3391 SCIP_Bool allcolsinlp;
3392 SCIP_Bool enabledconflict;
3406 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarStrongbranchWithPropagation",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3409 propagate = (maxproprounds != 0 && maxproprounds != -3);
3420 if( maxproprounds == -2 )
3425 if( downvalid !=
NULL )
3427 if( upvalid !=
NULL )
3429 if( downinf !=
NULL )
3433 if( downconflict !=
NULL )
3434 *downconflict =
FALSE;
3435 if( upconflict !=
NULL )
3436 *upconflict =
FALSE;
3437 if( ndomredsdown !=
NULL )
3439 if( ndomredsup !=
NULL )
3489 if( upvalid !=
NULL )
3493 if( upconflict !=
NULL )
3511 if( downinf !=
NULL )
3514 if( downvalid !=
NULL )
3518 if( downconflict !=
NULL )
3519 *downconflict =
TRUE;
3533 oldniters =
scip->stat->nsbdivinglpiterations;
3538 enabledconflict =
scip->set->conf_enable;
3539 scip->set->conf_enable = (
scip->set->conf_enable &&
scip->set->conf_usesb);
3544 downvalidlocal =
FALSE;
3545 upvalidlocal =
FALSE;
3554 down, &downvalidlocal, ndomredsdown, downconflict,
lperror,
vars,
nvars, newlbs, newubs, &foundsol, &
cutoff) );
3557 if( foundsol && !firstchild && allcolsinlp )
3569 if( downinf !=
NULL )
3572 if( downconflict !=
NULL &&
3575 *downconflict =
TRUE;
3578 if( !
scip->set->branch_forceall )
3588 up, &upvalidlocal, ndomredsup, upconflict,
lperror,
vars,
nvars, newlbs, newubs, &foundsol, &
cutoff) );
3591 if( foundsol && !firstchild && allcolsinlp )
3595 if( downinf !=
NULL )
3608 if( upconflict !=
NULL &&
3614 if( !
scip->set->branch_forceall )
3622 downchild = !downchild;
3623 firstchild = !firstchild;
3625 while( !firstchild );
3635 *down, *up, downvalidlocal, upvalidlocal,
scip->stat->nsbdivinglpiterations - oldniters, itlim);
3638 if( downvalid !=
NULL )
3639 *downvalid = downvalidlocal;
3640 if( upvalid !=
NULL )
3641 *upvalid = upvalidlocal;
3643 scip->set->conf_enable = enabledconflict;
3665 SCIP_Bool idempotent,
3668 SCIP_Bool* downvalid,
3674 SCIP_Bool* downconflict,
3676 SCIP_Bool* upconflict,
3683 SCIP_Real localdown;
3685 SCIP_Bool localdownvalid;
3686 SCIP_Bool localupvalid;
3688 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarStrongbranchInt",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3693 if( downvalid !=
NULL )
3695 if( upvalid !=
NULL )
3697 if( downinf !=
NULL )
3701 if( downconflict !=
NULL )
3702 *downconflict =
FALSE;
3703 if( upconflict !=
NULL )
3704 *upconflict =
FALSE;
3731 &localdown, &localup, &localdownvalid, &localupvalid,
lperror) );
3744 if( downinf !=
NULL )
3755 if( downvalid !=
NULL )
3756 *downvalid = localdownvalid;
3757 if( upvalid !=
NULL )
3758 *upvalid = localupvalid;
3779 SCIP_Bool* downvalid,
3785 SCIP_Bool* downconflict,
3787 SCIP_Bool* upconflict,
3796 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarsStrongbranchesFrac",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3805 for( j = 0; j <
nvars; ++j )
3810 if( downvalid !=
NULL )
3811 downvalid[j] =
FALSE;
3812 if( upvalid !=
NULL )
3814 if( downinf !=
NULL )
3818 if( downconflict !=
NULL )
3819 downconflict[j] =
FALSE;
3820 if( upconflict !=
NULL )
3821 upconflict[j] =
FALSE;
3854 down, up, downvalid, upvalid,
lperror) );
3861 for( j = 0; j <
nvars; ++j )
3864 (upinf !=
NULL) ? (&(upinf[j])) :
NULL, (downconflict !=
NULL) ? (&(downconflict[j])) :
NULL,
3865 (upconflict !=
NULL) ? (&(upconflict[j])) :
NULL) );
3890 SCIP_Bool* downvalid,
3896 SCIP_Bool* downconflict,
3898 SCIP_Bool* upconflict,
3909 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarsStrongbranchesInt",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
3917 for( j = 0; j <
nvars; ++j )
3922 if( downvalid !=
NULL )
3923 downvalid[j] =
FALSE;
3924 if( upvalid !=
NULL )
3926 if( downinf !=
NULL )
3930 if( downconflict !=
NULL )
3931 downconflict[j] =
FALSE;
3932 if( upconflict !=
NULL )
3933 upconflict[j] =
FALSE;
3966 down, up, downvalid, upvalid,
lperror) );
3973 for( j = 0; j <
nvars; ++j )
3976 (upinf !=
NULL) ? (&(upinf[j])) :
NULL, (downconflict !=
NULL) ? (&(downconflict[j])) :
NULL,
3977 (upconflict !=
NULL) ? (&(upconflict[j])) :
NULL) );
4014 SCIP_Bool* downvalid,
4022 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarStrongbranchLast",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
4026 SCIPerrorMessage(
"cannot get strong branching information on non-COLUMN variable\n");
4050 SCIP_Bool downvalid,
4056 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPsetVarStrongbranchData",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
4060 SCIPerrorMessage(
"cannot set strong branching information on non-COLUMN variable\n");
4065 down, up, downvalid, upvalid, iter, itlim);
4080 SCIP_Bool* foundsol,
4088 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtryStrongbranchLPSol",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
4090 if(
scip->set->branch_checksbsol )
4093 SCIP_Bool rounded =
TRUE;
4095 SCIP_Longint oldnbestsolsfound =
scip->primal->nbestsolsfound;
4104 if(
scip->set->branch_roundsbsol )
4123 scip->stat->nsbsolsfound++;
4125 if(
scip->primal->nbestsolsfound != oldnbestsolsfound )
4127 scip->stat->nsbbestsolsfound++;
4164 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarStrongbranchNode",
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
4198 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarStrongbranchLPAge",
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
4230 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarNStrongbranchs",
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
4266 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarLocksType",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE) );
4270 switch(
scip->set->stage )
4323 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarLocks",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE) );
4362 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPlockVarCons",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE) );
4387 switch(
scip->set->stage )
4403 if( nlocksdown[
i] == 0 && nlocksup[
i] == 0 )
4448 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPunlockVarCons",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE,
TRUE,
TRUE,
FALSE) );
4472 switch(
scip->set->stage )
4488 if( nlocksdown[
i] == 0 && nlocksup[
i] == 0 )
4518 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarObj",
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
4525 SCIPerrorMessage(
"invalid objective value: objective value is infinite\n");
4529 switch(
scip->set->stage )
4567 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarObj",
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
4571 switch(
scip->set->stage )
4618 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPadjustedVarLb",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
4650 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPadjustedVarUb",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
4681 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarLb",
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
4695 switch(
scip->set->stage )
4700 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
4702 scip->branchcand,
scip->eventqueue, newbound) );
4709 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
4724 SCIP_Bool infeasible;
4735 scip->cliquetable,
var, newbound,
4771 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarUb",
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
4785 switch(
scip->set->stage )
4790 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
4792 scip->branchcand,
scip->eventqueue, newbound) );
4799 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
4814 SCIP_Bool infeasible;
4852 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarLbNode",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
4896 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarUbNode",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
4948 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarLbGlobal",
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
4962 switch(
scip->set->stage )
4967 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
4969 scip->branchcand,
scip->eventqueue, newbound) );
4976 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
4991 SCIP_Bool infeasible;
5037 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarUbGlobal",
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5051 switch(
scip->set->stage )
5056 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5058 scip->branchcand,
scip->eventqueue, newbound) );
5065 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5080 SCIP_Bool infeasible;
5131 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarLbLazy",
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5172 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarUbLazy",
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5207 SCIP_Bool* infeasible,
5208 SCIP_Bool* tightened
5216 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtightenVarLb",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5220 *infeasible =
FALSE;
5221 if( tightened !=
NULL )
5246 newbound =
MIN(newbound, ub);
5251 switch(
scip->set->stage )
5256 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5258 scip->branchcand,
scip->eventqueue, newbound) );
5263 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5324 SCIP_Bool* infeasible,
5325 SCIP_Bool* tightened
5332 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtightenVarUb",
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5337 *infeasible =
FALSE;
5338 if( tightened !=
NULL )
5363 newbound =
MAX(newbound, lb);
5368 switch(
scip->set->stage )
5373 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5375 scip->branchcand,
scip->eventqueue, newbound) );
5380 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5438 SCIP_Bool* infeasible,
5439 SCIP_Bool* tightened
5446 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferVarFixCons",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5448 if( tightened !=
NULL )
5458 scip->eventqueue,
scip->cliquetable, fixedval, infeasible, &fixed) );
5460 if( tightened !=
NULL )
5466 SCIP_Bool lbtightened;
5470 if( ! (*infeasible) )
5474 if( tightened !=
NULL )
5475 *tightened |= lbtightened;
5507 SCIP_Bool* infeasible,
5508 SCIP_Bool* tightened
5516 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferVarLbCons",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5518 *infeasible =
FALSE;
5519 if( tightened !=
NULL )
5544 newbound =
MIN(newbound, ub);
5549 switch(
scip->set->stage )
5554 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5556 scip->branchcand,
scip->eventqueue, newbound) );
5621 SCIP_Bool* infeasible,
5622 SCIP_Bool* tightened
5630 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferVarUbCons",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5632 *infeasible =
FALSE;
5633 if( tightened !=
NULL )
5658 newbound =
MAX(newbound, lb);
5663 switch(
scip->set->stage )
5668 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5670 scip->branchcand,
scip->eventqueue, newbound) );
5728 SCIP_Bool* infeasible,
5729 SCIP_Bool* tightened
5739 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferBinvarCons",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5741 *infeasible =
FALSE;
5742 if( tightened !=
NULL )
5753 if( (lb > 0.5) || (ub < 0.5) )
5755 *infeasible = (fixedval == (lb < 0.5));
5761 switch(
scip->set->stage )
5765 if( fixedval ==
TRUE )
5782 scip->cliquetable, (SCIP_Real)fixedval, infeasible, &fixed) );
5787 if( fixedval ==
TRUE )
5806 if( tightened !=
NULL )
5832 SCIP_Bool* infeasible,
5833 SCIP_Bool* tightened
5840 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferVarFixProp",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5842 if( tightened !=
NULL )
5852 scip->cliquetable, fixedval, infeasible, &fixed) );
5854 if( tightened !=
NULL )
5860 SCIP_Bool lbtightened;
5864 if( ! (*infeasible) )
5868 if( tightened !=
NULL )
5869 *tightened |= lbtightened;
5901 SCIP_Bool* infeasible,
5902 SCIP_Bool* tightened
5910 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferVarLbProp",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
5912 *infeasible =
FALSE;
5913 if( tightened !=
NULL )
5938 newbound =
MIN(newbound, ub);
5944 switch(
scip->set->stage )
5949 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
5951 scip->branchcand,
scip->eventqueue, newbound) );
6016 SCIP_Bool* infeasible,
6017 SCIP_Bool* tightened
6025 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferVarUbProp",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6027 *infeasible =
FALSE;
6028 if( tightened !=
NULL )
6053 newbound =
MAX(newbound, lb);
6059 switch(
scip->set->stage )
6064 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
6066 scip->branchcand,
scip->eventqueue, newbound) );
6125 SCIP_Bool* infeasible,
6126 SCIP_Bool* tightened
6136 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinferBinvarProp",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6138 *infeasible =
FALSE;
6139 if( tightened !=
NULL )
6150 if( (lb > 0.5) || (ub < 0.5) )
6152 *infeasible = (fixedval == (lb < 0.5));
6158 switch(
scip->set->stage )
6162 if( fixedval ==
TRUE )
6179 scip->cliquetable, (SCIP_Real)fixedval, infeasible, &fixed) );
6184 if( fixedval ==
TRUE )
6187 scip->transprob,
scip->origprob,
scip->tree,
scip->reopt,
scip->lp,
scip->branchcand,
scip->eventqueue,
scip->cliquetable,
var, 1.0,
6193 scip->transprob,
scip->origprob,
scip->tree,
scip->reopt,
scip->lp,
scip->branchcand,
scip->eventqueue,
scip->cliquetable,
var, 0.0,
6203 if( tightened !=
NULL )
6232 SCIP_Bool* infeasible,
6233 SCIP_Bool* tightened
6241 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtightenVarLbGlobal",
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6243 *infeasible =
FALSE;
6244 if( tightened !=
NULL )
6269 newbound =
MIN(newbound, ub);
6277 switch(
scip->set->stage )
6282 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
6284 scip->branchcand,
scip->eventqueue, newbound) );
6290 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
6352 SCIP_Bool* infeasible,
6353 SCIP_Bool* tightened
6361 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPtightenVarUbGlobal",
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6363 *infeasible =
FALSE;
6364 if( tightened !=
NULL )
6389 newbound =
MAX(newbound, lb);
6397 switch(
scip->set->stage )
6402 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
6404 scip->branchcand,
scip->eventqueue, newbound) );
6410 scip->branchcand,
scip->eventqueue,
scip->cliquetable, newbound) );
6450#undef SCIPcomputeVarLbGlobal
6451#undef SCIPcomputeVarUbGlobal
6452#undef SCIPcomputeVarLbLocal
6453#undef SCIPcomputeVarUbLocal
6612 SCIP_Real* closestvlb,
6616 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarClosestVlb",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6635 SCIP_Real* closestvub,
6639 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPgetVarClosestVub",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6665 SCIP_Real vlbconstant,
6666 SCIP_Bool* infeasible,
6672 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarVlb",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6675 scip->reopt,
scip->lp,
scip->cliquetable,
scip->branchcand,
scip->eventqueue, vlbvar, vlbcoef, vlbconstant,
6676 TRUE, infeasible, &nlocalbdchgs) );
6678 *nbdchgs = nlocalbdchgs;
6690 -vlbconstant/vlbcoef,
TRUE, infeasible, &nlocalbdchgs) );
6697 -vlbconstant/vlbcoef,
TRUE, infeasible, &nlocalbdchgs) );
6699 *nbdchgs += nlocalbdchgs;
6724 SCIP_Real vubconstant,
6725 SCIP_Bool* infeasible,
6731 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarVub",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6735 infeasible, &nlocalbdchgs) );
6737 *nbdchgs = nlocalbdchgs;
6749 -vubconstant/vubcoef,
TRUE, infeasible, &nlocalbdchgs) );
6756 -vubconstant/vubcoef,
TRUE, infeasible, &nlocalbdchgs) );
6758 *nbdchgs += nlocalbdchgs;
6782 SCIP_Bool varfixing,
6786 SCIP_Real implbound,
6787 SCIP_Bool* infeasible,
6793 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarImplication",
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6796 *infeasible =
FALSE;
6798 if ( nbdchgs !=
NULL )
6825 vals[0] = varfixing;
6851 if( varfixing ==
TRUE )
6861 implbound - lby, lby,
TRUE, infeasible, nbdchgs) );
6871 implbound - uby, uby,
TRUE, infeasible, nbdchgs) );
6884 lby - implbound, implbound,
TRUE, infeasible, nbdchgs) );
6894 uby - implbound, implbound,
TRUE, infeasible, nbdchgs) );
6901 scip->tree,
scip->reopt,
scip->lp,
scip->cliquetable,
scip->branchcand,
scip->eventqueue, varfixing, implvar, impltype,
6902 implbound,
TRUE, infeasible, nbdchgs) );
6925 SCIP_Bool isequation,
6926 SCIP_Bool* infeasible,
6930 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddClique",
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
6932 *infeasible =
FALSE;
6933 if( nbdchgs !=
NULL )
6940 scip->origprob,
scip->tree,
scip->reopt,
scip->lp,
scip->branchcand,
scip->eventqueue,
vars, values,
nvars, isequation,
6941 infeasible, nbdchgs) );
6969 for(
i = 0;
i < nlabels; ++
i )
6971 int currentlabel = labels[
i];
6975 if( currentlabel == -1 )
6978 localclassidx = classidx;
6982 assert(currentlabel >= 0);
6987 localclassidx = classidx;
6995 assert(localclassidx - 1 >= 0);
6996 assert(localclassidx - 1 <=
i);
6999 labels[
i] = localclassidx - 1;
7003 assert(classidx <= nlabels);
7004 *nclasses = classidx;
7019 int* classesstartposs,
7025 int** indexpointers;
7050 for( v =
nvars - 1; v >= 0; --v )
7052 assert(0 <= classlabels[v] && classlabels[v] < nclasses);
7053 ++(classcount[classlabels[v]]);
7065 for(
c = 0;
c < nclasses; ++
c )
7073 varpointers[
c] = (
SCIP_VAR**) (sortedvars + nextpos);
7074 indexpointers[
c] = (
int*) (sortedindices + nextpos);
7075 classesstartposs[
c] = nextpos;
7077 nextpos += classcount[
c];
7081 classesstartposs[
c] = nextpos;
7084 for( v = 0; v <
nvars; ++v )
7087 *(varpointers[classlabels[v]]) =
vars[v];
7088 ++(varpointers[classlabels[v]]);
7091 *(indexpointers[classlabels[v]]) = v;
7092 ++(indexpointers[classlabels[v]]);
7097 for( v = 0; v <
nvars; ++v )
7100 assert(sortedindices[v] >= 0);
7103 assert(
vars[sortedindices[v]] == sortedvars[v]);
7119#define MAXNCLIQUEVARSCOMP 1000000
7142 SCIP_Bool*
const values,
7144 int*
const cliquepartition,
7149 SCIP_Bool* cliquevalues;
7151 int maxncliquevarscomp;
7160 cliquepartition[
i] = -1;
7167 if( cliquepartition[
i] == -1 )
7172 cliquepartition[
i] = *ncliques;
7173 cliquevars[0] =
vars[
i];
7174 cliquevalues[0] = values[
i];
7181 for( j =
i+1; j <
nvars; ++j )
7189 for( k = ncliquevars - 1; k >= 0; --k )
7198 cliquepartition[j] = cliquepartition[
i];
7199 cliquevars[ncliquevars] =
vars[j];
7200 cliquevalues[ncliquevars] = values[j];
7210 assert(cliquepartition[
i] >= 0 && cliquepartition[
i] <
i+1);
7213 if(
i *
nvars > maxncliquevarscomp )
7219 if( cliquepartition[
i] == -1 )
7221 cliquepartition[
i] = *ncliques;
7259 int*
const cliquepartition,
7266 SCIP_Bool* tmpvalues;
7267 SCIP_Bool* sortedtmpvalues;
7268 int* componentlabels;
7270 int* componentstartposs;
7281 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPcalcCliquePartition",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
7293 cliquepartition[
i] =
i;
7308 tmpvalues[
i] =
TRUE;
7309 cliquepartition[
i] = -1;
7338 componentlabels[
i] = -1;
7343 assert(ncomponents >= 1);
7350 if( ncomponents > 1 )
7359 assert(tmpvars[sortedindices[
i]] == sortedtmpvars[
i]);
7360 sortedtmpvalues[
i] = tmpvalues[sortedindices[
i]];
7366 sortedtmpvars = tmpvars;
7367 sortedtmpvalues = tmpvalues;
7368 componentstartposs[0] = 0;
7369 componentstartposs[1] =
nvars;
7373 sortedindices[
i] =
i;
7378 for(
c = 0;
c < ncomponents; ++
c )
7380 int* localcliquepartition;
7386 ncomponentvars = componentstartposs[
c + 1] - componentstartposs[
c];
7394 ncomponentvars, localcliquepartition, &nlocalcliques) );
7396 assert(nlocalcliques >= 1);
7397 assert(nlocalcliques <= ncomponentvars);
7400 for( l = componentstartposs[
c]; l < componentstartposs[
c + 1]; ++l )
7402 int origvaridx = sortedindices[l];
7403 assert(cliquepartition[origvaridx] == -1);
7404 assert(localcliquepartition[l - componentstartposs[
c]] <= l - componentstartposs[
c]);
7405 cliquepartition[origvaridx] = localcliquepartition[l - componentstartposs[
c]] + (*ncliques);
7407 *ncliques += nlocalcliques;
7414 if( ncomponents > 1 && ncomponents <
nvars )
7419 assert(partitionsize == *ncliques);
7422 if( ncomponents > 1 )
7429#ifdef SCIP_DISABLED_CODE
7431 int* debugcliquepartition;
7478 int*
const cliquepartition,
7500 for( v =
nvars - 1; v >= 0; --v )
7533 SCIP_Bool* infeasible
7537 SCIP_Bool globalinfeasibility;
7539 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPcleanupCliques",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
7541 globalinfeasibility =
FALSE;
7545 &globalinfeasibility) );
7547 if( infeasible !=
NULL )
7548 *infeasible = globalinfeasibility;
7550 if( globalinfeasibility )
7578 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetNCliques",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
7605 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetNCliquesCreated",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
7632 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetCliques",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
7664 SCIP_Bool regardimplics
7675 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPhaveVarsCommonClique",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
7712 SCIP_Bool writenodeweights
7720 SCIP_Bool* clqvalues;
7736 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPwriteCliqueGraph",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
7752 gmlfile = fopen(fname,
"w");
7754 if( gmlfile ==
NULL )
7770 for(
c = ncliques - 1;
c >= 0; --
c )
7788 if ( writenodeweights )
7815 if ( writenodeweights )
7865 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPremoveVarFromGlobalStructures",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE) );
7895 SCIP_Real branchfactor
7898 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarBranchFactor",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
7926 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPscaleVarBranchFactor",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
7954 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarBranchFactor",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
7985 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarBranchPriority",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
8026 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPupdateVarBranchPriority",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
8059 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaddVarBranchPriority",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
8090 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarBranchDirection",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
8105 SCIP_Bool* infeasible
8114 *infeasible =
FALSE;
8119 SCIP_Bool tightened;
8179 SCIP_Bool* infeasible
8183 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPchgVarType",
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
8204 switch(
scip->set->stage )
8216 scip->branchcand,
scip->eventqueue,
scip->cliquetable,
var, vartype) );
8221 scip->eventqueue, vartype) );
8245 scip->branchcand,
scip->eventqueue,
scip->cliquetable,
var, vartype) );
8250 scip->eventqueue, vartype) );
8279 SCIP_Bool* infeasible,
8287 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPfixVar",
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
8289 *infeasible =
FALSE;
8311 switch(
scip->set->stage )
8337 scip->cliquetable, fixedval, infeasible, fixed) );
8407 SCIP_Bool* infeasible,
8408 SCIP_Bool* redundant,
8409 SCIP_Bool* aggregated
8412 SCIP_Real constantx;
8413 SCIP_Real constanty;
8419 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPaggregateVars",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
8421 *infeasible =
FALSE;
8423 *aggregated =
FALSE;
8433 if(
scip->set->presol_donotaggr )
8449 rhs -= (constantx + constanty);
8466 else if( varx ==
NULL )
8474 scip->cliquetable, rhs/scalary, infeasible, aggregated) );
8477 else if( vary ==
NULL )
8485 scip->cliquetable, rhs/scalarx, infeasible, aggregated) );
8488 else if( varx == vary )
8502 scip->cliquetable, rhs/scalarx, infeasible, aggregated) );
8511 scip->eventqueue, varx, vary, scalarx, scalary, rhs, infeasible, aggregated) );
8512 *redundant = *aggregated;
8541 SCIP_Bool* infeasible,
8542 SCIP_Bool* aggregated
8545 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPmultiaggregateVar",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE) );
8558 scip->eventqueue, naggvars, aggvars,
scalars, constant, infeasible, aggregated) );
8570 return scip->set->presol_donotaggr;
8580 return scip->set->presol_donotmultaggr;
8619 return !
scip->set->reopt_enable &&
scip->set->misc_allowstrongdualreds;
8634 return !
scip->set->reopt_enable &&
scip->set->misc_allowstrongdualreds;
8647 return !
scip->set->reopt_enable &&
scip->set->misc_allowweakdualreds;
8661 return !
scip->set->reopt_enable &&
scip->set->misc_allowweakdualreds;
8690 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPmarkDoNotAggrVar",
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE) );
8723 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPmarkDoNotMultaggrVar",
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
FALSE,
FALSE,
FALSE,
TRUE) );
8744 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPenableVarHistory",
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8763 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPdisableVarHistory",
FALSE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8782 SCIP_Real solvaldelta,
8787 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPupdateVarPseudocost",
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8816 SCIP_Real solvaldelta
8821 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostVal",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8844 SCIP_Real solvaldelta
8849 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostValCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8873 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocost",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8901 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8927 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostCount",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8955 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostCountCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
8979 SCIP_Bool onlycurrentrun
8982 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostVariance",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9001 SCIP_Bool onlycurrentrun,
9005 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPcalculatePscostConfidenceBound",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9039 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPsignificantVarPscostDifference",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9062 SCIP_Real threshold,
9067 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPpscostThresholdProbabilityTest",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9080 SCIP_Real threshold,
9084 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPisVarPscostRelerrorReliable",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9110 SCIP_Real pscostdown;
9113 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9148 SCIP_Real pscostdown;
9151 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarPseudocostScoreCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9182 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarVSIDS",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9188 SCIPerrorMessage(
"invalid branching direction %d when asking for VSIDS value\n", dir);
9214 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarVSIDSCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9220 SCIPerrorMessage(
"invalid branching direction %d when asking for VSIDS value\n", dir);
9245 SCIP_Real downscore;
9248 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarConflictScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9276 SCIP_Real downscore;
9279 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarConflictScoreCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9307 SCIP_Real downscore;
9310 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarConflictlengthScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9338 SCIP_Real downscore;
9341 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarConflictlengthScoreCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9370 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgConflictlength",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9396 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgConflictlengthCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9424 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgInferences",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9452 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgInferencesCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9477 SCIP_Real inferdown;
9480 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgInferenceScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9508 SCIP_Real inferdown;
9511 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgInferenceScoreCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9539 SCIP_Real downpscost,
9541 SCIP_Real downvsids,
9543 SCIP_Real downconflen,
9544 SCIP_Real upconflen,
9545 SCIP_Real downinfer,
9547 SCIP_Real downcutoff,
9551 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinitVarBranchStats",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
9553 assert(downpscost >= 0.0 && uppscost >= 0.0);
9554 assert(downvsids >= 0.0 && upvsids >= 0.0);
9555 assert(downconflen >= 0.0 && upconflen >= 0.0);
9556 assert(downinfer >= 0.0 && upinfer >= 0.0);
9557 assert(downcutoff >= 0.0 && upcutoff >= 0.0);
9611 SCIP_Real downvsids,
9613 SCIP_Real downconflen,
9614 SCIP_Real upconflen,
9615 SCIP_Real downinfer,
9617 SCIP_Real downcutoff,
9621 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPinitVarValueBranchStats",
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE) );
9623 assert(downvsids >= 0.0 && upvsids >= 0.0);
9624 assert(downconflen >= 0.0 && upconflen >= 0.0);
9625 assert(downinfer >= 0.0 && upinfer >= 0.0);
9626 assert(downcutoff >= 0.0 && upcutoff >= 0.0);
9678 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgCutoffs",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9706 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgCutoffsCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9731 SCIP_Real cutoffdown;
9734 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgCutoffScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9762 SCIP_Real cutoffdown;
9765 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgCutoffScoreCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9792 SCIP_Real cutoffweight
9795 SCIP_Real avginferdown;
9796 SCIP_Real avginferup;
9798 SCIP_Real inferdown;
9800 SCIP_Real cutoffdown;
9803 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgInferenceCutoffScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9809 avginfer = (avginferdown + avginferup)/2.0;
9816 inferdown + cutoffweight * avginfer * cutoffdown, inferup + cutoffweight * avginfer * cutoffup);
9836 SCIP_Real cutoffweight
9839 SCIP_Real avginferdown;
9840 SCIP_Real avginferup;
9842 SCIP_Real inferdown;
9844 SCIP_Real cutoffdown;
9847 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgInferenceCutoffScoreCurrentRun",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9853 avginfer = (avginferdown + avginferup)/2.0;
9860 inferdown + cutoffweight * avginfer * cutoffdown, inferup + cutoffweight * avginfer * cutoffup);
9881 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarAvgGMIScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9909 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPincVarGMISumScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9936 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPgetVarLastGMIScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9963 SCIP_CALL_ABORT(
SCIPcheckStage(
scip,
"SCIPsetVarLastGMIScore",
FALSE,
FALSE,
FALSE,
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE,
FALSE,
FALSE) );
9999 SCIP_CALL(
SCIPcheckStage(
scip,
"SCIPprintVar",
FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE) );
SCIP_RETCODE SCIPbranchcandUpdateVarBranchPriority(SCIP_BRANCHCAND *branchcand, SCIP_SET *set, SCIP_VAR *var, int branchpriority)
SCIP_Real SCIPbranchGetScore(SCIP_SET *set, SCIP_VAR *var, SCIP_Real downgain, SCIP_Real upgain)
internal methods for branching rules and branching candidate storage
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
internal methods for clocks and timing issues
internal methods for conflict analysis
int SCIPconflictGetNConflicts(SCIP_CONFLICT *conflict)
SCIP_RETCODE SCIPconflictAnalyzeStrongbranch(SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_COL *col, SCIP_Bool *downconflict, SCIP_Bool *upconflict)
SCIP_RETCODE SCIPcheckStage(SCIP *scip, const char *method, SCIP_Bool init, SCIP_Bool problem, SCIP_Bool transforming, SCIP_Bool transformed, SCIP_Bool initpresolve, SCIP_Bool presolving, SCIP_Bool exitpresolve, SCIP_Bool presolved, SCIP_Bool initsolve, SCIP_Bool solving, SCIP_Bool solved, SCIP_Bool exitsolve, SCIP_Bool freetrans, SCIP_Bool freescip)
#define SCIP_MAXTREEDEPTH
#define SCIP_VARTYPE_INTEGER_CHAR
#define SCIP_VARTYPE_IMPLINT_CHAR
#define SCIP_CALL_ABORT(x)
#define SCIP_VARTYPE_BINARY_CHAR
#define SCIP_LONGINT_FORMAT
#define SCIP_VARTYPE_CONTINUOUS_CHAR
#define SCIP_CALL_FINALLY(x, y)
void SCIPgmlWriteNodeWeight(FILE *file, unsigned int id, const char *label, const char *nodetype, const char *fillcolor, const char *bordercolor, SCIP_Real weight)
void SCIPgmlWriteNode(FILE *file, unsigned int id, const char *label, const char *nodetype, const char *fillcolor, const char *bordercolor)
void SCIPgmlWriteClosing(FILE *file)
void SCIPgmlWriteOpening(FILE *file, SCIP_Bool directed)
void SCIPgmlWriteArc(FILE *file, unsigned int source, unsigned int target, const char *label, const char *color)
SCIP_Bool SCIPisTransformed(SCIP *scip)
SCIP_STAGE SCIPgetStage(SCIP *scip)
SCIP_RETCODE SCIPgetVarsData(SCIP *scip, SCIP_VAR ***vars, int *nvars, int *nbinvars, int *nintvars, int *nimplvars, int *ncontvars)
int SCIPgetNVars(SCIP *scip)
SCIP_VAR ** SCIPgetVars(SCIP *scip)
SCIP_VAR * SCIPfindVar(SCIP *scip, const char *name)
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_Bool SCIPlpiIsInfinity(SCIP_LPI *lpi, SCIP_Real val)
SCIP_RETCODE SCIPlpiGetObjval(SCIP_LPI *lpi, SCIP_Real *objval)
SCIP_Bool SCIPlpiIsDualFeasible(SCIP_LPI *lpi)
SCIP_Bool SCIPlpiWasSolved(SCIP_LPI *lpi)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_Real SCIPgetColRedcost(SCIP *scip, SCIP_COL *col)
SCIP_Longint SCIPcolGetStrongbranchNode(SCIP_COL *col)
int SCIPcolGetNStrongbranchs(SCIP_COL *col)
SCIP_Bool SCIPcolIsInLP(SCIP_COL *col)
SCIP_Real SCIPgetColFarkasCoef(SCIP *scip, SCIP_COL *col)
SCIP_Bool SCIPconsIsLockedTypePos(SCIP_CONS *cons, SCIP_LOCKTYPE locktype)
SCIP_Bool SCIPconsIsLockedTypeNeg(SCIP_CONS *cons, SCIP_LOCKTYPE locktype)
SCIP_Bool SCIPinDive(SCIP *scip)
SCIP_Bool SCIPisLPRelax(SCIP *scip)
SCIP_RETCODE SCIPgetLPI(SCIP *scip, SCIP_LPI **lpi)
SCIP_LPSOLSTAT SCIPgetLPSolstat(SCIP *scip)
SCIP_Bool SCIPallColsInLP(SCIP *scip)
SCIP_Real SCIPgetLPObjval(SCIP *scip)
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
int SCIPcalcMemGrowSize(SCIP *scip, int num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPreallocBlockMemoryArray(scip, ptr, oldnum, newnum)
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
#define SCIPduplicateBlockMemoryArray(scip, ptr, source, num)
SCIP_NODETYPE SCIPnodeGetType(SCIP_NODE *node)
SCIP_DOMCHG * SCIPnodeGetDomchg(SCIP_NODE *node)
int SCIPgetProbingDepth(SCIP *scip)
SCIP_RETCODE SCIPchgVarUbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPchgVarLbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPpropagateProbing(SCIP *scip, int maxproprounds, SCIP_Bool *cutoff, SCIP_Longint *ndomredsfound)
SCIP_RETCODE SCIPbacktrackProbing(SCIP *scip, int probingdepth)
SCIP_Bool SCIPinProbing(SCIP *scip)
SCIP_RETCODE SCIPnewProbingNode(SCIP *scip)
SCIP_RETCODE SCIPsolveProbingLP(SCIP *scip, int itlim, SCIP_Bool *lperror, SCIP_Bool *cutoff)
void SCIPsolSetStrongbranching(SCIP_SOL *sol)
SCIP_RETCODE SCIPcreateLPSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur)
SCIP_RETCODE SCIPgetSolVals(SCIP *scip, SCIP_SOL *sol, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
SCIP_RETCODE SCIProundSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool *success)
SCIP_RETCODE SCIPtrySolFree(SCIP *scip, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var)
SCIP_Real SCIPgetCutoffbound(SCIP *scip)
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_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_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisFeasIntegral(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_NODE * SCIPgetCurrentNode(SCIP *scip)
SCIP_RETCODE SCIPgetVarStrongbranchFrac(SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Bool idempotent, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
SCIP_Real SCIPgetRelaxSolObj(SCIP *scip)
SCIP_RETCODE SCIPinitVarBranchStats(SCIP *scip, SCIP_VAR *var, SCIP_Real downpscost, SCIP_Real uppscost, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff)
SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples)
SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_Real SCIPgetVarBdAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_RETCODE SCIPinitVarValueBranchStats(SCIP *scip, SCIP_VAR *var, SCIP_Real value, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff)
SCIP_RETCODE SCIPaddVarLocks(SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup)
SCIP_COL * SCIPvarGetCol(SCIP_VAR *var)
SCIP_Real SCIPgetVarMultaggrLbGlobal(SCIP *scip, SCIP_VAR *var)
SCIP_Bool SCIPpscostThresholdProbabilityTest(SCIP *scip, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
SCIP_RETCODE SCIPremoveVarFromGlobalStructures(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPvarGetSol(SCIP_VAR *var, SCIP_Bool getlpval)
SCIP_Bool SCIPdoNotAggrVar(SCIP *scip, SCIP_VAR *var)
void SCIPdisableVarHistory(SCIP *scip)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
SCIP_Bool SCIPgetVarWasFixedAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_Bool SCIPvarIsBinary(SCIP_VAR *var)
SCIP_RETCODE SCIPincVarGMISumScore(SCIP *scip, SCIP_VAR *var, SCIP_Real gmieff)
SCIP_RETCODE SCIPinferVarFixProp(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_BOUNDTYPE SCIPboundchgGetBoundtype(SCIP_BOUNDCHG *boundchg)
SCIP_Real SCIPgetVarMultaggrLbLocal(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPinferVarUbProp(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_RETCODE SCIPaddClique(SCIP *scip, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool isequation, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_RETCODE SCIPcalcCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
SCIP_RETCODE SCIPsetRelaxSolVal(SCIP *scip, SCIP_RELAX *relax, SCIP_VAR *var, SCIP_Real val)
SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPgetVarStrongbranchInt(SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Bool idempotent, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
SCIP_VAR * SCIPboundchgGetVar(SCIP_BOUNDCHG *boundchg)
SCIP_Real SCIPgetVarPseudocostCountCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real SCIPgetVarAvgInferenceScore(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPscaleVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real scale)
SCIP_RETCODE SCIPendStrongbranch(SCIP *scip)
SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_Real SCIPgetVarMultaggrUbGlobal(SCIP *scip, SCIP_VAR *var)
SCIP_BOUNDCHG * SCIPdomchgGetBoundchg(SCIP_DOMCHG *domchg, int pos)
SCIP_RETCODE SCIPgetTransformedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
SCIP_Real SCIPgetVarPseudocostCount(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
SCIP_RETCODE SCIPcalcNegatedCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
SCIP_Real SCIPgetVarPseudocostCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
SCIP_RETCODE SCIPchgVarName(SCIP *scip, SCIP_VAR *var, const char *name)
SCIP_Bool SCIPdoNotAggr(SCIP *scip)
SCIP_Real SCIPgetVarMultaggrUbLocal(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
int SCIPvarGetNLocksDown(SCIP_VAR *var)
SCIP_RETCODE SCIPupdateVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
SCIP_Real SCIPgetVarAvgConflictlength(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPisVarPscostRelerrorReliable(SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
SCIP_RETCODE SCIPgetBinvarRepresentatives(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated)
SCIP_BDCHGINFO * SCIPvarGetLbchgInfo(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
SCIP_Bool SCIPvarIsTransformed(SCIP_VAR *var)
SCIP_Real SCIPgetVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPparseVarsList(SCIP *scip, const char *str, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize, char **endptr, char delimiter, SCIP_Bool *success)
SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun(SCIP *scip, 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_Bool SCIPallowObjProp(SCIP *scip)
SCIP_Real SCIPboundchgGetNewbound(SCIP_BOUNDCHG *boundchg)
SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPchgVarUbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
SCIP_Real SCIPgetVarAvgInferencesCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_VAR * SCIPvarGetProbvar(SCIP_VAR *var)
SCIP_CLIQUE ** SCIPgetCliques(SCIP *scip)
SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_RETCODE SCIPparseVarName(SCIP *scip, const char *str, SCIP_VAR **var, char **endptr)
SCIP_RETCODE SCIPparseVar(SCIP *scip, SCIP_VAR **var, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success)
SCIP_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 SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
SCIP_RETCODE SCIPaddVarVub(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool *infeasible, int *nbdchgs)
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 SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
SCIP_Real SCIPgetVarFarkasCoef(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPgetVarClosestVub(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx)
SCIP_Real SCIPgetVarAvgCutoffsCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPchgVarLbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb)
SCIP_Real SCIPgetVarUbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
int SCIPdomchgGetNBoundchgs(SCIP_DOMCHG *domchg)
int SCIPvarGetProbindex(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Longint SCIPgetVarStrongbranchNode(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPtransformVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
SCIP_RETCODE SCIPmultiaggregateVar(SCIP *scip, SCIP_VAR *var, int naggvars, SCIP_VAR **aggvars, SCIP_Real *scalars, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
void SCIPfreeParseVarsPolynomialData(SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials)
SCIP_LPSOLSTAT SCIPgetLastStrongbranchLPSolStat(SCIP *scip, SCIP_BRANCHDIR branchdir)
SCIP_RETCODE SCIPaddVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor)
int SCIPgetNCliquesCreated(SCIP *scip)
SCIP_RETCODE SCIPcleanupCliques(SCIP *scip, SCIP_Bool *infeasible)
void SCIPvarMarkDeleteGlobalStructures(SCIP_VAR *var)
SCIP_RETCODE SCIPreleaseVar(SCIP *scip, SCIP_VAR **var)
SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
SCIP_Longint SCIPgetVarStrongbranchLPAge(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPmarkRelaxSolValid(SCIP *scip, SCIP_RELAX *relax, SCIP_Bool includeslp)
SCIP_RETCODE SCIPgetVarsStrongbranchesFrac(SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
SCIP_RETCODE SCIPsetVarStrongbranchData(SCIP *scip, SCIP_VAR *var, SCIP_Real lpobjval, SCIP_Real primsol, SCIP_Real down, SCIP_Real up, SCIP_Bool downvalid, SCIP_Bool upvalid, SCIP_Longint iter, int itlim)
SCIP_Real SCIPvarGetBranchFactor(SCIP_VAR *var)
SCIP_Bool SCIPdoNotMultaggr(SCIP *scip)
SCIP_Real SCIPgetVarPseudocostVal(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
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 SCIPgetVarConflictlengthScore(SCIP *scip, SCIP_VAR *var)
SCIP_Bool SCIPsignificantVarPscostDifference(SCIP *scip, SCIP_VAR *varx, SCIP_Real fracx, SCIP_VAR *vary, SCIP_Real fracy, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel, SCIP_Bool onesided)
SCIP_Real SCIPgetRelaxSolVal(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPgetVarStrongbranchWithPropagation(SCIP *scip, SCIP_VAR *var, SCIP_Real solval, SCIP_Real lpobjval, int itlim, int maxproprounds, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Longint *ndomredsdown, SCIP_Longint *ndomredsup, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror, SCIP_Real *newlbs, SCIP_Real *newubs)
SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
SCIP_Bool SCIPvarIsIntegral(SCIP_VAR *var)
SCIP_Real SCIPgetVarAvgCutoffs(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real SCIPvarGetPseudoSol(SCIP_VAR *var)
SCIP_Bool SCIPisRelaxSolValid(SCIP *scip)
SCIP_RETCODE SCIPgetVarClosestVlb(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx)
SCIP_Bool SCIPallowDualReds(SCIP *scip)
SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
SCIP_Real SCIPvarGetLPSol(SCIP_VAR *var)
SCIP_RETCODE SCIPflattenVarAggregationGraph(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPgetVarSol(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
SCIP_Real SCIPgetVarPseudocostScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
SCIP_Bool SCIPhaveVarsCommonClique(SCIP *scip, SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
SCIP_RETCODE SCIPaddVarImplication(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_RETCODE SCIPsetRelaxSolVals(SCIP *scip, SCIP_RELAX *relax, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool includeslp)
SCIP_Real SCIPcalculatePscostConfidenceBound(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
int SCIPvarGetNCliques(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
SCIP_Bool SCIPvarIsNegated(SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPwriteVarsPolynomial(SCIP *scip, FILE *file, SCIP_VAR ***monomialvars, SCIP_Real **monomialexps, SCIP_Real *monomialcoefs, int *monomialnvars, int nmonomials, SCIP_Bool type)
SCIP_Bool SCIPboundchgIsRedundant(SCIP_BOUNDCHG *boundchg)
SCIP_Real SCIPgetVarPseudocostValCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
SCIP_VAR * SCIPvarGetNegationVar(SCIP_VAR *var)
SCIP_RETCODE SCIPupdateVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
int SCIPgetNCliques(SCIP *scip)
SCIP_BDCHGINFO * SCIPvarGetUbchgInfo(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_Real SCIPgetVarAvgGMIScore(SCIP *scip, SCIP_VAR *var)
int SCIPvarGetBranchPriority(SCIP_VAR *var)
SCIP_RETCODE SCIPcreateVar(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
SCIP_RETCODE SCIPaddVarBranchPriority(SCIP *scip, SCIP_VAR *var, int addpriority)
SCIP_RETCODE SCIPtransformVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
SCIP_Real SCIPgetVarRedcost(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_RETCODE SCIPmarkDoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
SCIP_RETCODE SCIPmarkRelaxSolInvalid(SCIP *scip)
SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
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)
SCIP_RETCODE SCIPgetVarsStrongbranchesInt(SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
SCIP_Real SCIPgetVarLbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
SCIP_RETCODE SCIPparseVarsPolynomial(SCIP *scip, const char *str, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int *nmonomials, char **endptr, SCIP_Bool *success)
SCIP_Real SCIPgetVarLastGMIScore(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPgetVarConflictScore(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPprintVar(SCIP *scip, SCIP_VAR *var, FILE *file)
SCIP_Real SCIPgetVarAvgCutoffScore(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPchgVarLbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
SCIP_RETCODE SCIPvarGetProbvarBinary(SCIP_VAR **var, SCIP_Bool *negated)
SCIP_RETCODE SCIPcreateVarBasic(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype)
SCIP_RETCODE SCIPsetVarLastGMIScore(SCIP *scip, SCIP_VAR *var, SCIP_Real gmieff)
SCIP_RETCODE SCIPchgVarUbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub)
SCIP_RETCODE SCIPinferBinvarCons(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
int SCIPvarGetNLocksUp(SCIP_VAR *var)
SCIP_RETCODE SCIPtryStrongbranchLPSol(SCIP *scip, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPwriteVarName(SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type)
SCIP_RETCODE SCIPgetVarSols(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
SCIP_RETCODE SCIPgetBinvarRepresentative(SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated)
SCIP_Real SCIPgetVarAvgInferenceCutoffScore(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
SCIP_RETCODE SCIPwriteVarsList(SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter)
SCIP_Real SCIPcomputeVarUbGlobal(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPgetActiveVars(SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
int SCIPgetVarNStrongbranchs(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPwriteVarsLinearsum(SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type)
SCIP_RETCODE SCIPgetVarStrongbranchLast(SCIP *scip, SCIP_VAR *var, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Real *solval, SCIP_Real *lpobjval)
SCIP_Real SCIPgetVarVSIDS(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPvarsHaveCommonClique(SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPgetVarVSIDSCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPisStrongbranchDownFirst(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPbdchginfoGetNewbound(SCIP_BDCHGINFO *bdchginfo)
void SCIPenableVarHistory(SCIP *scip)
SCIP_Real SCIPgetVarImplRedcost(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_Bool SCIPallowWeakDualReds(SCIP *scip)
SCIP_Real SCIPgetVarPseudocostVariance(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
SCIP_RETCODE SCIPgetNegatedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars)
SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
SCIP_Real SCIPgetVarConflictScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
SCIP_RETCODE SCIPcaptureVar(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPgetVarPseudocostScore(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
SCIP_RETCODE SCIPstartStrongbranch(SCIP *scip, SCIP_Bool enablepropagation)
SCIP_RETCODE SCIPclearRelaxSolVals(SCIP *scip, SCIP_RELAX *relax)
SCIP_RETCODE SCIPmarkDoNotAggrVar(SCIP *scip, SCIP_VAR *var)
SCIP_Real SCIPgetVarAvgInferences(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPallowStrongDualReds(SCIP *scip)
SCIP_RETCODE SCIPinferBinvarProp(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_RETCODE SCIPvarsGetProbvarBinary(SCIP_VAR ***vars, SCIP_Bool **negatedarr, int nvars)
SCIP_RETCODE SCIPinferVarFixCons(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_RELAX *relax, SCIP_SOL *sol, SCIP_Bool includeslp)
SCIP_RETCODE SCIPchgVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor)
SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_RETCODE SCIPinferVarLbProp(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_RETCODE SCIPaddVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real addobj)
int SCIPsnprintf(char *t, int len, const char *s,...)
SCIP_Bool SCIPstrToRealValue(const char *str, SCIP_Real *value, char **endptr)
void SCIPstrCopySection(const char *str, char startchar, char endchar, char *token, int size, char **endptr)
SCIP_RETCODE SCIPskipSpace(char **s)
SCIPfreeSol(scip, &heurdata->sol))
assert(minobj< SCIPgetCutoffbound(scip))
static SCIP_Bool propagate
SCIP_Real SCIPhistoryGetAvgInferences(SCIP_HISTORY *history, SCIP_BRANCHDIR dir)
internal methods for branching and inference history
int SCIPcliquetableGetNCliquesCreated(SCIP_CLIQUETABLE *cliquetable)
SCIP_Bool SCIPcliquetableNeedsComponentUpdate(SCIP_CLIQUETABLE *cliquetable)
SCIP_VAR ** SCIPcliqueGetVars(SCIP_CLIQUE *clique)
int SCIPcliqueGetNVars(SCIP_CLIQUE *clique)
SCIP_Bool * SCIPcliqueGetValues(SCIP_CLIQUE *clique)
SCIP_RETCODE SCIPcliquetableAdd(SCIP_CLIQUETABLE *cliquetable, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool isequation, SCIP_Bool *infeasible, int *nbdchgs)
int SCIPcliquetableGetNCliques(SCIP_CLIQUETABLE *cliquetable)
int SCIPcliquetableGetVarComponentIdx(SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var)
SCIP_RETCODE SCIPcliquetableComputeCliqueComponents(SCIP_CLIQUETABLE *cliquetable, SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_VAR **vars, int nbinvars, int nintvars, int nimplvars)
SCIP_CLIQUE ** SCIPcliquetableGetCliques(SCIP_CLIQUETABLE *cliquetable)
SCIP_RETCODE SCIPcliquetableCleanup(SCIP_CLIQUETABLE *cliquetable, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, int *nchgbds, SCIP_Bool *infeasible)
methods for implications, variable bounds, and cliques
SCIP_Real SCIPlpGetLooseObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
SCIP_RETCODE SCIPlpStartStrongbranch(SCIP_LP *lp)
void SCIPcolInvalidateStrongbranchData(SCIP_COL *col, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp)
SCIP_RETCODE SCIPcolGetStrongbranch(SCIP_COL *col, SCIP_Bool integral, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp, int itlim, SCIP_Bool updatecol, SCIP_Bool updatestat, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *lperror)
SCIP_Real SCIPlpGetObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
SCIP_RETCODE SCIPlpEndStrongbranch(SCIP_LP *lp)
SCIP_Longint SCIPcolGetStrongbranchLPAge(SCIP_COL *col, SCIP_STAT *stat)
SCIP_Bool SCIPlpDiving(SCIP_LP *lp)
void SCIPcolGetStrongbranchLast(SCIP_COL *col, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Real *solval, SCIP_Real *lpobjval)
void SCIPlpStartStrongbranchProbing(SCIP_LP *lp)
void SCIPlpEndStrongbranchProbing(SCIP_LP *lp)
SCIP_Bool SCIPlpIsDualReliable(SCIP_LP *lp)
static const SCIP_Real scalars[]
void SCIPcolSetStrongbranchData(SCIP_COL *col, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_Real lpobjval, SCIP_Real primsol, SCIP_Real sbdown, SCIP_Real sbup, SCIP_Bool sbdownvalid, SCIP_Bool sbupvalid, SCIP_Longint iter, int itlim)
SCIP_RETCODE SCIPcolGetStrongbranches(SCIP_COL **cols, int ncols, SCIP_Bool integral, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *lperror)
internal methods for LP management
interface methods for specific LP solvers
memory allocation routines
#define BMScopyMemoryArray(ptr, source, num)
#define BMSclearMemoryArray(ptr, num)
BMS_BLKMEM * SCIPblkmem(SCIP *scip)
SCIP_RETCODE SCIPprobAddVarName(SCIP_PROB *prob, SCIP_VAR *var)
SCIP_RETCODE SCIPprobRemoveVarName(SCIP_PROB *prob, SCIP_VAR *var)
SCIP_RETCODE SCIPprobChgVarType(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_VARTYPE vartype)
SCIP_Bool SCIPprobAllColsInLP(SCIP_PROB *prob, SCIP_SET *set, SCIP_LP *lp)
internal methods for storing and manipulating the main problem
public methods for managing constraints
public methods for implications, variable bounds, and cliques
public methods for LP management
public methods for message output
public data structures and miscellaneous methods
public methods for branch and bound tree
public methods for problem variables
SCIP_Bool SCIPrelaxationIsSolZero(SCIP_RELAXATION *relaxation)
void SCIPrelaxationSetSolZero(SCIP_RELAXATION *relaxation, SCIP_Bool iszero)
void SCIPrelaxationSetSolValid(SCIP_RELAXATION *relaxation, SCIP_Bool isvalid, SCIP_Bool includeslp)
void SCIPrelaxationSetSolObj(SCIP_RELAXATION *relaxation, SCIP_Real obj)
SCIP_Real SCIPrelaxationGetSolObj(SCIP_RELAXATION *relaxation)
void SCIPrelaxationSetSolRelax(SCIP_RELAXATION *relaxation, SCIP_RELAX *relax)
SCIP_Bool SCIPrelaxationIsSolValid(SCIP_RELAXATION *relaxation)
internal methods for relaxators
public methods for the LP relaxation, rows and columns
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for global and local (sub)problems
public methods for the probing mode
public methods for solutions
public methods for querying solving statistics
public methods for the branch-and-bound tree
static SCIP_RETCODE analyzeStrongbranch(SCIP *scip, SCIP_VAR *var, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict)
static SCIP_RETCODE calcCliquePartitionGreedy(SCIP *const scip, SCIP_VAR **const vars, SCIP_Bool *const values, int const nvars, int *const cliquepartition, int *const ncliques)
static SCIP_RETCODE performStrongbranchWithPropagation(SCIP *scip, SCIP_VAR *var, SCIP_Bool down, SCIP_Bool firstchild, SCIP_Bool propagate, SCIP_Real newbound, int itlim, int maxproprounds, SCIP_Real *value, SCIP_Bool *valid, SCIP_Longint *ndomreductions, SCIP_Bool *conflict, SCIP_Bool *lperror, SCIP_VAR **vars, int nvars, SCIP_Real *newlbs, SCIP_Real *newubs, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
static SCIP_RETCODE labelSortStable(SCIP *scip, SCIP_VAR **vars, int *classlabels, SCIP_VAR **sortedvars, int *sortedindices, int *classesstartposs, int nvars, int nclasses)
static SCIP_RETCODE relabelOrderConsistent(SCIP *const scip, int *labels, int const nlabels, int *nclasses)
#define MAXNCLIQUEVARSCOMP
static SCIP_RETCODE tightenBounds(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
public methods for SCIP variables
SCIP_Bool SCIPsetIsLbBetter(SCIP_SET *set, SCIP_Real newlb, SCIP_Real oldlb, SCIP_Real oldub)
SCIP_Bool SCIPsetIsGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetFeasCeil(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsFeasEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetFeasFloor(SCIP_SET *set, SCIP_Real val)
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_Bool SCIPsetIsUbBetter(SCIP_SET *set, SCIP_Real newub, SCIP_Real oldlb, SCIP_Real oldub)
SCIP_Bool SCIPsetIsInfinity(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsFeasIntegral(SCIP_SET *set, SCIP_Real val)
internal methods for global SCIP settings
#define SCIPsetFreeBufferArray(set, ptr)
#define SCIPsetAllocBufferArray(set, ptr, num)
#define SCIPsetDuplicateBufferArray(set, ptr, source, num)
SCIP_Real SCIPsolGetObj(SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
internal methods for storing primal CIP solutions
SCIP_Bool SCIPsolveIsStopped(SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool checknodelimits)
internal methods for main solving loop and node processing
void SCIPstatEnableVarHistory(SCIP_STAT *stat)
void SCIPstatDisableVarHistory(SCIP_STAT *stat)
internal methods for problem statistics
#define SCIPstatAdd(stat, set, field, val)
data structures for LP management
datastructures for block memory pools and memory buffers
datastructures for collecting primal CIP solutions and primal informations
datastructures for storing and manipulating the main problem
SCIP main data structure.
datastructures for global SCIP settings
datastructures for problem statistics
data structures for branch and bound tree
datastructures for problem variables
SCIP_Bool SCIPtreeProbing(SCIP_TREE *tree)
int SCIPtreeGetProbingDepth(SCIP_TREE *tree)
SCIP_RETCODE SCIPtreeStartProbing(SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PROB *transprob, SCIP_Bool strongbranching)
SCIP_NODE * SCIPtreeGetCurrentNode(SCIP_TREE *tree)
SCIP_Bool SCIPtreeHasCurrentNodeLP(SCIP_TREE *tree)
SCIP_RETCODE SCIPnodeAddBoundinfer(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange)
SCIP_RETCODE SCIPnodeAddBoundchg(SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype, SCIP_Bool probingchange)
SCIP_RETCODE SCIPtreeEndProbing(SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PRIMAL *primal, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
int SCIPtreeGetCurrentDepth(SCIP_TREE *tree)
internal methods for branch and bound tree
@ SCIP_BRANCHDIR_DOWNWARDS
enum SCIP_BranchDir SCIP_BRANCHDIR
enum SCIP_LPSolStat SCIP_LPSOLSTAT
enum SCIP_BoundType SCIP_BOUNDTYPE
@ SCIP_LPSOLSTAT_NOTSOLVED
@ SCIP_LPSOLSTAT_TIMELIMIT
@ SCIP_LPSOLSTAT_UNBOUNDEDRAY
@ SCIP_LPSOLSTAT_INFEASIBLE
@ SCIP_LPSOLSTAT_OBJLIMIT
@ SCIP_LPSOLSTAT_ITERLIMIT
enum SCIP_Confidencelevel SCIP_CONFIDENCELEVEL
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_STAGE_INITPRESOLVE
@ SCIP_STAGE_EXITPRESOLVE
@ SCIP_STAGE_TRANSFORMING
@ SCIP_NODETYPE_PROBINGNODE
struct SCIP_VarData SCIP_VARDATA
#define SCIP_DECL_VARDELORIG(x)
#define SCIP_DECL_VARTRANS(x)
@ SCIP_VARTYPE_CONTINUOUS
@ SCIP_VARSTATUS_ORIGINAL
@ SCIP_VARSTATUS_MULTAGGR
@ SCIP_VARSTATUS_AGGREGATED
#define SCIP_DECL_VARCOPY(x)
#define SCIP_DECL_VARDELTRANS(x)
enum SCIP_LockType SCIP_LOCKTYPE
enum SCIP_Vartype SCIP_VARTYPE
enum SCIP_Varstatus SCIP_VARSTATUS
SCIP_RETCODE SCIPvarAddObj(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_Real addobj)
SCIP_Real SCIPvarGetPseudocost(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real solvaldelta)
SCIP_RETCODE SCIPvarsGetActiveVars(SCIP_SET *set, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
SCIP_RETCODE SCIPvarIncNBranchings(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, int depth)
SCIP_RETCODE SCIPvarChgLbLazy(SCIP_VAR *var, SCIP_SET *set, SCIP_Real lazylb)
SCIP_RETCODE SCIPvarCreateTransformed(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
SCIP_Real SCIPvarGetPseudocostCount(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarGetTransformed(SCIP_VAR *origvar, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **transvar)
SCIP_RETCODE SCIPvarChgObj(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newobj)
SCIP_Real SCIPvarGetPseudocostVariance(SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
SCIP_Real SCIPvarGetImplRedcost(SCIP_VAR *var, SCIP_SET *set, SCIP_Bool varfixing, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp)
SCIP_RETCODE SCIPvarSetLastGMIScore(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real gmieff)
SCIP_RETCODE SCIPvarFix(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
SCIP_RETCODE SCIPvarIncInferenceSum(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real weight)
SCIP_RETCODE SCIPvarIncVSIDS(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real weight)
SCIP_Real SCIPvarGetAvgCutoffs(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarUpdatePseudocost(SCIP_VAR *var, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
SCIP_RETCODE SCIPvarTransform(SCIP_VAR *origvar, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_OBJSENSE objsense, SCIP_VAR **transvar)
SCIP_Real SCIPvarGetAvgInferencesCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarRelease(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
void SCIPvarGetClosestVub(SCIP_VAR *var, SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real *closestvub, int *closestvubidx)
SCIP_RETCODE SCIPvarIncNActiveConflicts(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real length)
void SCIPvarAdjustLb(SCIP_VAR *var, SCIP_SET *set, SCIP_Real *lb)
SCIP_RETCODE SCIPvarChgLbGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real newbound)
SCIP_Real SCIPvarCalcPscostConfidenceBound(SCIP_VAR *var, SCIP_SET *set, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
SCIP_Bool SCIPvarIsPscostRelerrorReliable(SCIP_VAR *var, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
SCIP_RETCODE SCIPvarChgLbOriginal(SCIP_VAR *var, SCIP_SET *set, SCIP_Real newbound)
SCIP_RETCODE SCIPvarPrint(SCIP_VAR *var, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
SCIP_Real SCIPvarGetAvgGMIScore(SCIP_VAR *var, SCIP_STAT *stat)
SCIP_Real SCIPvarGetVSIDS(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarIncCutoffSum(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Real weight)
SCIP_Real SCIPvarGetMultaggrLbLocal(SCIP_VAR *var, SCIP_SET *set)
SCIP_Bool SCIPvarSignificantPscostDifference(SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *varx, SCIP_Real fracx, SCIP_VAR *vary, SCIP_Real fracy, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel, SCIP_Bool onesided)
void SCIPvarCapture(SCIP_VAR *var)
SCIP_RETCODE SCIPvarChgBranchDirection(SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
SCIP_Real SCIPvarGetPseudocostCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real solvaldelta)
SCIP_Bool SCIPvarDoNotAggr(SCIP_VAR *var)
SCIP_RETCODE SCIPvarChgType(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_VARTYPE vartype)
SCIP_RETCODE SCIPvarFlattenAggregationGraph(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue)
void SCIPvarUpdateBestRootSol(SCIP_VAR *var, SCIP_SET *set, SCIP_Real rootsol, SCIP_Real rootredcost, SCIP_Real rootlpobjval)
SCIP_RETCODE SCIPvarCreateOriginal(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
SCIP_Real SCIPvarGetAvgConflictlength(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_Real SCIPvarGetPseudocostCountCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarChgUbGlobal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Real newbound)
SCIP_RETCODE SCIPvarGetActiveRepresentatives(SCIP_SET *set, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples)
SCIP_RETCODE SCIPvarParseTransformed(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success)
SCIP_RETCODE SCIPvarChgUbOriginal(SCIP_VAR *var, SCIP_SET *set, SCIP_Real newbound)
SCIP_Real SCIPvarGetAvgInferences(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_Real SCIPvarGetMultaggrUbGlobal(SCIP_VAR *var, SCIP_SET *set)
void SCIPvarGetClosestVlb(SCIP_VAR *var, SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real *closestvlb, int *closestvlbidx)
SCIP_RETCODE SCIPvarChgUbLazy(SCIP_VAR *var, SCIP_SET *set, SCIP_Real lazyub)
SCIP_Bool SCIPvarPscostThresholdProbabilityTest(SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
SCIP_RETCODE SCIPvarTryAggregateVars(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
SCIP_Real SCIPvarGetRelaxSol(SCIP_VAR *var, SCIP_SET *set)
SCIP_RETCODE SCIPvarAddImplic(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool transitive, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_RETCODE SCIPvarMarkDoNotAggr(SCIP_VAR *var)
SCIP_RETCODE SCIPvarChgLbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound)
SCIP_RETCODE SCIPvarChgBranchPriority(SCIP_VAR *var, int branchpriority)
SCIP_RETCODE SCIPvarMarkDoNotMultaggr(SCIP_VAR *var)
SCIP_RETCODE SCIPvarAddLocks(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LOCKTYPE locktype, int addnlocksdown, int addnlocksup)
SCIP_RETCODE SCIPvarNegate(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **negvar)
SCIP_Real SCIPvarGetMultaggrUbLocal(SCIP_VAR *var, SCIP_SET *set)
SCIP_RETCODE SCIPvarGetProbvarSum(SCIP_VAR **var, SCIP_SET *set, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_RETCODE SCIPvarIncGMIeffSum(SCIP_VAR *var, SCIP_STAT *stat, SCIP_Real gmieff)
SCIP_Real SCIPvarGetLastGMIScore(SCIP_VAR *var, SCIP_STAT *stat)
void SCIPvarAdjustUb(SCIP_VAR *var, SCIP_SET *set, SCIP_Real *ub)
SCIP_RETCODE SCIPvarMultiaggregate(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, int naggvars, SCIP_VAR **aggvars, SCIP_Real *scalars, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
SCIP_Real SCIPvarGetAvgConflictlengthCurrentRun(SCIP_VAR *var, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarChgUbLocal(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_Real newbound)
SCIP_RETCODE SCIPvarAddVlb(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *vlbvar, SCIP_Real vlbcoef, SCIP_Real vlbconstant, SCIP_Bool transitive, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_RETCODE SCIPvarParseOriginal(SCIP_VAR **var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success)
SCIP_Real SCIPvarGetVSIDSCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_RETCODE SCIPvarChgName(SCIP_VAR *var, BMS_BLKMEM *blkmem, const char *name)
SCIP_RETCODE SCIPvarAddVub(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_CLIQUETABLE *cliquetable, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool transitive, SCIP_Bool *infeasible, int *nbdchgs)
SCIP_Real SCIPvarGetMultaggrLbGlobal(SCIP_VAR *var, SCIP_SET *set)
SCIP_RETCODE SCIPvarSetRelaxSol(SCIP_VAR *var, SCIP_SET *set, SCIP_RELAXATION *relaxation, SCIP_Real solval, SCIP_Bool updateobj)
SCIP_RETCODE SCIPvarChgBranchFactor(SCIP_VAR *var, SCIP_SET *set, SCIP_Real branchfactor)
SCIP_Real SCIPvarGetAvgCutoffsCurrentRun(SCIP_VAR *var, SCIP_STAT *stat, SCIP_BRANCHDIR dir)
SCIP_Bool SCIPvarDoNotMultaggr(SCIP_VAR *var)
SCIP_RETCODE SCIPvarRemoveCliquesImplicsVbs(SCIP_VAR *var, BMS_BLKMEM *blkmem, SCIP_CLIQUETABLE *cliquetable, SCIP_SET *set, SCIP_Bool irrelevantvar, SCIP_Bool onlyredundant, SCIP_Bool removefromvar)
internal methods for problem variables