Detailed Description
internal methods for exact LP management
Definition in file lpexact.h.
#include <stdio.h>#include "scip/def.h"#include "blockmemshell/memory.h"#include "scip/rational.h"#include "scip/type_event.h"#include "scip/type_lpexact.h"#include "scip/type_misc.h"#include "scip/type_prob.h"#include "scip/type_rational.h"#include "scip/type_set.h"#include "scip/type_stat.h"#include "scip/type_sol.h"#include "scip/type_var.h"#include "scip/pub_lpexact.h"Go to the source code of this file.
Function Documentation
◆ SCIPcolExactCreate()
| SCIP_RETCODE SCIPcolExactCreate | ( | SCIP_COLEXACT ** | col, |
| SCIP_COL * | fpcol, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_VAR * | var, | ||
| int | len, | ||
| SCIP_ROWEXACT ** | rows, | ||
| SCIP_RATIONAL ** | vals, | ||
| SCIP_Bool | removable | ||
| ) |
creates an LP column
- Parameters
-
col pointer to column data fpcol the corresponding fp col blkmem block memory set global SCIP settings stat problem statistics var variable, this column represents len number of nonzeros in the column rows array with rows of column entries vals array with coefficients of column entries removable should the column be removed from the LP due to aging or cleanup?
Definition at line 2410 of file lpexact.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPrationalCopyBlock(), SCIPrationalCopyBlockArray(), SCIPrationalCreateBlock(), SCIPrationalCreateString(), SCIPrationalIsZero(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), and SCIPvarGetUbLocalExact().
Referenced by SCIPvarColumnExact().
◆ SCIPcolExactFree()
| SCIP_RETCODE SCIPcolExactFree | ( | SCIP_COLEXACT ** | col, |
| BMS_BLKMEM * | blkmem | ||
| ) |
frees an LP column
- Parameters
-
col pointer to LP column blkmem block memory
Definition at line 2754 of file lpexact.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryNull, NULL, SCIP_OKAY, SCIPrationalFreeBlock(), and SCIPrationalFreeBlockArray().
Referenced by varFreeExactData().
◆ SCIPcolExactPrint()
| void SCIPcolExactPrint | ( | SCIP_COLEXACT * | col, |
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| FILE * | file | ||
| ) |
output column to file stream
- Parameters
-
col LP column messagehdlr message handler file output file (or NULL for standard output)
Definition at line 2796 of file lpexact.c.
References SCIP_ColExact::fpcol, SCIP_RowExact::fprow, SCIP_ColExact::lb, SCIP_ColExact::len, SCIP_Row::name, NULL, SCIP_ColExact::obj, r, SCIP_ColExact::rows, SCIPmessageFPrintInfo(), SCIPrationalIsPositive(), SCIPrationalMessage(), SCIP_ColExact::ub, SCIP_ColExact::vals, and SCIP_Col::var.
◆ SCIPcolExactAddCoef()
| SCIP_RETCODE SCIPcolExactAddCoef | ( | SCIP_COLEXACT * | col, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_ROWEXACT * | row, | ||
| SCIP_RATIONAL * | val | ||
| ) |
adds a previously non existing coefficient to an LP column
- Parameters
-
col LP column blkmem block memory set global SCIP settings eventqueue event queue lpexact current LP data row LP row val value of coefficient
Definition at line 2834 of file lpexact.c.
References colExactAddCoef(), NULL, SCIP_CALL, and SCIP_OKAY.
◆ SCIPcolExactDelCoef()
| SCIP_RETCODE SCIPcolExactDelCoef | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_ROWEXACT * | row | ||
| ) |
deletes coefficient from column
- Parameters
-
col column to be changed set global SCIP settings lpexact current LP data row coefficient to be deleted
Definition at line 2852 of file lpexact.c.
References checkLinks, colExactDelCoefPos(), colExactSearchCoef(), SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::fprow, SCIP_ColExact::index, SCIP_ColExact::linkpos, SCIP_Row::name, NULL, rowExactDelCoefPos(), SCIP_ColExact::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPrationalIsEQ(), SCIPvarGetName(), SCIP_ColExact::vals, SCIP_RowExact::vals, and SCIP_ColExact::var.
◆ SCIPcolExactChgCoef()
| SCIP_RETCODE SCIPcolExactChgCoef | ( | SCIP_COLEXACT * | col, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_ROWEXACT * | row, | ||
| SCIP_RATIONAL * | val | ||
| ) |
changes or adds a coefficient to an LP column
- Parameters
-
col LP column blkmem block memory set global SCIP settings eventqueue event queue lpexact current LP data row LP row val value of coefficient
Definition at line 2894 of file lpexact.c.
References checkLinks, colExactAddCoef(), colExactChgCoefPos(), colExactSearchCoef(), SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_ColExact::index, SCIP_ColExact::linkpos, NULL, rowExactChgCoefPos(), SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalIsEQ(), SCIP_ColExact::vals, and SCIP_RowExact::vals.
◆ SCIPcolExactIncCoef()
| SCIP_RETCODE SCIPcolExactIncCoef | ( | SCIP_COLEXACT * | col, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_ROWEXACT * | row, | ||
| SCIP_RATIONAL * | incval | ||
| ) |
increases value of an existing or nonexisting coefficient in an LP column
- Parameters
-
col LP column blkmem block memory set global SCIP settings eventqueue event queue lpexact current LP data row LP row incval value to add to the coefficient
Definition at line 2945 of file lpexact.c.
References checkLinks, colExactAddCoef(), colExactChgCoefPos(), colExactSearchCoef(), SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_ColExact::index, SCIP_ColExact::linkpos, NULL, rowExactChgCoefPos(), SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalAdd(), SCIPrationalIsEQ(), SCIPrationalIsZero(), SCIP_ColExact::vals, and SCIP_RowExact::vals.
◆ SCIPcolExactChgObj()
| SCIP_RETCODE SCIPcolExactChgObj | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | newobj | ||
| ) |
changes objective value of column
- Parameters
-
col LP column to change set global SCIP settings lpexact current LP data newobj new objective value
Definition at line 3001 of file lpexact.c.
References FALSE, SCIP_LpExact::flushed, insertColChgcols(), SCIP_ColExact::lb, SCIP_ColExact::lpipos, SCIP_LpExact::nchgcols, NULL, SCIP_ColExact::obj, SCIP_ColExact::objchanged, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPrationalDebugMessage, SCIPrationalIsEQ(), SCIPrationalIsNegative(), SCIPrationalIsPositive(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIPvarGetColExact(), SCIPvarGetName(), SCIPvarGetStatusExact(), TRUE, SCIP_ColExact::ub, and SCIP_ColExact::var.
Referenced by SCIPeventProcess(), and SCIPlpExactEndDive().
◆ SCIPcolExactChgLb()
| SCIP_RETCODE SCIPcolExactChgLb | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | newlb | ||
| ) |
changes lower bound of column
- Parameters
-
col LP column to change set global SCIP settings lpexact current LP data newlb new lower bound value
Definition at line 3048 of file lpexact.c.
References FALSE, SCIP_LpExact::flushed, insertColChgcols(), SCIP_ColExact::lb, SCIP_ColExact::lbchanged, SCIP_ColExact::lpipos, SCIP_LpExact::nchgcols, NULL, SCIP_ColExact::obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPrationalDebugMessage, SCIPrationalIsEQ(), SCIPrationalIsNegative(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIPvarGetColExact(), SCIPvarGetName(), SCIPvarGetStatusExact(), TRUE, and SCIP_ColExact::var.
Referenced by SCIPeventProcess(), SCIPlpExactEndDive(), SCIPvarChgLbExactDive(), and updateLpExactBoundChange().
◆ SCIPcolExactChgUb()
| SCIP_RETCODE SCIPcolExactChgUb | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | newub | ||
| ) |
changes upper bound of column
changes upper bound of exact column
- Parameters
-
col LP column to change set global SCIP settings lpexact current LP data newub new upper bound value
Definition at line 3093 of file lpexact.c.
References FALSE, SCIP_LpExact::flushed, insertColChgcols(), SCIP_ColExact::lpipos, SCIP_LpExact::nchgcols, NULL, SCIP_ColExact::obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPrationalDebugMessage, SCIPrationalIsEQ(), SCIPrationalIsNegative(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIPvarGetColExact(), SCIPvarGetName(), SCIPvarGetStatusExact(), TRUE, SCIP_ColExact::ub, SCIP_ColExact::ubchanged, and SCIP_ColExact::var.
Referenced by SCIPeventProcess(), SCIPlpExactEndDive(), SCIPvarChgUbExactDive(), and updateLpExactBoundChange().
◆ SCIProwExactCapture()
| void SCIProwExactCapture | ( | SCIP_ROWEXACT * | row | ) |
increases usage counter of LP row
- Parameters
-
row LP row
Definition at line 4940 of file lpexact.c.
References SCIP_RowExact::fprow, SCIP_Row::name, SCIP_RowExact::nlocks, NULL, SCIP_RowExact::nuses, and SCIPdebugMessage.
Referenced by lpExactFlushAddRows(), SCIPcaptureRowExact(), SCIPlpExactAddRow(), SCIProwExactCreate(), and SCIPsepastoreExactAddCut().
◆ SCIProwExactPrint()
| void SCIProwExactPrint | ( | SCIP_ROWEXACT * | row, |
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| FILE * | file | ||
| ) |
output column to file stream
- Parameters
-
row LP row messagehdlr message handler file output file (or NULL for standard output)
Definition at line 4953 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::constant, SCIP_RowExact::fprow, SCIP_RowExact::len, SCIP_RowExact::lhs, SCIP_Row::name, NULL, r, SCIP_RowExact::rhs, SCIP_VARSTATUS_COLUMN, SCIPmessageFPrintInfo(), SCIPrationalGetReal(), SCIPrationalIsPositive(), SCIPrationalIsZero(), SCIPrationalMessage(), SCIPvarGetName(), SCIPvarGetStatus(), SCIP_RowExact::vals, and SCIP_ColExact::var.
Referenced by rowExactInSync(), SCIPaddVarsToRowExact(), SCIPcertificatePrintAggrrow(), SCIPcertificatePrintDualboundExactLP(), SCIPcertificatePrintMirCut(), and SCIPprintRowExact().
◆ SCIProwExactGetIndex()
| int SCIProwExactGetIndex | ( | SCIP_ROWEXACT * | row | ) |
get the index of an exact row
- Parameters
-
row LP row
Definition at line 4996 of file lpexact.c.
References SCIP_RowExact::index, and NULL.
Referenced by SCIP_DECL_SORTPTRCOMP().
◆ SCIProwExactIsModifiable()
| SCIP_Bool SCIProwExactIsModifiable | ( | SCIP_ROWEXACT * | row | ) |
return TRUE iff row is modifiable
- Parameters
-
row LP row
Definition at line 5046 of file lpexact.c.
References SCIP_RowExact::fprow, SCIP_Row::modifiable, and NULL.
◆ SCIProwHasExRow()
| SCIP_Bool SCIProwHasExRow | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_ROW * | row | ||
| ) |
returns true, if an exact row for this fprow was already created
- Parameters
-
lpexact exact lp data structure row SCIP row
Definition at line 5057 of file lpexact.c.
References NULL, and SCIP_Row::rowexact.
◆ SCIProwExactChgLhs()
| SCIP_RETCODE SCIProwExactChgLhs | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | lhs | ||
| ) |
changes left hand side of exact LP row
- Parameters
-
rowexact exact LP row set global SCIP settings lpexact current exact LP data lhs new left hand side
Definition at line 8042 of file lpexact.c.
References SCIP_RowExact::lhs, SCIP_RowExact::lhsreal, NULL, rowExactSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIP_SIDETYPE_LEFT, SCIPrationalIsEQ(), SCIPrationalRoundReal(), and SCIPrationalSetRational().
Referenced by SCIPchgRowExactLhs(), and SCIPlpExactEndDive().
◆ SCIProwExactChgRhs()
| SCIP_RETCODE SCIProwExactChgRhs | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | rhs | ||
| ) |
changes right hand side of exact LP row
- Parameters
-
rowexact exact LP row set global SCIP settings lpexact current exact LP data rhs new right hand side
Definition at line 8063 of file lpexact.c.
References NULL, SCIP_RowExact::rhs, SCIP_RowExact::rhsreal, rowExactSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIP_SIDETYPE_RIGHT, SCIPrationalIsEQ(), SCIPrationalRoundReal(), and SCIPrationalSetRational().
Referenced by SCIPchgRowExactRhs(), and SCIPlpExactEndDive().
◆ SCIPcolGetColExact()
| SCIP_COLEXACT * SCIPcolGetColExact | ( | SCIP_COL * | col | ) |
returns exact col corresponding to fpcol, if it exists. Otherwise returns NULL
- Parameters
-
col SCIP col
Definition at line 5099 of file lpexact.c.
References SCIP_VarDataExact::colexact, SCIP_Var::exactdata, NULL, and SCIP_Col::var.
Referenced by rowExactCreateFromRowLimitEncodingLength().
◆ SCIPcolExactCalcFarkasRedcostCoef()
| SCIP_RETCODE SCIPcolExactCalcFarkasRedcostCoef | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL * | result, | ||
| SCIP_RATIONAL ** | dual, | ||
| SCIP_Bool | usefarkas | ||
| ) |
calculates the Farkas coefficient or reduced cost of a column i using the given dual Farkas vector y
calculates the Farkas coefficient y^T A_i or reduced cost c - y^T A_i of a column i using the given dual Farkas vector y
- Parameters
-
col LP column set SCIP settings pointer result rational to store the result dual dense dual vector, NULL to use internal row-values usefarkas should the farkas coefficient be computed ?
Definition at line 5111 of file lpexact.c.
References SCIP_RowExact::dualfarkas, SCIP_RowExact::dualsol, SCIP_ColExact::lb, SCIP_ColExact::linkpos, SCIP_RowExact::lppos, SCIP_ColExact::nlprows, NULL, SCIP_ColExact::nunlinked, SCIP_ColExact::obj, SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPrationalAdd(), SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalIsZero(), SCIPrationalMult(), SCIPrationalSetFraction(), SCIPrationalSetRational(), SCIPvarGetColExact(), SCIPvarGetStatusExact(), SCIP_ColExact::ub, SCIP_ColExact::vals, and SCIP_ColExact::var.
◆ SCIProwExactCreate()
| SCIP_RETCODE SCIProwExactCreate | ( | SCIP_ROWEXACT ** | row, |
| SCIP_ROW * | fprow, | ||
| SCIP_ROW * | fprowrhs, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact, | ||
| int | len, | ||
| SCIP_COLEXACT ** | cols, | ||
| SCIP_RATIONAL ** | vals, | ||
| SCIP_RATIONAL * | lhs, | ||
| SCIP_RATIONAL * | rhs, | ||
| SCIP_Bool | isfprelaxable | ||
| ) |
creates and captures an LP row
- Parameters
-
row pointer to LP row data fprow corresponding fp row fprowrhs rhs-part of fp-relaxation of this row if necessary, NULL otherwise blkmem block memory set global SCIP settings stat problem statistics lpexact current LP data len number of nonzeros in the row cols array with columns of row entries vals array with coefficients of row entries lhs left hand side of row rhs right hand side of row isfprelaxable is it possible to make fp-relaxation of this row
Definition at line 3138 of file lpexact.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, SCIP_ColExact::index, SCIP_Stat::nrowidx, NULL, SCIP_Row::nuses, SCIP_Row::rowexact, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIP_R_ROUND_UPWARDS, SCIPintervalSet(), SCIPintervalSetRational(), SCIPrationalCopyBlock(), SCIPrationalCopyBlockArray(), SCIPrationalCreateString(), SCIPrationalIsIntegral(), SCIPrationalIsLE(), SCIPrationalIsZero(), SCIPrationalRoundReal(), SCIProwExactCapture(), SCIProwGetNNonz(), SCIPstatIncrement, SCIPvarIsIntegral(), TRUE, and SCIP_ColExact::var.
Referenced by SCIPcreateEmptyRowConsExact(), SCIPcreateRowExact(), and SCIProwExactCreateFromRow().
◆ SCIProwExactCreateFromRow()
| SCIP_RETCODE SCIProwExactCreateFromRow | ( | SCIP_ROW * | fprow, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_PROB * | prob, | ||
| SCIP_LPEXACT * | lpexact | ||
| ) |
creates and captures an exact LP row from a fp row
- Note
- This may change the floating-point coefficients slightly if the rational representation is rounded to smaller denominators according to parameter exact/cutmaxdenom.
- Parameters
-
fprow corresponding fp row to create from blkmem block memory set global SCIP settings stat problem statistics eventqueue the eventqueue prob scip prob structure lpexact current LP data
Definition at line 3373 of file lpexact.c.
References SCIP_Row::lhs, SCIP_Row::nlocks, NULL, SCIP_RowExact::removable, SCIP_Row::rhs, SCIP_Row::rowexact, rowExactCreateFromRowLimitEncodingLength(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcolGetVar(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsFpRepresentable(), SCIPrationalSetInfinity(), SCIPrationalSetNegInfinity(), SCIPrationalSetReal(), SCIProwExactAddConstant(), SCIProwExactCreate(), SCIProwExactEnsureSize(), SCIProwExactGetNNonz(), SCIProwExactGetVals(), SCIProwGetCols(), SCIProwGetConstant(), SCIProwGetNNonz(), SCIProwGetVals(), SCIProwRecalcNorms(), SCIPsetIsInfinity(), SCIPvarAddToRowExact(), SCIP_Row::size, and TRUE.
Referenced by SCIPcreateRowExactFromRow(), and SCIPsepastoreApplyCuts().
◆ SCIProwExactGenerateFpRows()
| SCIP_RETCODE SCIProwExactGenerateFpRows | ( | BMS_BLKMEM * | blkmem, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_PROB * | prob, | ||
| SCIP_ROWEXACT * | row, | ||
| SCIP_ROW * | rowlhs, | ||
| SCIP_ROW * | rowrhs, | ||
| SCIP_Bool * | onerowrelax, | ||
| SCIP_Bool * | hasfprelax | ||
| ) |
populate data of two empty fp rows with data from exact row
- Parameters
-
blkmem block memory set global SCIP settings stat SCIP statistics eventqueue event queue lpexact current exact LP data prob SCIP problem data row SCIP row rowlhs fp row-relaxation wrt lhs rowrhs fp row-relaxation wrt rhs onerowrelax is one row enough to represent the exact row hasfprelax is it possible to generate relaxations at all for this row?
Definition at line 3454 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::constant, FALSE, SCIP_LpExact::fplp, SCIP_RowExact::fprelaxable, SCIP_Interval::inf, SCIP_RowExact::len, SCIP_RowExact::lhs, NULL, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIP_R_ROUND_UPWARDS, SCIP_Real, SCIPcolExactGetVar(), SCIPintervalGetRoundingMode(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIPintervalSetRoundingModeUpwards(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalRoundReal(), SCIProwChgConstant(), SCIProwChgLhs(), SCIProwChgRhs(), SCIProwGetConstant(), SCIProwRelease(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarAddToRow(), SCIPvarGetLbGlobal(), SCIPvarGetLbGlobalExact(), SCIPvarGetUbGlobal(), SCIPvarGetUbGlobalExact(), SCIP_Interval::sup, TRUE, SCIP_RowExact::valsinterval, and SCIP_ColExact::var.
Referenced by SCIPgenerateFpRowsFromRowExact().
◆ SCIPlpExactFlush()
| SCIP_RETCODE SCIPlpExactFlush | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue | ||
| ) |
applies all cached changes to the LP solver
- Parameters
-
lpexact current exact LP data blkmem block memory set global SCIP settings eventqueue event queue
Definition at line 3651 of file lpexact.c.
References checkLinks, FALSE, SCIP_LpExact::flushaddedcols, SCIP_LpExact::flushaddedrows, SCIP_LpExact::flushdeletedcols, SCIP_LpExact::flushdeletedrows, SCIP_LpExact::flushed, lpExactFlushAddCols(), lpExactFlushAddRows(), lpExactFlushChgCols(), lpExactFlushChgRows(), lpExactFlushDelCols(), lpExactFlushDelRows(), SCIP_LpExact::lpiexact, SCIP_LpExact::lpifirstchgcol, SCIP_LpExact::lpifirstchgrow, SCIP_LpExact::lpsolstat, SCIP_LpExact::nchgcols, SCIP_LpExact::nchgrows, SCIP_LpExact::ncols, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, SCIP_LpExact::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiExactGetNCols(), SCIPlpiExactGetNRows(), SCIPsetDebugMsg, SCIP_LpExact::solved, and TRUE.
Referenced by lpExactFlushAndSolve(), SCIPlpExactReset(), SCIPlpExactSetState(), and SCIPwriteLPexact().
◆ SCIPlpExactLink()
| SCIP_RETCODE SCIPlpExactLink | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue | ||
| ) |
ensures all rows/columns are correctly updated, but changes are not yet communicated to the exact LP solver
- Parameters
-
lpexact current exact LP data blkmem block memory set global SCIP settings eventqueue event queue
Definition at line 3711 of file lpexact.c.
References checkLinks, colExactLink(), SCIP_LpExact::cols, FALSE, SCIP_LpExact::flushaddedcols, SCIP_LpExact::flushaddedrows, SCIP_LpExact::flushdeletedcols, SCIP_LpExact::flushdeletedrows, SCIP_LpExact::flushed, SCIP_RowExact::fprow, lpExactFlushAddCols(), lpExactFlushDelCols(), SCIP_LpExact::lpifirstchgcol, SCIP_LpExact::lpifirstchgrow, SCIP_ColExact::lppos, SCIP_RowExact::lppos, SCIP_Row::name, SCIP_LpExact::nchgcols, SCIP_LpExact::nchgrows, SCIP_LpExact::ncols, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, SCIP_LpExact::nrows, NULL, r, rowExactLink(), SCIP_LpExact::rows, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPvarGetColExact(), SCIPvarGetName(), SCIPvarGetStatusExact(), and SCIP_ColExact::var.
◆ SCIPlpExactBoundShiftUseful()
| SCIP_Bool SCIPlpExactBoundShiftUseful | ( | SCIP_LPEXACT * | lpexact | ) |
returns whether the success rate of the Neumaier-Shcherbina safe bounding method is sufficiently high
- Parameters
-
lpexact pointer to LP data object
Definition at line 3899 of file lpexact.c.
References SCIP_LpExact::boundshiftuseful, and NULL.
◆ SCIPlpExactProjectShiftPossible()
| SCIP_Bool SCIPlpExactProjectShiftPossible | ( | SCIP_LPEXACT * | lpexact | ) |
returns whether it is possible to use project and shift bounding method
- Parameters
-
lpexact pointer to LP data object
Definition at line 3909 of file lpexact.c.
References NULL, and SCIP_LpExact::projshiftdata.
◆ SCIPlpExactIsSynced()
| SCIP_Bool SCIPlpExactIsSynced | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | msg | ||
| ) |
checks that lp and fplp are properly synced
- Parameters
-
lpexact pointer to LP data object set global SCIP settings msg message handler for debug output
Definition at line 3920 of file lpexact.c.
References lpExactInSync(), and NULL.
Referenced by lpExactFlushAndSolve().
◆ SCIPlpExactCreate()
| SCIP_RETCODE SCIPlpExactCreate | ( | SCIP_LPEXACT ** | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_LP * | fplp, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| const char * | name | ||
| ) |
creates empty LP data object
- Parameters
-
lpexact pointer to LP data object blkmem block memory data structure fplp the floating point LP set global SCIP settings messagehdlr message handler stat problem statistics name problem name
Definition at line 3933 of file lpexact.c.
References BMSallocMemory, FALSE, SCIP_Lp::lpexact, SCIP_LpExact::lpicols, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OBJSEN_MINIMIZE, SCIP_OKAY, SCIP_PRICING_AUTO, SCIPlpiExactCreate(), SCIPlpiExactInfinity(), SCIPlpPsdataCreate(), SCIPrationalCreateBlock(), SCIPsetInfinity(), and TRUE.
Referenced by SCIPtransformProb().
◆ SCIPlpExactFree()
| SCIP_RETCODE SCIPlpExactFree | ( | SCIP_LPEXACT ** | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set | ||
| ) |
frees LP data object
- Parameters
-
lpexact pointer to exact LP data object blkmem block memory set global SCIP settings
Definition at line 4039 of file lpexact.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, BMSfreeMemoryNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpExactClear(), SCIPlpExactProjectShiftFree(), SCIPlpiExactFree(), SCIPrationalFreeBlock(), and SCIProwExactRelease().
Referenced by freeTransform().
◆ SCIPlpExactAddCol()
| SCIP_RETCODE SCIPlpExactAddCol | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_COLEXACT * | col | ||
| ) |
adds a column to the LP and captures the variable
- Parameters
-
lpexact LP data set global SCIP settings col LP column
Definition at line 4089 of file lpexact.c.
References checkLinks, colExactUpdateAddLP(), SCIP_LpExact::cols, SCIP_Lp::diving, ensureColexsSize(), FALSE, SCIP_LpExact::flushed, SCIP_ColExact::fpcol, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_Col::integral, SCIP_ColExact::lb, SCIP_ColExact::len, SCIP_ColExact::lppos, SCIP_Row::name, SCIP_LpExact::ncols, SCIP_LpExact::nrows, NULL, SCIP_ColExact::obj, SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPrationalDebugMessage, SCIPsetDebugMsg, SCIPsetDebugMsgPrint, SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatusExact(), SCIPvarIsIntegral(), SCIP_ColExact::ub, SCIP_ColExact::vals, and SCIP_ColExact::var.
Referenced by SCIPpricestoreApplyVars().
◆ SCIPlpExactAddRow()
| SCIP_RETCODE SCIPlpExactAddRow | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_ROWEXACT * | rowexact | ||
| ) |
adds a row to the LP and captures it
- Parameters
-
lpexact LP data set global SCIP settings rowexact LP row
Definition at line 4133 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::constant, ensureRowexsSize(), FALSE, SCIP_LpExact::flushed, SCIP_RowExact::fprow, SCIP_RowExact::len, SCIP_RowExact::lhs, SCIP_RowExact::lppos, SCIP_Row::name, SCIP_LpExact::ncols, SCIP_LpExact::nrows, NULL, SCIP_RowExact::rhs, rowExactUpdateAddLP(), SCIP_LpExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalDebugMessage, SCIPrationalIsZero(), SCIProwExactCapture(), SCIPsetDebugMsg, SCIPvarGetName(), SCIP_RowExact::vals, and SCIP_ColExact::var.
Referenced by SCIPlpExactSyncLPs().
◆ SCIProwExactGetSolFeasibility()
| SCIP_RETCODE SCIProwExactGetSolFeasibility | ( | SCIP_ROWEXACT * | row, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_SOL * | sol, | ||
| SCIP_RATIONAL * | result | ||
| ) |
returns the feasibility of a row for the given solution
- Parameters
-
row LP row set global SCIP settings stat problem statistics data sol primal CIP solution result result pointer
Definition at line 5446 of file lpexact.c.
References FALSE, SCIP_RowExact::lhs, NULL, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalMin(), and SCIProwExactGetSolActivity().
Referenced by SCIPgetRowSolFeasibilityExact().
◆ SCIProwExactGetSolActivityWithErrorbound()
| SCIP_Bool SCIProwExactGetSolActivityWithErrorbound | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_SOL * | sol, | ||
| SCIP_Real * | activity, | ||
| SCIP_Real * | errorbound | ||
| ) |
does activity computation with running error analysis for a row, return TRUE on success
- Parameters
-
rowexact LP row set global SCIP settings stat problem statistics data sol primal CIP solution activity the approximate activity errorbound the error bound
Definition at line 5475 of file lpexact.c.
References SCIP_Row::cols, SCIP_Row::constant, FALSE, SCIP_RowExact::fprow, SCIP_Row::len, SCIP_RowExact::len, MAX, MIN, NULL, SCIP_Col::primsol, REALABS, SCIP_Real, SCIP_REAL_UNITROUNDOFF, SCIP_UNKNOWN, SCIPcolGetVar(), SCIPsetInfinity(), SCIPsolGetVal(), TRUE, and SCIP_Row::vals.
Referenced by SCIPgetRowSolActivityWithErrorboundExact().
◆ SCIProwExactGetSolActivity()
| SCIP_RETCODE SCIProwExactGetSolActivity | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_SOL * | sol, | ||
| SCIP_Bool | useexact, | ||
| SCIP_RATIONAL * | result | ||
| ) |
returns the activity of a row for a given solution
- Parameters
-
rowexact LP row set global SCIP settings stat problem statistics data sol primal CIP solution useexact should an exact solution be used result resulting activity
Definition at line 5529 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::constant, SCIP_ColExact::lb, SCIP_RowExact::len, SCIP_RowExact::lhs, SCIP_RowExact::linkpos, SCIP_ColExact::lppos, NULL, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalAdd(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsAbsInfinity(), SCIPrationalIsInfinity(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPrationalMultReal(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIPsolGetVal(), SCIPsolGetValExact(), SCIP_ColExact::ub, SCIP_RowExact::vals, and SCIP_ColExact::var.
Referenced by SCIPgetRowSolActivityExact(), and SCIProwExactGetSolFeasibility().
◆ SCIProwExactRelease()
| SCIP_RETCODE SCIProwExactRelease | ( | SCIP_ROWEXACT ** | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact | ||
| ) |
decreases usage counter of LP row, and frees memory if necessary
- Parameters
-
row pointer to LP row blkmem block memory set global SCIP settings lpexact current LP data
Definition at line 5583 of file lpexact.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIProwExactFree(), and SCIPsetDebugMsg.
Referenced by lpExactFlushDelRows(), SCIPlpExactDelRowset(), SCIPlpExactFree(), SCIPlpExactShrinkRows(), SCIPreleaseRowExact(), SCIProwFree(), and SCIPsepastoreExactClearCuts().
◆ SCIProwExactFree()
| SCIP_RETCODE SCIProwExactFree | ( | SCIP_ROWEXACT ** | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact | ||
| ) |
frees an LP row
- Parameters
-
row pointer to LP row blkmem block memory set global SCIP settings lpexact current LP data
Definition at line 5610 of file lpexact.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, rowExactUnlink(), SCIP_CALL, SCIP_OKAY, SCIPrationalFreeBlock(), and SCIPrationalFreeBlockArray().
Referenced by SCIProwExactRelease().
◆ SCIProwExactEnsureSize()
| SCIP_RETCODE SCIProwExactEnsureSize | ( | SCIP_ROWEXACT * | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| int | num | ||
| ) |
ensuresr, that column array of row can store at least num entries
ensures, that column array of row can store at least num entries
- Parameters
-
row LP row blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 6062 of file lpexact.c.
References BMSreallocBlockMemoryArray, SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::fprow, SCIP_RowExact::len, SCIP_RowExact::linkpos, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBlock(), SCIPsetCalcMemGrowSize(), SCIP_RowExact::size, SCIP_RowExact::vals, and SCIP_RowExact::valsinterval.
Referenced by rowExactAddCoef(), SCIPaddVarsToRowExact(), and SCIProwExactCreateFromRow().
◆ SCIProwExactAddConstant()
| SCIP_RETCODE SCIProwExactAddConstant | ( | SCIP_ROWEXACT * | row, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | addval | ||
| ) |
add constant value to a row
- Parameters
-
row LP row set global SCIP settings stat problem statistics lpexact current LP data addval constant value to add to the row
Definition at line 5416 of file lpexact.c.
References SCIP_RowExact::constant, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_RowExact::lhs, SCIP_Row::lppos, NULL, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalAdd(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsAbsInfinity(), SCIPrationalIsLE(), SCIPrationalIsZero(), and SCIProwExactChgConstant().
Referenced by SCIProwExactCreateFromRow(), and SCIPvarAddToRowExact().
◆ SCIProwExactAddCoef()
| SCIP_RETCODE SCIProwExactAddCoef | ( | SCIP_ROWEXACT * | rowexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_COLEXACT * | colexact, | ||
| SCIP_RATIONAL * | val | ||
| ) |
adds a previously non existing coefficient to an LP row
- Parameters
-
rowexact LP row blkmem block memory set global SCIP settings eventqueue event queue lpexact current LP data colexact LP column val value of coefficient
Definition at line 5200 of file lpexact.c.
References checkLinks, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_Row::lppos, NULL, rowExactAddCoef(), SCIP_CALL, and SCIP_OKAY.
Referenced by rowExactCreateFromRowLimitEncodingLength().
◆ SCIProwExactDelCoef()
| SCIP_RETCODE SCIProwExactDelCoef | ( | SCIP_ROWEXACT * | row, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_COLEXACT * | col | ||
| ) |
deletes coefficient from row
- Parameters
-
row row to be changed set global SCIP settings lpexact current LP data col coefficient to be deleted
Definition at line 5225 of file lpexact.c.
References checkLinks, colExactDelCoefPos(), SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::delaysort, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_ColExact::index, SCIP_RowExact::linkpos, SCIP_RowExact::lppos, SCIP_Row::name, NULL, rowExactDelCoefPos(), rowExactSearchCoef(), SCIP_ColExact::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPrationalIsEQ(), SCIPvarGetName(), SCIP_ColExact::vals, SCIP_RowExact::vals, and SCIP_ColExact::var.
◆ SCIProwExactChgCoef()
| SCIP_RETCODE SCIProwExactChgCoef | ( | SCIP_ROWEXACT * | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_COLEXACT * | col, | ||
| SCIP_RATIONAL * | val | ||
| ) |
changes or adds a coefficient to an LP row
- Parameters
-
row LP row blkmem block memory set global SCIP settings eventqueue event queue lpexact current LP data col LP column val value of coefficient
Definition at line 5269 of file lpexact.c.
References checkLinks, colExactChgCoefPos(), SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::delaysort, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_ColExact::index, SCIP_RowExact::linkpos, SCIP_RowExact::lppos, NULL, rowExactAddCoef(), rowExactChgCoefPos(), rowExactSearchCoef(), SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalIsEQ(), SCIP_ColExact::vals, and SCIP_RowExact::vals.
◆ SCIProwExactIncCoef()
| SCIP_RETCODE SCIProwExactIncCoef | ( | SCIP_ROWEXACT * | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_COLEXACT * | col, | ||
| SCIP_RATIONAL * | incval | ||
| ) |
increases value of an existing or nonexisting coefficient in an LP column
increases value of an existing or non-existing coefficient in an LP row
- Parameters
-
row LP row blkmem block memory set global SCIP settings eventqueue event queue lpexact current LP data col LP column incval value to add to the coefficient
Definition at line 5321 of file lpexact.c.
References checkLinks, colExactChgCoefPos(), SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_ColExact::index, SCIP_RowExact::linkpos, SCIP_RowExact::lppos, NULL, rowExactAddCoef(), rowExactChgCoefPos(), rowExactSearchCoef(), SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalAdd(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsZero(), SCIP_RowExact::validactivitylp, SCIP_ColExact::vals, and SCIP_RowExact::vals.
Referenced by SCIPvarAddToRowExact().
◆ SCIProwExactChgConstant()
| SCIP_RETCODE SCIProwExactChgConstant | ( | SCIP_ROWEXACT * | row, |
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | constant | ||
| ) |
changes constant value of a row
- Parameters
-
row LP row stat problem statistics lpexact current LP data constant new constant value
Definition at line 5385 of file lpexact.c.
References SCIP_RowExact::constant, SCIP_RowExact::constantreal, SCIP_Lp::diving, SCIP_Stat::domchgcount, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_RowExact::lhs, SCIP_Row::lppos, NULL, SCIP_RowExact::pseudoactivity, SCIP_RowExact::rhs, SCIP_OKAY, SCIPintervalSetRational(), SCIPrationalAdd(), SCIPrationalDiff(), SCIPrationalIsAbsInfinity(), SCIPrationalIsEQ(), SCIPrationalIsInfinity(), SCIPrationalIsLE(), SCIPrationalSetRational(), and SCIP_Row::validpsactivitydomchg.
Referenced by SCIProwExactAddConstant().
◆ SCIProwExactGetLPFeasibility()
| SCIP_RETCODE SCIProwExactGetLPFeasibility | ( | SCIP_ROWEXACT * | row, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | result | ||
| ) |
returns the feasibility of a row in the current LP solution: negative value means infeasibility
- Parameters
-
row LP row set global SCIP settings stat problem statistics lpexact current LP data result rational pointer to store the result
Definition at line 5655 of file lpexact.c.
References SCIP_RowExact::lhs, NULL, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalMin(), and SCIProwExactGetLPActivity().
Referenced by SCIPgetRowSolFeasibilityExact().
◆ SCIProwExactGetPseudoFeasibility()
| SCIP_RETCODE SCIProwExactGetPseudoFeasibility | ( | SCIP_ROWEXACT * | row, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_RATIONAL * | result | ||
| ) |
returns the pseudo feasibility of a row in the current pseudo solution: negative value means infeasibility
- Parameters
-
row LP row set global SCIP settings stat problem statistics result rational pointer to store the result
Definition at line 5684 of file lpexact.c.
References SCIP_RowExact::lhs, NULL, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalMin(), and SCIProwExactGetPseudoActivity().
Referenced by SCIPgetRowSolFeasibilityExact().
◆ SCIProwExactGetLPActivity()
| SCIP_RATIONAL * SCIProwExactGetLPActivity | ( | SCIP_ROWEXACT * | row, |
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact | ||
| ) |
returns the activity of a row in the current LP solution
- Parameters
-
row LP row stat problem statistics lpexact current LP data
Definition at line 5713 of file lpexact.c.
References SCIP_Row::activity, SCIP_RowExact::activity, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_Stat::lpcount, NULL, SCIP_INVALID, SCIProwExactRecalcLPActivity(), SCIP_Row::validactivitylp, and SCIP_Lp::validsollp.
Referenced by SCIPgetRowSolActivityExact(), and SCIProwExactGetLPFeasibility().
◆ SCIProwExactGetPseudoActivity()
| SCIP_RATIONAL * SCIProwExactGetPseudoActivity | ( | SCIP_ROWEXACT * | row, |
| SCIP_STAT * | stat | ||
| ) |
returns the pseudo activity of a row in the current pseudo solution
- Parameters
-
row LP row stat problem statistics
Definition at line 5734 of file lpexact.c.
References SCIP_Stat::domchgcount, SCIP_RowExact::fprow, NULL, SCIP_Row::pseudoactivity, SCIP_RowExact::pseudoactivity, SCIP_INVALID, SCIProwExactRecalcPseudoActivity(), and SCIP_Row::validpsactivitydomchg.
Referenced by SCIPgetRowSolActivityExact(), and SCIProwExactGetPseudoFeasibility().
◆ SCIProwExactDelaySort()
| void SCIProwExactDelaySort | ( | SCIP_ROWEXACT * | rowexact | ) |
enables delaying of row sorting
- Parameters
-
rowexact LP rowexact
Definition at line 5867 of file lpexact.c.
References SCIP_RowExact::delaysort, NULL, and TRUE.
Referenced by SCIPaddVarsToRowExact().
◆ SCIProwExactForceSort()
| void SCIProwExactForceSort | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set | ||
| ) |
disables delaying of row sorting, sorts row and merges coefficients with equal columns
- Parameters
-
rowexact LP rowexact set global SCIP settings
Definition at line 5878 of file lpexact.c.
References SCIP_RowExact::delaysort, FALSE, NULL, and rowExactMerge().
Referenced by SCIPaddVarsToRowExact().
◆ SCIProwExactRecalcLPActivity()
| void SCIProwExactRecalcLPActivity | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_STAT * | stat | ||
| ) |
recalculates the current activity of a row
- Parameters
-
rowexact LP row stat problem statistics
Definition at line 5891 of file lpexact.c.
References SCIP_Row::activity, SCIP_RowExact::activity, SCIP_Row::cols, SCIP_RowExact::cols, SCIP_RowExact::constant, SCIP_RowExact::fprow, SCIP_Row::linkpos, SCIP_Stat::lpcount, SCIP_Col::lppos, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Col::primsol, SCIP_ColExact::primsol, SCIPrationalAddProd(), SCIPrationalGetReal(), SCIPrationalIsInfinity(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIP_Row::validactivitylp, and SCIP_RowExact::vals.
Referenced by SCIProwExactGetLPActivity().
◆ SCIProwExactRecalcPseudoActivity()
| void SCIProwExactRecalcPseudoActivity | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_STAT * | stat | ||
| ) |
calculates the current pseudo activity of a row
- Parameters
-
rowexact row data stat problem statistics
Definition at line 5960 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::constant, SCIP_Stat::domchgcount, SCIP_ColExact::fpcol, SCIP_RowExact::fprow, SCIP_Row::len, SCIP_Row::linkpos, SCIP_Col::lppos, NULL, SCIP_Row::pseudoactivity, SCIP_RowExact::pseudoactivity, SCIP_VARSTATUS_COLUMN, SCIPcolExactGetBestBound(), SCIPrationalAddProd(), SCIPrationalGetReal(), SCIPrationalSetRational(), SCIPvarGetStatus(), SCIP_Row::validpsactivitydomchg, SCIP_RowExact::vals, and SCIP_Col::var.
Referenced by SCIProwExactGetPseudoActivity().
◆ SCIPcolExactGetObj()
| SCIP_RATIONAL * SCIPcolExactGetObj | ( | SCIP_COLEXACT * | col | ) |
gets objective value of column
- Parameters
-
col LP column
Definition at line 5996 of file lpexact.c.
References NULL, and SCIP_ColExact::obj.
◆ SCIPcolExactGetLb()
| SCIP_RATIONAL * SCIPcolExactGetLb | ( | SCIP_COLEXACT * | col | ) |
gets lower bound of column
- Parameters
-
col LP column
Definition at line 6006 of file lpexact.c.
References SCIP_ColExact::lb, and NULL.
Referenced by SCIPlpExactGetDualfarkas().
◆ SCIPcolExactGetUb()
| SCIP_RATIONAL * SCIPcolExactGetUb | ( | SCIP_COLEXACT * | col | ) |
gets upper bound of column
- Parameters
-
col LP column
Definition at line 6016 of file lpexact.c.
References NULL, and SCIP_ColExact::ub.
Referenced by SCIPlpExactGetDualfarkas().
◆ SCIPcolExactGetBestBound()
| SCIP_RATIONAL * SCIPcolExactGetBestBound | ( | SCIP_COLEXACT * | col | ) |
gets best bound of column with respect to the objective function
- Parameters
-
col LP column
Definition at line 6026 of file lpexact.c.
References SCIP_ColExact::lb, NULL, SCIP_ColExact::obj, SCIPrationalIsPositive(), SCIPrationalIsZero(), and SCIP_ColExact::ub.
Referenced by SCIProwExactRecalcPseudoActivity().
◆ SCIPcolExactGetPrimsol()
| SCIP_RATIONAL * SCIPcolExactGetPrimsol | ( | SCIP_COLEXACT * | col | ) |
gets the primal LP solution of a column
- Parameters
-
col LP column
Definition at line 6039 of file lpexact.c.
References SCIP_ColExact::fpcol, SCIP_Col::lppos, NULL, and SCIP_ColExact::primsol.
Referenced by SCIPvarGetLPSolExact(), and SCIPvarGetLPSolExact_rec().
◆ SCIPlpExactUpdateVarObj()
| SCIP_RETCODE SCIPlpExactUpdateVarObj | ( | SCIP_SET * | set, |
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_VAR * | var, | ||
| SCIP_RATIONAL * | oldobj, | ||
| SCIP_RATIONAL * | newobj | ||
| ) |
updates current pseudo and loose objective value for a change in a variable's objective value
- Parameters
-
set global SCIP settings lpexact current LP data var problem variable that changed oldobj old objective value of variable newobj new objective value of variable
Definition at line 6422 of file lpexact.c.
References FALSE, SCIP_LpExact::fplp, getObjvalDeltaObjExact(), lpExactUpdateObjval(), NULL, SCIP_Lp::probing, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPvarGetLbGlobalExact(), SCIPvarGetLbLocalExact(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbGlobalExact(), SCIPvarGetUbLocalExact(), and TRUE.
Referenced by SCIPeventProcess(), SCIPlpExactUpdateAddVar(), and SCIPlpExactUpdateDelVar().
◆ SCIPlpExactUpdateVarLbGlobal()
| SCIP_RETCODE SCIPlpExactUpdateVarLbGlobal | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var, | ||
| SCIP_RATIONAL * | oldlb, | ||
| SCIP_RATIONAL * | newlb | ||
| ) |
updates current root pseudo objective value for a global change in a variable's lower bound
- Parameters
-
lpexact current LP data set global SCIP settings var problem variable that changed oldlb old lower bound of variable newlb new lower bound of variable
Definition at line 6469 of file lpexact.c.
References FALSE, getObjvalDeltaLbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsPositive(), SCIPvarGetObjExact(), and TRUE.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
◆ SCIPlpExactUpdateVarLb()
| SCIP_RETCODE SCIPlpExactUpdateVarLb | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var, | ||
| SCIP_RATIONAL * | oldlb, | ||
| SCIP_RATIONAL * | newlb | ||
| ) |
updates current pseudo and loose objective value for a change in a variable's lower bound
- Parameters
-
lpexact current LP data set global SCIP settings var problem variable that changed oldlb old lower bound of variable newlb new lower bound of variable
Definition at line 6501 of file lpexact.c.
References FALSE, getObjvalDeltaLbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsPositive(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), and TRUE.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
◆ SCIPlpExactUpdateVarUbGlobal()
| SCIP_RETCODE SCIPlpExactUpdateVarUbGlobal | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var, | ||
| SCIP_RATIONAL * | oldub, | ||
| SCIP_RATIONAL * | newub | ||
| ) |
updates current root pseudo objective value for a global change in a variable's upper bound
- Parameters
-
lpexact current LP data set global SCIP settings var problem variable that changed oldub old upper bound of variable newub new upper bound of variable
Definition at line 6536 of file lpexact.c.
References FALSE, getObjvalDeltaUbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsNegative(), SCIPvarGetObjExact(), and TRUE.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
◆ SCIPlpExactUpdateVarUb()
| SCIP_RETCODE SCIPlpExactUpdateVarUb | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var, | ||
| SCIP_RATIONAL * | oldub, | ||
| SCIP_RATIONAL * | newub | ||
| ) |
updates current pseudo objective value for a change in a variable's upper bound
- Parameters
-
lpexact current LP data set global SCIP settings var problem variable that changed oldub old upper bound of variable newub new upper bound of variable
Definition at line 6568 of file lpexact.c.
References FALSE, getObjvalDeltaUbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsNegative(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), and TRUE.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
◆ SCIPlpExactUpdateAddVar()
| SCIP_RETCODE SCIPlpExactUpdateAddVar | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var | ||
| ) |
informs LP, that given variable was added to the problem
- Parameters
-
lpexact current LP data set global SCIP settings var variable that is now a LOOSE problem variable
Definition at line 6603 of file lpexact.c.
References SCIP_LpExact::nloosevars, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpExactUpdateVarObj(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), and SCIPvarGetStatusExact().
Referenced by SCIPprobAddVar().
◆ SCIPlpExactUpdateDelVar()
| SCIP_RETCODE SCIPlpExactUpdateDelVar | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var | ||
| ) |
informs LP, that given variable is to be deleted from the problem
- Parameters
-
lpexact current LP data set global SCIP settings var variable that will be deleted from the problem
Definition at line 6634 of file lpexact.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpExactDecNLoosevars(), SCIPlpExactUpdateVarObj(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), and SCIPvarGetStatusExact().
◆ SCIPlpExactUpdateVarColumn()
| SCIP_RETCODE SCIPlpExactUpdateVarColumn | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var | ||
| ) |
informs LP, that given formerly loose problem variable is now a column variable
- Parameters
-
lpexact current LP data set global SCIP settings var problem variable that changed from LOOSE to COLUMN
Definition at line 6663 of file lpexact.c.
References FALSE, SCIP_LpExact::looseobjvalinf, lpExactUpdateObjval(), SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPlpExactDecNLoosevars(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPrationalNegate(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), SCIPvarGetUbLocalExact(), and TRUE.
Referenced by SCIPvarColumnExact().
◆ SCIPlpExactUpdateVarLoose()
| SCIP_RETCODE SCIPlpExactUpdateVarLoose | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var | ||
| ) |
informs LP, that given formerly column problem variable is now again a loose variable
- Parameters
-
lpexact current LP data set global SCIP settings var problem variable that changed from COLUMN to LOOSE
Definition at line 6718 of file lpexact.c.
References FALSE, SCIP_LpExact::looseobjvalinf, lpExactUpdateObjval(), SCIP_LpExact::nloosevars, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocalExact(), and TRUE.
◆ SCIPlpExactDecNLoosevars()
| void SCIPlpExactDecNLoosevars | ( | SCIP_LPEXACT * | lpexact | ) |
decrease the number of loose variables by one
- Parameters
-
lpexact current LP data
Definition at line 6770 of file lpexact.c.
References SCIP_LpExact::looseobjval, SCIP_LpExact::looseobjvalinf, SCIP_LpExact::nloosevars, NULL, and SCIPrationalSetReal().
Referenced by SCIPlpExactUpdateDelVar(), SCIPlpExactUpdateVarColumn(), and SCIPvarMultiaggregateExact().
◆ SCIPlpExactGetNRows()
| int SCIPlpExactGetNRows | ( | SCIP_LPEXACT * | lpexact | ) |
get the number of rows currently in the lp
- Parameters
-
lpexact current LP data
Definition at line 6788 of file lpexact.c.
References SCIP_LpExact::nrows, and NULL.
Referenced by SCIPlpExactSyncLPs().
◆ SCIPlpExactGetSol()
| SCIP_RETCODE SCIPlpExactGetSol | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_Bool * | primalfeasible, | ||
| SCIP_Bool * | dualfeasible, | ||
| SCIP_Bool | overwritefplp | ||
| ) |
stores the LP solution in the columns and rows
- Parameters
-
lpexact current LP data set global SCIP settings stat problem statistics primalfeasible pointer to store whether the solution is primal feasible, or NULL dualfeasible pointer to store whether the solution is dual feasible, or NULL overwritefplp should the floating point values be overwritten, e.g. if fp lp was infeasible
Definition at line 6853 of file lpexact.c.
References SCIP_Row::activity, SCIP_RowExact::activity, SCIP_Col::basisstatus, SCIP_Row::basisstatus, SCIP_ColExact::basisstatus, SCIP_RowExact::basisstatus, BMSclearMemoryArray, SCIP_Stat::boundingerrorexlp, SCIP_RowExact::constant, SCIP_Lp::dualfeasible, SCIP_LpExact::dualfeasible, SCIP_Row::dualsol, SCIP_RowExact::dualsol, FALSE, SCIP_LpExact::fplp, SCIP_RowExact::fprowrhs, SCIP_RowExact::lhs, SCIP_Stat::lpcount, SCIP_Lp::lpicols, SCIP_LpExact::lpicols, SCIP_LpExact::lpiexact, SCIP_LpExact::lpirows, SCIP_Lp::lpobjval, SCIP_LpExact::lpobjval, SCIP_Lp::lpsolstat, SCIP_LpExact::lpsolstat, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, NULL, SCIP_Lp::primalfeasible, SCIP_LpExact::primalfeasible, SCIP_Col::primsol, r, REALABS, SCIP_Col::redcost, SCIP_RowExact::rhs, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIPdebug, SCIPlpiExactGetBase(), SCIPlpiExactGetSol(), SCIPrationalAdd(), SCIPrationalAddProd(), SCIPrationalCreateBuffer(), SCIPrationalCreateBufferArray(), SCIPrationalDebugMessage, SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalFreeBufferArray(), SCIPrationalGetReal(), SCIPrationalIsGE(), SCIPrationalIsGT(), SCIPrationalIsInfinity(), SCIPrationalIsLE(), SCIPrationalIsLT(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalRoundReal(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIProwIsInLP(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPvarGetName(), SCIP_LpExact::solisbasic, SCIP_Lp::solved, SCIP_LpExact::solved, TRUE, SCIP_Row::validactivitylp, SCIP_RowExact::validactivitylp, SCIP_Col::validredcostlp, and SCIP_ColExact::validredcostlp.
Referenced by SCIPlpExactSolveAndEval(), and SCIPlpExactStartDive().
◆ SCIPlpExactGetUnboundedSol()
| SCIP_RETCODE SCIPlpExactGetUnboundedSol | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_Bool * | primalfeasible, | ||
| SCIP_Bool * | rayfeasible | ||
| ) |
stores LP solution with infinite objective value in the columns and rows
- Parameters
-
lpexact current LP data set global SCIP settings stat problem statistics primalfeasible pointer to store whether the solution is primal feasible, or NULL rayfeasible pointer to store whether the primal ray is a feasible unboundedness proof, or NULL
Definition at line 7124 of file lpexact.c.
References SCIP_ERROR, and SCIPerrorMessage.
Referenced by SCIPlpExactSolveAndEval(), and SCIPlpExactStartDive().
◆ SCIPlpExactGetPrimalRay()
| SCIP_RETCODE SCIPlpExactGetPrimalRay | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL ** | ray | ||
| ) |
returns primal ray proving the unboundedness of the current LP
- Parameters
-
lpexact current LP data set global SCIP settings ray array for storing primal ray values, they are stored w.r.t. the problem index of the variables, so the size of this array should be at least number of active variables (all entries have to be initialized to 0 before)
Definition at line 7137 of file lpexact.c.
References SCIP_LpExact::flushed, SCIP_LpExact::lpicols, SCIP_LpExact::lpiexact, SCIP_LpExact::lpobjval, SCIP_LpExact::lpsolstat, SCIP_LpExact::nlpicols, NULL, SCIP_CALL, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIPerrorMessage, SCIPlpiExactGetPrimalRay(), SCIPlpiExactHasPrimalRay(), SCIPrationalCreateBufferArray(), SCIPrationalFreeBufferArray(), SCIPrationalIsNegInfinity(), SCIPrationalSetRational(), SCIPsetDebugMsg, SCIPvarGetProbindex(), SCIP_LpExact::solved, and SCIP_ColExact::var.
◆ SCIPlpExactGetDualfarkas()
| SCIP_RETCODE SCIPlpExactGetDualfarkas | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_Bool * | valid, | ||
| SCIP_Bool | overwritefplp | ||
| ) |
stores the dual Farkas multipliers for infeasibility proof in rows. besides
- Note
- The Farkas proof is checked for validity if lp/checkfarkas = TRUE and
validis not NULL.
- Parameters
-
lpexact current LP data set global SCIP settings stat problem statistics valid pointer to store whether the Farkas proof is valid or NULL overwritefplp should the floating point values be overwritten, e.g. if fp lp was infeasible
Definition at line 7198 of file lpexact.c.
References SCIP_Row::basisstatus, SCIP_RowExact::basisstatus, SCIP_RowExact::cols, SCIP_Row::dualfarkas, SCIP_Row::dualsol, FALSE, SCIP_LpExact::flushed, SCIP_LpExact::fplp, SCIP_RowExact::len, SCIP_Lp::lpicols, SCIP_LpExact::lpicols, SCIP_LpExact::lpiexact, SCIP_Lp::lpirows, SCIP_LpExact::lpirows, SCIP_Lp::lpobjval, SCIP_ColExact::lppos, SCIP_Lp::lpsolstat, SCIP_LpExact::lpsolstat, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, NULL, SCIP_Col::primsol, r, SCIP_Col::redcost, SCIP_BASESTAT_BASIC, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_OKAY, SCIPcolExactGetLb(), SCIPcolExactGetUb(), SCIPlpiExactGetDualfarkas(), SCIPrationalAdd(), SCIPrationalAddProd(), SCIPrationalCreateBuffer(), SCIPrationalCreateBufferArray(), SCIPrationalDebugMessage, SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalFreeBufferArray(), SCIPrationalGetReal(), SCIPrationalIsAbsInfinity(), SCIPrationalIsGE(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalIsZero(), SCIPrationalMult(), SCIPrationalSetInfinity(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIProwGetName(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIP_LpExact::solved, TRUE, SCIP_Row::validactivitylp, SCIP_RowExact::validactivitylp, SCIP_Col::validfarkaslp, SCIP_ColExact::validfarkaslp, SCIP_Col::validredcostlp, and SCIP_ColExact::validredcostlp.
Referenced by SCIPlpExactSolveAndEval(), and SCIPlpExactStartDive().
◆ SCIPlpExactGetIterations()
| SCIP_RETCODE SCIPlpExactGetIterations | ( | SCIP_LPEXACT * | lpexact, |
| int * | iterations | ||
| ) |
get number of iterations used in last LP solve
- Parameters
-
lpexact current exact LP data iterations pointer to store the iteration count
Definition at line 7398 of file lpexact.c.
References SCIP_LpExact::lpiexact, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiExactGetIterations().
Referenced by SCIPlpExactSolveAndEval().
◆ SCIPlpExactGetObjval()
| void SCIPlpExactGetObjval | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL * | res | ||
| ) |
gets objective value of current LP
- Note
- This method returns the objective value of the current LP solution, which might be primal or dual infeasible if a limit was hit during solving. It must not be used as a dual bound if the LP solution status is SCIP_LPSOLSTAT_ITERLIMIT or SCIP_LPSOLSTAT_TIMELIMIT.
- Parameters
-
lpexact current LP data set global SCIP settings res result pointer to store rational
Definition at line 7416 of file lpexact.c.
References SCIP_LpExact::fplp, SCIP_Lp::hasprovedbound, SCIP_LpExact::looseobjval, SCIP_LpExact::looseobjvalinf, SCIP_LpExact::lpobjval, SCIP_LpExact::nloosevars, NULL, SCIPrationalAdd(), SCIPrationalIsAbsInfinity(), SCIPrationalIsZero(), SCIPrationalSetNegInfinity(), and SCIPrationalSetRational().
Referenced by SCIPcertificatePrintDualboundExactLP(), SCIPgetLPExactObjval(), SCIPgetSolOrigObjExact(), SCIPgetSolTransObjExact(), SCIPlpExactSetCutoffbound(), SCIPnodeUpdateLowerboundLP(), and SCIPsolLinkLPSolExact().
◆ SCIPlpExactGetPseudoObjval()
| void SCIPlpExactGetPseudoObjval | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL * | res | ||
| ) |
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
- Parameters
-
lpexact current LP data set global SCIP settings res result pointer to store rational
Definition at line 7438 of file lpexact.c.
References NULL, SCIP_LpExact::pseudoobjval, SCIP_LpExact::pseudoobjvalinf, SCIPrationalSetNegInfinity(), and SCIPrationalSetRational().
Referenced by SCIPcertificatePrintDualboundPseudo(), SCIPgetSolOrigObjExact(), SCIPgetSolTransObjExact(), and SCIPsolLinkPseudoSolExact().
◆ SCIPlpExactShrinkCols()
| SCIP_RETCODE SCIPlpExactShrinkCols | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| int | newncols | ||
| ) |
removes all columns after the given number of cols from the LP
- Parameters
-
lpexact LP data set global SCIP settings newncols new number of columns in the LP
Definition at line 7455 of file lpexact.c.
References checkLinks, colExactUpdateDelLP(), SCIP_LpExact::cols, SCIP_Lp::diving, FALSE, SCIP_LpExact::flushed, SCIP_LpExact::fplp, SCIP_ColExact::len, SCIP_LpExact::lpifirstchgcol, SCIP_ColExact::lppos, MIN, SCIP_LpExact::ncols, NULL, SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPsetDebugMsg, SCIPvarGetColExact(), SCIPvarGetStatusExact(), and SCIP_ColExact::var.
Referenced by SCIPlpExactClear().
◆ SCIPlpExactShrinkRows()
| SCIP_RETCODE SCIPlpExactShrinkRows | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| int | newnrows | ||
| ) |
removes and releases all rows after the given number of rows from the LP
- Parameters
-
lpexact LP data blkmem block memory set global SCIP settings newnrows new number of rows in the LP
Definition at line 7503 of file lpexact.c.
References checkLinks, SCIP_RowExact::cols, FALSE, SCIP_LpExact::flushed, SCIP_RowExact::len, SCIP_RowExact::lpdepth, SCIP_LpExact::lpifirstchgrow, SCIP_RowExact::lppos, MIN, SCIP_LpExact::nrows, NULL, r, rowExactUpdateDelLP(), SCIP_LpExact::rows, SCIP_CALL, SCIP_OKAY, SCIProwExactRelease(), and SCIPsetDebugMsg.
Referenced by SCIPlpExactClear().
◆ SCIPlpExactDelRowset()
| SCIP_RETCODE SCIPlpExactDelRowset | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| int * | rowdstat | ||
| ) |
deletes the marked rows from the LP and the LP interface
- Parameters
-
lpexact current LP data blkmem block memory buffers set global SCIP settings rowdstat deletion status of rows: 1 if row should be deleted, 0 if not
Definition at line 2643 of file lpexact.c.
References checkLinks, SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, FALSE, SCIP_RowExact::lpdepth, SCIP_LpExact::lpiexact, SCIP_LpExact::lpifirstchgrow, SCIP_RowExact::lpipos, SCIP_LpExact::lpirows, SCIP_LpExact::lpobjval, SCIP_RowExact::lppos, SCIP_LpExact::lpsolstat, markRowExactDeleted(), SCIP_LpExact::nchgrows, SCIP_LpExact::nlpirows, SCIP_LpExact::nremovablerows, SCIP_LpExact::nrows, NULL, r, SCIP_RowExact::removable, rowExactUpdateDelLP(), SCIP_LpExact::rows, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiExactDelRowset(), SCIPrationalSetInfinity(), SCIProwExactRelease(), and SCIP_LpExact::solved.
Referenced by SCIPlpExactSyncLPs().
◆ SCIPlpExactReset()
| SCIP_RETCODE SCIPlpExactReset | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue | ||
| ) |
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
- Parameters
-
lpexact LP data blkmem block memory set global SCIP settings stat problem statistics eventqueue event queue
Definition at line 7550 of file lpexact.c.
References SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, FALSE, SCIP_LpExact::lastlpalgo, SCIP_LpExact::lpobjval, SCIP_LpExact::lpsolstat, NULL, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpExactClear(), SCIPlpExactFlush(), SCIPrationalSetReal(), SCIP_LpExact::solisbasic, SCIP_LpExact::solved, and TRUE.
Referenced by freeSolve().
◆ SCIPlpExactClear()
| SCIP_RETCODE SCIPlpExactClear | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set | ||
| ) |
removes all columns and rows from LP, releases all rows
- Parameters
-
lpexact LP data blkmem block memory set global SCIP settings
Definition at line 7581 of file lpexact.c.
References SCIP_Lp::diving, SCIP_LpExact::fplp, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpExactShrinkCols(), SCIPlpExactShrinkRows(), and SCIPsetDebugMsg.
Referenced by SCIPlpExactFree(), and SCIPlpExactReset().
◆ SCIPlpExactForceExactSolve()
| void SCIPlpExactForceExactSolve | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set | ||
| ) |
forces an exact lp to be solved in the next exact bound computation
- Parameters
-
lpexact exact LP data set global SCIP settings
Definition at line 7598 of file lpexact.c.
References SCIP_LpExact::forceexactsolve, NULL, and TRUE.
Referenced by solveNode().
◆ SCIPlpExactForceSafeBound()
| void SCIPlpExactForceSafeBound | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set | ||
| ) |
forces the next exact bound computation to be executed even in probing mode
- Parameters
-
lpexact exact LP data set global SCIP settings
Definition at line 7614 of file lpexact.c.
References SCIP_LpExact::forcesafebound, NULL, and TRUE.
Referenced by SCIPlpSolveAndEval(), and SCIPtreeEndProbing().
◆ SCIPlpExactAllowExactSolve()
| void SCIPlpExactAllowExactSolve | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_Bool | allowexact | ||
| ) |
allows an exact lp to be solved in the next exact bound computation
- Parameters
-
lpexact exact LP data set global SCIP settings allowexact TRUE if next safe bounding call should be allowed to be exact, FALSE otherwise
Definition at line 7630 of file lpexact.c.
References SCIP_LpExact::allowexactsolve, and NULL.
Referenced by priceAndCutLoop(), and SCIPlpExactComputeSafeBound().
◆ SCIPlpExactGetSolstat()
| SCIP_LPSOLSTAT SCIPlpExactGetSolstat | ( | SCIP_LPEXACT * | lpexact | ) |
gets solution status of current exact LP
- Parameters
-
lpexact current LP data
Definition at line 8084 of file lpexact.c.
References SCIP_LpExact::flushed, SCIP_LpExact::lpsolstat, NULL, and SCIP_LPSOLSTAT_NOTSOLVED.
Referenced by SCIPgetLPExactSolstat(), SCIPlpExactEndDive(), SCIPlpExactStartDive(), SCIPnodeUpdateLowerboundLP(), and SCIPsolveExactDiveLP().
◆ SCIPlpExactSetCutoffbound()
| SCIP_RETCODE SCIPlpExactSetCutoffbound | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_Real | cutoffbound | ||
| ) |
sets the upper objective limit of the exact LP solver
- Parameters
-
lpexact current exact LP data set global SCIP settings cutoffbound new upper objective limit
Definition at line 4178 of file lpexact.c.
References SCIP_LpExact::cutoffbound, FALSE, SCIP_LpExact::flushed, lpCutoffDisabled, SCIP_LpExact::lpobjval, SCIP_LpExact::lpsolstat, NULL, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpExactGetObjval(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsGEReal(), SCIPrationalSetInfinity(), SCIPsetDebugMsg, and SCIP_LpExact::solved.
Referenced by SCIPlpSetCutoffbound().
◆ SCIPlpExactSolveAndEval()
| SCIP_RETCODE SCIPlpExactSolveAndEval | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_LP * | lp, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_PROB * | prob, | ||
| SCIP_Longint | itlim, | ||
| SCIP_Bool * | lperror, | ||
| SCIP_Bool | usefarkas | ||
| ) |
solves the LP with simplex algorithm, and copy the solution into the column's data
- Parameters
-
lpexact LP data lp LP data set global SCIP settings messagehdlr message handler blkmem block memory buffers stat problem statistics eventqueue event queue prob problem data itlim maximal number of LP iterations to perform, or -1 for no limit lperror pointer to store whether an unresolved LP error occurred usefarkas are we aiming to prove infeasibility?
Definition at line 4477 of file lpexact.c.
References SCIP_Lp::cutoffbound, SCIP_LpExact::cutoffbound, SCIP_Lp::dualchecked, SCIP_LpExact::dualfeasible, FALSE, getFiniteLooseObjvalExact(), SCIP_Lp::hasprovedbound, lpCutoffDisabled, lpExactFlushAndSolve(), lpExactNumericalTroubleMessage(), SCIP_LpExact::lpiexact, SCIP_Lp::lpiobjlim, SCIP_LpExact::lpiobjlim, SCIP_Lp::lpobjval, SCIP_LpExact::lpobjval, SCIP_Lp::lpsolstat, SCIP_LpExact::lpsolstat, MIN, SCIP_Stat::nclockskipsleft, SCIP_Lp::ncols, SCIP_Stat::nexlp, SCIP_Stat::nexlpinf, SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Prob::nvars, SCIP_Lp::primalchecked, SCIP_LpExact::primalfeasible, SCIP_Stat::provedfeaslptime, SCIP_Stat::provedinfeaslptime, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_LONGINT_FORMAT, 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_R_ROUND_DOWNWARDS, SCIP_Real, SCIP_STATUS_TIMELIMIT, SCIP_VERBLEVEL_FULL, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPlpExactGetDualfarkas(), SCIPlpExactGetIterations(), SCIPlpExactGetSol(), SCIPlpExactGetUnboundedSol(), SCIPlpiExactGetObjval(), SCIPlpiExactHasDualRay(), SCIPmessagePrintInfo(), SCIPmessagePrintVerbInfo(), SCIPmessagePrintWarning(), SCIPrationalCreateBuffer(), SCIPrationalDebugMessage, SCIPrationalFreeBuffer(), SCIPrationalIsGEReal(), SCIPrationalIsLTReal(), SCIPrationalRoundReal(), SCIPsetDebugMsg, SCIPsetGetCharParam(), SCIPsetInfinity(), SCIPsetSetCharParam(), SCIPsolveIsStopped(), SCIPstatAdd, SCIPwarningMessage(), SCIP_Lp::solved, SCIP_LpExact::solved, SCIP_Stat::status, SCIP_Stat::timefailexlp, SCIP_Stat::timefailexlpinf, and TRUE.
Referenced by SCIPlpExactComputeSafeBound(), and SCIPsolveExactDiveLP().
◆ SCIPlpExactGetState()
| SCIP_RETCODE SCIPlpExactGetState | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_LPISTATE ** | lpistate | ||
| ) |
stores exact LP state (like basis information) into LP state object
- Parameters
-
lpexact exact LP data blkmem block memory lpistate pointer to LP state information (like basis information)
Definition at line 8094 of file lpexact.c.
References SCIP_LpExact::flushed, SCIP_LpExact::lpiexact, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiExactGetState(), and SCIP_LpExact::solved.
◆ SCIPlpExactSetState()
| SCIP_RETCODE SCIPlpExactSetState | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPISTATE * | lpistate, | ||
| SCIP_Bool | wasprimfeas, | ||
| SCIP_Bool | wasprimchecked, | ||
| SCIP_Bool | wasdualfeas, | ||
| SCIP_Bool | wasdualchecked | ||
| ) |
loads exact LP state (like basis information) into solver
- Parameters
-
lpexact exact LP data blkmem block memory set global SCIP settings eventqueue event queue lpistate LP state information (like basis information) wasprimfeas primal feasibility when LP state information was stored wasprimchecked true if the LP solution has passed the primal feasibility check wasdualfeas dual feasibility when LP state information was stored wasdualchecked true if the LP solution has passed the dual feasibility check
Definition at line 8118 of file lpexact.c.
References SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, FALSE, SCIP_LpExact::flushed, SCIP_LpExact::lpiexact, NULL, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, SCIP_CALL, SCIP_OKAY, SCIPlpExactFlush(), SCIPlpiExactHasStateBasis(), SCIPlpiExactSetState(), SCIP_LpExact::solisbasic, and SCIP_LpExact::solved.
Referenced by SCIPlpExactEndDive().
◆ SCIPlpExactFreeState()
| SCIP_RETCODE SCIPlpExactFreeState | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_LPISTATE ** | lpistate | ||
| ) |
frees exact LP state information
- Parameters
-
lpexact exact LP data blkmem block memory lpistate pointer to LP state information (like basis information)
Definition at line 8160 of file lpexact.c.
References SCIP_LpExact::lpiexact, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiExactFreeState().
Referenced by SCIPlpExactEndDive().
◆ SCIPlpExactStartDive()
| SCIP_RETCODE SCIPlpExactStartDive | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat | ||
| ) |
starts exact LP diving and saves bounds and objective values of columns to the current nodes's values
initiates exact LP diving
- Parameters
-
lpexact current exact LP data blkmem block memory set global SCIP settings stat problem statistics
Definition at line 8177 of file lpexact.c.
References colExactStoreSolVals(), SCIP_LpExact::cols, SCIP_LpExact::divelpistate, SCIP_LpExact::divelpwasdualchecked, SCIP_LpExact::divelpwasdualfeas, SCIP_LpExact::divelpwasprimchecked, SCIP_LpExact::divelpwasprimfeas, SCIP_LpExact::divenolddomchgs, SCIP_Lp::diving, SCIP_LpExact::diving, SCIP_LpExact::divinglpiitlim, SCIP_Stat::domchgcount, SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, FALSE, SCIP_LpExact::flushed, SCIP_LpExact::fplp, SCIP_ColExact::lb, lpExactStoreSolVals(), SCIP_LpExact::lpiexact, SCIP_LpExactSolVals::lpsolstat, SCIP_LpExact::lpsolstat, SCIP_LpExact::ncols, SCIP_LpExact::ndivechgsides, SCIP_LpExact::ndivingrows, SCIP_LpExact::nrows, NULL, SCIP_ColExact::obj, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, r, rowExactStoreSolVals(), SCIP_LpExact::rows, 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, SCIPlpExactGetDualfarkas(), SCIPlpExactGetSol(), SCIPlpExactGetSolstat(), SCIPlpExactGetUnboundedSol(), SCIPlpiExactGetIntpar(), SCIPlpiExactGetState(), SCIPrationalIsEQ(), SCIPsetDebugMsg, SCIPvarGetColExact(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), SCIPvarGetStatusExact(), SCIPvarGetUbLocalExact(), SCIP_LpExact::solved, SCIP_LpExact::storedsolvals, TRUE, SCIP_ColExact::ub, and SCIP_ColExact::var.
Referenced by SCIPstartExactDive().
◆ SCIPlpExactEndDive()
| SCIP_RETCODE SCIPlpExactEndDive | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_VAR ** | vars, | ||
| int | nvars | ||
| ) |
quits exact LP diving and resets bounds and objective values of columns to the current node's values
- Parameters
-
lpexact current exact LP data blkmem block memory set global SCIP settings stat problem statistics eventqueue event queue vars array with all active variables nvars number of active variables
Definition at line 8280 of file lpexact.c.
References colExactRestoreSolVals(), SCIP_LpExact::cols, SCIP_LpExact::divechgrows, SCIP_LpExact::divechgsides, SCIP_LpExact::divechgsidetypes, SCIP_LpExact::divelpistate, SCIP_LpExact::divelpwasdualchecked, SCIP_LpExact::divelpwasdualfeas, SCIP_LpExact::divelpwasprimchecked, SCIP_LpExact::divelpwasprimfeas, SCIP_LpExact::diving, SCIP_LpExact::divinglpiitlim, SCIP_LpExact::divingobjchg, FALSE, SCIP_LpExact::flushed, SCIP_ColExact::lb, SCIP_Stat::lpcount, lpExactRestoreSolVals(), lpExactSetIterationLimit(), SCIP_LpExactSolVals::lpissolved, SCIP_LpExactSolVals::lpobjval, SCIP_LpExact::lpobjval, SCIP_LpExactSolVals::lpsolstat, SCIP_LpExact::lpsolstat, SCIP_LpExact::ncols, SCIP_LpExact::ndivechgsides, SCIP_LpExact::nrows, NULL, SCIP_ColExact::obj, r, rowExactRestoreSolVals(), SCIP_LpExact::rows, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_SIDETYPE_LEFT, SCIP_VARSTATUS_COLUMN, SCIPcolExactChgLb(), SCIPcolExactChgObj(), SCIPcolExactChgUb(), SCIPlpExactFreeState(), SCIPlpExactGetSolstat(), SCIPlpExactSetState(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalSetRational(), SCIProwExactChgLhs(), SCIProwExactChgRhs(), SCIPsetDebugMsg, SCIPvarGetColExact(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), SCIPvarGetStatus(), SCIPvarGetStatusExact(), SCIPvarGetUbLocalExact(), SCIP_LpExact::solved, SCIP_LpExact::storedsolvals, TRUE, SCIP_ColExact::ub, and SCIP_ColExact::var.
Referenced by SCIPendExactDive().
◆ SCIPlpExactWrite()
| SCIP_RETCODE SCIPlpExactWrite | ( | SCIP_LPEXACT * | lpexact, |
| const char * | fname | ||
| ) |
writes exact LP to a file
- Parameters
-
lpexact current LP data fname file name
Definition at line 8434 of file lpexact.c.
References SCIP_LpExact::flushed, SCIP_LpExact::lpiexact, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiExactWriteLP().
Referenced by SCIPwriteLPexact().
◆ SCIPlpExactOverwriteFpDualSol()
| void SCIPlpExactOverwriteFpDualSol | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_Bool | dualfarkas | ||
| ) |
overwrites the dual values stored in the fp lp with exact values
- Parameters
-
lpexact current LP data dualfarkas TRUE if farkas proof, FALSE if dual sol?
Definition at line 8449 of file lpexact.c.
References SCIP_LpExact::cols, SCIP_Row::dualfarkas, SCIP_RowExact::dualfarkas, SCIP_Row::dualsol, SCIP_RowExact::dualsol, SCIP_Col::farkascoef, SCIP_ColExact::farkascoef, SCIP_ColExact::fpcol, SCIP_RowExact::fprow, SCIP_LpExact::ncols, SCIP_LpExact::nrows, NULL, r, SCIP_Col::redcost, SCIP_ColExact::redcost, SCIP_LpExact::rows, and SCIPrationalGetReal().
◆ SCIPlpExactSyncLPs()
| SCIP_RETCODE SCIPlpExactSyncLPs | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set | ||
| ) |
synchronizes the exact LP with cuts from the floating-point LP
- Parameters
-
lpexact LP data blkmem block memory set global SCIP settings
Definition at line 8474 of file lpexact.c.
References FALSE, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_Row::lppos, SCIP_LpExact::nrows, NULL, SCIP_Lp::rows, SCIP_LpExact::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPlpExactAddRow(), SCIPlpExactDelRowset(), SCIPlpExactGetNRows(), SCIPlpGetNRows(), SCIProwExactIsInLP(), SCIProwGetRowExact(), SCIProwIsInLP(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, and TRUE.
Referenced by lpExactFlushAndSolve(), and SCIPwriteLPexact().