256 assert(stat != NULL);
287 assert(blkmem != NULL);
288 assert(stat != NULL);
296 (*sol)->primalindex = -1;
298 (*sol)->hasinfval =
FALSE;
322 assert(blkmem != NULL);
323 assert(stat != NULL);
331 (*sol)->primalindex = -1;
333 (*sol)->hasinfval =
FALSE;
354 assert(sourcesol != NULL);
359 (*sol)->heur = sourcesol->
heur;
360 (*sol)->obj = sourcesol->
obj;
361 (*sol)->primalindex = -1;
362 (*sol)->time = sourcesol->
time;
364 (*sol)->lpcount = sourcesol->
lpcount;
366 (*sol)->nodenum = sourcesol->
nodenum;
367 (*sol)->solorigin = sourcesol->
solorigin;
368 (*sol)->runnum = sourcesol->
runnum;
369 (*sol)->depth = sourcesol->
depth;
371 (*sol)->hasinfval = sourcesol->
hasinfval;
402 assert(transsol != NULL);
407 assert(tsol != NULL);
415 tmpvalid = sol->
valid;
418 tsol->
vals = tmpvals;
419 tsol->
valid = tmpvalid;
451 assert(prob != NULL);
463 nimplvars = nbinvars + nintvars + nimplvars;
466 for( v = nbinvars + nintvars; v < nimplvars; ++v )
513 for( r = 0; r < nrows && !(roundup && rounddown); ++r )
545 if( roundup == rounddown )
547 rounddown = ndownlocks <= nuplocks;
548 roundup = !rounddown;
626 assert(relaxation != NULL);
669 assert(tree != NULL);
694 assert(blkmem != NULL);
696 assert(stat != NULL);
697 assert(primal != NULL);
705 (*sol)->primalindex = -1;
707 (*sol)->hasinfval =
FALSE;
729 assert(blkmem != NULL);
730 assert(stat != NULL);
738 (*sol)->primalindex = -1;
740 (*sol)->hasinfval =
FALSE;
758 assert(*sol != NULL);
780 assert(stat != NULL);
781 assert(tree != NULL);
807 for( c = 0; c < ncols; ++c )
836 assert(stat != NULL);
837 assert(tree != NULL);
859 for( v = 0; v < nvars; ++v )
888 assert(stat != NULL);
889 assert(tree != NULL);
890 assert(relaxation != NULL);
919 assert(stat != NULL);
920 assert(tree != NULL);
947 assert(tree != NULL);
1006 assert(sol != NULL);
1007 assert(prob != NULL);
1008 assert(prob->
nvars == 0 || prob->
vars != NULL);
1015 for( v = 0; v < prob->
nvars; ++v )
1038 assert(sol != NULL);
1039 assert(stat != NULL);
1045 assert(var != NULL);
1072 objcont = obj * oldval;
1080 sol->obj -= objcont;
1084 objcont = obj * val;
1092 sol->obj += objcont;
1108 || sol->lpcount == stat->
lpcount);
1122 objcont = obj * oldval;
1130 sol->obj -= objcont;
1134 objcont = obj * val;
1142 sol->obj += objcont;
1154 SCIPerrorMessage(
"cannot set solution value for variable <%s> fixed to %.15g to different value %.15g\n",
1188 SCIPerrorMessage(
"cannot set solution value for variable <%s> fixed to %.15g to different value %.15g\n",
1197 return SCIPsolSetVal(sol,
set, stat, tree, multaggrvars[0], multaggrscalars[0] > 0 ? val : -val);
1199 return SCIPsolSetVal(sol,
set, stat, tree, multaggrvars[0], (val - multaggrconstant)/multaggrscalars[0]);
1202 SCIPerrorMessage(
"cannot set solution value for multiple aggregated variable\n");
1233 assert(sol != NULL);
1234 assert(stat != NULL);
1238 assert(var != NULL);
1247 || sol->lpcount == stat->
lpcount);
1285 SCIPerrorMessage(
"cannot increase solution value for multiple aggregated variable\n");
1312 assert(sol != NULL);
1318 assert(var != NULL);
1339 if( origvar == NULL )
1345 return scalar *
SCIPsolGetVal(sol,
set, stat, origvar) + constant;
1389 for( i = 0; i < nvars; ++i )
1396 if( scalars[i] * solval > 0.0 )
1398 if( scalars[i] * solval < 0.0 )
1401 solvalsum += scalars[i] * solval;
1437 assert(sol != NULL);
1439 assert(var != NULL);
1469 for( i = 0; i < nvars; ++i )
1474 solvalsum += scalars[i] * solval;
1499 assert(sol != NULL);
1518 assert(sol != NULL);
1524 sol->
obj += (newobj - oldobj) * solval;
1539 assert(sol != NULL);
1541 assert(nvars == 0 || vars != NULL);
1549 for( v = 0; v < nvars; v++ )
1559 for( v = 0; v < nvars; v++ )
1611 assert(sol != NULL);
1613 assert(
set != NULL);
1614 assert(prob != NULL);
1615 assert(feasible != NULL);
1617 SCIPsetDebugMsg(
set,
"checking solution with objective value %g (nodenum=%" SCIP_LONGINT_FORMAT
", origin=%u)\n",
1632 for( v = 0; v < prob->
nvars && (*feasible || completely); ++v )
1637 var = prob->
vars[v];
1678 SCIPmessagePrintInfo(messagehdlr,
"infinite solution value %g for variable <%s> with obj %g implies objective value +infinity\n",
1684 SCIPsetDebugMsgPrint(
set,
"infinite solution value %g for variable <%s> with obj %g implies objective value +infinity\n",
1695 for( h = 0; h <
set->nconshdlrs && (*feasible || completely); ++h )
1698 checkintegrality, checklprows, printreason, completely, &result) );
1704 SCIPdebugPrintf(
" -> infeasibility detected in constraint handler <%s>\n",
1727 assert(sol != NULL);
1729 assert(prob != NULL);
1731 assert(success != NULL);
1735 for( v = 0; v < nvars; ++v )
1742 var = prob->
vars[v];
1761 if( mayrounddown && mayroundup )
1769 else if( mayrounddown )
1771 else if( mayroundup )
1781 *success = (v == nvars);
1798 assert(sol != NULL);
1800 assert(0.0 <= weight && weight <= 1.0);
1802 for( v = 0; v < prob->
nvars; ++v )
1804 assert(prob->
vars[v] != NULL);
1838 assert(sol != NULL);
1840 assert(origprob != NULL);
1841 assert(transprob != NULL);
1842 assert(hasinfval != NULL);
1854 vars = origprob->
vars;
1855 nvars = origprob->
nvars;
1856 transvars = transprob->
vars;
1857 ntransvars = transprob->
nvars;
1866 assert(transsolvals != NULL);
1867 assert(solvals != NULL);
1870 for( v = 0; v < ntransvars; ++v )
1872 transsolvals[v] =
SCIPsolGetVal(sol,
set, stat, transvars[v]);
1876 for( v = 0; v < nvars; ++v )
1878 activevars[0] = vars[v];
1879 activevals[0] = 1.0;
1885 &requiredsize,
TRUE) );
1886 assert(requiredsize <= ntransvars);
1889 solvals[v] = constant;
1890 for( i = 0; i < nactivevars; ++i )
1916 for( v = 0; v < nvars; ++v )
1954 assert(sol != NULL);
1956 assert(origprob != NULL);
1958 vars = origprob->
vars;
1959 nvars = origprob->
nvars;
1963 for( v = 0; v < nvars; ++v )
1992 assert(sol1 != NULL);
1993 assert(sol2 != NULL);
2019 assert(prob != NULL);
2022 for( v = 0; v < prob->
nvars; ++v )
2052 assert(sol != NULL);
2053 assert(prob != NULL);
2067 if( printzeros || mipstart
2084 for( v = 0; v < prob->
nvars; ++v )
2086 assert(prob->
vars[v] != NULL);
2093 if( printzeros || mipstart
2113 assert(transprob != NULL);
2116 assert(transprob->
fixedvars[v] != NULL);
2139 for( v = 0; v < transprob->
nvars; ++v )
2141 assert(transprob->
vars[v] != NULL);
2184 assert(sol != NULL);
2185 assert(prob != NULL);
2207 for( v = 0; v < prob->
nvars; ++v )
2209 assert(prob->
vars[v] != NULL);
2229 assert(transprob != NULL);
2232 assert(transprob->
fixedvars[v] != NULL);
2251 for( v = 0; v < transprob->
nvars; ++v )
2253 assert(transprob->
vars[v] != NULL);
2286 assert(sol != NULL);
2303 assert(sol != NULL);
2315 assert(sol != NULL);
2328 assert(sol != NULL);
2341 assert(sol != NULL);
2354 assert(sol != NULL);
2365 assert(sol != NULL);
2375 assert(sol != NULL);
2385 assert(sol != NULL);
2395 assert(sol != NULL);
2405 assert(sol != NULL);
2415 assert(sol != NULL);
2425 assert(sol != NULL);
2440 #undef SCIPsolGetOrigin 2441 #undef SCIPsolIsOriginal 2442 #undef SCIPsolGetOrigObj 2443 #undef SCIPsolGetTime 2444 #undef SCIPsolGetNodenum 2445 #undef SCIPsolGetRunnum 2446 #undef SCIPsolGetDepth 2447 #undef SCIPsolGetHeur 2448 #undef SCIPsolOrigAddObjval 2449 #undef SCIPsolGetPrimalIndex 2450 #undef SCIPsolSetPrimalIndex 2451 #undef SCIPsolGetIndex 2452 #undef SCIPsolSetHeur 2459 assert(sol != NULL);
2469 assert(sol != NULL);
2479 assert(sol != NULL);
2489 assert(sol != NULL);
2501 assert(sol != NULL);
2512 assert(sol != NULL);
2522 assert(sol != NULL);
2532 assert(sol != NULL);
2542 assert(sol != NULL);
2552 assert(sol != NULL);
2562 assert(sol != NULL);
2573 assert(sol != NULL);
2583 assert(sol != NULL);
2594 assert(sol != NULL);
enum SCIP_Result SCIP_RESULT
SCIP_Bool SCIPsolIsOriginal(SCIP_SOL *sol)
SCIP_RETCODE SCIPsolCreateRelaxSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_RELAXATION *relaxation, SCIP_HEUR *heur)
SCIP_RETCODE SCIPsolUnlink(SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *prob)
SCIP_Bool SCIPsetIsInfinity(SCIP_SET *set, SCIP_Real val)
SCIP_RETCODE SCIPsolRound(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool *success)
SCIP_RETCODE SCIPsolCreatePartial(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_HEUR *heur)
SCIP_RETCODE SCIPsolLinkPseudoSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)
SCIP_Bool SCIPsetIsLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
internal methods for storing primal CIP solutions
int SCIPprobGetNBinVars(SCIP_PROB *prob)
void SCIPvarMarkNotDeletable(SCIP_VAR *var)
SCIP_Bool SCIPlpDiving(SCIP_LP *lp)
void SCIPprimalSolFreed(SCIP_PRIMAL *primal, SCIP_SOL *sol)
SCIP_Real * SCIPvarGetMultaggrScalars(SCIP_VAR *var)
SCIP_Real SCIPrelaxationGetSolObj(SCIP_RELAXATION *relaxation)
SCIP_Real SCIPsolGetRelBoundViolation(SCIP_SOL *sol)
internal methods for branch and bound tree
SCIP_Real SCIPsetFloor(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_RETCODE SCIPsolLinkNLPSol(SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_NLP *nlp)
internal methods for clocks and timing issues
SCIP_Real * SCIPcolGetVals(SCIP_COL *col)
SCIP_Bool SCIPsetIsPositive(SCIP_SET *set, SCIP_Real val)
SCIP_VAR ** SCIPvarGetMultaggrVars(SCIP_VAR *var)
SCIP_RETCODE SCIPrealarrayCreate(SCIP_REALARRAY **realarray, BMS_BLKMEM *blkmem)
SCIP_Bool SCIPboolarrayGetVal(SCIP_BOOLARRAY *boolarray, int idx)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
SCIP_RETCODE SCIPsolLinkLPSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)
SCIP_RETCODE SCIPsolCreateUnknown(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur)
SCIP_Real SCIPsetInfinity(SCIP_SET *set)
SCIP_RETCODE SCIPsolLinkCurrentSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)
SCIP_Real SCIProwGetLhs(SCIP_ROW *row)
SCIP_Bool SCIPsetIsFeasIntegral(SCIP_SET *set, SCIP_Real val)
SCIP_RETCODE SCIPsolCopy(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_SOL *sourcesol)
SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)
enum SCIP_Retcode SCIP_RETCODE
SCIP_Real SCIPvarGetNegationConstant(SCIP_VAR *var)
void SCIPsolSetPrimalIndex(SCIP_SOL *sol, int primalindex)
SCIP_Real SCIPprobInternObjval(SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_SET *set, SCIP_Real objval)
#define SCIPsetAllocBufferArray(set, ptr, num)
int SCIPtreeGetCurrentDepth(SCIP_TREE *tree)
SCIP_Real SCIPsolGetRayVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var)
SCIP_RETCODE SCIPsolSetUnknown(SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree)
int SCIPvarGetProbindex(SCIP_VAR *var)
SCIP_RETCODE SCIPboolarrayCopy(SCIP_BOOLARRAY **boolarray, BMS_BLKMEM *blkmem, SCIP_BOOLARRAY *sourceboolarray)
SCIP_Bool SCIPsolsAreEqual(SCIP_SOL *sol1, SCIP_SOL *sol2, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob)
SCIP_Real SCIPsolGetTime(SCIP_SOL *sol)
SCIP_Real SCIPvarGetAggrScalar(SCIP_VAR *var)
SCIP_Real SCIPlpGetPseudoObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
SCIP_Bool SCIPrelaxationIsSolValid(SCIP_RELAXATION *relaxation)
SCIP_Real SCIPsolGetAbsConsViolation(SCIP_SOL *sol)
SCIP_Bool SCIPsetIsNegative(SCIP_SET *set, SCIP_Real val)
SCIP_RETCODE SCIPsolClear(SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree)
#define SCIPsetFreeBufferArray(set, ptr)
SCIP_VAR * SCIPvarGetNegationVar(SCIP_VAR *var)
SCIP_Real SCIPsetCeil(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPvarGetRelaxSolTransVar(SCIP_VAR *var)
internal methods for LP management
SCIP_Real SCIPsolGetOrigObj(SCIP_SOL *sol)
internal methods for collecting primal CIP solutions and primal informations
SCIP_Real SCIPsolGetVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var)
SCIP_RETCODE SCIPboolarraySetVal(SCIP_BOOLARRAY *boolarray, int arraygrowinit, SCIP_Real arraygrowfac, int idx, SCIP_Bool val)
int SCIPlpGetNCols(SCIP_LP *lp)
SCIP_Bool SCIPsetIsGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIProwIsInLP(SCIP_ROW *row)
SCIP_Real SCIPsolGetRelConsViolation(SCIP_SOL *sol)
SCIP_RETCODE SCIPrealarrayIncVal(SCIP_REALARRAY *realarray, int arraygrowinit, SCIP_Real arraygrowfac, int idx, SCIP_Real incval)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_Bool SCIPsetIsLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPclockGetLastTime(SCIP_CLOCK *clck)
SCIP_Bool SCIPtreeProbing(SCIP_TREE *tree)
SCIP_Bool SCIPnlpIsDivingObjChanged(SCIP_NLP *nlp)
static void solStamp(SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_Bool checktime)
SCIP_Real SCIPsolGetObj(SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
SCIP_Real SCIPsolGetAbsIntegralityViolation(SCIP_SOL *sol)
int SCIPprobGetNImplVars(SCIP_PROB *prob)
void SCIPsolUpdateVarsum(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real weight)
SCIP_RETCODE SCIPrealarrayCopy(SCIP_REALARRAY **realarray, BMS_BLKMEM *blkmem, SCIP_REALARRAY *sourcerealarray)
internal methods for storing and manipulating the main problem
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
SCIP_ROW ** SCIPcolGetRows(SCIP_COL *col)
SCIP_RETCODE SCIPsolCreateCurrentSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
SCIP_RETCODE SCIPboolarrayCreate(SCIP_BOOLARRAY **boolarray, BMS_BLKMEM *blkmem)
SCIP_COL ** SCIPlpGetCols(SCIP_LP *lp)
SCIP_Bool SCIProwIsLocal(SCIP_ROW *row)
SCIP_Bool SCIPvarIsTransformedOrigvar(SCIP_VAR *var)
SCIP_Real SCIPrealarrayGetVal(SCIP_REALARRAY *realarray, int idx)
SCIP_Real SCIPnlpGetObjval(SCIP_NLP *nlp)
SCIP_RETCODE SCIPsolSetVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_VAR *var, SCIP_Real val)
SCIP_Real SCIPvarGetAggrConstant(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
internal methods for NLP management
SCIP_Real SCIPsetFeasCeil(SCIP_SET *set, SCIP_Real val)
static SCIP_RETCODE solIncArrayVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_VAR *var, SCIP_Real incval)
internal miscellaneous methods
SCIP_RETCODE SCIPboolarrayClear(SCIP_BOOLARRAY *boolarray)
SCIP_HEUR * SCIPsolGetHeur(SCIP_SOL *sol)
SCIP_Real SCIPvarGetLPSol(SCIP_VAR *var)
static SCIP_RETCODE solUnlinkVar(SCIP_SOL *sol, SCIP_SET *set, SCIP_VAR *var)
SCIP_RETCODE SCIPsolCreateOriginal(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur)
internal methods for global SCIP settings
SCIP_Bool SCIPsetIsFeasGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPvarGetMultaggrConstant(SCIP_VAR *var)
void SCIPmessagePrintInfo(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...)
SCIP_Real SCIProwGetRhs(SCIP_ROW *row)
internal methods for relaxators
SCIP_Bool SCIPsetIsEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPlpGetObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
SCIP_Bool SCIPsetIsFeasLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
datastructures for storing primal CIP solutions
int SCIPprobGetNIntVars(SCIP_PROB *prob)
SCIP_RETCODE SCIPsolTransform(SCIP_SOL *sol, SCIP_SOL **transsol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal)
void SCIPsolRecomputeObj(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob)
SCIP_Real SCIProwGetSolActivity(SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol)
#define BMSfreeBlockMemory(mem, ptr)
internal methods for problem variables
SCIP_RETCODE SCIPprimalSolCreated(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
SCIP_Longint SCIPsolGetNodenum(SCIP_SOL *sol)
SCIP_Real SCIPprobGetObjoffset(SCIP_PROB *prob)
SCIP_NLPSOLSTAT SCIPnlpGetSolstat(SCIP_NLP *nlp)
SCIP_RETCODE SCIPsolIncVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_VAR *var, SCIP_Real incval)
SCIP_Real SCIPsolGetAbsBoundViolation(SCIP_SOL *sol)
SCIP_Real SCIPvarGetNLPSol(SCIP_VAR *var)
SCIP_RETCODE SCIPsolCreate(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur)
SCIP_RETCODE SCIPrealarrayFree(SCIP_REALARRAY **realarray)
void SCIPsolSetHeur(SCIP_SOL *sol, SCIP_HEUR *heur)
void SCIPsolResetViolations(SCIP_SOL *sol)
SCIP_Bool SCIPlpDivingObjChanged(SCIP_LP *lp)
int SCIPvarGetNLocksUp(SCIP_VAR *var)
SCIP_RETCODE SCIPsolRetransform(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_Bool *hasinfval)
SCIP_RETCODE SCIPsolMarkPartial(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **vars, int nvars)
SCIP_RETCODE SCIPsolPrint(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PROB *transprob, FILE *file, SCIP_Bool mipstart, SCIP_Bool printzeros)
void SCIPsolUpdateConsViolation(SCIP_SOL *sol, SCIP_Real absviolcons, SCIP_Real relviolcons)
SCIP_Real SCIPvarGetUnchangedObj(SCIP_VAR *var)
void SCIPsolOrigAddObjval(SCIP_SOL *sol, SCIP_Real addval)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
static SCIP_RETCODE solSetArrayVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_VAR *var, SCIP_Real val)
SCIP_VAR * SCIPvarGetAggrVar(SCIP_VAR *var)
SCIP_Bool SCIPtreeHasCurrentNodeLP(SCIP_TREE *tree)
int SCIPnlpGetNVars(SCIP_NLP *nlp)
void SCIPsolUpdateBoundViolation(SCIP_SOL *sol, SCIP_Real absviolbounds, SCIP_Real relviolbounds)
SCIP_COL * SCIPvarGetCol(SCIP_VAR *var)
int SCIPvarGetMultaggrNVars(SCIP_VAR *var)
SCIP_RETCODE SCIPvarGetOrigvarSum(SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
SCIP_Bool SCIPsetIsFeasLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPsolPrintRay(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PROB *transprob, FILE *file, SCIP_Bool printzeros)
void SCIPsolUpdateIntegralityViolation(SCIP_SOL *sol, SCIP_Real absviolintegrality)
SCIP_RETCODE SCIPsolAdjustImplicitSolVals(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool uselprows)
static SCIP_RETCODE solClearArrays(SCIP_SOL *sol)
SCIP_Real SCIPlpGetLooseObjval(SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
SCIP_RETCODE SCIPsolLinkRelaxSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_RELAXATION *relaxation)
SCIP_Real SCIPsetFeasFloor(SCIP_SET *set, SCIP_Real val)
int SCIPcolGetNNonz(SCIP_COL *col)
int SCIPvarGetNLocksDown(SCIP_VAR *var)
SCIP_Real SCIPsolGetRelLPRowViolation(SCIP_SOL *sol)
SCIP_VAR * SCIPcolGetVar(SCIP_COL *col)
static const SCIP_Real scalars[]
void SCIPsolUpdateLPRowViolation(SCIP_SOL *sol, SCIP_Real absviollprows, SCIP_Real relviollprows)
SCIP_RETCODE SCIPsolCreateLPSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
SCIP_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 SCIPboolarrayFree(SCIP_BOOLARRAY **boolarray)
public methods for message output
SCIP_SOLORIGIN SCIPsolGetOrigin(SCIP_SOL *sol)
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
SCIP_Bool SCIPsetIsGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
static SCIP_Real solGetArrayVal(SCIP_SOL *sol, SCIP_VAR *var)
int SCIPsolGetPrimalIndex(SCIP_SOL *sol)
void SCIPsolUpdateVarObj(SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
internal methods for problem statistics
SCIP_Bool SCIPlpIsSolved(SCIP_LP *lp)
SCIP_Bool SCIPsetIsFeasPositive(SCIP_SET *set, SCIP_Real val)
#define SCIPsetDebugMsgPrint
SCIP_VAR ** SCIPprobGetVars(SCIP_PROB *prob)
enum SCIP_SolOrigin SCIP_SOLORIGIN
internal methods for constraints and constraint handlers
int SCIPsolGetDepth(SCIP_SOL *sol)
SCIP_VAR ** SCIPnlpGetVars(SCIP_NLP *nlp)
int SCIPvarGetIndex(SCIP_VAR *var)
SCIP_RETCODE SCIPsolCreateNLPSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_HEUR *heur)
SCIP_Bool SCIPsetIsFeasGT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPrealarraySetVal(SCIP_REALARRAY *realarray, int arraygrowinit, SCIP_Real arraygrowfac, int idx, SCIP_Real val)
SCIP_VARTYPE SCIPvarGetType(SCIP_VAR *var)
void SCIPsolUpdateLPConsViolation(SCIP_SOL *sol, SCIP_Real absviol, SCIP_Real relviol)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
SCIP_Bool SCIPvarIsTransformed(SCIP_VAR *var)
#define BMSallocBlockMemory(mem, ptr)
SCIP_RETCODE SCIPsolCreatePseudoSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
SCIP_Real absviolintegrality
SCIP_Bool SCIPsolIsPartial(SCIP_SOL *sol)
common defines and data types used in all packages of SCIP
int SCIPsolGetRunnum(SCIP_SOL *sol)
struct BMS_BlkMem BMS_BLKMEM
SCIP_RETCODE SCIPconshdlrCheck(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_Bool completely, SCIP_RESULT *result)
SCIP_Real SCIPvarGetPseudoSol(SCIP_VAR *var)
SCIP_VAR * SCIPvarGetTransVar(SCIP_VAR *var)
SCIP_Bool SCIPvarIsIntegral(SCIP_VAR *var)
SCIP_RETCODE SCIPsolCheck(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *feasible)
int SCIPsolGetIndex(SCIP_SOL *sol)
SCIP_Bool SCIPvarMayRoundUp(SCIP_VAR *var)
SCIP_Bool SCIPvarMayRoundDown(SCIP_VAR *var)
SCIP_Real SCIPsolGetAbsLPRowViolation(SCIP_SOL *sol)
SCIP_Bool SCIPsetIsFeasNegative(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
SCIP_RETCODE SCIPsolFree(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_PRIMAL *primal)