Detailed DescriptionLP management methods and data structures. In LP management, we have to differ between the current LP and the SCIP_LP stored in the LP solver. All LP methods affect the current LP only. Before solving the current LP with the LP solver or setting an LP state, the LP solvers data has to be updated to the current LP with a call to lpFlush(). Definition in file lp.c. #include <assert.h> #include <math.h> #include <limits.h> #include <string.h> #include "scip/def.h" #include "scip/set.h" #include "scip/stat.h" #include "scip/intervalarith.h" #include "scip/clock.h" #include "scip/misc.h" #include "scip/lp.h" #include "scip/var.h" #include "scip/prob.h" #include "scip/sol.h" #include "scip/solve.h" #include "scip/event.h" #include "scip/pub_message.h" #include "lpi/lpi.h" Go to the source code of this file.
Macro Definition Documentation
maximal scaling (scale/(1-f0)) allowed in c-MIR calculations Definition at line 54 of file lp.c. Referenced by SCIPlpCalcMIR().
Definition at line 106 of file lp.c. Referenced by lpFlushAddRows(), rowScale(), sumMIRRow(), and sumStrongCGRow().
Definition at line 138 of file lp.c. Referenced by lpFlushAddCols().
Definition at line 646 of file lp.c. Referenced by rowSortNonLP(), and SCIProwEnsureSize().
Definition at line 719 of file lp.c. Referenced by SCIProwGetNorm(), and SCIProwGetObjParallelism().
Definition at line 720 of file lp.c. Referenced by SCIProwGetSumNorm().
Definition at line 721 of file lp.c. Referenced by SCIProwGetObjParallelism().
Definition at line 1575 of file lp.c. Referenced by colLink(), colUnlink(), lpDelColset(), lpDelRowset(), lpSolve(), rowEventSideChanged(), rowLink(), SCIPcolAddCoef(), SCIPcolChgCoef(), SCIPcolDelCoef(), SCIPcolIncCoef(), SCIPlpAddCol(), SCIPlpAddRow(), SCIPlpFlush(), SCIPlpMarkFlushed(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIProwAddCoef(), SCIProwChgCoef(), SCIProwDelCoef(), and SCIProwIncCoef().
should the objective limit of the LP solver be disabled Definition at line 2593 of file lp.c. Referenced by lpSetUobjlim(), lpSolve(), SCIPlpSetCutoffbound(), and SCIPlpSolveAndEval().
Definition at line 8654 of file lp.c. Referenced by SCIPlpCreate().
Definition at line 13674 of file lp.c. Referenced by lpSolveStable().
Definition at line 17940 of file lp.c. Referenced by SCIPlpRecordOldRowSideDive(). Function Documentation
ensures, that chgcols array can store at least num entries
Definition at line 147 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::chgcols, SCIP_Lp::chgcolssize, SCIP_Lp::nchgcols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by insertColChgcols().
ensures, that chgrows array can store at least num entries
Definition at line 170 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::chgrows, SCIP_Lp::chgrowssize, SCIP_Lp::nchgrows, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by rowSideChanged().
ensures, that lpicols array can store at least num entries
Definition at line 193 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::lpicols, SCIP_Lp::lpicolssize, SCIP_Lp::nlpicols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by lpFlushAddCols().
ensures, that lpirows array can store at least num entries
Definition at line 216 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::lpirows, SCIP_Lp::lpirowssize, SCIP_Lp::nlpirows, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by lpFlushAddRows().
ensures, that cols array can store at least num entries
Definition at line 239 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::cols, SCIP_Lp::colssize, SCIP_Lp::ncols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by SCIPlpAddCol().
ensures, that lazy cols array can store at least num entries
Definition at line 262 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::lazycols, SCIP_Lp::lazycolssize, SCIP_Lp::nlazycols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by SCIPlpAddCol().
ensures, that rows array can store at least num entries
Definition at line 285 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::nrows, SCIP_Lp::rows, SCIP_Lp::rowssize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by SCIPlpAddRow().
ensures, that row array of column can store at least num entries
Definition at line 308 of file lp.c. References BMSreallocBlockMemoryArray, SCIP_Col::len, SCIP_Col::linkpos, NULL, SCIP_Col::rows, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Col::size, and SCIP_Col::vals. Referenced by colAddCoef().
save current LP values dependent on the solution
Definition at line 335 of file lp.c. References BMSallocMemory, SCIP_LpSolVals::dualfeasible, SCIP_Lp::dualfeasible, SCIP_LpSolVals::lpissolved, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, NULL, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_ALLOC, SCIP_OKAY, SCIP_LpSolVals::solisbasic, SCIP_Lp::solisbasic, SCIP_Lp::solved, and SCIP_Lp::storedsolvals. Referenced by SCIPlpStartDive().
restore LP solution values in column
Definition at line 367 of file lp.c. References SCIP_LpSolVals::dualfeasible, SCIP_Lp::dualfeasible, FALSE, SCIP_LpSolVals::lpissolved, SCIP_LpSolVals::lpobjval, SCIP_Lp::lpobjval, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, NULL, SCIP_LpSolVals::primalfeasible, SCIP_Lp::primalfeasible, SCIP_INVALID, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_LpSolVals::solisbasic, SCIP_Lp::solisbasic, SCIP_Lp::solved, SCIP_Lp::storedsolvals, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp. Referenced by SCIPlpEndDive().
save current LP solution values stored in each column
Definition at line 421 of file lp.c. References SCIP_ColSolVals::basisstatus, SCIP_Col::basisstatus, BMSallocBlockMemory, NULL, SCIP_ColSolVals::primsol, SCIP_Col::primsol, SCIP_ColSolVals::redcost, SCIP_Col::redcost, SCIP_ALLOC, SCIP_OKAY, and SCIP_Col::storedsolvals. Referenced by SCIPlpStartDive().
restore LP solution values in column
Definition at line 448 of file lp.c. References SCIP_ColSolVals::basisstatus, SCIP_Col::basisstatus, BMSfreeBlockMemoryNull, NULL, SCIP_ColSolVals::primsol, SCIP_Col::primsol, SCIP_ColSolVals::redcost, SCIP_Col::redcost, SCIP_BASESTAT_ZERO, SCIP_OKAY, SCIP_Col::storedsolvals, SCIP_Col::validfarkaslp, and SCIP_Col::validredcostlp. Referenced by SCIPlpEndDive().
save current LP solution values stored in each column
Definition at line 495 of file lp.c. References SCIP_RowSolVals::activity, SCIP_Row::activity, SCIP_RowSolVals::basisstatus, SCIP_Row::basisstatus, BMSallocBlockMemory, SCIP_Row::dualfarkas, SCIP_RowSolVals::dualsol, SCIP_Row::dualsol, NULL, SCIP_ALLOC, SCIP_BASESTAT_BASIC, SCIP_INVALID, SCIP_OKAY, and SCIP_Row::storedsolvals. Referenced by SCIPlpStartDive().
restore LP solution values in row
Definition at line 532 of file lp.c. References SCIP_RowSolVals::activity, SCIP_Row::activity, SCIP_RowSolVals::basisstatus, SCIP_Row::basisstatus, BMSfreeBlockMemoryNull, SCIP_Row::dualfarkas, SCIP_RowSolVals::dualsol, SCIP_Row::dualsol, NULL, SCIP_BASESTAT_BASIC, SCIP_INVALID, SCIP_OKAY, SCIP_Row::storedsolvals, and SCIP_Row::validactivitylp. Referenced by SCIPlpEndDive().
ensures, that column array of row can store at least num entries
Definition at line 580 of file lp.c. References BMSreallocBlockMemoryArray, checkRow, SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::index, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Row::size, TRUE, and SCIP_Row::vals. Referenced by rowAddCoef(), SCIPaddVarsToRow(), and SCIPaddVarsToRowSameCoef().
Definition at line 730 of file lp.c. References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, NULL, SCIP_Prob::nvars, SCIP_Lp::rellooseobjval, SCIP_Real, SCIP_VARSTATUS_LOOSE, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), TRUE, and SCIP_Prob::vars. Referenced by getFiniteLooseObjval(), and SCIPlpGetObjval().
Definition at line 772 of file lp.c. References NULL, SCIP_Prob::nvars, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::relpseudoobjval, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), TRUE, and SCIP_Prob::vars. Referenced by getFinitePseudoObjval(), and SCIPlpGetPseudoObjval().
Definition at line 814 of file lp.c. References SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, NULL, SCIP_Prob::nvars, SCIP_Lp::relglbpseudoobjval, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), TRUE, and SCIP_Prob::vars. Referenced by SCIPlpGetGlobalPseudoObjval(). gets finite part of objective value of current LP that results from LOOSE variables only
Definition at line 856 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, and recomputeLooseObjectiveValue(). Referenced by lpSolve(), lpSolveStable(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPlpComputeRelIntPoint(), SCIPlpGetLooseObjval(), and SCIPlpSolveAndEval(). gets finite part of pseudo objective value of current LP
Definition at line 878 of file lp.c. References NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, and recomputePseudoObjectiveValue(). Referenced by SCIPlpGetModifiedPseudoObjval().
sorts column entries of linked rows currently in the LP such that lower row indices precede higher ones
Definition at line 920 of file lp.c. References SCIP_Row::cols, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::lprowssorted, SCIP_Col::nlprows, NULL, SCIP_Col::rows, SCIPsortPtrRealInt(), TRUE, and SCIP_Col::vals. Referenced by colSearchCoef(), and SCIPcolSort().
sorts column entries of unlinked rows or rows currently not in the LP such that lower row indices precede higher ones
Definition at line 953 of file lp.c. References SCIP_Row::cols, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::rows, SCIPsortPtrRealInt(), TRUE, and SCIP_Col::vals. Referenced by colSearchCoef(), and SCIPcolSort().
sorts row entries of linked columns currently in the LP such that lower column indices precede higher ones
Definition at line 984 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Row::nlpcols, NULL, SCIP_Col::rows, SCIPsortIntPtrIntReal(), TRUE, and SCIP_Row::vals. Referenced by rowSearchCoef(), SCIPlpComputeRelIntPoint(), and SCIProwSort().
sorts row entries of unlinked columns or columns currently not in the LP such that lower column indices precede higher ones
Definition at line 1017 of file lp.c. References checkRow, SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::rows, SCIPsortIntPtrIntReal(), TRUE, and SCIP_Row::vals. Referenced by rowSearchCoef(), and SCIProwSort().
searches coefficient in part of the column, returns position in col vector or -1 if not found
Definition at line 1052 of file lp.c. References SCIP_Row::index, SCIP_Col::linkpos, SCIP_Row::lppos, NULL, and SCIP_Col::rows. Referenced by colSearchCoef(). searches coefficient in column, returns position in col vector or -1 if not found
Definition at line 1088 of file lp.c. References colSearchCoefPart(), colSortLP(), colSortNonLP(), SCIP_Col::len, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, and SCIP_Col::nunlinked. Referenced by SCIPcolChgCoef(), SCIPcolDelCoef(), and SCIPcolIncCoef().
searches coefficient in part of the row, returns position in col vector or -1 if not found
Definition at line 1127 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Col::lppos, and NULL. Referenced by rowSearchCoef(). searches coefficient in row, returns position in row vector or -1 if not found; if the sorting of the row is delayed, returns -1
Definition at line 1166 of file lp.c. References SCIP_Row::cols, SCIP_Row::delaysort, SCIP_Row::len, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nunlinked, rowSearchCoefPart(), rowSortLP(), and rowSortNonLP(). Referenced by SCIProwChgCoef(), SCIProwDelCoef(), and SCIProwIncCoef().
moves a coefficient in a column to a different place, and updates all corresponding data structures
Definition at line 1219 of file lp.c. References SCIP_Row::cols, FALSE, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::rows, and SCIP_Col::vals. Referenced by colAddCoef(), and colDelCoefPos().
swaps two coefficients in a column, and updates all corresponding data structures
Definition at line 1255 of file lp.c. References SCIP_Row::cols, FALSE, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::rows, SCIP_Real, and SCIP_Col::vals. Referenced by rowAddCoef(), rowUpdateAddLP(), and rowUpdateDelLP().
moves a coefficient in a row to a different place, and updates all corresponding data structures
Definition at line 1315 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::rows, and SCIP_Row::vals. Referenced by rowAddCoef(), and rowDelCoefPos().
swaps two coefficients in a row, and updates all corresponding data structures
Definition at line 1352 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::index, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::rows, SCIP_Real, and SCIP_Row::vals. Referenced by colAddCoef(), colUpdateAddLP(), and colUpdateDelLP().
issues a ROWCOEFCHANGED event on the given row
Definition at line 1417 of file lp.c. References SCIP_Row::eventfilter, SCIP_EventFilter::eventmask, SCIP_EventFilter::len, NULL, SCIP_CALL, SCIP_EVENTTYPE_ROWCOEFCHANGED, SCIP_OKAY, SCIPeventCreateRowCoefChanged(), and SCIPeventqueueAdd(). Referenced by rowAddCoef(), rowChgCoefPos(), and rowDelCoefPos().
issues a ROWCONSTCHANGED event on the given row
Definition at line 1447 of file lp.c. References SCIP_Row::eventfilter, SCIP_EventFilter::eventmask, SCIP_EventFilter::len, NULL, SCIP_CALL, SCIP_EVENTTYPE_ROWCONSTCHANGED, SCIP_OKAY, SCIPeventCreateRowConstChanged(), and SCIPeventqueueAdd(). Referenced by SCIProwChgConstant().
issues a ROWSIDECHANGED event on the given row
Definition at line 1475 of file lp.c. References checkLinks, SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::dualfarkas, SCIP_Row::dualsol, EPSEQ, SCIP_Row::eventfilter, SCIP_EventFilter::eventmask, FALSE, SCIP_Col::farkascoef, SCIP_Lp::flushed, SCIP_Col::len, SCIP_EventFilter::len, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Col::nlprows, SCIP_Lp::nrows, NULL, SCIP_Col::nunlinked, SCIP_Row::nunlinked, SCIP_Col::primsol, SCIP_Col::rows, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_ROWSIDECHANGED, SCIP_OKAY, SCIPeventCreateRowSideChanged(), SCIPeventqueueAdd(), TRUE, SCIP_Col::vals, and SCIP_Row::vals. Referenced by SCIProwChgLhs(), and SCIProwChgRhs(). announces, that the given coefficient in the constraint matrix changed
Definition at line 1584 of file lp.c. References SCIP_Col::coefchanged, SCIP_Row::coefchanged, FALSE, SCIP_Lp::flushed, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Row::maxactivity, SCIP_Row::minactivity, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Row::pseudoactivity, rowAddCoef(), SCIP_INVALID, SCIP_Real, TRUE, SCIP_Row::validactivitybdsdomchg, and SCIP_Row::validpsactivitydomchg. Referenced by colAddCoef(), colChgCoefPos(), colDelCoefPos(), rowAddCoef(), rowChgCoefPos(), and rowDelCoefPos().
adds a previously non existing coefficient to an LP row
Definition at line 1986 of file lp.c. References coefChanged(), colAddCoef(), SCIP_Row::cols, SCIP_Row::cols_index, colSwapCoefs(), FALSE, SCIP_Col::index, SCIP_Row::integral, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Row::name, SCIP_Row::nlocks, SCIP_Row::nlpcols, SCIP_Col::nlprows, SCIP_Row::nonlpcolssorted, NULL, SCIP_Col::nunlinked, SCIP_Row::nunlinked, rowAddNorms(), rowEventCoefChanged(), rowMoveCoef(), SCIP_Col::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcolIsIntegral(), SCIPdebugMessage, SCIPerrorMessage, SCIProwEnsureSize(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPvarGetName(), SCIPvarGetProbindex(), TRUE, SCIP_Row::vals, SCIP_Col::var, and SCIP_Col::var_probindex. Referenced by coefChanged(), colAddCoef(), colLink(), SCIProwAddCoef(), SCIProwChgCoef(), and SCIProwIncCoef().
adds a previously non existing coefficient to an LP column
Definition at line 1649 of file lp.c. References coefChanged(), colEnsureSize(), colMoveCoef(), SCIP_Row::cols, FALSE, SCIP_Row::index, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Row::name, SCIP_Row::nlpcols, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, SCIP_Col::nunlinked, SCIP_Row::nunlinked, rowAddCoef(), SCIP_Col::rows, rowSwapCoefs(), SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPvarGetName(), SCIP_Col::vals, and SCIP_Col::var. Referenced by rowAddCoef(), rowLink(), SCIPcolAddCoef(), SCIPcolChgCoef(), and SCIPcolIncCoef().
deletes coefficient at given position from column
Definition at line 1770 of file lp.c. References coefChanged(), colMoveCoef(), SCIP_Row::cols, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::rows, SCIP_OKAY, and SCIP_Col::var. Referenced by colChgCoefPos(), rowUnlink(), SCIPcolDelCoef(), and SCIProwDelCoef().
changes a coefficient at given position of an LP column
Definition at line 1815 of file lp.c. References coefChanged(), colDelCoefPos(), SCIP_Row::cols, SCIP_Col::linkpos, NULL, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIP_Col::vals, and SCIP_Col::var. Referenced by rowScale(), SCIPcolChgCoef(), SCIPcolIncCoef(), SCIProwChgCoef(), and SCIProwIncCoef().
update row norms after addition of coefficient
Definition at line 1859 of file lp.c. References SCIP_Col::index, SCIP_Col::lppos, MAX, SCIP_Row::maxidx, SCIP_Row::maxval, MIN, SCIP_Row::minidx, SCIP_Row::minval, NULL, SCIP_Row::nummaxval, SCIP_Row::numminval, SCIP_Row::objprod, REALABS, SCIP_Real, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetIsZero(), SCIP_Row::sqrnorm, SCIP_Row::sumnorm, and SCIP_Col::unchangedobj. Referenced by colUpdateAddLP(), rowAddCoef(), rowCalcNorms(), and rowChgCoefPos().
update row norms after deletion of coefficient
Definition at line 1928 of file lp.c. References FALSE, SCIP_Col::index, SCIP_Col::lppos, MAX, SCIP_Row::maxidx, SCIP_Row::maxval, SCIP_Row::minidx, SCIP_Row::minval, NULL, SCIP_Row::nummaxval, SCIP_Row::numminval, SCIP_Row::objprod, REALABS, SCIP_Real, SCIPsetIsGE(), SCIPsetIsLE(), SCIPsetIsZero(), SCIP_Row::sqrnorm, SCIP_Row::sumnorm, SCIP_Col::unchangedobj, and SCIP_Row::validminmaxidx. Referenced by colUpdateDelLP(), rowChgCoefPos(), and rowDelCoefPos().
deletes coefficient at given position from row
Definition at line 2127 of file lp.c. References coefChanged(), SCIP_Row::cols, FALSE, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::name, SCIP_Row::nlocks, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, rowDelNorms(), rowEventCoefChanged(), rowMoveCoef(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, TRUE, and SCIP_Row::vals. Referenced by colUnlink(), rowChgCoefPos(), SCIPcolDelCoef(), and SCIProwDelCoef().
changes a coefficient at given position of an LP row
Definition at line 2187 of file lp.c. References coefChanged(), SCIP_Row::cols, FALSE, SCIP_Row::integral, SCIP_Row::name, SCIP_Row::nlocks, NULL, rowAddNorms(), rowDelCoefPos(), rowDelNorms(), rowEventCoefChanged(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPcolIsIntegral(), SCIPerrorMessage, SCIPsetIsEQ(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), TRUE, and SCIP_Row::vals. Referenced by rowScale(), SCIPcolChgCoef(), SCIPcolIncCoef(), SCIProwChgCoef(), and SCIProwIncCoef().
notifies LP row, that its sides were changed
Definition at line 2243 of file lp.c. References SCIP_Lp::chgrows, ensureChgrowsSize(), FALSE, SCIP_Lp::flushed, SCIP_Row::lhschanged, SCIP_Row::lpipos, SCIP_Lp::nchgrows, NULL, SCIP_Row::rhschanged, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPABORT, SCIPerrorMessage, and TRUE. Referenced by SCIProwChgConstant(), SCIProwChgLhs(), and SCIProwChgRhs().
insert column coefficients in corresponding rows
Definition at line 2296 of file lp.c. References checkLinks, SCIP_Row::cols, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, rowAddCoef(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsetIsZero(), SCIPvarGetName(), SCIP_Col::vals, and SCIP_Col::var. Referenced by lpFlushAddCols().
removes column coefficients from corresponding rows
Definition at line 2340 of file lp.c. References checkLinks, SCIP_Row::cols, SCIP_Col::len, SCIP_Col::linkpos, NULL, SCIP_Col::nunlinked, rowDelCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPvarGetName(), and SCIP_Col::var. Referenced by SCIPcolFree().
insert row coefficients in corresponding columns
Definition at line 2379 of file lp.c. References checkLinks, colAddCoef(), SCIP_Row::cols, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::name, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsetIsZero(), and SCIP_Row::vals. Referenced by lpFlushAddRows().
removes row coefficients from corresponding columns
Definition at line 2422 of file lp.c. References colDelCoefPos(), SCIP_Row::cols, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::name, NULL, SCIP_Row::nunlinked, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIProwFree().
sets parameter of type int in LP solver, ignoring unknown parameters
Definition at line 2461 of file lp.c. References FALSE, SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPlpiSetIntpar(), and TRUE. Referenced by lpSetBoolpar(), lpSetFastmip(), lpSetIterationLimit(), lpSetPricing(), lpSetThreads(), lpSetTiming(), and SCIPlpCreate().
sets parameter of type SCIP_Bool in LP solver, ignoring unknown parameters
Definition at line 2488 of file lp.c. References lpSetIntpar(). Referenced by lpSetFromscratch(), lpSetLPInfo(), lpSetPresolving(), lpSetScaling(), and SCIPlpCreate().
sets parameter of type SCIP_Real in LP solver, ignoring unknown parameters
Definition at line 2500 of file lp.c. References FALSE, SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPlpiSetRealpar(), and TRUE. Referenced by lpAlgorithm(), lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFeastol(), lpSetRowrepswitch(), lpSetUobjlim(), and SCIPlpCreate().
checks, that parameter of type int in LP solver has the given value, ignoring unknown parameters
Definition at line 2528 of file lp.c. References SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, and SCIPlpiGetIntpar(). Referenced by lpCheckBoolpar(), lpSetFastmip(), lpSetIterationLimit(), lpSetPricing(), lpSetThreads(), and lpSetTiming().
checks, that parameter of type SCIP_Bool in LP solver has the given value, ignoring unknown parameters
Definition at line 2553 of file lp.c. References lpCheckIntpar(). Referenced by lpSetFromscratch(), lpSetLPInfo(), lpSetPresolving(), and lpSetScaling().
checks, that parameter of type SCIP_Real in LP solver has the given value, ignoring unknown parameters
Definition at line 2564 of file lp.c. References SCIP_Lp::lpi, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_Real, and SCIPlpiGetRealpar(). Referenced by lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFeastol(), lpSetRowrepswitch(), and lpSetUobjlim().
sets the upper objective limit of the LP solver
Definition at line 2597 of file lp.c. References FALSE, lpCheckRealpar(), lpCutoffDisabled, SCIP_Lp::lpi, SCIP_Lp::lpiuobjlim, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, NULL, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_UOBJLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiInfinity(), SCIPsetIsInfinity(), and SCIP_Lp::solved. Referenced by lpSolveStable().
sets the feasibility tolerance of the LP solver
Definition at line 2639 of file lp.c. References FALSE, lpCheckRealpar(), SCIP_Lp::lpifeastol, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, SCIP_Lp::nrows, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_FEASTOL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved. Referenced by lpSolveStable().
sets the reduced costs feasibility tolerance of the LP solver
Definition at line 2675 of file lp.c. References SCIP_Lp::dualfeasible, FALSE, lpCheckRealpar(), SCIP_Lp::lpidualfeastol, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_DUALFEASTOL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved. Referenced by lpSolveStable().
sets the convergence tolerance used in barrier algorithm of the LP solver
Definition at line 2711 of file lp.c. References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::lastlpalgo, lpCheckRealpar(), SCIP_Lp::lpibarrierconvtol, SCIP_Lp::lpobjval, lpSetRealpar(), SCIP_Lp::lpsolstat, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_INVALID, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved. Referenced by lpSolveStable().
sets the FROMSCRATCH setting of the LP solver
Definition at line 2748 of file lp.c. References FALSE, lpCheckBoolpar(), SCIP_Lp::lpifromscratch, lpSetBoolpar(), NULL, SCIP_CALL, SCIP_LPPAR_FROMSCRATCH, and SCIP_OKAY. Referenced by lpSolveStable(), and SCIPlpSolveAndEval().
sets the FASTMIP setting of the LP solver
Definition at line 2773 of file lp.c. References FALSE, lpCheckIntpar(), SCIP_Lp::lpifastmip, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_FASTMIP, and SCIP_OKAY. Referenced by lpSolveStable().
sets the SCALING setting of the LP solver
Definition at line 2799 of file lp.c. References FALSE, lpCheckBoolpar(), SCIP_Lp::lpiscaling, lpSetBoolpar(), NULL, SCIP_CALL, SCIP_LPPAR_SCALING, and SCIP_OKAY. Referenced by lpSolveStable().
sets the number of THREADS of the LP solver
Definition at line 2824 of file lp.c. References FALSE, lpCheckIntpar(), SCIP_Lp::lpithreads, lpSetIntpar(), NULL, SCIP_CALL, SCIP_LPPAR_THREADS, and SCIP_OKAY. Referenced by lpSolveStable().
sets the PRESOLVING setting of the LP solver
Definition at line 2849 of file lp.c. References FALSE, lpCheckBoolpar(), SCIP_Lp::lpipresolving, lpSetBoolpar(), NULL, SCIP_CALL, SCIP_LPPAR_PRESOLVING, and SCIP_OKAY. Referenced by lpSolveStable().
sets the ROWREPSWITCH setting of the LP solver
Definition at line 2874 of file lp.c. References FALSE, lpCheckRealpar(), SCIP_Lp::lpirowrepswitch, lpSetRealpar(), NULL, SCIP_CALL, SCIP_LPPAR_ROWREPSWITCH, and SCIP_OKAY. Referenced by lpSolveStable().
sets the iteration limit of the LP solver
Definition at line 2899 of file lp.c. References FALSE, lpCheckIntpar(), SCIP_Lp::lpiitlim, SCIP_Lp::lpobjval, lpSetIntpar(), SCIP_Lp::lpsolstat, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_LPITLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, and SCIP_Lp::solved. Referenced by lpSolveStable(), and SCIPlpEndDive().
sets the pricing strategy of the LP solver
Definition at line 2935 of file lp.c. References lpCheckIntpar(), SCIP_Lp::lpipricing, lpSetIntpar(), NULL, SCIP_Bool, SCIP_CALL, SCIP_LPPAR_PRICING, and SCIP_OKAY. Referenced by lpSetPricingChar().
sets the pricing strategy of the LP solver (given the character representation of the strategy)
Definition at line 2958 of file lp.c. References lpSetPricing(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_PRICING_AUTO, SCIP_PRICING_DEVEX, SCIP_PRICING_FULL, SCIP_PRICING_LPIDEFAULT, SCIP_PRICING_PARTIAL, SCIP_PRICING_STEEP, SCIP_PRICING_STEEPQSTART, and SCIPerrorMessage. Referenced by lpSolveStable().
sets the verbosity of the LP solver
Definition at line 3000 of file lp.c. References lpCheckBoolpar(), SCIP_Lp::lpilpinfo, lpSetBoolpar(), NULL, SCIP_Bool, SCIP_CALL, SCIP_LPPAR_LPINFO, and SCIP_OKAY. Referenced by lpSolveStable().
sets the CONDITIONLIMIT setting of the LP solver
Definition at line 3023 of file lp.c. References FALSE, lpCheckRealpar(), SCIP_Lp::lpiconditionlimit, lpSetRealpar(), NULL, SCIP_CALL, SCIP_LPPAR_CONDITIONLIMIT, and SCIP_OKAY. Referenced by lpSolveStable().
sets the type of timer of the LP solver
Definition at line 3048 of file lp.c. References FALSE, lpCheckIntpar(), SCIP_Lp::lpitiming, lpSetIntpar(), NULL, SCIP_CALL, SCIP_CLOCKTYPE_CPU, SCIP_CLOCKTYPE_WALL, SCIP_LPPAR_TIMING, and SCIP_OKAY. Referenced by lpSolveStable().
creates an LP column
Definition at line 3086 of file lp.c. References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, SCIP_Stat::ncolidx, NULL, SCIP_Var::obj, SCIP_ALLOC, SCIP_BASESTAT_ZERO, SCIP_INVALID, SCIP_OKAY, SCIPsetIsZero(), SCIPvarGetLbLazy(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetUbLazy(), SCIPvarGetUbLocal(), SCIPvarGetUnchangedObj(), SCIPvarIsIntegral(), and TRUE. Referenced by SCIPvarColumn().
frees an LP column
Definition at line 3183 of file lp.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, colUnlink(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, and SCIPvarGetStatus(). Referenced by SCIPvarLoose(), and varFree().
output column to file stream
Definition at line 3213 of file lp.c. References SCIP_Col::lb, SCIP_Col::len, SCIP_Row::name, NULL, SCIP_Col::obj, SCIP_Col::rows, SCIPmessageFPrintInfo(), SCIP_Col::ub, SCIP_Col::vals, and SCIP_Col::var.
adds a previously non existing coefficient to an LP column
Definition at line 3253 of file lp.c. References checkLinks, colAddCoef(), SCIP_Lp::diving, NULL, SCIP_CALL, and SCIP_OKAY.
deletes existing coefficient from column
Definition at line 3274 of file lp.c. References checkLinks, colDelCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, SCIP_Row::name, NULL, rowDelCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetIsEQ(), SCIPvarGetName(), SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var.
changes or adds a coefficient to an LP column
Definition at line 3319 of file lp.c. References checkLinks, colAddCoef(), colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, NULL, rowChgCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.
increases value of an existing or non-existing coefficient in an LP column
Definition at line 3370 of file lp.c. References checkLinks, colAddCoef(), colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, NULL, rowChgCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Col::vals, and SCIP_Row::vals.
insert column in the chgcols list (if not already there)
Definition at line 3425 of file lp.c. References SCIP_Lp::chgcols, ensureChgcolsSize(), FALSE, SCIP_Lp::flushed, SCIP_Col::lbchanged, SCIP_Lp::nchgcols, SCIP_Col::objchanged, SCIP_CALL, SCIP_OKAY, and SCIP_Col::ubchanged. Referenced by SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), and updateLazyBounds().
Is the new value reliable or may we have cancellation?
Definition at line 3450 of file lp.c. References NULL, REALABS, SCIP_INVALID, SCIP_Real, and SCIPsetIsZero(). Referenced by lpUpdateObjNorms().
update norms of objective function vector
Definition at line 3468 of file lp.c. References isNewValueUnreliable(), MAX, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, SCIP_Lp::objsumnorm, REALABS, SCIP_Real, SCIPsetIsGE(), SCIPsetIsLT(), and TRUE. Referenced by lpDelColset(), SCIPcolChgObj(), SCIPlpAddCol(), and SCIPlpShrinkCols().
changes objective value of column
Definition at line 3504 of file lp.c. References SCIP_Lp::divingobjchg, FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lb, SCIP_Col::lpipos, lpUpdateObjNorms(), SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetUnchangedObj(), TRUE, SCIP_Col::ub, SCIP_Col::unchangedobj, and SCIP_Col::var. Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgObjDive().
changes lower bound of column
Definition at line 3563 of file lp.c. References FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, and SCIP_Col::var. Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgLbDive().
changes upper bound of column
Definition at line 3608 of file lp.c. References FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, SCIP_Col::ub, SCIP_Col::ubchanged, and SCIP_Col::var. Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgUbDive(). calculates the reduced costs of a column using the given dual solution vector
Definition at line 3653 of file lp.c. References SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::obj, SCIP_Col::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var. Referenced by undoBdchgsDualsol(). calculates the reduced costs of a column using the dual solution stored in the rows
Definition at line 3705 of file lp.c. References SCIP_Row::dualsol, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::obj, SCIP_Col::rows, SCIP_INVALID, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var. Referenced by SCIPcolGetRedcost(). gets the reduced costs of a column in last LP or after recalculation
Definition at line 3758 of file lp.c. References colCalcInternalRedcost(), SCIP_Stat::lpcount, NULL, SCIP_Col::redcost, SCIP_INVALID, SCIP_Col::validredcostlp, and SCIP_Lp::validsollp. Referenced by SCIPcolGetFeasibility(), SCIPgetColRedcost(), SCIPprobUpdateBestRootSol(), SCIPvarGetImplRedcost(), and SCIPvarGetRedcost(). gets the feasibility of (the dual row of) a column in last LP or after recalculation
Definition at line 3782 of file lp.c. References SCIP_Col::lb, SCIP_Stat::lpcount, NULL, REALABS, SCIP_Real, SCIPcolGetRedcost(), SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIP_Col::ub, and SCIP_Lp::validsollp. Referenced by SCIPpricestoreAddProbVars(). calculates the Farkas coefficient y^T A_i of a column i using the given dual Farkas vector y
Definition at line 3836 of file lp.c. References SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var. gets the Farkas coefficient y^T A_i of a column i in last LP (which must be infeasible)
Definition at line 3888 of file lp.c. References SCIP_Row::dualfarkas, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::rows, SCIP_INVALID, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var. Referenced by SCIPcolGetFarkasCoef(). gets the Farkas coefficient of a column in last LP (which must be infeasible)
Definition at line 3941 of file lp.c. References colCalcInternalFarkasCoef(), SCIP_Col::farkascoef, SCIP_Stat::lpcount, NULL, SCIP_INVALID, SCIP_Col::validfarkaslp, and SCIP_Lp::validfarkaslp. Referenced by SCIPcolGetFarkasValue(), and SCIPgetColFarkasCoef(). gets the Farkas value of a column in last LP (which must be infeasible), i.e. the Farkas coefficient y^T A_i times the best bound for this coefficient, i.e. max{y^T A_i x_i | lb <= x_i <= ub}
Definition at line 3967 of file lp.c. References SCIP_Col::lb, NULL, SCIP_Real, SCIPcolGetFarkasCoef(), and SCIP_Col::ub. Referenced by SCIPpricestoreAddProbVars().
start strong branching - call before any strong branching
Definition at line 3986 of file lp.c. References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiStartStrongbranch(), SCIP_Lp::strongbranching, and TRUE. Referenced by SCIPstartStrongbranch().
end strong branching - call after any strong branching
Definition at line 4001 of file lp.c. References FALSE, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiEndStrongbranch(), and SCIP_Lp::strongbranching. Referenced by SCIPendStrongbranch().
sets strong branching information for a column variable
Definition at line 4016 of file lp.c. References SCIP_Lp::cols, SCIP_Lp::cutoffbound, SCIP_Stat::lpcount, SCIP_Col::lpipos, SCIP_Col::lppos, MIN, SCIP_Lp::ncols, SCIP_Stat::nnodes, SCIP_Stat::nrootsblpiterations, SCIP_Stat::nrootstrongbranchs, SCIP_Col::nsbcalls, SCIP_Stat::nsbdivinglps, SCIP_Stat::nsblpiterations, SCIP_Stat::nstrongbranchs, NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_VARSTATUS_COLUMN, SCIPcolIsIntegral(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::strongbranchprobing, SCIP_Col::validsblp, and SCIP_Col::var. Referenced by SCIPgetVarStrongbranchWithPropagation().
invalidates strong branching information for a column variable
Definition at line 4070 of file lp.c. References SCIP_Lp::cols, FALSE, SCIP_Col::lpipos, SCIP_Col::lppos, SCIP_Lp::ncols, NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_INVALID, SCIP_VARSTATUS_COLUMN, SCIPcolIsIntegral(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::strongbranchprobing, SCIP_Col::validsblp, and SCIP_Col::var. Referenced by SCIPgetVarStrongbranchWithPropagation().
gets strong branching information on a column variable
Definition at line 4105 of file lp.c. References SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, MIN, SCIP_Lp::ncols, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Stat::nrootsblpiterations, SCIP_Stat::nrootstrongbranchs, SCIP_Col::nsbcalls, SCIP_Stat::nsbdivinglps, SCIP_Stat::nsblpiterations, SCIP_Stat::nstrongbranchs, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolIsIntegral(), SCIPdebugMessage, SCIPlpGetObjval(), SCIPlpiStrongbranchFrac(), SCIPlpiStrongbranchInt(), SCIPsetInfinity(), SCIPsetIsFeasIntegral(), SCIPsetIsIntegral(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::solved, SCIP_Lp::strongbranching, SCIP_Stat::strongbranchtime, TRUE, SCIP_Col::validsblp, SCIP_Lp::validsollp, and SCIP_Col::var. Referenced by SCIPgetVarStrongbranchFrac(), and SCIPgetVarStrongbranchInt().
gets strong branching information on column variables
Definition at line 4264 of file lp.c. References SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Col::lppos, SCIP_Lp::lpsolstat, MIN, SCIP_Lp::ncols, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Stat::nrootsblpiterations, SCIP_Stat::nrootstrongbranchs, SCIP_Col::nsbcalls, SCIP_Stat::nsbdivinglps, SCIP_Stat::nsblpiterations, SCIP_Stat::nstrongbranchs, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolIsIntegral(), SCIPdebugMessage, SCIPlpGetObjval(), SCIPlpiStrongbranchesFrac(), SCIPlpiStrongbranchesInt(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasIntegral(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::solved, SCIP_Stat::strongbranchtime, TRUE, SCIP_Col::validsblp, SCIP_Lp::validsollp, and SCIP_Col::var. Referenced by SCIPgetVarsStrongbranchesFrac(), and SCIPgetVarsStrongbranchesInt().
gets last strong branching information available for a column variable; returns values of SCIP_INVALID, if strong branching was not yet called on the given column; keep in mind, that the returned old values may have nothing to do with the current LP solution
Definition at line 4500 of file lp.c. References NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sblpobjval, SCIP_Col::sbsolval, SCIP_Col::sbup, and SCIP_Col::sbupvalid. Referenced by SCIPgetVarStrongbranchLast().
if strong branching was already applied on the column at the current node, returns the number of LPs solved after the LP where the strong branching on this column was applied; if strong branching was not yet applied on the column at the current node, returns INT_MAX
Definition at line 4532 of file lp.c. References SCIP_Stat::lpcount, SCIP_Stat::nnodes, SCIP_Stat::nsbdivinglps, NULL, SCIP_Col::sbnode, SCIP_LONGINT_MAX, and SCIP_Col::validsblp. Referenced by SCIPgetVarStrongbranchLPAge(). marks a column to be not removable from the LP in the current node because it became obsolete
Definition at line 4544 of file lp.c. References SCIP_Stat::nnodes, NULL, and SCIP_Col::obsoletenode. Referenced by SCIPmarkColNotRemovableLocal(). calculates row norms and min/maxidx from scratch, and checks for sorting
Definition at line 4564 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::maxidx, SCIP_Row::maxval, SCIP_Row::minidx, SCIP_Row::minval, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nummaxval, SCIP_Row::numminval, SCIP_Row::objprod, rowAddNorms(), SCIPsetInfinity(), SCIPsetIsZero(), SCIP_Row::sqrnorm, SCIP_Row::sumnorm, TRUE, SCIP_Row::validminmaxidx, and SCIP_Row::vals. Referenced by rowMerge(), SCIPlpAddRow(), and SCIProwCreate(). calculates min/maxval and min/maxidx from scratch
Definition at line 4623 of file lp.c. References SCIP_Row::cols, SCIP_Col::index, SCIP_Row::len, MAX, SCIP_Row::maxidx, SCIP_Row::maxval, MIN, SCIP_Row::minidx, SCIP_Row::minval, NULL, SCIP_Row::nummaxval, SCIP_Row::numminval, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetIsZero(), TRUE, SCIP_Row::validminmaxidx, and SCIP_Row::vals. Referenced by SCIProwGetMaxidx(), SCIProwGetMaxval(), SCIProwGetMinidx(), and SCIProwGetMinval().
checks, whether the given scalar scales the given value to an integral number with error in the given bounds
Definition at line 4683 of file lp.c. References FALSE, NULL, SCIP_Real, SCIPrelDiff(), and TRUE. Referenced by rowScale(), and SCIProwCalcIntegralScalar().
scales row with given factor, and rounds coefficients to integers if close enough; the constant is automatically moved to the sides; if the row's activity is proven to be integral, the sides are automatically rounded to the next integer
Definition at line 4723 of file lp.c. References colChgCoefPos(), SCIP_Row::cols, SCIP_Row::constant, debugRowPrint, FALSE, SCIP_Row::integral, isIntegralScalar(), SCIP_Col::lb, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Row::local, SCIP_Row::modifiable, SCIP_Row::name, NULL, SCIP_Row::rhs, rowChgCoefPos(), SCIP_Col::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcolIsIntegral(), SCIPdebugMessage, SCIProwChgConstant(), SCIProwChgLhs(), SCIProwChgRhs(), SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsIntegral(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPsetSumCeil(), SCIPsetSumFloor(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), TRUE, SCIP_Col::ub, SCIP_Row::validactivitylp, SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIProwMakeIntegral().
creates and captures an LP row
Definition at line 4894 of file lp.c. References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, SCIP_Col::index, SCIP_Stat::nrowidx, NULL, rowCalcNorms(), SCIP_ALLOC, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPeventfilterCreate(), SCIProwCapture(), SCIPsetInfinity(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPvarIsIntegral(), TRUE, and SCIP_Col::var. Referenced by SCIPcreateEmptyRowCons(), SCIPcreateEmptyRowSepa(), SCIPcreateEmptyRowUnspec(), SCIPcreateRowCons(), SCIPcreateRowSepa(), and SCIPcreateRowUnspec().
frees an LP row
Definition at line 5033 of file lp.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, rowUnlink(), SCIP_CALL, SCIP_OKAY, and SCIPeventfilterFree(). Referenced by SCIProwRelease().
output row to file stream
Definition at line 5065 of file lp.c. References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::name, NULL, REALABS, SCIP_Row::rhs, SCIP_DEFAULT_EPSILON, SCIP_VARSTATUS_COLUMN, SCIPmessageFPrintInfo(), SCIPvarGetName(), SCIPvarGetStatus(), SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIPprintRow().
increases usage counter of LP row
Definition at line 5105 of file lp.c. References SCIP_Row::name, SCIP_Row::nlocks, NULL, SCIP_Row::nuses, and SCIPdebugMessage. Referenced by cutCreate(), forkCreate(), forkFree(), lpFlushAddRows(), pseudoforkCreate(), SCIPcaptureRow(), SCIPlpAddRow(), SCIProwCreate(), SCIPsepastoreApplyCuts(), and sepastoreAddCut().
decreases usage counter of LP row, and frees memory if necessary
Definition at line 5118 of file lp.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIProwFree(). Referenced by cutFree(), forkFree(), lpDelRowset(), lpFlushDelRows(), pseudoforkFree(), SCIPlpFree(), SCIPlpShrinkRows(), SCIPreleaseRow(), SCIPsepastoreApplyCuts(), SCIPsepastoreClearCuts(), sepastoreAddCut(), sepastoreDelCut(), and subrootFree().
adds a previously non existing coefficient to an LP row
Definition at line 5175 of file lp.c. References checkLinks, SCIP_Lp::diving, SCIP_Row::lppos, NULL, rowAddCoef(), SCIP_CALL, and SCIP_OKAY.
deletes coefficient from row
Definition at line 5196 of file lp.c. References checkLinks, colDelCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Row::name, NULL, rowDelCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetIsEQ(), SCIPvarGetName(), SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var.
changes or adds a coefficient to an LP row
Definition at line 5242 of file lp.c. References checkLinks, colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, NULL, rowAddCoef(), rowChgCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.
increases value of an existing or non-existing coefficient in an LP row
Definition at line 5294 of file lp.c. References checkLinks, colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, NULL, rowAddCoef(), rowChgCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Col::vals, and SCIP_Row::vals. Referenced by SCIPvarAddToRow().
changes constant value of a row
Definition at line 5348 of file lp.c. References SCIP_Row::constant, SCIP_Lp::diving, SCIP_Stat::domchgcount, SCIP_Row::lhs, SCIP_Row::lppos, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, SCIP_Row::pseudoactivity, REALABS, SCIP_Row::rhs, rowEventConstantChanged(), rowSideChanged(), SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIP_Row::validactivitybdsdomchg, and SCIP_Row::validpsactivitydomchg. Referenced by rowScale(), and SCIProwAddConstant().
add constant value to a row
Definition at line 5403 of file lp.c. References SCIP_Row::constant, SCIP_Lp::diving, SCIP_Row::lhs, SCIP_Row::lppos, NULL, REALABS, SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, SCIProwChgConstant(), SCIPsetIsInfinity(), and SCIPsetIsZero(). Referenced by SCIPvarAddToRow().
changes left hand side of LP row
Definition at line 5429 of file lp.c. References SCIP_Lp::diving, SCIP_Row::lhs, NULL, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, and SCIPsetIsEQ(). Referenced by rowScale(), SCIPchgRowLhs(), SCIPchgRowLhsDive(), and SCIPlpEndDive().
changes right hand side of LP row
Definition at line 5461 of file lp.c. References SCIP_Lp::diving, NULL, SCIP_Row::rhs, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_RIGHT, and SCIPsetIsEQ(). Referenced by rowScale(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), and SCIPlpEndDive().
changes the local flag of LP row
Definition at line 5493 of file lp.c. References SCIP_Row::local, NULL, and SCIP_OKAY. Referenced by sepastoreAddCut().
tries to find a value, such that all row coefficients, if scaled with this value become integral
Definition at line 5510 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, isIntegralScalar(), SCIP_Row::len, MIN, nscalars, NULL, REALABS, scalars, SCIP_Bool, SCIP_INVALID, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARSTATUS_COLUMN, SCIPcalcGreComDiv(), SCIPcolIsIntegral(), SCIPdebug, SCIPdebugMessage, SCIPrealToRational(), SCIProwGetName(), SCIPsetIsInfinity(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetStatus(), TRUE, SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIPcalcRowIntegralScalar(), and SCIProwMakeIntegral().
tries to scale row, s.t. all coefficients become integral
Definition at line 5745 of file lp.c. References NULL, rowScale(), SCIP_CALL, SCIP_OKAY, SCIP_Real, and SCIProwCalcIntegralScalar(). Referenced by SCIPmakeRowIntegral(). sorts row, and merges equal column entries (resulting from lazy sorting and adding) into a single entry; removes zero entries from row the row must not be linked to the columns; otherwise, we would need to update the columns as well, which is too expensive
Definition at line 5813 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Col::index, SCIP_Row::integral, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Row::name, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nunlinked, rowCalcNorms(), SCIP_Real, SCIPcolIsIntegral(), SCIPdebugMessage, SCIProwSort(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), TRUE, and SCIP_Row::vals. Referenced by SCIProwForceSort().
enables delaying of row sorting
Definition at line 5912 of file lp.c. References SCIP_Row::delaysort, NULL, and TRUE. Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPcacheRowExtensions(). disables delaying of row sorting, sorts row and merges coefficients with equal columns
Definition at line 5923 of file lp.c. References SCIP_Row::delaysort, FALSE, NULL, and rowMerge(). Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPflushRowExtensions(). recalculates the current activity of a row
Definition at line 5936 of file lp.c. References SCIP_Row::activity, SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::linkpos, SCIP_Stat::lpcount, SCIP_Col::lppos, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Col::primsol, SCIP_INVALID, SCIP_Row::validactivitylp, and SCIP_Row::vals. Referenced by SCIPrecalcRowActivity(), SCIPrecalcRowLPActivity(), and SCIProwGetLPActivity(). returns the activity of a row in the current LP solution
Definition at line 5988 of file lp.c. References SCIP_Row::activity, SCIP_Stat::lpcount, MAX, MIN, NULL, SCIP_INVALID, SCIP_Real, SCIProwRecalcLPActivity(), SCIPsetInfinity(), SCIP_Row::validactivitylp, and SCIP_Lp::validsollp. Referenced by SCIPgetRowActivity(), SCIPgetRowLPActivity(), SCIPgetRowSolActivity(), and SCIProwGetLPFeasibility().
returns the feasibility of a row in the current LP solution: negative value means infeasibility
Definition at line 6018 of file lp.c. References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetLPActivity(). Referenced by SCIPcutpoolSeparate(), SCIPgetRowFeasibility(), SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIProwGetLPEfficacy(), sepastoreApplyBdchg(), and sepastoreApplyCut(). returns the feasibility of a row in the relaxed solution solution: negative value means infeasibility
Definition at line 6038 of file lp.c. References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Row::rhs, SCIP_Real, SCIPsetInfinity(), SCIPvarGetRelaxSol(), SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIProwGetRelaxEfficacy(), sepastoreApplyBdchg(), and sepastoreApplyCut(). returns the feasibility of a row in the current NLP solution: negative value means infeasibility
Definition at line 6100 of file lp.c. References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Row::rhs, SCIP_Real, SCIPsetInfinity(), SCIPvarGetNLPSol(), SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIProwGetNLPEfficacy(), sepastoreApplyBdchg(), and sepastoreApplyCut(). calculates the current pseudo activity of a row
Definition at line 6159 of file lp.c. References SCIP_Row::cols, SCIP_Row::constant, SCIP_Stat::domchgcount, EPSISINT, SCIP_Row::integral, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Col::lppos, NULL, SCIP_Row::pseudoactivity, SCIP_DEFAULT_SUMEPSILON, SCIP_VARSTATUS_COLUMN, SCIPcolGetBestBound(), SCIPvarGetStatus(), SCIP_Row::validpsactivitydomchg, SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIPrecalcRowActivity(), SCIPrecalcRowPseudoActivity(), and SCIProwGetPseudoActivity(). returns the pseudo activity of a row in the current pseudo solution
Definition at line 6186 of file lp.c. References SCIP_Stat::domchgcount, MAX, MIN, NULL, SCIP_Row::pseudoactivity, SCIP_INVALID, SCIP_Real, SCIProwRecalcPseudoActivity(), SCIPsetInfinity(), and SCIP_Row::validpsactivitydomchg. Referenced by SCIPgetRowActivity(), SCIPgetRowPseudoActivity(), SCIPgetRowSolActivity(), and SCIProwGetPseudoFeasibility(). returns the pseudo feasibility of a row in the current pseudo solution: negative value means infeasibility
Definition at line 6214 of file lp.c. References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetPseudoActivity(). Referenced by SCIPgetRowFeasibility(), SCIPgetRowPseudoFeasibility(), and SCIPgetRowSolFeasibility().
returns the activity of a row for a given solution
Definition at line 6230 of file lp.c. References SCIP_Row::cols, SCIP_Row::constant, SCIP_Col::lb, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, NULL, SCIP_Row::rhs, SCIP_Real, SCIP_UNKNOWN, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsolGetVal(), SCIP_Col::ub, SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIPgetRowSolActivity(), SCIProwGetSolFeasibility(), and SCIPsolAdjustImplicitSolVals().
returns the feasibility of a row for the given solution
Definition at line 6272 of file lp.c. References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetSolActivity(). Referenced by SCIPcutpoolSeparate(), SCIPgetRowSolFeasibility(), and SCIProwGetSolEfficacy(). calculates minimal and maximal activity of row w.r.t. the column's bounds
Definition at line 6290 of file lp.c. References SCIP_Row::cols, SCIP_Row::constant, SCIP_Stat::domchgcount, EPSISINT, FALSE, SCIP_Row::integral, SCIP_Col::lb, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Col::lppos, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, REALABS, SCIP_Bool, SCIP_DEFAULT_SUMEPSILON, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIP_Col::ub, SCIP_Row::validactivitybdsdomchg, and SCIP_Row::vals. Referenced by SCIProwGetMaxActivity(), and SCIProwGetMinActivity(). returns the minimal activity of a row w.r.t. the columns' bounds
Definition at line 6350 of file lp.c. References SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, and SCIP_Row::validactivitybdsdomchg. Referenced by SCIPaddCut(), SCIPgetRowMinActivity(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible(). returns the maximal activity of a row w.r.t. the columns' bounds
Definition at line 6371 of file lp.c. References SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, and SCIP_Row::validactivitybdsdomchg. Referenced by SCIPaddCut(), SCIPgetRowMaxActivity(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible(). returns whether the row is unmodifiable and redundant w.r.t. the columns' bounds
Definition at line 6392 of file lp.c. References FALSE, SCIP_Row::lhs, SCIP_Row::modifiable, NULL, SCIP_Row::rhs, SCIP_Real, SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsInfinity(), and TRUE. Referenced by SCIPlpRemoveRedundantRows(). gets maximal absolute value of row vector coefficients
Definition at line 6423 of file lp.c. References SCIP_Row::len, SCIP_Row::maxval, NULL, SCIP_Row::nummaxval, and rowCalcIdxsAndVals(). Referenced by SCIP_DECL_HASHKEYVAL(), SCIPgetRowMaxCoef(), SCIProwGetLPEfficacy(), SCIProwGetNLPEfficacy(), SCIProwGetRelaxEfficacy(), and SCIProwGetSolEfficacy(). gets minimal absolute value of row vector's non-zero coefficients
Definition at line 6439 of file lp.c. References SCIP_Row::len, SCIP_Row::minval, NULL, SCIP_Row::numminval, and rowCalcIdxsAndVals(). Referenced by SCIPgetRowMinCoef(). gets maximal column index of row entries
Definition at line 6455 of file lp.c. References SCIP_Row::len, SCIP_Row::maxidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx. Referenced by SCIPcutpoolAddNewRow(), and SCIPcutpoolAddRow(). gets minimal column index of row entries
Definition at line 6471 of file lp.c. References SCIP_Row::len, SCIP_Row::minidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx. returns row's efficacy with respect to the current LP solution: e = -feasibility/norm
Definition at line 6487 of file lp.c. References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetLPFeasibility(), SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon(). Referenced by computeScore(), SCIPgetCutEfficacy(), and SCIProwIsLPEfficacious().
returns whether the row's efficacy with respect to the current LP solution is greater than the minimal cut efficacy
Definition at line 6528 of file lp.c. References SCIP_Real, SCIProwGetLPEfficacy(), and SCIPsetIsEfficacious(). Referenced by SCIPcutpoolSeparate(), and SCIPisCutEfficacious().
returns row's efficacy with respect to the given primal solution: e = -feasibility/norm
Definition at line 6544 of file lp.c. References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSolFeasibility(), SCIProwGetSumNorm(), and SCIPsetSumepsilon(). Referenced by SCIPgetCutEfficacy(), and SCIProwIsSolEfficacious().
returns whether the row's efficacy with respect to the given primal solution is greater than the minimal cut efficacy
Definition at line 6587 of file lp.c. References SCIP_Real, SCIProwGetSolEfficacy(), and SCIPsetIsEfficacious(). Referenced by SCIPcutpoolSeparate(), and SCIPisCutEfficacious(). returns row's efficacy with respect to the relaxed solution: e = -feasibility/norm
Definition at line 6603 of file lp.c. References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetRelaxFeasibility(), SCIProwGetSumNorm(), and SCIPsetSumepsilon(). Referenced by computeScore(). returns row's efficacy with respect to the NLP solution: e = -feasibility/norm
Definition at line 6643 of file lp.c. References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNLPFeasibility(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon(). Referenced by computeScore(). returns the discrete scalar product of the coefficient vectors of the two given rows
Definition at line 7044 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::index, SCIP_Row::len, SCIP_Row::lpcolssorted, SCIP_Col::lppos, MAX, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nunlinked, SCIP_Bool, SCIProwSort(), SCIPswapPointers(), and TRUE. Referenced by SCIProwGetParallelism(). gets parallelism of row with objective function: if the returned value is 1, the row is parallel to the objective function, if the value is 0, it is orthogonal to the objective function
Definition at line 7447 of file lp.c. References checkRowObjprod, checkRowSqrnorm, MAX, MIN, NULL, SCIP_Row::objprod, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, REALABS, SCIP_Real, SCIPlpRecalculateObjSqrNorm(), SCIPsetIsPositive(), SCIPsetIsSumGE(), SCIPsetIsSumLE(), and SCIP_Row::sqrnorm. Referenced by sepastoreAddCut().
includes event handler with given data in row's event filter
Definition at line 7480 of file lp.c. References SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_EVENTTYPE_ROWCHANGED, SCIP_OKAY, SCIPdebugMessage, and SCIPeventfilterAdd(). Referenced by SCIPcatchRowEvent().
deletes event handler with given data from row's event filter
Definition at line 7504 of file lp.c. References SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPeventfilterDel(). Referenced by SCIPdropRowEvent(). marks a row to be not removable from the LP in the current node because it became obsolete
Definition at line 7525 of file lp.c. References SCIP_Stat::nnodes, NULL, and SCIP_Row::obsoletenode. Referenced by SCIPmarkRowNotRemovableLocal().
resets column data to represent a column not in the LP solver
Definition at line 7544 of file lp.c. References SCIP_Col::basisstatus, FALSE, SCIP_Col::farkascoef, SCIP_Col::lpipos, NULL, SCIP_Col::primsol, SCIP_Col::redcost, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_BASESTAT_ZERO, SCIP_INVALID, SCIP_Col::validfarkaslp, and SCIP_Col::validredcostlp. Referenced by lpDelColset(), and lpFlushDelCols().
applies all cached column removals to the LP solver
Definition at line 7566 of file lp.c. References SCIP_Col::coefchanged, SCIP_Lp::cols, SCIP_Lp::diving, FALSE, SCIP_Lp::flushdeletedcols, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, markColDeleted(), SCIP_Lp::ncols, SCIP_Lp::nlpicols, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPdebugMessage, SCIPlpiDelCols(), SCIP_Lp::solved, and TRUE. Referenced by SCIPlpFlush().
computes for the given column the lower and upper bound that should be flushed into the LP depending on lazy bounds and diving mode; in diving mode, lazy bounds are ignored, i.e., the bounds are explicitly added to the LP in any case
Definition at line 7615 of file lp.c. References SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Col::lb, NULL, SCIPlpDiving(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), and SCIP_Col::ub. Referenced by lpFlushAddCols(), and lpFlushChgCols().
applies all cached column additions to the LP solver
Definition at line 7650 of file lp.c. References SCIP_Col::coefchanged, colLink(), SCIP_Lp::cols, computeLPBounds(), debugColPrint, SCIP_Lp::diving, SCIP_Lp::dualfeasible, ensureLpicolsSize(), FALSE, SCIP_Col::farkascoef, SCIP_Lp::flushaddedcols, SCIP_Col::flushedlb, SCIP_Col::flushedobj, SCIP_Col::flushedub, SCIP_Col::lbchanged, SCIP_Col::len, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Col::nlprows, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_Col::primsol, SCIP_Col::redcost, SCIP_Col::rows, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPlpiAddCols(), SCIPlpiInfinity(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIP_Lp::solved, TRUE, SCIP_Col::ubchanged, SCIP_Col::validfarkaslp, SCIP_Col::validredcostlp, SCIP_Col::vals, and SCIP_Col::var. Referenced by SCIPlpFlush().
resets row data to represent a row not in the LP solver
Definition at line 7806 of file lp.c. References SCIP_Row::activity, SCIP_Row::basisstatus, SCIP_Row::dualfarkas, SCIP_Row::dualsol, SCIP_Row::lpipos, NULL, SCIP_BASESTAT_BASIC, SCIP_INVALID, and SCIP_Row::validactivitylp. Referenced by lpDelRowset(), and lpFlushDelRows().
applies all cached row removals to the LP solver
Definition at line 7822 of file lp.c. References SCIP_Row::coefchanged, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushdeletedrows, SCIP_Lp::lpi, SCIP_Lp::lpifirstchgrow, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, markRowDeleted(), SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Lp::rows, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPdebugMessage, SCIPlpiDelRows(), SCIProwRelease(), SCIP_Lp::solved, and TRUE. Referenced by SCIPlpFlush().
applies all cached row additions and removals to the LP solver
Definition at line 7870 of file lp.c. References SCIP_Row::activity, SCIP_Row::coefchanged, SCIP_Row::cols, SCIP_Row::constant, debugRowPrint, SCIP_Row::dualfarkas, SCIP_Row::dualsol, ensureLpirowsSize(), FALSE, SCIP_Lp::flushaddedrows, SCIP_Row::flushedlhs, SCIP_Row::flushedrhs, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::lhschanged, SCIP_Lp::lpi, SCIP_Lp::lpifirstchgrow, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Row::lppos, SCIP_Lp::lpsolstat, SCIP_Row::name, SCIP_Row::nlpcols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Lp::primalfeasible, SCIP_Row::rhs, SCIP_Row::rhschanged, rowLink(), SCIP_Lp::rows, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPdebugPrintf, SCIPlpiAddRows(), SCIPlpiInfinity(), SCIProwCapture(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarGetName(), SCIP_Lp::solved, TRUE, SCIP_Row::validactivitylp, SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIPlpFlush().
applies all cached column bound and objective changes to the LP
Definition at line 8017 of file lp.c. References SCIP_Lp::chgcols, computeLPBounds(), SCIP_Lp::dualfeasible, FALSE, SCIP_Col::flushedlb, SCIP_Col::flushedobj, SCIP_Col::flushedub, SCIP_Col::lbchanged, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nchgcols, SCIP_Lp::ncols, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPlpiChgBounds(), SCIPlpiChgObj(), SCIPlpiGetBounds(), SCIPlpiGetObj(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsFeasEQ(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Lp::solved, SCIP_Col::ubchanged, and SCIP_Col::var. Referenced by SCIPlpFlush().
applies all cached row side changes to the LP
Definition at line 8161 of file lp.c. References SCIP_Lp::chgrows, SCIP_Row::constant, FALSE, SCIP_Row::flushedlhs, SCIP_Row::flushedrhs, SCIP_Row::lhs, SCIP_Row::lhschanged, SCIP_Lp::lpi, SCIP_Row::lpipos, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nchgrows, SCIP_Lp::nrows, NULL, SCIP_Lp::primalfeasible, SCIP_Row::rhs, SCIP_Row::rhschanged, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpiChgSides(), SCIPlpiGetSides(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPsetIsSumEQ(), and SCIP_Lp::solved. Referenced by SCIPlpFlush().
applies all cached changes to the LP solver
Definition at line 8258 of file lp.c. References checkLinks, FALSE, SCIP_Lp::flushaddedcols, SCIP_Lp::flushaddedrows, SCIP_Lp::flushdeletedcols, SCIP_Lp::flushdeletedrows, SCIP_Lp::flushed, lpFlushAddCols(), lpFlushAddRows(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), SCIP_Lp::lpi, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Lp::nchgcols, SCIP_Lp::nchgrows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiGetNCols(), SCIPlpiGetNRows(), and TRUE. Referenced by focusnodeCleanupVars(), lpFlushAndSolve(), priceAndCutLoop(), SCIPflushLP(), SCIPlpEndDive(), SCIPlpReset(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPtreeEndProbing(), SCIPwriteLP(), and SCIPwriteMIP().
marks the LP to be flushed, even if the LP thinks it is not flushed
Definition at line 8313 of file lp.c. References checkLinks, SCIP_Lp::chgcols, SCIP_Lp::chgrows, SCIP_Col::coefchanged, SCIP_Row::coefchanged, SCIP_Lp::cols, SCIP_Row::constant, FALSE, SCIP_Lp::flushed, SCIP_Col::flushedlb, SCIP_Row::flushedlhs, SCIP_Col::flushedobj, SCIP_Row::flushedrhs, SCIP_Col::flushedub, SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Row::lhs, SCIP_Row::lhschanged, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Lp::lpifirstchgrow, SCIP_Col::lpipos, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::nchgcols, SCIP_Lp::nchgrows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_Row::rhs, SCIP_Row::rhschanged, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPlpiGetBounds(), SCIPlpiGetObj(), SCIPlpiGetSides(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPsetIsInfinity(), SCIPsetIsSumEQ(), SCIPvarGetCol(), SCIPvarGetStatus(), TRUE, SCIP_Col::ub, SCIP_Col::ubchanged, and SCIP_Col::var. updates link data after addition of column
Definition at line 8441 of file lp.c. References SCIP_Row::cols, FALSE, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lpcolssorted, SCIP_Col::lppos, SCIP_Row::nlpcols, NULL, rowAddNorms(), SCIP_Col::rows, rowSwapCoefs(), and SCIP_Row::vals. Referenced by SCIPlpAddCol().
updates link data after addition of row
Definition at line 8481 of file lp.c. References SCIP_Row::cols, colSwapCoefs(), FALSE, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::lprowssorted, SCIP_Col::nlprows, NULL, and SCIP_Col::rows. Referenced by SCIPlpAddRow(). updates link data after removal of column
Definition at line 8516 of file lp.c. References SCIP_Row::cols, FALSE, SCIP_Col::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Col::lppos, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, rowDelNorms(), SCIP_Col::rows, rowSwapCoefs(), TRUE, and SCIP_Row::vals. Referenced by lpDelColset(), and SCIPlpShrinkCols().
updates link data after removal of row
Definition at line 8555 of file lp.c. References SCIP_Row::cols, colSwapCoefs(), FALSE, SCIP_Row::len, SCIP_Col::linkpos, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, SCIP_Col::nonlprowssorted, NULL, and SCIP_Col::rows. Referenced by lpDelRowset(), and SCIPlpShrinkRows().
Definition at line 8589 of file lp.c. References BMSallocMemoryArray, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, SCIP_Lp::ndivechgsides, NULL, SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPlpCreate().
Definition at line 8611 of file lp.c. References BMSreallocMemoryArray, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, MAX, SCIP_Lp::ndivechgsides, NULL, SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPlpRecordOldRowSideDive().
Definition at line 8637 of file lp.c. References BMSfreeMemoryArrayNull, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, SCIP_Lp::ndivechgsides, and NULL. Referenced by SCIPlpFree().
creates empty LP data object
Definition at line 8657 of file lp.c. References allocDiveChgSideArrays(), BMSallocMemory, DIVESTACKINITSIZE, FALSE, SCIP_Stat::lpcount, lpSetBoolpar(), lpSetIntpar(), lpSetRealpar(), NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPPAR_BARRIERCONVTOL, SCIP_LPPAR_CONDITIONLIMIT, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FASTMIP, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_LPINFO, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_PRESOLVING, SCIP_LPPAR_PRICING, SCIP_LPPAR_ROWREPSWITCH, SCIP_LPPAR_SCALING, SCIP_LPPAR_THREADS, SCIP_LPPAR_TIMING, SCIP_LPPAR_UOBJLIM, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_PRICING_AUTO, SCIP_VERBLEVEL_FULL, SCIPlpiCreate(), SCIPlpiGetSolverName(), SCIPlpiInfinity(), SCIPmessagePrintVerbInfo(), SCIPsetBarrierconvtol(), SCIPsetDualfeastol(), SCIPsetInfinity(), SCIPsetLpfeastol(), and TRUE. Referenced by SCIPtransformProb().
frees LP data object
Definition at line 8890 of file lp.c. References BMSfreeMemory, BMSfreeMemoryArrayNull, BMSfreeMemoryNull, freeDiveChgSideArrays(), NULL, SCIP_CALL, SCIP_OKAY, SCIPlpClear(), SCIPlpiFree(), and SCIProwRelease(). Referenced by freeTransform().
resets the LP to the empty LP by removing all columns and rows from LP, releasing all rows, and flushing the changes to the LP solver
Definition at line 8934 of file lp.c. References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpClear(), SCIPlpFlush(), SCIP_Lp::solisbasic, SCIP_Lp::solved, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp. Referenced by freeSolve(), and initSolve().
adds a column to the LP
Definition at line 8963 of file lp.c. References SCIP_Col::age, checkLinks, SCIP_Lp::cols, colUpdateAddLP(), SCIP_Lp::diving, ensureColsSize(), ensureLazycolsSize(), FALSE, SCIP_Lp::flushed, SCIP_Col::integral, SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Col::lb, SCIP_Col::len, SCIP_Col::lpdepth, SCIP_Col::lppos, lpUpdateObjNorms(), SCIP_Row::name, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nremovablecols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Col::removable, SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPdebugPrintf, SCIPsetIsInfinity(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Col::ub, SCIP_Col::unchangedobj, SCIP_Col::vals, and SCIP_Col::var. Referenced by forkAddLP(), pseudoforkAddLP(), SCIPpricestoreApplyVars(), and subrootConstructLP().
adds a row to the LP and captures it
Definition at line 9022 of file lp.c. References SCIP_Row::age, checkLinks, SCIP_Row::cols, SCIP_Row::constant, ensureRowsSize(), SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, SCIP_EventFilter::len, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::lpdepth, SCIP_Row::lppos, SCIP_Row::name, SCIP_Lp::ncols, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Row::removable, SCIP_Row::rhs, rowCalcNorms(), SCIP_Lp::rows, rowUpdateAddLP(), SCIP_CALL, SCIP_EVENTTYPE_ROWADDEDLP, SCIP_OKAY, SCIPdebugMessage, SCIPdebugPrintf, SCIPeventCreateRowAddedLP(), SCIPeventqueueAdd(), SCIProwCapture(), SCIProwLock(), SCIPsetIsZero(), SCIPvarGetName(), SCIP_Row::vals, and SCIP_Col::var. Referenced by forkAddLP(), pseudoforkAddLP(), SCIPaddRowDive(), SCIPaddRowProbing(), sepastoreApplyCut(), and subrootConstructLP(). method checks if all columns in the lazycols array have at least one lazy bound and also have a counter part in the cols array; furthermore, it is checked if columns in the cols array which have a lazy bound have a counter part in the lazycols array
Definition at line 9093 of file lp.c. References SCIP_Lp::cols, FALSE, SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Lp::ncols, SCIP_Lp::nlazycols, NULL, SCIP_Bool, SCIPsetIsInfinity(), and TRUE. Referenced by lpDelColset(), and SCIPlpShrinkCols().
removes all columns after the given number of cols from the LP
Definition at line 9146 of file lp.c. References checkLazyColArray(), checkLinks, SCIP_Lp::cols, colUpdateDelLP(), SCIP_Lp::diving, FALSE, SCIP_Lp::flushed, SCIP_Lp::lazycols, SCIP_Col::len, SCIP_Col::lpdepth, SCIP_Lp::lpifirstchgcol, SCIP_Col::lppos, lpUpdateObjNorms(), MIN, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nremovablecols, NULL, SCIP_Col::removable, SCIP_Col::rows, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::unchangedobj, and SCIP_Col::var. Referenced by focusnodeCleanupVars(), focusnodeToFork(), SCIPlpClear(), SCIPtreeLoadLP(), and treeBacktrackProbing().
removes and releases all rows after the given number of rows from the LP
Definition at line 9217 of file lp.c. References checkLinks, SCIP_Row::cols, SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, SCIP_EventFilter::len, SCIP_Row::len, SCIP_Row::lpdepth, SCIP_Lp::lpifirstchgrow, SCIP_Row::lppos, MIN, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Row::removable, SCIP_Lp::rows, rowUpdateDelLP(), SCIP_CALL, SCIP_EVENTTYPE_ROWDELETEDLP, SCIP_OKAY, SCIPdebugMessage, SCIPeventCreateRowDeletedLP(), SCIPeventqueueAdd(), SCIProwRelease(), and SCIProwUnlock(). Referenced by focusnodeToFork(), SCIPlpClear(), SCIPlpEndDive(), SCIPtreeLoadLP(), and treeBacktrackProbing().
removes all columns and rows from LP, releases all rows
Definition at line 9283 of file lp.c. References SCIP_Lp::diving, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpShrinkCols(), and SCIPlpShrinkRows(). Referenced by SCIPlpFree(), SCIPlpReset(), and SCIPtreeLoadLP().
remembers number of columns and rows to track the newly added ones
Definition at line 9302 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, SCIP_Lp::ncols, SCIP_Lp::nrows, and NULL. Referenced by SCIPnodeFocus(), SCIPtreeLoadLP(), and treeCreateProbingNode().
sets the remembered number of columns and rows to the given values
Definition at line 9314 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, and NULL. Referenced by treeBacktrackProbing().
gets all indices of basic columns and rows: index i >= 0 corresponds to column i, index i < 0 to row -i-1
Definition at line 9328 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBasisInd(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by SCIPgetLPBasisInd().
gets current basis status for columns and rows; arrays must be large enough to store the basis status
Definition at line 9345 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBase(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.
gets a row from the inverse basis matrix B^-1
Definition at line 9362 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvRow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by SCIPgetLPBInvRow().
gets a column from the inverse basis matrix B^-1
Definition at line 9384 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvCol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by SCIPgetLPBInvCol().
gets a row from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A)
Definition at line 9410 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvARow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by SCIPgetLPBInvARow().
gets a column from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A), i.e., it computes B^-1 * A_c with A_c being the c'th column of A
Definition at line 9435 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvACol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by SCIPgetLPBInvACol().
calculates a weighted sum of all LP rows; for negative weights, the left and right hand side of the corresponding LP row are swapped in the summation
Definition at line 9459 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, FALSE, SCIP_Row::len, SCIP_Row::lhs, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPrealarrayClear(), SCIPrealarrayExtend(), SCIPrealarrayIncVal(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIP_Row::vals, SCIP_Col::var, and SCIP_Col::var_probindex. Referenced by SCIPsumLPRows().
returns the maximum absolute row weight in the given weight vector, and calculates the sparsity pattern of the weights
Definition at line 9546 of file lp.c. References MAX, SCIP_Lp::nrows, NULL, REALABS, SCIP_Lp::rows, SCIP_Real, SCIProwGetNNonz(), and SCIPsetIsZero(). Referenced by sumMIRRow(), and sumStrongCGRow().
returns the maximum absolute row weight in the given weight vector using given sparsity pattern
Definition at line 9591 of file lp.c. References MAX, NULL, REALABS, SCIP_Lp::rows, SCIP_Real, SCIProwGetNNonz(), and SCIPsetIsZero(). Referenced by sumMIRRow(), and sumStrongCGRow().
adds a single row to an aggregation
Definition at line 9638 of file lp.c. References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::integral, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::lppos, NULL, SCIP_Row::rhs, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPvarGetCol(), SCIPvarGetProbindex(), SCIPvarGetStatus(), TRUE, SCIP_Row::vals, SCIP_Col::var, and SCIP_Col::var_probindex. Referenced by sumMIRRow(), and sumStrongCGRow().
builds a weighted sum of rows, and decides whether to use the left or right hand side of the rows in summation
Definition at line 9709 of file lp.c. References addRowToAggregation(), BMSclearMemoryArray, SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, debugRowPrint, FALSE, getMaxAbsWeight(), getMaxAbsWeightCalcSparsity(), SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::local, MAX, SCIP_Row::modifiable, NULL, SCIP_Prob::nvars, SCIP_Row::rank, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Bool, SCIP_Real, SCIPdebugMessage, SCIProwGetName(), SCIPsetIsInfinity(), SCIPsetIsSumZero(), SCIPsetIsZero(), TRUE, and SCIP_Row::vals. Referenced by SCIPlpCalcMIR().
removes all nearly-zero coefficients from MIR row and relaxes the right hand side correspondingly in order to prevent numerical rounding errors
Definition at line 9900 of file lp.c. References FALSE, NULL, SCIP_Bool, SCIP_Real, SCIPdebugMessage, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsSumZero(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and SCIP_Prob::vars. Referenced by SCIPlpCalcMIR(), and SCIPlpCalcStrongCG().
finds the best lower bound of the variable to use for MIR transformation
Definition at line 9968 of file lp.c. References NULL, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPsetIsGE(), SCIPsetIsGT(), SCIPvarGetClosestVlb(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetType(), and SCIPvarGetVlbVars(). Referenced by transformMIRRow().
finds the best upper bound of the variable to use for MIR transformation
Definition at line 10024 of file lp.c. References NULL, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarGetClosestVub(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and SCIPvarGetVubVars(). Referenced by transformMIRRow().
Transform equation into standard form . Transform variables (lb or ub):
and move the constant terms or to the rhs. Transform variables (vlb or vub):
move the constant terms or to the rhs, and update the coefficient of the VLB variable:
Definition at line 10105 of file lp.c. References FALSE, findBestLb(), findBestUb(), NULL, SCIP_Prob::nvars, REALABS, SCIP_BASESTAT_ZERO, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPcolGetBasisStatus(), SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFrac(), SCIPsetFreeBufferArray, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsZero(), SCIPsetSumFrac(), SCIPsolGetVal(), SCIPsortDownInt(), SCIPvarGetCol(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), SCIPvarGetVlbVars(), SCIPvarGetVubCoefs(), SCIPvarGetVubConstants(), SCIPvarGetVubVars(), SCIPvarIsActive(), TRUE, and SCIP_Prob::vars. Referenced by SCIPlpCalcMIR().
Calculate fractionalities , and derive MIR cut
Transform inequality back to : (lb or ub):
and move the constant terms
to the rhs. (vlb or vub):
move the constant terms
to the rhs, and update the VB variable coefficients:
Definition at line 10640 of file lp.c. References FALSE, NULL, SCIP_Real, SCIPsetFloor(), SCIPsetIsInfinity(), SCIPsetIsSumLE(), SCIPsetIsZero(), SCIPsortDownInt(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarGetProbindex(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), SCIPvarGetVlbVars(), SCIPvarGetVubCoefs(), SCIPvarGetVubConstants(), SCIPvarGetVubVars(), SCIPvarIsActive(), SCIPvarIsIntegral(), TRUE, and SCIP_Prob::vars. Referenced by SCIPlpCalcMIR().
substitute aggregated slack variables: The coefficient of the slack variable s_r is equal to the row's weight times the slack's sign, because the slack variable only appears in its own row: Depending on the slacks type (integral or continuous), its coefficient in the cut calculates as follows:
Substitute by adding times the slack's definition to the cut.
Definition at line 10827 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, SCIP_Row::integral, SCIP_Row::len, SCIP_Row::lhs, NULL, SCIP_Prob::nvars, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPdebugPrintf, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetFloor(), SCIPsetIsFeasIntegral(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsZero(), SCIPsolGetVal(), SCIPvarGetCol(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetStatus(), TRUE, SCIP_Row::vals, SCIP_Col::var, SCIP_Col::var_probindex, and SCIP_Prob::vars. Referenced by SCIPlpCalcMIR().
calculates the activity of the given MIR cut
Definition at line 11012 of file lp.c. References NULL, SCIP_Real, SCIPsolGetVal(), SCIPvarGetLPSol(), and SCIP_Prob::vars. Referenced by SCIPlpCalcMIR(), and SCIPlpCalcStrongCG().
Definition at line 11043 of file lp.c. References BMScopyMemoryArray, cleanupMIRRow(), FALSE, getMIRRowActivity(), MAXCMIRSCALE, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, REALABS, roundMIRRow(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetDuplicateBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPsetSumFloor(), SCIP_Lp::solved, substituteMIRRow(), sumMIRRow(), transformMIRRow(), and TRUE. Referenced by SCIPcalcMIR().
builds a weighted sum of rows, and decides whether to use the left or right hand side of the rows in summation
Definition at line 11280 of file lp.c. References addRowToAggregation(), BMSclearMemoryArray, SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, debugRowPrint, FALSE, getMaxAbsWeight(), getMaxAbsWeightCalcSparsity(), SCIP_Row::integral, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::local, MAX, SCIP_Row::modifiable, NULL, SCIP_Prob::nvars, SCIP_Row::rank, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Bool, SCIP_Real, SCIPdebugMessage, SCIProwGetName(), SCIPsetIsInfinity(), SCIPsetIsSumZero(), SCIPsetIsZero(), TRUE, and SCIP_Row::vals. Referenced by SCIPlpCalcStrongCG().
Transform equation , into standard form , . Transform variables (lb or ub):
and move the constant terms or to the rhs. Transform variables (vlb or vub):
move the constant terms or to the rhs, and update the coefficient of the VLB variable:
Definition at line 11476 of file lp.c. References FALSE, NULL, SCIP_Prob::nvars, SCIP_Bool, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPdebugMessage, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetIsZero(), SCIPsortDownInt(), SCIPvarGetClosestVlb(), SCIPvarGetClosestVub(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetNVlbs(), SCIPvarGetNVubs(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarGetVlbCoefs(), SCIPvarGetVlbConstants(), SCIPvarGetVlbVars(), SCIPvarGetVubCoefs(), SCIPvarGetVubConstants(), SCIPvarGetVubVars(), SCIPvarIsActive(), TRUE, and SCIP_Prob::vars. Referenced by SCIPlpCalcStrongCG().
Calculate fractionalities , and integer with and integer with and derive strong CG cut
Transform inequality back to : (lb or ub):
and move the constant terms
to the rhs. (vlb or vub):
move the constant terms
to the rhs, and update the VB variable coefficients:
Definition at line 11802 of file lp.c. References FALSE, SCIP_Prob::ncontvars, NULL, SCIP_Prob::nvars, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPsetCeil(), SCIPsetFloor(), SCIPsetIsInfinity(), SCIPsetIsSumLE(), SCIPsetIsZero(), SCIPsortDownInt(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), and SCIP_Prob::vars. Referenced by SCIPlpCalcStrongCG().
substitute aggregated slack variables: The coefficient of the slack variable s_r is equal to the row's weight times the slack's sign, because the slack variable only appears in its own row: . Depending on the slacks type (integral or continuous), its coefficient in the cut calculates as follows:
Substitute by adding times the slack's definition to the cut.
Definition at line 11981 of file lp.c. References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, SCIP_Row::integral, SCIP_Row::len, SCIP_Row::lhs, NULL, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPsetCeil(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetFloor(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetProbindex(), SCIPvarGetStatus(), TRUE, SCIP_Row::vals, SCIP_Col::var, and SCIP_Col::var_probindex. Referenced by SCIPlpCalcStrongCG().
Definition at line 12136 of file lp.c. References cleanupMIRRow(), FALSE, getMIRRowActivity(), SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, roundStrongCGRow(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetCeil(), SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPsetSumFloor(), SCIP_Lp::solved, substituteStrongCGRow(), sumStrongCGRow(), transformStrongCGRow(), and TRUE. Referenced by SCIPcalcStrongCG().
stores LP state (like basis information) into LP state object
Definition at line 12339 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetState(), and SCIP_Lp::solved. Referenced by forkCreate(), forkFree(), probingnodeUpdate(), and SCIPtreeStartProbing().
loads LP state (like basis information) into solver
Definition at line 12363 of file lp.c. References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_OKAY, SCIPlpFlush(), SCIPlpiHasStateBasis(), SCIPlpiSetState(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by SCIPlpEndDive(), SCIPtreeEndProbing(), SCIPtreeLoadLPState(), and SCIPtreeLoadProbingLPState().
frees LP state information
Definition at line 12401 of file lp.c. References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeState(). Referenced by forkReleaseLPIState(), probingnodeFree(), probingnodeUpdate(), SCIPlpEndDive(), SCIPtreeEndProbing(), and subrootReleaseLPIState().
stores pricing norms into LP norms object
Definition at line 12418 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetNorms(), and SCIP_Lp::solved. Referenced by SCIPtreeStartProbing().
loads pricing norms from LP norms object into solver
Definition at line 12442 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiSetNorms(). Referenced by SCIPtreeEndProbing(), and SCIPtreeLoadProbingLPState().
frees pricing norms information
Definition at line 12462 of file lp.c. References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeNorms(). Referenced by SCIPtreeEndProbing().
sets the upper objective limit of the LP solver
Definition at line 12476 of file lp.c. References SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, lpCutoffDisabled, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpDivingObjChanged(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPsetIsInfinity(), and SCIP_Lp::solved. Referenced by primalSetCutoffbound(), SCIPchgCutoffboundDive(), SCIPchgVarObjDive(), SCIPchgVarObjProbing(), SCIPendDive(), and treeBacktrackProbing().
returns the name of the given LP algorithm
Definition at line 12522 of file lp.c. References SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIPABORT, and SCIPerrorMessage. Referenced by lpAlgorithm(), lpSolve(), and lpSolveStable().
calls LPI to perform primal simplex, measures time and counts iterations, gets basis feasibility status
Definition at line 12545 of file lp.c. References SCIP_Lp::diving, SCIP_Stat::divinglptime, FALSE, SCIP_Lp::flushed, SCIP_Stat::lastdivenode, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpidualfeastol, SCIP_Lp::lpifastmip, SCIP_Lp::lpifeastol, SCIP_Lp::lpifromscratch, SCIP_Lp::lpipresolving, SCIP_Lp::lpiscaling, SCIP_Lp::lpiuobjlim, SCIP_Lp::ncols, SCIP_Stat::ndivinglpiterations, SCIP_Stat::ndivinglps, SCIP_Stat::nlpiterations, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Stat::nprimalzeroitlps, SCIP_Lp::nrows, SCIP_Stat::nsbdivinglpiterations, SCIP_Stat::nsbdivinglps, NULL, SCIP_Stat::primallptime, SCIP_Stat::primalzeroittime, SCIP_Lp::probing, SCIP_CALL, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPlpGetIterations(), SCIPlpiSolvePrimal(), SCIPlpWrite(), SCIPmessagePrintInfo(), SCIPsnprintf(), SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp. Referenced by lpAlgorithm().
calls LPI to perform dual simplex, measures time and counts iterations
Definition at line 12686 of file lp.c. References SCIP_Lp::diving, SCIP_Stat::divinglptime, SCIP_Stat::duallptime, SCIP_Stat::dualzeroittime, FALSE, SCIP_Lp::flushed, SCIP_Stat::lastdivenode, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpidualfeastol, SCIP_Lp::lpifastmip, SCIP_Lp::lpifeastol, SCIP_Lp::lpifromscratch, SCIP_Lp::lpipresolving, SCIP_Lp::lpiscaling, SCIP_Lp::lpiuobjlim, SCIP_Lp::ncols, SCIP_Stat::ndivinglpiterations, SCIP_Stat::ndivinglps, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::ndualzeroitlps, SCIP_Stat::nlpiterations, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, SCIP_Stat::nsbdivinglpiterations, SCIP_Stat::nsbdivinglps, NULL, SCIP_Lp::probing, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPlpGetIterations(), SCIPlpiSolveDual(), SCIPlpWrite(), SCIPmessagePrintInfo(), SCIPsnprintf(), SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp. Referenced by lpAlgorithm().
calls LPI to perform lexicographic dual simplex to find a lexicographically minimal optimal solution, measures time and counts iterations We follow the approach of the following paper to find a lexicographically minimal optimal solution: Zanette, Fischetti, Balas We do, however, not aim for the exact lexicographically minimal optimal solutions, but perform a heuristic, i.e., we limit the number of components which are minimized. More precisely, we first solve the problem with the dual simplex algorithm. Then we fix those nonbasic variables to their current value (i.e., one of the bounds except maybe for free variables) that have nonzero reduced cost. This fixes the objective function value, because only pivots that will not change the objective are allowed afterwards. Then the not yet fixed variables are considered in turn. If they are at their lower bounds and nonbasic, they are fixed to this bound, since their value cannot be decreased further. Once a candidate is found, we set the objective to minimize this variable. We run the primal simplex algorithm (since the objective is changed the solution is not dual feasible anymore; if variables out of the basis have been fixed to their lower bound, the basis is also not primal feasible anymore). After the optimization, we again fix nonbasic variables that have nonzero reduced cost. We then choose the next variable and iterate. We stop the process once we do not find candidates or have performed a maximum number of iterations.
Definition at line 12860 of file lp.c. References SCIP_Lp::diving, SCIP_Stat::divinglptime, SCIP_Stat::duallptime, SCIP_Stat::dualzeroittime, FALSE, SCIP_Lp::flushed, SCIP_Stat::lastdivenode, SCIP_Lp::lastlpalgo, SCIP_Stat::lexduallptime, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpifromscratch, SCIP_Lp::ncols, SCIP_Stat::ndivinglpiterations, SCIP_Stat::ndivinglps, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::ndualzeroitlps, SCIP_Stat::nlexduallpiterations, SCIP_Stat::nlexduallps, SCIP_Stat::nlexdualresolvelpiterations, SCIP_Stat::nlexdualresolvelps, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Stat::nlpiterations, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, SCIP_Stat::nsbdivinglpiterations, SCIP_Stat::nsbdivinglps, NULL, SCIP_Lp::probing, SCIP_BASESTAT_BASIC, SCIP_BASESTAT_LOWER, SCIP_BASESTAT_UPPER, SCIP_BASESTAT_ZERO, SCIP_Bool, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPERROR, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPerrorMessage, SCIPlpGetIterations(), SCIPlpiChgBounds(), SCIPlpiChgObj(), SCIPlpiChgSides(), SCIPlpiGetBase(), SCIPlpiGetBounds(), SCIPlpiGetObj(), SCIPlpiGetSides(), SCIPlpiGetSol(), SCIPlpiIsOptimal(), SCIPlpiSolveDual(), SCIPlpiSolvePrimal(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsDualfeasZero(), SCIPsetIsFeasEQ(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetIsIntegral(), SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp. Referenced by lpAlgorithm().
calls LPI to perform barrier, measures time and counts iterations, gets basis feasibility status
Definition at line 13458 of file lp.c. References SCIP_Stat::barrierlptime, SCIP_Stat::barrierzeroittime, SCIP_Lp::diving, SCIP_Stat::divinglptime, SCIP_Stat::duallptime, FALSE, SCIP_Lp::flushed, SCIP_Stat::lastdivenode, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpibarrierconvtol, SCIP_Lp::lpidualfeastol, SCIP_Lp::lpifastmip, SCIP_Lp::lpifeastol, SCIP_Lp::lpifromscratch, SCIP_Lp::lpipresolving, SCIP_Lp::lpiscaling, SCIP_Lp::lpiuobjlim, SCIP_Stat::nbarrierlpiterations, SCIP_Stat::nbarrierlps, SCIP_Stat::nbarrierzeroitlps, SCIP_Lp::ncols, SCIP_Stat::ndivinglpiterations, SCIP_Stat::ndivinglps, SCIP_Stat::nlpiterations, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, SCIP_Stat::nsbdivinglpiterations, SCIP_Stat::nsbdivinglps, NULL, SCIP_Lp::probing, SCIP_CALL, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPERROR, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPlpGetIterations(), SCIPlpiSolveBarrier(), SCIPlpWrite(), SCIPmessagePrintInfo(), SCIPsnprintf(), SCIP_Lp::solisbasic, SCIP_Lp::strongbranchprobing, SCIP_Stat::strongbranchtime, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp. Referenced by lpAlgorithm().
solves the LP with the given algorithm
Definition at line 13595 of file lp.c. References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::installing, lpalgoName(), lpBarrier(), lpDualSimplex(), SCIP_Lp::lpi, lpLexDualSimplex(), lpPrimalSimplex(), lpSetRealpar(), SCIP_Stat::maxdepth, NULL, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPPAR_LPTILIM, SCIP_OKAY, SCIP_Real, SCIPclockGetTime(), SCIPdebugMessage, SCIPerrorMessage, SCIPlpiGetSolFeasibility(), SCIPsetInfinity(), SCIP_Stat::solvingtime, and TRUE. Referenced by lpSolveStable().
solves the LP with the given LP algorithm, and tries to resolve numerical problems
Definition at line 13677 of file lp.c. References SCIP_Lp::cutoffbound, FALSE, FEASTOLTIGHTFAC, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, lpalgoName(), lpAlgorithm(), SCIP_Lp::lpi, lpSetBarrierconvtol(), lpSetConditionLimit(), lpSetDualfeastol(), lpSetFastmip(), lpSetFeastol(), lpSetFromscratch(), lpSetIterationLimit(), lpSetLPInfo(), lpSetPresolving(), lpSetPricingChar(), lpSetRowrepswitch(), lpSetScaling(), lpSetThreads(), lpSetTiming(), lpSetUobjlim(), SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPerrorMessage, SCIPlpiIgnoreInstability(), SCIPlpiIsIterlimExc(), SCIPlpiIsStable(), SCIPmessagePrintVerbInfo(), SCIPsetBarrierconvtol(), SCIPsetDualfeastol(), SCIPsetIsInfinity(), SCIPsetLpfeastol(), and TRUE. Referenced by lpSolve().
adjust the LP objective value if its greater/less than +/- SCIPsetInfinity()
Definition at line 14111 of file lp.c. References SCIP_Lp::adjustlpval, SCIP_Lp::lpobjval, NULL, SCIPmessagePrintWarning(), SCIPsetInfinity(), SCIPsetIsInfinity(), and TRUE. Referenced by lpSolve().
solves the LP with the given algorithm and evaluates return status
Definition at line 14142 of file lp.c. References adjustLPobjval(), checkLinks, SCIP_Lp::cutoffbound, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::lastlpalgo, lpalgoName(), lpCutoffDisabled, SCIP_Lp::lpi, SCIP_Lp::lpiuobjlim, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, lpSolveStable(), SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPERROR, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPdebugMessage, SCIPerrorMessage, SCIPlpiExistsPrimalRay(), SCIPlpiGetInternalStatus(), SCIPlpiGetObjval(), SCIPlpiHasDualRay(), SCIPlpiHasPrimalRay(), SCIPlpiIsDualFeasible(), SCIPlpiIsIterlimExc(), SCIPlpiIsObjlimExc(), SCIPlpiIsOptimal(), SCIPlpiIsPrimalFeasible(), SCIPlpiIsPrimalInfeasible(), SCIPlpiIsTimelimExc(), SCIPmessagePrintVerbInfo(), SCIPsetInfinity(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIP_Lp::solved, and TRUE. Referenced by lpFlushAndSolve(), and SCIPlpSolveAndEval().
flushes the LP and solves it with the primal or dual simplex algorithm, depending on the current basis feasibility
Definition at line 14313 of file lp.c. References SCIP_Lp::dualfeasible, SCIP_Lp::flushaddedcols, SCIP_Lp::flushdeletedcols, lpSolve(), NULL, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_LPALGO_BARRIER, SCIP_LPALGO_BARRIERCROSSOVER, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_OKAY, SCIP_PARAMETERWRONGVAL, SCIPdebugMessage, SCIPerrorMessage, SCIPlpFlush(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by SCIPlpSolveAndEval(). checks if the lazy bounds are valid
Definition at line 14402 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Lp::nlazycols, SCIP_Col::primsol, SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), and SCIPsetIsInfinity(). Referenced by SCIPlpSolveAndEval().
marks all lazy columns to be changed; this is needed for reloading/removing bounds of these columns before and after diving
Definition at line 14429 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Col::flushedlb, SCIP_Col::flushedub, insertColChgcols(), SCIP_Lp::lazycols, SCIP_Col::lazylb, SCIP_Col::lazyub, SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Lp::lpi, SCIP_Lp::nlazycols, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiInfinity(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), TRUE, SCIP_Col::ub, and SCIP_Col::ubchanged. Referenced by SCIPlpEndDive(), and SCIPlpSolveAndEval(). returns the iteration limit for an LP resolving call
Definition at line 14491 of file lp.c. References MAX, MIN, SCIP_Stat::nlpiterations, SCIP_Stat::nlps, SCIP_Stat::nrootlpiterations, SCIP_Stat::nrootlps, and SCIP_Real. Referenced by SCIPlpSolveAndEval().
solves the LP with simplex algorithm, and copy the solution into the column's data
Definition at line 14511 of file lp.c. References checkLazyBounds(), SCIP_Lp::cutoffbound, SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushaddedcols, SCIP_Lp::flushdeletedcols, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::lastlpalgo, lpCutoffDisabled, lpFlushAndSolve(), lpGetResolveItlim(), SCIP_Lp::lpi, SCIP_Lp::lpifromscratch, SCIP_Lp::lpihasfastmip, SCIP_Lp::lpiuobjlim, SCIP_Lp::lpobjval, lpSetFromscratch(), SCIP_Lp::lpsolstat, lpSolve(), MIN, SCIP_Stat::nclockskipsleft, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, SCIP_Lp::primalfeasible, SCIP_Lp::probing, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_Longint, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPERROR, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_STATUS_TIMELIMIT, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPdebugMessage, SCIPerrorMessage, SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetLPI(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiGetObjval(), SCIPlpiHasDualRay(), SCIPlpiInfinity(), SCIPlpiIsObjlimExc(), SCIPlpRemoveNewObsoletes(), SCIPlpUpdateAges(), SCIPmessagePrintVerbInfo(), SCIPmessagePrintWarning(), SCIPprobAllColsInLP(), SCIPsetGetCharParam(), SCIPsetInfinity(), SCIPsetIsFeasNegative(), SCIPsetIsGE(), SCIPsetIsLT(), SCIPsetSetCharParam(), SCIPsolveIsStopped(), SCIP_Lp::solved, SCIP_Stat::status, TRUE, and updateLazyBounds(). Referenced by focusnodeToFork(), priceAndCutLoop(), SCIPlpEndDive(), SCIPpriceLoop(), SCIPsolveDiveLP(), SCIPtreeEndProbing(), separationRoundResolveLP(), solveNodeInitialLP(), solveNodeLP(), and solveProbingLP().
gets solution status of current LP
Definition at line 15060 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpsolstat, NULL, SCIP_LPSOLSTAT_NOTSOLVED, and SCIP_Lp::solved. Referenced by branchcandCalcLPCands(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), enforceConstraints(), focusnodeToFork(), forkCreate(), forkFree(), nodeToLeaf(), priceAndCutLoop(), propAndSolve(), SCIPconflictAnalyzeLP(), SCIPgetLPBranchCands(), SCIPgetLPSolstat(), SCIPgetNLPBranchCands(), SCIPgetNPrioLPBranchCands(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpEndDive(), SCIPlpGetSol(), SCIPlpRemoveAllObsoletes(), SCIPlpRemoveNewObsoletes(), SCIPlpSetCutoffbound(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPpriceLoop(), SCIPpricerExec(), SCIPpricestoreAddProbVars(), SCIPprobUpdateBestRootSol(), SCIPsolveCIP(), SCIPsolveDiveLP(), SCIPtreeCutoff(), SCIPtreeEndProbing(), SCIPtreeStartProbing(), separationRoundLP(), solveNode(), solveNodeInitialLP(), solveNodeLP(), solveProbingLP(), updateEstimate(), updatePrimalRay(), and updatePseudocost(). gets objective value of current LP
Definition at line 15076 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, SCIP_Lp::lpobjval, SCIP_Lp::nloosevars, NULL, recomputeLooseObjectiveValue(), SCIP_INVALID, SCIPsetInfinity(), SCIPsetIsInfinity(), and SCIP_Lp::solved. Referenced by analyzeStrongbranch(), forkCreate(), forkFree(), priceAndCutLoop(), propAndSolve(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPgetLPObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPlpSetCutoffbound(), SCIPnodeUpdateLowerboundLP(), SCIPprobUpdateBestRootSol(), SCIPsolLinkLPSol(), solveNodeInitialLP(), solveNodeLP(), and updatePseudocost(). gets part of objective value of current LP that results from COLUMN variables only
Definition at line 15104 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpobjval, NULL, SCIP_INVALID, and SCIP_Lp::solved. Referenced by SCIPgetLPColumnObjval(), and SCIPlpStoreRootObjval(). gets part of objective value of current LP that results from LOOSE variables only
Definition at line 15115 of file lp.c. References SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_INVALID, SCIPsetInfinity(), and SCIP_Lp::solved. Referenced by performStrongbranchWithPropagation(), SCIPgetLPLooseObjval(), SCIPlpStoreRootObjval(), and SCIPsolLinkLPSol(). remembers the current LP objective value as root solution value
Definition at line 15135 of file lp.c. References NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, SCIPlpGetColumnObjval(), and SCIPlpGetLooseObjval(). Referenced by SCIPprobStoreRootSol().
invalidates the root LP solution value
Definition at line 15148 of file lp.c. References NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, and SCIP_INVALID. Referenced by freeSolve(). recomputes local and global pseudo objective values
Definition at line 15159 of file lp.c. References SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, NULL, SCIP_Prob::nvars, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, SCIP_Lp::relglbpseudoobjval, SCIP_Lp::relpseudoobjval, SCIP_Real, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), TRUE, and SCIP_Prob::vars. Referenced by treeBacktrackProbing(). gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective function) global bound
Definition at line 15227 of file lp.c. References SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, NULL, recomputeGlbPseudoObjectiveValue(), SCIPsetInfinity(), and SCIPsetIsInfinity(). Referenced by SCIPgetGlobalPseudoObjval(), and solveNode(). gets the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the objective function) local bound
Definition at line 15256 of file lp.c. References NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, recomputePseudoObjectiveValue(), SCIPsetInfinity(), and SCIPsetIsInfinity(). Referenced by applyBounding(), enforceConstraints(), SCIPconflictAnalyzePseudo(), SCIPgetPseudoObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPprimalHeuristics(), SCIPsolLinkPseudoSol(), and solveNode().
gets pseudo objective value, if a bound of the given variable would be modified in the given way
Definition at line 15283 of file lp.c. References getFinitePseudoObjval(), SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), and SCIPvarGetObj(). Referenced by SCIPnodeAddBoundinfer().
gets pseudo objective value, if a bound of the given variable would be modified in the given way; perform calculations with interval arithmetic to get an exact lower bound
Definition at line 15323 of file lp.c. References SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), and SCIPvarGetObj(). Referenced by SCIPnodeAddBoundinfer().
compute the objective delta due the new objective coefficient
Definition at line 15381 of file lp.c. References REALABS, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsNegative(), and SCIPsetIsPositive(). Referenced by SCIPlpUpdateVarObj().
compute the objective delta due the new lower bound
Definition at line 15513 of file lp.c. References REALABS, SCIPsetIsInfinity(), and SCIPsetIsPositive(). Referenced by SCIPlpUpdateVarLb(), and SCIPlpUpdateVarLbGlobal().
compute the objective delta due the new upper bound
Definition at line 15554 of file lp.c. References REALABS, SCIPsetIsInfinity(), and SCIPsetIsNegative(). Referenced by SCIPlpUpdateVarUb(), and SCIPlpUpdateVarUbGlobal().
updates current pseudo and loose objective values for a change in a variable's objective value or bounds
Definition at line 15595 of file lp.c. References FALSE, SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Lp::relglbpseudoobjval, SCIP_Lp::rellooseobjval, SCIP_Lp::relpseudoobjval, SCIP_VARSTATUS_LOOSE, SCIPsetIsUpdateUnreliable(), SCIPvarGetStatus(), and TRUE. Referenced by lpUpdateVarColumn(), lpUpdateVarLoose(), SCIPlpUpdateVarLb(), SCIPlpUpdateVarLbGlobal(), SCIPlpUpdateVarObj(), SCIPlpUpdateVarUb(), and SCIPlpUpdateVarUbGlobal().
updates current pseudo and loose objective values for a change in a variable's objective value or bounds; pseudo objective value is calculated with interval arithmetics to get a proved lower bound
Definition at line 15677 of file lp.c. References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPerrorMessage, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPvarGetProbindex(), and SCIPvarGetStatus(). Referenced by SCIPlpUpdateVarLb(), SCIPlpUpdateVarObj(), and SCIPlpUpdateVarUb().
updates current pseudo and loose objective value for a change in a variable's objective value
Definition at line 15790 of file lp.c. References FALSE, getObjvalDeltaObj(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_Lp::probing, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIPeventProcess(), SCIPlpUpdateAddVar(), and SCIPlpUpdateDelVar().
updates current root pseudo objective value for a global change in a variable's lower bound
Definition at line 15844 of file lp.c. References FALSE, getObjvalDeltaLb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), and TRUE. Referenced by SCIPeventProcess().
updates current pseudo and loose objective value for a change in a variable's lower bound
Definition at line 15872 of file lp.c. References FALSE, getObjvalDeltaLb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIPeventProcess().
updates current root pseudo objective value for a global change in a variable's upper bound
Definition at line 15913 of file lp.c. References FALSE, getObjvalDeltaUb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetObj(), and TRUE. Referenced by SCIPeventProcess().
updates current pseudo objective value for a change in a variable's upper bound
Definition at line 15940 of file lp.c. References FALSE, getObjvalDeltaUb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and TRUE. Referenced by SCIPeventProcess().
informs LP, that given variable was added to the problem
Definition at line 15981 of file lp.c. References SCIP_Lp::nloosevars, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), and SCIPvarGetStatus(). Referenced by SCIPprobAddVar().
informs LP, that given variable is to be deleted from the problem
Definition at line 16002 of file lp.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpDecNLoosevars(), SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), and SCIPvarGetStatus(). Referenced by SCIPprobPerformVarDeletions().
informs LP, that given formerly loose problem variable is now a column variable
Definition at line 16026 of file lp.c. References FALSE, SCIP_Lp::looseobjvalinf, lpUpdateObjval(), SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPlpDecNLoosevars(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIPlpUpdateVarColumn().
informs LP, that given formerly loose problem variable is now a column variable pseudo objective value is calculated with interval arithmetics to get a proved lower bound
Definition at line 16073 of file lp.c. References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and SCIPvarGetUbLocal(). Referenced by SCIPlpUpdateVarColumn().
informs LP, that given formerly loose problem variable is now a column variable
Definition at line 16138 of file lp.c. References lpUpdateVarColumn(), lpUpdateVarColumnProved(), NULL, SCIP_CALL, and SCIP_OKAY. Referenced by SCIPvarColumn().
informs LP, that given formerly column problem variable is now again a loose variable
Definition at line 16160 of file lp.c. References FALSE, SCIP_Lp::looseobjvalinf, lpUpdateObjval(), SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_LOOSE, SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIPlpUpdateVarLoose().
informs LP, that given formerly column problem variable is now again a loose variable pseudo objective value is calculated with interval arithmetics to get a proved lower bound
Definition at line 16205 of file lp.c. References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_LOOSE, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and SCIPvarGetUbLocal(). Referenced by SCIPlpUpdateVarLoose().
informs LP, that given formerly column problem variable is now again a loose variable
Definition at line 16262 of file lp.c. References lpUpdateVarLoose(), lpUpdateVarLooseProved(), NULL, SCIP_CALL, and SCIP_OKAY. Referenced by SCIPvarLoose().
decrease the number of loose variables by one
Definition at line 16283 of file lp.c. References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, and NULL. Referenced by lpUpdateVarColumn(), SCIPlpUpdateDelVar(), SCIPvarFix(), and SCIPvarMultiaggregate().
stores the LP solution in the columns and rows
Definition at line 16301 of file lp.c. References SCIP_Row::activity, SCIP_Col::basisstatus, SCIP_Row::basisstatus, BMSclearMemoryArray, SCIP_Row::constant, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Lp::lastlpalgo, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, MAX, SCIP_Col::maxprimsol, MIN, SCIP_Col::minprimsol, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Col::obj, SCIP_Col::primsol, SCIP_Col::redcost, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_LPALGO_BARRIER, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpGetSolstat(), SCIPlpiGetBase(), SCIPlpiGetSol(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsDualfeasNegative(), SCIPsetIsDualfeasPositive(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsInfinity(), SCIPvarGetName(), SCIP_Lp::solisbasic, SCIP_Lp::solved, TRUE, SCIP_Row::validactivitylp, SCIP_Col::validredcostlp, and SCIP_Lp::validsollp. Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
stores LP solution with infinite objective value in the columns and rows
Definition at line 16595 of file lp.c. References SCIP_Row::activity, SCIP_Row::constant, SCIP_Row::dualsol, FALSE, SCIP_Lp::flushed, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, MIN, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Col::obj, SCIP_Col::primsol, SCIP_Col::redcost, SCIP_CALL, SCIP_INVALID, SCIP_Longint, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiGetSol(), SCIPlpiHasPrimalRay(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIP_Lp::solved, TRUE, SCIP_Row::validactivitylp, SCIP_Col::validredcostlp, and SCIP_Lp::validsollp. Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
returns primal ray proving the unboundedness of the current LP
Definition at line 16765 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, NULL, SCIP_CALL, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiHasPrimalRay(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarGetProbindex(), SCIP_Lp::solved, and SCIP_Col::var. Referenced by updatePrimalRay().
stores the dual Farkas multipliers for infeasibility proof in rows
Definition at line 16822 of file lp.c. References SCIP_Row::activity, SCIP_Row::basisstatus, SCIP_Row::dualfarkas, SCIP_Row::dualsol, SCIP_Lp::flushed, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_Col::primsol, SCIP_Col::redcost, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpiGetDualfarkas(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Lp::solved, SCIP_Row::validactivitylp, SCIP_Col::validfarkaslp, SCIP_Lp::validfarkaslp, and SCIP_Col::validredcostlp. Referenced by SCIPlpSolveAndEval(), and SCIPlpStartDive().
get number of iterations used in last LP solve
Definition at line 16888 of file lp.c. References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiGetIterations(). Referenced by lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), and lpPrimalSimplex().
increases age of columns with solution value 0.0 and basic rows with activity not at its bounds, resets age of non-zero columns and sharp rows
Definition at line 16903 of file lp.c. References SCIP_Row::activeinlpcounter, SCIP_Col::age, SCIP_Row::age, SCIP_Lp::cols, SCIP_Lp::flushed, SCIP_Stat::lpcount, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Row::nlpsaftercreation, SCIP_Lp::nrows, NULL, SCIP_Lp::rows, SCIP_OKAY, SCIPdebugMessage, SCIP_Lp::solved, and SCIP_Lp::validsollp. Referenced by SCIPlpSolveAndEval().
Definition at line 16961 of file lp.c. References checkLazyColArray(), checkLinks, SCIP_Lp::cols, colUpdateDelLP(), SCIP_Lp::diving, FALSE, SCIP_Lp::flushed, SCIP_Lp::lazycols, SCIP_Col::lpdepth, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpifirstchgcol, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, lpUpdateObjNorms(), markColDeleted(), SCIP_Lp::nchgcols, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nlpicols, SCIP_Lp::nremovablecols, NULL, SCIP_Lp::primalfeasible, SCIP_Col::removable, SCIP_CALL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiDelColset(), SCIP_Lp::solved, and SCIP_Col::unchangedobj. Referenced by lpCleanupCols(), and lpRemoveObsoleteCols().
Definition at line 17059 of file lp.c. References checkLinks, SCIP_Lp::diving, SCIP_Lp::dualfeasible, SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, SCIP_EventFilter::len, SCIP_Row::lpdepth, SCIP_Lp::lpi, SCIP_Lp::lpifirstchgrow, SCIP_Row::lpipos, SCIP_Lp::lpirows, SCIP_Lp::lpobjval, SCIP_Row::lppos, SCIP_Lp::lpsolstat, markRowDeleted(), SCIP_Lp::nchgrows, SCIP_Lp::nlpirows, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Row::removable, SCIP_Lp::rows, rowUpdateDelLP(), SCIP_CALL, SCIP_EVENTTYPE_ROWDELETEDLP, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPeventCreateRowDeletedLP(), SCIPeventqueueAdd(), SCIPlpiDelRowset(), SCIProwRelease(), SCIProwUnlock(), and SCIP_Lp::solved. Referenced by lpCleanupRows(), lpRemoveObsoleteRows(), and SCIPlpRemoveRedundantRows().
removes all non-basic columns, that are too old, beginning with the given firstcol
Definition at line 17156 of file lp.c. References SCIP_Col::age, SCIP_Col::basisstatus, BMSclearMemoryArray, SCIP_Lp::cols, SCIP_Lp::diving, SCIP_Lp::flushed, lpDelColset(), SCIP_Lp::lpicols, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Stat::nnodes, SCIP_Lp::nremovablecols, NULL, SCIP_Col::obsoletenode, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPcolGetBestBound(), SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPvarGetName(), and SCIP_Lp::solisbasic. Referenced by SCIPlpRemoveAllObsoletes(), and SCIPlpRemoveNewObsoletes().
removes all basic rows, that are too old, beginning with the given firstrow
Definition at line 17232 of file lp.c. References SCIP_Row::age, SCIP_Row::basisstatus, BMSclearMemoryArray, SCIP_Lp::diving, SCIP_Lp::flushed, lpDelRowset(), SCIP_Lp::lpirows, SCIP_Lp::nlpirows, SCIP_Stat::nnodes, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Row::obsoletenode, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, and SCIP_Lp::solisbasic. Referenced by SCIPlpRemoveAllObsoletes(), and SCIPlpRemoveNewObsoletes().
removes all non-basic columns and basic rows in the part of the LP created at the current node, that are too old
Definition at line 17308 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), and SCIP_Lp::solved. Referenced by SCIPlpSolveAndEval().
removes all non-basic columns and basic rows in whole LP, that are too old
Definition at line 17339 of file lp.c. References SCIP_Lp::diving, lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), and SCIP_Lp::solved. Referenced by focusnodeToFork().
removes all non-basic columns at 0.0 beginning with the given firstcol
Definition at line 17370 of file lp.c. References BMSclearMemoryArray, SCIP_Lp::cols, SCIP_Lp::diving, SCIP_Lp::flushed, SCIP_Stat::lpcount, lpDelColset(), SCIP_Lp::lpicols, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nremovablecols, NULL, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPcolGetBestBound(), SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIP_Lp::solisbasic, and SCIP_Lp::validsollp. Referenced by SCIPlpCleanupAll(), and SCIPlpCleanupNew().
removes all basic rows beginning with the given firstrow
Definition at line 17437 of file lp.c. References BMSclearMemoryArray, SCIP_Lp::diving, SCIP_Lp::flushed, SCIP_Stat::lpcount, lpDelRowset(), SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Lp::solisbasic, and SCIP_Lp::validsollp. Referenced by SCIPlpCleanupAll(), and SCIPlpCleanupNew().
removes all non-basic columns at 0.0 and basic rows in the part of the LP created at the current node
Definition at line 17508 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, SCIP_Lp::lastlpalgo, lpCleanupCols(), lpCleanupRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by focusnodeToFork().
removes all non-basic columns at 0.0 and basic rows in the whole LP
Definition at line 17547 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::lastlpalgo, lpCleanupCols(), lpCleanupRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), SCIP_Lp::solisbasic, and SCIP_Lp::solved. Referenced by focusnodeToFork().
removes all redundant rows that were added at the current node
Definition at line 17586 of file lp.c. References SCIP_Row::basisstatus, BMSclearMemoryArray, SCIP_Lp::diving, SCIP_Lp::firstnewrow, SCIP_Lp::flushed, SCIP_Stat::lpcount, lpDelRowset(), SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIProwGetLhs(), SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIProwGetName(), SCIProwGetRhs(), SCIProwIsRedundant(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Lp::solisbasic, and SCIP_Lp::validsollp. Referenced by priceAndCutLoop().
initiates LP diving
Definition at line 17660 of file lp.c. References SCIP_Lp::cols, colStoreSolVals(), SCIP_Lp::divelpistate, SCIP_Lp::divelpwasdualfeas, SCIP_Lp::divelpwasprimfeas, SCIP_Lp::diving, SCIP_Lp::divinglpiitlim, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_LpSolVals::lpsolstat, SCIP_Lp::lpsolstat, lpStoreSolVals(), SCIP_Lp::ncols, SCIP_Lp::ndivechgsides, SCIP_Lp::ndivingrows, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Lp::primalfeasible, SCIP_Lp::probing, SCIP_Lp::rows, rowStoreSolVals(), SCIP_Bool, SCIP_CALL, SCIP_LPPAR_LPITLIM, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPlpGetDualfarkas(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiGetIntpar(), SCIPlpiGetState(), SCIPsetIsFeasEQ(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIP_Lp::solved, SCIP_Lp::storedsolvals, TRUE, SCIP_Col::ub, SCIP_Lp::validsollp, and SCIP_Col::var. Referenced by SCIPstartDive().
quits LP diving and resets bounds and objective values of columns to the current node's values
Definition at line 17761 of file lp.c. References colRestoreSolVals(), SCIP_Lp::cols, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidetypes, SCIP_Lp::divelpistate, SCIP_Lp::divelpwasdualfeas, SCIP_Lp::divelpwasprimfeas, SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Lp::divinglpiitlim, SCIP_Lp::divingobjchg, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Stat::lpcount, SCIP_LpSolVals::lpissolved, lpRestoreSolVals(), lpSetIterationLimit(), SCIP_LpSolVals::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::ndivechgsides, SCIP_Lp::ndivingrows, SCIP_Lp::nlazycols, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Lp::resolvelperror, rowRestoreSolVals(), SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_VARSTATUS_COLUMN, SCIP_VERBLEVEL_FULL, SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), SCIPdebugMessage, SCIPlpFlush(), SCIPlpFreeState(), SCIPlpGetSolstat(), SCIPlpSetState(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIProwChgLhs(), SCIProwChgRhs(), SCIPsetIsEQ(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIP_Lp::storedsolvals, TRUE, SCIP_Col::ub, updateLazyBounds(), and SCIP_Col::var. Referenced by SCIPendDive().
records a current row side such that any change will be undone after diving
Definition at line 17943 of file lp.c. References SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, DIVESTACKGROWFACT, SCIP_Row::lhs, SCIP_Lp::ndivechgsides, NULL, reallocDiveChgSideArrays(), SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, and SCIP_SIDETYPE_LEFT. Referenced by SCIPchgRowLhsDive(), and SCIPchgRowRhsDive().
informs the LP that probing mode was initiated
Definition at line 17967 of file lp.c. References NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE. Referenced by SCIPtreeStartProbing().
informs the LP that probing mode was finished
Definition at line 17982 of file lp.c. References FALSE, NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing. Referenced by SCIPtreeEndProbing().
informs the LP that the probing mode is now used for strongbranching
Definition at line 17997 of file lp.c. References NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE. Referenced by SCIPstartStrongbranch().
informs the LP that the probing mode is not used for strongbranching anymore
Definition at line 18010 of file lp.c. References FALSE, NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing. Referenced by SCIPendStrongbranch().
calculates y*b + min{(c - y*A)*x | lb <= x <= ub} for given vectors y and c; the vector b is defined with b[i] = lhs[i] if y[i] >= 0, b[i] = rhs[i] if y[i] < 0 Calculating this value in interval arithmetics gives a proved lower LP bound for the following reason (assuming, we have only left hand sides): min{cx | b <= Ax, lb <= x <= ub} >= min{cx | yb <= yAx, lb <= x <= ub} (restriction in minimum is relaxed) == yb + min{cx - yb | yb <= yAx, lb <= x <= ub} (added yb - yb == 0) >= yb + min{cx - yAx | yb <= yAx, lb <= x <= ub} (because yAx >= yb inside minimum) >= yb + min{cx - yAx | lb <= x <= ub} (restriction in minimum is relaxed)
Definition at line 18033 of file lp.c. References SCIP_Lp::cols, SCIP_Row::constant, SCIP_Row::dualfarkas, SCIP_Row::dualsol, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Lp::ncols, SCIP_Col::nlprows, SCIP_Lp::nrows, NULL, SCIP_Col::nunlinked, SCIP_Col::obj, SCIP_Row::rhs, SCIP_Col::rows, SCIP_Lp::rows, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcolGetLb(), SCIPcolGetUb(), SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSub(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIP_Lp::solved, SCIP_Col::ub, and SCIP_Col::vals. Referenced by SCIPlpGetProvedLowerbound(), and SCIPlpIsInfeasibilityProved().
gets proven lower (dual) bound of last LP solution
Definition at line 18143 of file lp.c. References FALSE, provedBound(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage. Referenced by SCIPnodeUpdateLowerboundLP(), and solveNodeInitialLP().
gets proven dual bound of last LP solution
Definition at line 18157 of file lp.c. References NULL, provedBound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, and TRUE.
writes LP to a file
Definition at line 18179 of file lp.c. References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiWriteLP(). Referenced by lpBarrier(), lpDualSimplex(), lpPrimalSimplex(), and SCIPwriteLP().
writes MIP relaxation of the current B&B node to a file
Definition at line 18194 of file lp.c. References SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Row::name, SCIP_Var::name, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_ERROR, SCIP_FILECREATEERROR, SCIP_MAXSTRLEN, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPerrorMessage, SCIPmessageFPrintInfo(), SCIPmessagePrintWarning(), SCIPprintSysError(), SCIProwIsRemovable(), SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsnprintf(), SCIPvarIsIntegral(), SCIP_Col::ub, SCIP_Row::vals, and SCIP_Col::var. Referenced by SCIPwriteMIP(). gets array with columns of the LP
Definition at line 19168 of file lp.c. References SCIP_Lp::cols, and NULL. Referenced by branchcandCalcLPCands(), forkFree(), SCIPcomputeLPRelIntPoint(), SCIPgetLPCols(), SCIPgetLPColsData(), and SCIPsolLinkLPSol().
gets current number of columns in LP
Definition at line 19178 of file lp.c. References SCIP_Lp::ncols, and NULL. Referenced by branchcandCalcLPCands(), conflictAnalyzeLP(), focusnodeCleanupVars(), focusnodeToFork(), forkFree(), initLP(), probingnodeCreate(), probingnodeUpdate(), SCIPcomputeLPRelIntPoint(), SCIPgetLPColsData(), SCIPgetNLPCols(), SCIPnodeFocus(), SCIPpricestoreAddProbVars(), SCIPpricestoreApplyVars(), SCIPprobAllColsInLP(), SCIPsolLinkLPSol(), SCIPtreeLoadLP(), treeBacktrackProbing(), and undoBdchgsDualsol(). gets array with rows of the LP
Definition at line 19188 of file lp.c. References NULL, and SCIP_Lp::rows. Referenced by conflictAnalyzeLP(), forkFree(), SCIPgetLPRows(), SCIPgetLPRowsData(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
gets current number of rows in LP
Definition at line 19198 of file lp.c. References SCIP_Lp::nrows, and NULL. Referenced by conflictAnalyzeLP(), focusnodeToFork(), forkFree(), initLP(), probingnodeCreate(), probingnodeUpdate(), SCIPgetLPRowsData(), SCIPgetNLPRows(), SCIPnodeFocus(), SCIPtreeLoadLP(), treeBacktrackProbing(), undoBdchgsDualfarkas(), and undoBdchgsDualsol(). gets array with newly added columns after the last mark
Definition at line 19208 of file lp.c. References SCIP_Lp::cols, SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL. Referenced by forkCreate(), and pseudoforkCreate().
gets number of newly added columns after the last mark
Definition at line 19219 of file lp.c. References SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL. Referenced by focusnodeCleanupVars(), focusnodeToFork(), focusnodeToJunction(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus(). gets array with newly added rows after the last mark
Definition at line 19230 of file lp.c. References SCIP_Lp::firstnewrow, SCIP_Lp::nrows, NULL, and SCIP_Lp::rows. Referenced by forkCreate(), and pseudoforkCreate().
gets number of newly added rows after the last mark
Definition at line 19241 of file lp.c. References SCIP_Lp::firstnewrow, SCIP_Lp::nrows, and NULL. Referenced by focusnodeToFork(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus(). recalculates Euclidean norm of objective function vector of column variables if it have gotten unreliable during calculation
Definition at line 19252 of file lp.c. References SCIP_Lp::cols, FALSE, MAX, SCIP_Lp::ncols, NULL, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, and SCIPsetIsGE(). Referenced by SCIPgetObjNorm(), and SCIProwGetObjParallelism(). gets Euclidean norm of objective function vector of column variables, only use this method if lp->objsqrnormunreliable == FALSE, so probably you have to call SCIPlpRecalculateObjSqrNorm before
Definition at line 19283 of file lp.c. References NULL, SCIP_Lp::objsqrnorm, and SCIP_Lp::objsqrnormunreliable. Referenced by SCIPgetObjNorm(). sets whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
Definition at line 19295 of file lp.c. References NULL, and SCIP_Lp::rootlpisrelax. Referenced by SCIPprobStoreRootSol(). returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound
Definition at line 19306 of file lp.c. References NULL, and SCIP_Lp::rootlpisrelax. Referenced by SCIPisRootLPRelax(). gets the objective value of the root node LP; returns SCIP_INVALID if the root node LP was not (yet) solved
Definition at line 19316 of file lp.c. References MIN, NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, and SCIP_INVALID. Referenced by SCIPgetLPRootObjval(). gets part of the objective value of the root node LP that results from COLUMN variables only; returns SCIP_INVALID if the root node LP was not (yet) solved
Definition at line 19328 of file lp.c. References NULL, and SCIP_Lp::rootlpobjval. Referenced by SCIPgetLPRootColumnObjval(). gets part of the objective value of the root node LP that results from LOOSE variables only; returns SCIP_INVALID if the root node LP was not (yet) solved
Definition at line 19340 of file lp.c. References NULL, and SCIP_Lp::rootlooseobjval. Referenced by SCIPgetLPRootLooseObjval(). gets the LP solver interface
Definition at line 19350 of file lp.c. References SCIP_Lp::lpi, and NULL. Referenced by conflictAnalyzeLP(), SCIPconflictAnalyzeLP(), SCIPgetLPI(), SCIPlpSolveAndEval(), SCIPprintLPSolutionQuality(), solveNodeLP(), undoBdchgsDualfarkas(), and undoBdchgsDualsol(). sets whether the current LP is a relaxation of the current problem and its optimal objective value is a local lower bound
Definition at line 19360 of file lp.c. References SCIP_Lp::isrelax, and NULL. Referenced by SCIPpriceLoop(), SCIPtreeEndProbing(), and solveProbingLP(). returns whether the current LP is a relaxation of the problem for which it has been solved and its solution value a valid local lower bound?
Definition at line 19373 of file lp.c. References SCIP_Lp::isrelax, and NULL. Referenced by priceAndCutLoop(), propAndSolve(), SCIPendDive(), SCIPisLPRelax(), SCIPprobStoreRootSol(), SCIPtreeEndProbing(), solveNodeInitialLP(), and updateEstimate(). returns whether the current LP is flushed and solved
Definition at line 19383 of file lp.c. References SCIP_Lp::flushed, NULL, and SCIP_Lp::solved. Referenced by priceAndCutLoop(), SCIPendDive(), SCIPlinkLPSol(), SCIPsolCreateLPSol(), and SCIPsolLinkCurrentSol(). returns whether the current LP solution is a basic solution
Definition at line 19393 of file lp.c. References NULL, and SCIP_Lp::solisbasic. Referenced by SCIPgetLPBasisInd(), SCIPgetLPBInvACol(), SCIPgetLPBInvARow(), SCIPgetLPBInvCol(), SCIPgetLPBInvRow(), SCIPisLPSolBasic(), SCIPprobUpdateBestRootSol(), SCIPvarGetImplRedcost(), and SCIPvarGetRedcost(). returns whether the LP is in diving mode
Definition at line 19403 of file lp.c. References SCIP_Lp::diving, and NULL. Referenced by computeLPBounds(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), SCIPaddRowDive(), SCIPchgCutoffboundDive(), SCIPchgRowLhs(), SCIPchgRowLhsDive(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), SCIPchgVarLbDive(), SCIPchgVarObjDive(), SCIPchgVarUbDive(), SCIPendDive(), SCIPgetVarLbDive(), SCIPgetVarObjDive(), SCIPgetVarUbDive(), SCIPinDive(), SCIPprimalHeuristics(), SCIPsolLinkLPSol(), SCIPsolveDiveLP(), SCIPstartDive(), SCIPstartProbing(), SCIPstartStrongbranch(), SCIPtreeCutoff(), SCIPvarChgLbDive(), and SCIPvarChgUbDive(). returns whether the LP is in diving mode and the objective value of at least one column was changed
Definition at line 19413 of file lp.c. References SCIP_Lp::divingobjchg, and NULL. Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), SCIPchgVarObjProbing(), SCIPlpSetCutoffbound(), SCIPsolLinkLPSol(), SCIPsolveDiveLP(), and SCIPtreeEndProbing().
marks the diving LP to have a changed objective function
Definition at line 19423 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::divingobjchg, NULL, SCIP_Lp::probing, and TRUE. Referenced by SCIPchgVarObjDive(), SCIPchgVarObjProbing(), and SCIPpropagateProbing().
marks the diving LP to not have a changed objective function anymore
Definition at line 19434 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::divingobjchg, FALSE, NULL, and SCIP_Lp::probing. Referenced by SCIPpropagateProbing(), and treeBacktrackProbing().
Definition at line 19445 of file lp.c. References SCIP_Lp::diving, SCIP_Lp::ndivechgsides, and NULL. Referenced by SCIPsolveDiveLP().
compute relative interior point We use the approach of
to compute a relative interior point for the current LP. Assume the original LP looks as follows:
Note that bounds should be included in the system. To find an interior point the following LP does the job:
If the original LP is feasible, this LP is feasible as well. Any optimal solution yields the relative interior point . Note that this will just produce some relative interior point. It does not produce a particular relative interior point, e.g., one that maximizes the distance to the boundary in some norm.
Definition at line 19490 of file lp.c. References BMSclearMemoryArray, SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::cutoffbound, FALSE, getFiniteLooseObjval(), SCIP_Col::lb, SCIP_Row::lhs, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Row::lpcolssorted, SCIP_Col::lppos, MAX, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, rowSortLP(), SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_LPTILIM, SCIP_OBJSEN_MAXIMIZE, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_Real, SCIPdebugMessage, SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiCreate(), SCIPlpiFree(), SCIPlpiGetNCols(), SCIPlpiGetSol(), SCIPlpiInfinity(), SCIPlpiIsIterlimExc(), SCIPlpiIsOptimal(), SCIPlpiIsTimelimExc(), SCIPlpiSetIntpar(), SCIPlpiSetRealpar(), SCIPlpiSolveDual(), SCIPlpiWriteLP(), SCIPmessagePrintWarning(), SCIProwIsModifiable(), SCIPsetAllocBufferArray, SCIPsetDualfeastol(), SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetLpfeastol(), TRUE, SCIP_Col::ub, and SCIP_Row::vals. Referenced by SCIPcomputeLPRelIntPoint(). Variable Documentation
additional scalars that are tried in integrality scaling Definition at line 5506 of file lp.c. Referenced by multiAggregateBinvar(), SCIP_DECL_PRESOLEXEC(), SCIPconflictAddBound(), SCIProwCalcIntegralScalar(), SCIPsolGetRayVal(), SCIPsolGetVal(), tightenVarsBoundsSOS1(), and writeExpandedSolutions().
Definition at line 5507 of file lp.c. Referenced by SCIProwCalcIntegralScalar(). |