Detailed Description
LP management methods and data structures for exact mirror of LP.
In LP management, we have to distinguish 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 lpExactFlush().
Definition in file lpexact.c.
#include "lpi/lpi.h"#include "lpiexact/lpiexact.h"#include "scip/clock.h"#include "scip/cutpool.h"#include "scip/event.h"#include "scip/intervalarith.h"#include "scip/lp.h"#include "scip/lpexact.h"#include "scip/misc.h"#include "scip/prob.h"#include "scip/pub_cons.h"#include "scip/pub_lp.h"#include "scip/pub_lpexact.h"#include "scip/pub_message.h"#include "scip/pub_misc.h"#include "scip/pub_misc_sort.h"#include "scip/pub_var.h"#include "scip/pub_tree.h"#include "scip/rational.h"#include "scip/scip_lp.h"#include "scip/scip_lpexact.h"#include "scip/scip_message.h"#include "scip/set.h"#include "scip/sepastoreexact.h"#include "scip/sol.h"#include "scip/solve.h"#include "scip/stat.h"#include "scip/struct_event.h"#include "scip/struct_lpexact.h"#include "scip/struct_prob.h"#include "scip/struct_set.h"#include "scip/struct_stat.h"#include "scip/struct_var.h"#include "scip/struct_cutpool.h"#include "scip/var.h"#include <string.h>#include <inttypes.h>Go to the source code of this file.
Macros | |
| #define | checkLinks(lp) |
| #define | lpCutoffDisabled(set) (set->lp_disablecutoff == 1 || (set->nactivepricers > 0 && set->lp_disablecutoff == 2)) |
| #define | MAXNUMTROUBLELPMSGS 10 |
Macro Definition Documentation
◆ checkLinks
◆ lpCutoffDisabled
◆ MAXNUMTROUBLELPMSGS
| #define MAXNUMTROUBLELPMSGS 10 |
Function Documentation
◆ SCIP_DECL_SORTPTRCOMP()
| SCIP_DECL_SORTPTRCOMP | ( | SCIProwExactComp | ) |
comparison method for sorting rows by non-decreasing index
Definition at line 77 of file lpexact.c.
References NULL, and SCIProwExactGetIndex().
◆ colExactInSync()
|
static |
checks if the exact column and its fpcol are consistent
- Parameters
-
colexact exact column set global SCIP settings
Definition at line 176 of file lpexact.c.
References SCIP_Col::flushedobj, SCIP_ColExact::flushedobj, SCIP_ColExact::fpcol, SCIP_Col::index, SCIP_ColExact::index, SCIP_Col::lb, SCIP_ColExact::lb, SCIP_ColExact::len, SCIP_Col::lpipos, SCIP_ColExact::lpipos, SCIP_Col::nlprows, NULL, SCIP_Col::obj, SCIP_ColExact::obj, SCIP_R_ROUND_DOWNWARDS, SCIP_R_ROUND_NEAREST, SCIP_R_ROUND_UPWARDS, SCIPrationalIsApproxEQReal(), SCIPrationalIsInfinity(), SCIPrationalIsNegInfinity(), SCIPsetIsInfinity(), TRUE, SCIP_Col::ub, SCIP_ColExact::ub, SCIP_Col::var, and SCIP_ColExact::var.
Referenced by lpExactInSync().
◆ rowExactInSync()
|
static |
checks if the exact row and its fprow are consistent
- Parameters
-
rowexact exact row set global SCIP settings msg message handler for debug output
Definition at line 203 of file lpexact.c.
References SCIP_Row::constant, SCIP_RowExact::constant, SCIP_RowExact::fprow, SCIP_Row::len, SCIP_RowExact::len, SCIP_Row::lhs, SCIP_RowExact::lhs, SCIP_Row::lppos, SCIP_RowExact::lppos, NULL, SCIP_Row::rhs, SCIP_RowExact::rhs, SCIP_Bool, SCIP_R_ROUND_NEAREST, SCIPABORT, SCIPdebug, SCIPrationalIsApproxEQReal(), SCIPrationalIsGEReal(), SCIPrationalIsInfinity(), SCIPrationalIsLEReal(), SCIPrationalIsNegInfinity(), SCIProwExactPrint(), SCIProwPrint(), SCIPsetIsInfinity(), and TRUE.
Referenced by lpExactInSync().
◆ lpExactInSync()
|
static |
checks if the exact lp and lp are consistent (same number of rows/cols, and all cols/rows in sync)
- Parameters
-
lpexact exact lp set global SCIP settings msg message handler for debug output
Definition at line 237 of file lpexact.c.
References colExactInSync(), SCIP_LpExact::cols, SCIP_LpExact::fplp, SCIP_Lp::ncols, SCIP_LpExact::ncols, SCIP_Lp::nrows, SCIP_LpExact::nrows, NULL, rowExactInSync(), SCIP_LpExact::rows, and TRUE.
Referenced by SCIPlpExactIsSynced().
◆ ensureRowexsSize()
|
static |
ensures that rows array can store at least num entries
- Parameters
-
lpexact current LP data set global SCIP settings num minimum number of entries to store
Definition at line 270 of file lpexact.c.
References BMSreallocMemoryArray, SCIP_LpExact::nrows, SCIP_LpExact::rows, SCIP_LpExact::rowssize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPlpExactAddRow().
◆ colExactSortLP()
|
static |
sorts column entries of linked rows currently in the LP such that lower row indices precede higher ones
- Parameters
-
col column to be sorted
Definition at line 293 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_ColExact::lprowssorted, SCIP_ColExact::nlprows, NULL, SCIP_ColExact::rows, SCIPsortPtrPtrInt(), TRUE, and SCIP_ColExact::vals.
Referenced by colExactSearchCoef().
◆ colExactSortNonLP()
|
static |
sorts column entries of unlinked rows or rows currently not in the LP such that lower row indices precede higher ones
- Parameters
-
col column to be sorted
Definition at line 326 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_ColExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_ColExact::nlprows, SCIP_ColExact::nonlprowssorted, NULL, SCIP_ColExact::rows, SCIPsortPtrPtrInt(), TRUE, and SCIP_ColExact::vals.
Referenced by colExactSearchCoef().
◆ rowExactSortLP()
|
static |
sorts row entries of linked columns currently in the LP such that lower column indices precede higher ones
- Parameters
-
row row to be sorted
Definition at line 360 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::delaysort, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_RowExact::nlpcols, NULL, SCIP_ColExact::rows, SCIPsortIntIntPtrPtrInterval(), TRUE, SCIP_RowExact::vals, and SCIP_RowExact::valsinterval.
Referenced by rowExactSearchCoef(), and SCIProwExactSort().
◆ rowExactSortNonLP()
|
static |
sorts row entries of unlinked columns or columns currently not in the LP such that lower column indices precede higher ones
- Parameters
-
row row to be sorted
Definition at line 394 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::delaysort, SCIP_RowExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::nlpcols, SCIP_RowExact::nonlpcolssorted, NULL, SCIP_ColExact::rows, SCIPsortIntIntPtrPtrInterval(), TRUE, SCIP_RowExact::vals, and SCIP_RowExact::valsinterval.
Referenced by rowExactSearchCoef(), and SCIProwExactSort().
◆ colExactEnsureSize()
|
static |
ensures, that row array of column can store at least num entries
- Parameters
-
col LP column blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 427 of file lpexact.c.
References BMSreallocBlockMemoryArray, SCIP_ColExact::len, SCIP_ColExact::linkpos, NULL, SCIP_ColExact::rows, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBlock(), SCIPsetCalcMemGrowSize(), SCIP_ColExact::size, and SCIP_ColExact::vals.
Referenced by colExactAddCoef().
◆ ensureColexsSize()
|
static |
ensures, that cols array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 463 of file lpexact.c.
References BMSreallocMemoryArray, SCIP_LpExact::cols, SCIP_LpExact::colssize, SCIP_LpExact::ncols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPlpExactAddCol().
◆ ensureChgcolsSize()
|
static |
ensures, that chgcols array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 486 of file lpexact.c.
References BMSreallocMemoryArray, SCIP_LpExact::chgcols, SCIP_LpExact::chgcolssize, SCIP_LpExact::nchgcols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by insertColChgcols().
◆ ensureLpiExactcolsSize()
|
static |
ensures, that lpicols array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 509 of file lpexact.c.
References BMSreallocMemoryArray, SCIP_LpExact::lpicols, SCIP_LpExact::lpicolssize, SCIP_LpExact::nlpicols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by lpExactFlushAddCols().
◆ ensureLpirowexactsSize()
|
static |
ensures, that lpirows array can store at least num entries
- Parameters
-
lp current LP data set global SCIP settings num minimum number of entries to store
Definition at line 532 of file lpexact.c.
References BMSreallocMemoryArray, SCIP_LpExact::lpirows, SCIP_LpExact::lpirowssize, SCIP_LpExact::nlpirows, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by lpExactFlushAddRows().
◆ colExactSearchCoefPart()
|
static |
searches coefficient in part of the column, returns position in col vector or -1 if not found
- Parameters
-
col column to be searched in row coefficient to be searched for minpos first position of search range maxpos last position of search range
Definition at line 555 of file lpexact.c.
References SCIP_RowExact::index, SCIP_ColExact::linkpos, SCIP_RowExact::lppos, NULL, and SCIP_ColExact::rows.
Referenced by colExactSearchCoef().
◆ colExactSearchCoef()
|
static |
searches coefficient in column, returns position in col vector or -1 if not found
- Parameters
-
col column to be searched in row coefficient to be searched for
Definition at line 591 of file lpexact.c.
References colExactSearchCoefPart(), colExactSortLP(), colExactSortNonLP(), SCIP_ColExact::len, SCIP_RowExact::lppos, SCIP_ColExact::lprowssorted, SCIP_ColExact::nlprows, SCIP_ColExact::nonlprowssorted, NULL, and SCIP_ColExact::nunlinked.
Referenced by SCIPcolExactChgCoef(), SCIPcolExactDelCoef(), and SCIPcolExactIncCoef().
◆ rowExactSearchCoefPart()
|
static |
searches coefficient in part of the row, returns position in col vector or -1 if not found
- Parameters
-
row row to be searched in col coefficient to be searched for minpos first position of search range maxpos last position of search range
Definition at line 630 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_ColExact::index, SCIP_RowExact::linkpos, SCIP_ColExact::lppos, and NULL.
Referenced by rowExactSearchCoef().
◆ rowExactSearchCoef()
|
static |
searches coefficient in row, returns position in row vector or -1 if not found; if the sorting of the row is delayed, returns -1
- Parameters
-
row row to be searched in col coefficient to be searched for
Definition at line 669 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::delaysort, SCIP_RowExact::len, SCIP_RowExact::lpcolssorted, SCIP_ColExact::lppos, SCIP_RowExact::nlpcols, SCIP_RowExact::nonlpcolssorted, NULL, SCIP_RowExact::nunlinked, rowExactSearchCoefPart(), rowExactSortLP(), and rowExactSortNonLP().
Referenced by SCIProwExactChgCoef(), SCIProwExactDelCoef(), and SCIProwExactIncCoef().
◆ coefChangedExact()
|
static |
announces, that the given coefficient in the constraint matrix changed
- Parameters
-
row LP row col LP col lp current LP data
Definition at line 726 of file lpexact.c.
References SCIP_ColExact::coefchanged, SCIP_RowExact::coefchanged, FALSE, SCIP_LpExact::flushed, SCIP_LpExact::lpifirstchgcol, SCIP_LpExact::lpifirstchgrow, SCIP_ColExact::lpipos, SCIP_RowExact::lpipos, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, NULL, SCIP_RowExact::pseudoactivity, SCIPrationalSetInfinity(), and TRUE.
Referenced by colExactAddCoef(), colExactChgCoefPos(), colExactDelCoefPos(), rowExactAddCoef(), rowExactChgCoefPos(), and rowExactDelCoefPos().
◆ colExactMoveCoef()
|
static |
moves a coefficient in a column to a different place, and updates all corresponding data structures
- Parameters
-
col LP column oldpos old position of coefficient newpos new position of coefficient
Definition at line 772 of file lpexact.c.
References SCIP_RowExact::cols, FALSE, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lppos, SCIP_ColExact::lprowssorted, SCIP_ColExact::nonlprowssorted, NULL, SCIP_ColExact::rows, SCIPrationalSetRational(), and SCIP_ColExact::vals.
Referenced by colExactAddCoef(), and colExactDelCoefPos().
◆ colExactSwapCoefs()
|
static |
swaps two coefficients in a column, and updates all corresponding data structures
- Parameters
-
col LP column buffer buffer for temp real pos1 position of first coefficient pos2 position of second coefficient
Definition at line 809 of file lpexact.c.
References SCIP_RowExact::cols, FALSE, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lppos, SCIP_ColExact::lprowssorted, SCIP_ColExact::nonlprowssorted, NULL, SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetRational(), and SCIP_ColExact::vals.
Referenced by rowExactAddCoef(), rowExactUpdateAddLP(), and rowExactUpdateDelLP().
◆ rowExactMoveCoef()
|
static |
moves a coefficient in a row to a different place, and updates all corresponding data structures
- Parameters
-
row LP row oldpos old position of coefficient newpos new position of coefficient
Definition at line 877 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::cols_index, FALSE, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_ColExact::lppos, SCIP_RowExact::nonlpcolssorted, NULL, SCIP_ColExact::rows, SCIPrationalSetRational(), SCIP_RowExact::vals, and SCIP_RowExact::valsinterval.
Referenced by rowExactAddCoef(), and rowExactDelCoefPos().
◆ rowExactSwapCoefs()
|
static |
swaps two coefficients in a row, and updates all corresponding data structures
- Parameters
-
row LP row buffer buffer for temp real pos1 position of first coefficient pos2 position of second coefficient
Definition at line 915 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::cols_index, FALSE, SCIP_ColExact::index, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_ColExact::lppos, SCIP_RowExact::nonlpcolssorted, NULL, SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetRational(), SCIP_RowExact::vals, and SCIP_RowExact::valsinterval.
Referenced by colExactAddCoef(), colExactUpdateAddLP(), and colExactUpdateDelLP().
◆ rowExactAddCoef()
|
static |
forward declaration for rowExactAddCoef()
forward declaration for rowEactAddCoef()
- Parameters
-
row LP row blkmem block memory set global SCIP settings eventqueue event queue lp current LP data col LP column val value of coefficient linkpos position of row in the column's row array, or -1
Definition at line 1235 of file lpexact.c.
References coefChangedExact(), colExactAddCoef(), colExactSwapCoefs(), SCIP_RowExact::cols, SCIP_RowExact::cols_index, FALSE, SCIP_ColExact::fpcol, SCIP_RowExact::fprow, SCIP_ColExact::index, SCIP_RowExact::integral, SCIP_RowExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_ColExact::lppos, SCIP_RowExact::lppos, SCIP_ColExact::lprowssorted, SCIP_Row::name, SCIP_RowExact::nlocks, SCIP_RowExact::nlpcols, SCIP_ColExact::nlprows, SCIP_RowExact::nonlpcolssorted, NULL, SCIP_ColExact::nunlinked, SCIP_RowExact::nunlinked, rowExactMoveCoef(), SCIP_ColExact::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcolIsIntegral(), SCIPerrorMessage, SCIPintervalSetRational(), SCIPrationalCopyBlock(), SCIPrationalDebugMessage, SCIPrationalIsIntegral(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIProwExactEnsureSize(), SCIPvarGetName(), SCIP_RowExact::vals, SCIP_RowExact::valsinterval, and SCIP_ColExact::var.
Referenced by colExactAddCoef(), colExactLink(), SCIProwExactAddCoef(), SCIProwExactChgCoef(), and SCIProwExactIncCoef().
◆ insertColChgcols()
|
static |
insert column in the chgcols list (if not already there)
- Parameters
-
col LP column to change set global SCIP settings lp current LP data
Definition at line 1005 of file lpexact.c.
References SCIP_LpExact::chgcols, ensureChgcolsSize(), FALSE, SCIP_LpExact::flushed, SCIP_ColExact::lbchanged, SCIP_LpExact::nchgcols, SCIP_ColExact::objchanged, SCIP_CALL, SCIP_OKAY, and SCIP_ColExact::ubchanged.
Referenced by SCIPcolExactChgLb(), SCIPcolExactChgObj(), and SCIPcolExactChgUb().
◆ colExactAddCoef()
|
static |
adds a previously non existing coefficient to an LP column
- Parameters
-
col LP column blkmem block memory set global SCIP settings eventqueue event queue lp current LP data row LP row val value of coefficient linkpos position of column in the row's col array, or -1
Definition at line 1026 of file lpexact.c.
References coefChangedExact(), colExactEnsureSize(), colExactMoveCoef(), SCIP_RowExact::cols, FALSE, SCIP_RowExact::fprow, SCIP_RowExact::index, SCIP_ColExact::len, SCIP_Row::linkpos, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_ColExact::lppos, SCIP_RowExact::lppos, SCIP_ColExact::lprowssorted, SCIP_Row::name, SCIP_RowExact::nlpcols, SCIP_ColExact::nlprows, SCIP_ColExact::nonlprowssorted, NULL, SCIP_ColExact::nunlinked, SCIP_RowExact::nunlinked, rowExactAddCoef(), rowExactSwapCoefs(), SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalCopyBlock(), SCIPrationalDebugMessage, SCIPrationalIsZero(), SCIPrationalSetRational(), SCIPvarGetName(), SCIP_ColExact::vals, and SCIP_ColExact::var.
Referenced by rowExactAddCoef(), rowExactLink(), SCIPcolExactAddCoef(), SCIPcolExactChgCoef(), and SCIPcolExactIncCoef().
◆ colExactDelCoefPos()
|
static |
deletes coefficient at given position from column
- Parameters
-
col column to be changed set global SCIP settings lpexact current LP data pos position in column vector to delete
Definition at line 1154 of file lpexact.c.
References coefChangedExact(), colExactMoveCoef(), SCIP_RowExact::cols, SCIP_ColExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::lppos, SCIP_ColExact::nlprows, NULL, SCIP_ColExact::nunlinked, SCIP_ColExact::rows, SCIP_OKAY, SCIPrationalDebugMessage, SCIPvarGetName(), SCIP_ColExact::vals, and SCIP_ColExact::var.
Referenced by colExactChgCoefPos(), rowExactUnlink(), SCIPcolExactDelCoef(), and SCIProwExactDelCoef().
◆ colExactChgCoefPos()
|
static |
changes a coefficient at given position of an LP column
- Parameters
-
col LP column set global SCIP settings lp current LP data pos position in column vector to change val value of coefficient
Definition at line 1200 of file lpexact.c.
References coefChangedExact(), colExactDelCoefPos(), SCIP_RowExact::cols, SCIP_RowExact::fprow, SCIP_ColExact::linkpos, SCIP_Row::name, NULL, SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalDebugMessage, SCIPrationalIsEQ(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIPvarGetName(), SCIP_ColExact::vals, and SCIP_ColExact::var.
Referenced by SCIPcolExactChgCoef(), SCIPcolExactIncCoef(), SCIProwExactChgCoef(), and SCIProwExactIncCoef().
◆ rowExactDelCoefPos()
|
static |
deletes coefficient at given position from row
- Parameters
-
row row to be changed set global SCIP settings lp current LP data pos position in row vector to delete
Definition at line 1370 of file lpexact.c.
References coefChangedExact(), SCIP_RowExact::cols, SCIP_RowExact::fprow, SCIP_RowExact::len, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_ColExact::lppos, SCIP_Row::name, SCIP_RowExact::nlocks, SCIP_RowExact::nlpcols, NULL, SCIP_RowExact::nunlinked, rowExactMoveCoef(), SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPrationalDebugMessage, SCIPvarGetName(), SCIP_RowExact::vals, and SCIP_ColExact::var.
Referenced by rowExactChgCoefPos(), SCIPcolExactDelCoef(), and SCIProwExactDelCoef().
◆ rowExactChgCoefPos()
|
static |
changes a coefficient at given position of an LP row
- Parameters
-
row LP row set global SCIP settings lp current LP data pos position in row vector to change val value of coefficient
Definition at line 1421 of file lpexact.c.
References coefChangedExact(), SCIP_RowExact::cols, SCIP_ColExact::fpcol, SCIP_RowExact::fprow, SCIP_RowExact::integral, SCIP_Row::name, SCIP_RowExact::nlocks, NULL, rowExactDelCoefPos(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPcolIsIntegral(), SCIPerrorMessage, SCIPintervalSetRational(), SCIPrationalDebugMessage, SCIPrationalIsEQ(), SCIPrationalIsIntegral(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIPvarGetName(), SCIP_RowExact::vals, SCIP_RowExact::valsinterval, and SCIP_ColExact::var.
Referenced by SCIPcolExactChgCoef(), SCIPcolExactIncCoef(), SCIProwExactChgCoef(), and SCIProwExactIncCoef().
◆ colExactLink()
|
static |
insert column coefficients in corresponding rows
- Parameters
-
col column data blkmem block memory set global SCIP settings eventqueue event queue lp current LP data
Definition at line 1473 of file lpexact.c.
References checkLinks, SCIP_RowExact::cols, SCIP_ColExact::fpcol, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_ColExact::nlprows, NULL, SCIP_ColExact::nunlinked, rowExactAddCoef(), SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalIsZero(), SCIPsetDebugMsg, SCIPvarGetName(), SCIP_ColExact::vals, SCIP_Col::var, and SCIP_ColExact::var.
Referenced by lpExactFlushAddCols(), and SCIPlpExactLink().
◆ rowExactLink()
|
static |
insert row coefficients in corresponding columns
- Parameters
-
row row data blkmem block memory set global SCIP settings eventqueue event queue lp current LP data
Definition at line 1517 of file lpexact.c.
References checkLinks, colExactAddCoef(), SCIP_RowExact::cols, SCIP_RowExact::fprow, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_Row::name, SCIP_RowExact::nlpcols, NULL, SCIP_RowExact::nunlinked, SCIP_ColExact::rows, SCIP_CALL, SCIP_OKAY, SCIPrationalIsZero(), SCIPsetDebugMsg, and SCIP_RowExact::vals.
Referenced by lpExactFlushAddRows(), and SCIPlpExactLink().
◆ rowExactUnlink()
|
static |
removes row coefficients from corresponding columns
- Parameters
-
row row data set global SCIP settings lp current LP data
Definition at line 1560 of file lpexact.c.
References colExactDelCoefPos(), SCIP_RowExact::len, NULL, SCIP_RowExact::nunlinked, SCIP_CALL, SCIP_OKAY, and SCIPsetDebugMsg.
Referenced by SCIProwExactFree().
◆ colExactUpdateAddLP()
|
static |
updates link data after addition of column
- Parameters
-
col LP column set global SCIP settings
Definition at line 1592 of file lpexact.c.
References SCIP_RowExact::cols, FALSE, SCIP_ColExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_ColExact::lppos, SCIP_RowExact::nlpcols, NULL, rowExactSwapCoefs(), SCIP_ColExact::rows, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPlpExactAddCol().
◆ rowExactUpdateAddLP()
|
static |
updates link data after addition of row
- Parameters
-
row LP row set global SCIP settings
Definition at line 1631 of file lpexact.c.
References colExactSwapCoefs(), SCIP_RowExact::cols, FALSE, SCIP_RowExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lppos, SCIP_ColExact::lprowssorted, SCIP_ColExact::nlprows, NULL, SCIP_ColExact::rows, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPlpExactAddRow().
◆ colExactUpdateDelLP()
|
static |
updates link data after removal of column
- Parameters
-
col LP column set global SCIP settings
Definition at line 1669 of file lpexact.c.
References SCIP_RowExact::cols, FALSE, SCIP_ColExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_ColExact::lppos, SCIP_RowExact::nlpcols, SCIP_RowExact::nonlpcolssorted, NULL, rowExactSwapCoefs(), SCIP_ColExact::rows, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPlpExactShrinkCols().
◆ rowExactUpdateDelLP()
|
static |
updates link data after removal of row
- Parameters
-
row LP row set global SCIP settings
Definition at line 1707 of file lpexact.c.
References colExactSwapCoefs(), SCIP_RowExact::cols, FALSE, SCIP_RowExact::len, SCIP_ColExact::linkpos, SCIP_RowExact::linkpos, SCIP_RowExact::lppos, SCIP_ColExact::nlprows, SCIP_ColExact::nonlprowssorted, NULL, SCIP_ColExact::rows, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPlpExactDelRowset(), and SCIPlpExactShrinkRows().
◆ markColexDeleted()
|
static |
resets column data to represent a column not in the LP solver
- Parameters
-
col column to be marked deleted
Definition at line 1749 of file lpexact.c.
References SCIP_ColExact::basisstatus, SCIP_ColExact::lpipos, NULL, SCIP_BASESTAT_ZERO, SCIP_ColExact::validfarkaslp, and SCIP_ColExact::validredcostlp.
Referenced by lpExactFlushDelCols().
◆ lpExactFlushDelCols()
|
static |
applies all cached column removals to the LP solver
- Parameters
-
lp current LP data
Definition at line 1763 of file lpexact.c.
References SCIP_ColExact::coefchanged, SCIP_LpExact::cols, SCIP_Lp::diving, FALSE, SCIP_LpExact::flushdeletedcols, SCIP_LpExact::fplp, SCIP_LpExact::lpicols, SCIP_LpExact::lpiexact, SCIP_LpExact::lpifirstchgcol, SCIP_ColExact::lpipos, SCIP_LpExact::lpsolstat, markColexDeleted(), SCIP_LpExact::ncols, SCIP_LpExact::nlpicols, NULL, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPdebugMessage, SCIPlpiExactDelCols(), SCIP_LpExact::solved, TRUE, and SCIP_LpExact::updateintegrality.
Referenced by SCIPlpExactFlush(), and SCIPlpExactLink().
◆ lpExactFlushAddCols()
|
static |
applies all cached column additions to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings eventqueue event queue
Definition at line 1810 of file lpexact.c.
References SCIP_ColExact::coefchanged, colExactLink(), SCIP_LpExact::cols, SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, ensureLpiExactcolsSize(), FALSE, SCIP_LpExact::flushaddedcols, SCIP_ColExact::flushedlb, SCIP_ColExact::flushedobj, SCIP_ColExact::flushedub, SCIP_ColExact::fpcol, SCIP_ColExact::lb, SCIP_ColExact::lbchanged, SCIP_ColExact::len, SCIP_LpExact::lpicols, SCIP_LpExact::lpiexact, SCIP_LpExact::lpifirstchgcol, SCIP_ColExact::lpipos, SCIP_RowExact::lpipos, SCIP_ColExact::lppos, SCIP_LpExact::lpsolstat, SCIP_LpExact::ncols, SCIP_LpExact::nlpicols, SCIP_ColExact::nlprows, NULL, SCIP_ColExact::obj, SCIP_ColExact::objchanged, SCIP_ColExact::rows, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPlpiExactAddCols(), SCIPrationalCreateBufferArray(), SCIPrationalFreeBufferArray(), SCIPrationalSetRational(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPvarGetColExact(), SCIPvarGetName(), SCIPvarGetStatusExact(), SCIP_LpExact::solved, TRUE, SCIP_ColExact::ub, SCIP_ColExact::ubchanged, SCIP_LpExact::updateintegrality, SCIP_ColExact::validfarkaslp, SCIP_ColExact::validredcostlp, SCIP_ColExact::vals, SCIP_Col::var, and SCIP_ColExact::var.
Referenced by SCIPlpExactFlush(), and SCIPlpExactLink().
◆ markRowexDeleted()
|
static |
resets row data to represent a row not in the LP solver
- Parameters
-
row row to be marked deleted
Definition at line 1952 of file lpexact.c.
References SCIP_RowExact::basisstatus, SCIP_RowExact::lpipos, NULL, SCIP_BASESTAT_BASIC, and SCIP_RowExact::validactivitylp.
Referenced by lpExactFlushDelRows().
◆ lpExactFlushDelRows()
|
static |
applies all cached row removals to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings
Definition at line 1965 of file lpexact.c.
References SCIP_RowExact::coefchanged, SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, FALSE, SCIP_LpExact::flushdeletedrows, SCIP_LpExact::lpiexact, SCIP_LpExact::lpifirstchgrow, SCIP_RowExact::lpipos, SCIP_LpExact::lpirows, SCIP_LpExact::lpsolstat, markRowexDeleted(), SCIP_LpExact::nlpirows, SCIP_LpExact::nrows, NULL, SCIP_LpExact::rows, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiExactDelRows(), SCIProwExactRelease(), SCIPsetDebugMsg, SCIP_LpExact::solved, and TRUE.
Referenced by SCIPlpExactFlush().
◆ lpExactFlushAddRows()
|
static |
applies all cached row additions and removals to the LP solver
- Parameters
-
lp current LP data blkmem block memory set global SCIP settings eventqueue event queue
Definition at line 2013 of file lpexact.c.
References SCIP_RowExact::coefchanged, SCIP_RowExact::cols, SCIP_RowExact::constant, ensureLpirowexactsSize(), FALSE, SCIP_LpExact::flushaddedrows, SCIP_RowExact::flushedlhs, SCIP_RowExact::flushedrhs, SCIP_ColExact::fpcol, SCIP_RowExact::fprow, SCIP_RowExact::len, SCIP_RowExact::lhs, SCIP_RowExact::lhschanged, SCIP_LpExact::lpiexact, SCIP_LpExact::lpifirstchgrow, SCIP_ColExact::lpipos, SCIP_RowExact::lpipos, SCIP_LpExact::lpirows, SCIP_RowExact::lppos, SCIP_LpExact::lpsolstat, SCIP_Row::name, SCIP_RowExact::nlpcols, SCIP_LpExact::nlpirows, SCIP_LpExact::nrows, NULL, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, r, SCIP_RowExact::rhs, SCIP_RowExact::rhschanged, rowExactLink(), SCIP_LpExact::rows, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiExactAddRows(), SCIPrationalCreateBufferArray(), SCIPrationalDebugMessage, SCIPrationalDiff(), SCIPrationalFreeBufferArray(), SCIPrationalSetRational(), SCIProwExactCapture(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPvarGetName(), SCIP_LpExact::solved, TRUE, SCIP_RowExact::vals, and SCIP_Col::var.
Referenced by SCIPlpExactFlush().
◆ lpExactFlushChgCols()
|
static |
applies all cached column bound and objective changes to the LP
- Parameters
-
lp current LP data set global SCIP settings
Definition at line 2146 of file lpexact.c.
References SCIP_LpExact::chgcols, SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, FALSE, SCIP_ColExact::flushedlb, SCIP_ColExact::flushedobj, SCIP_ColExact::flushedub, SCIP_ColExact::lb, SCIP_ColExact::lbchanged, SCIP_LpExact::lpiexact, SCIP_ColExact::lpipos, SCIP_LpExact::lpsolstat, SCIP_LpExact::nchgcols, SCIP_LpExact::ncols, NULL, SCIP_ColExact::obj, SCIP_ColExact::objchanged, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPlpiExactChgBounds(), SCIPlpiExactChgObj(), SCIPlpiExactGetBounds(), SCIPlpiExactGetObj(), SCIPlpiGetSolverName(), SCIPrationalCreateBuffer(), SCIPrationalCreateBufferArray(), SCIPrationalFreeBuffer(), SCIPrationalFreeBufferArray(), SCIPrationalIsEQ(), SCIPrationalSetRational(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPvarGetColExact(), SCIPvarGetStatusExact(), SCIP_LpExact::solved, SCIP_ColExact::ub, SCIP_ColExact::ubchanged, and SCIP_ColExact::var.
Referenced by SCIPlpExactFlush().
◆ lpExactFlushChgRows()
|
static |
applies all cached row side changes to the LP
- Parameters
-
lp current LP data set global SCIP settings
Definition at line 2282 of file lpexact.c.
References SCIP_LpExact::chgrows, SCIP_RowExact::constant, FALSE, SCIP_RowExact::flushedlhs, SCIP_RowExact::flushedrhs, SCIP_RowExact::lhs, SCIP_RowExact::lhschanged, SCIP_LpExact::lpiexact, SCIP_RowExact::lpipos, SCIP_LpExact::lpsolstat, SCIP_LpExact::nchgrows, SCIP_LpExact::nrows, NULL, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, SCIP_RowExact::rhs, SCIP_RowExact::rhschanged, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPlpiExactChgSides(), SCIPlpiExactGetSides(), SCIPlpiGetSolverName(), SCIPrationalCreateBuffer(), SCIPrationalCreateBufferArray(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalFreeBufferArray(), SCIPrationalIsEQ(), SCIPrationalSetRational(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, and SCIP_LpExact::solved.
Referenced by SCIPlpExactFlush().
◆ getFiniteLooseObjvalExact()
|
static |
gets finite part of objective value of current LP that results from LOOSE variables only. returns reference, so be careful not to change!
- Parameters
-
lp current LP data set global SCIP settings prob problem data
Definition at line 2390 of file lpexact.c.
References SCIP_LpExact::looseobjval, SCIP_LpExact::looseobjvalinf, SCIP_LpExact::nloosevars, NULL, and SCIPrationalIsZero().
Referenced by lpExactFlushAndSolve(), and SCIPlpExactSolveAndEval().
◆ 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().
◆ lpExactSetRealpar()
|
static |
sets parameter of type SCIP_Real in exact LP solver, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value to set parameter to success pointer to store whether the parameter was successfully changed
Definition at line 2488 of file lpexact.c.
References FALSE, SCIP_LpExact::lpiexact, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPlpiExactSetRealpar(), and TRUE.
Referenced by lpExactFlushAndSolve(), and lpExactSetObjlim().
◆ lpExactSetIntpar()
|
static |
sets parameter of type SCIP_Real in exact LP solver, ignoring unknown parameters
- Parameters
-
lp current LP data lpparam LP parameter value value to set parameter to success pointer to store whether the parameter was successfully changed
Definition at line 2515 of file lpexact.c.
References FALSE, SCIP_LpExact::lpiexact, NULL, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIPlpiExactSetIntpar(), and TRUE.
Referenced by lpExactSetIterationLimit().
◆ lpExactSetObjlim()
|
static |
sets the objective limit of the exact LP solver
Note that we are always minimizing.
- Parameters
-
lp current LP data set global SCIP settings objlim new objective limit success pointer to store whether the parameter was actually changed
Definition at line 2545 of file lpexact.c.
References FALSE, lpExactSetRealpar(), SCIP_LpExact::lpiexact, SCIP_LpExact::lpiobjlim, SCIP_LpExact::lpobjval, SCIP_LpExact::lpsolstat, NULL, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, SCIP_CALL, SCIP_LPPAR_OBJLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIP_Real, SCIPlpiExactGetRealpar(), SCIPlpiExactInfinity(), SCIPrationalSetInfinity(), SCIPsetIsInfinity(), and SCIP_LpExact::solved.
Referenced by lpExactFlushAndSolve().
◆ lpExactSetIterationLimit()
|
static |
sets the iteration limit of the LP solver
- Parameters
-
lp current LP data itlim maximal number of LP iterations to perform, or -1 for no limit
Definition at line 2594 of file lpexact.c.
References FALSE, lpExactSetIntpar(), SCIP_LpExact::lpiitlim, SCIP_LpExact::lpobjval, SCIP_LpExact::lpsolstat, NULL, SCIP_Bool, SCIP_CALL, SCIP_LPPAR_LPITLIM, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_OKAY, SCIPrationalSetInfinity(), and SCIP_LpExact::solved.
Referenced by lpExactFlushAndSolve(), and SCIPlpExactEndDive().
◆ markRowExactDeleted()
|
static |
resets row data to represent a row not in the LP solver
- Parameters
-
row row to be marked deleted
Definition at line 2628 of file lpexact.c.
References SCIP_RowExact::activity, SCIP_RowExact::basisstatus, SCIP_RowExact::dualfarkas, SCIP_RowExact::dualsol, SCIP_RowExact::lpipos, NULL, SCIP_BASESTAT_BASIC, SCIPrationalSetInfinity(), SCIPrationalSetReal(), and SCIP_RowExact::validactivitylp.
Referenced by SCIPlpExactDelRowset().
◆ 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().
◆ 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 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().
◆ 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().
◆ rowExactCreateFromRowLimitEncodingLength()
|
static |
changes an exact row, so that all denominators are bounded by set->exact_cutmaxdenom
- Parameters
-
row SCIP row rowexact exact row set SCIP settings blkmem block memory structure eventqueue the eventqueue lpexact the exact lp
Definition at line 3255 of file lpexact.c.
References SCIP_Row::cols, SCIP_RowExact::cols, SCIP_ColExact::fpcol, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_Row::len, SCIP_RowExact::len, NULL, SCIP_RowExact::rhs, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIP_R_ROUND_UPWARDS, SCIP_Real, SCIPcolGetColExact(), SCIPdebug, SCIPdebugMessage, SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPprintRow(), SCIPprintRowExact(), SCIPrationalAddProd(), SCIPrationalComputeApproximation(), SCIPrationalCreateBuffer(), SCIPrationalDenominatorIsLE(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalIsGE(), SCIPrationalIsGTReal(), SCIPrationalIsInfinity(), SCIPrationalIsLE(), SCIPrationalIsLTReal(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalIsZero(), SCIPrationalRoundReal(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIProwAddCoef(), SCIProwChgRhs(), SCIProwDelCoef(), SCIProwExactAddCoef(), SCIProwExactSort(), SCIPvarGetLbGlobal(), SCIPvarGetLbGlobalExact(), SCIPvarGetUbGlobalExact(), SCIP_Row::vals, SCIP_RowExact::vals, SCIP_RowExact::valsinterval, and SCIP_Col::var.
Referenced by 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.
◆ SCIPlpPsdataCreate()
|
static |
creates the data needed for project and shift bounding method
- Parameters
-
lpexact pointer to LP data object set global SCIP settings blkmem block memory buffers
Definition at line 3775 of file lpexact.c.
References BMSallocBlockMemory, FALSE, NULL, SCIP_LpExact::projshiftdata, SCIP_ALLOC, SCIP_OKAY, and TRUE.
Referenced by SCIPlpExactCreate().
◆ SCIPlpExactProjectShiftFreeLPIExact()
|
static |
frees the exact LPI in project-and-shift
- Parameters
-
lpiexact pointer to LPI object
Definition at line 3822 of file lpexact.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiExactClear(), SCIPlpiExactDelCols(), SCIPlpiExactDelRows(), SCIPlpiExactFree(), SCIPlpiExactGetNCols(), and SCIPlpiExactGetNRows().
Referenced by SCIPlpExactProjectShiftFree().
◆ SCIPlpExactProjectShiftFree()
|
static |
frees the data needed for project and shift bounding method
- Parameters
-
lpexact pointer to LP data object set global SCIP settings blkmem block memory buffers
Definition at line 3846 of file lpexact.c.
References BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, SCIP_LpExact::projshiftdata, SCIP_CALL, SCIP_OKAY, SCIPlpExactProjectShiftFreeLPIExact(), SCIPrationalFreeBlock(), and SCIPrationalFreeBlockArray().
Referenced by SCIPlpExactFree().
◆ 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().
◆ 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().
◆ lpExactNumericalTroubleMessage()
|
static |
prints message about numerical trouble
If message has verblevel at most high and display/verblevel is not full, then the message is not printed if already MAXNUMTROUBLELPMSGS messages were printed before in the current run.
- Parameters
-
messagehdlr message handler set global SCIP settings stat problem statistics verblevel verbosity level of message formatstr message format string ... arguments to format string
Definition at line 4233 of file lpexact.c.
References MAXNUMTROUBLELPMSGS, SCIP_Stat::nexlp, SCIP_Stat::nnodes, SCIP_Stat::nnumtroublelpmsgs, NULL, SCIP_LONGINT_FORMAT, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIP_VERBLEVEL_NONE, SCIPmessagePrintInfo(), and SCIPmessageVFPrintInfo().
Referenced by SCIPlpExactSolveAndEval().
◆ lpExactFlushAndSolve()
|
static |
flushes the exact LP and solves it with the primal or dual simplex algorithm, depending on the current basis feasibility
- Parameters
-
lpexact current exact LP data blkmem block memory set global SCIP settings messagehdlr message handler stat problem statistics prob problem data eventqueue event queue harditlim maximal number of LP iterations to perform (hard limit for all LP calls), or -1 for no limit fromscratch should the LP be solved from scratch without using current basis? lperror pointer to store whether an unresolved LP error occurred
Definition at line 4287 of file lpexact.c.
References SCIP_LpExact::cutoffbound, SCIP_LpExact::dualfeasible, FALSE, SCIP_LpExact::fplp, getFiniteLooseObjvalExact(), SCIP_Stat::lpcount, lpExactSetIterationLimit(), lpExactSetObjlim(), lpExactSetRealpar(), SCIP_Lp::lpi, SCIP_LpExact::lpiexact, SCIP_Lp::lpiobjlim, SCIP_LpExact::lpiobjlim, SCIP_Lp::lpobjval, SCIP_LpExact::lpobjval, SCIP_Lp::lpsolstat, SCIP_LpExact::lpsolstat, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_LpExact::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_LPERROR, SCIP_LPPAR_FROMSCRATCH, SCIP_LPPAR_LPINFO, SCIP_LPPAR_LPTILIM, 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, SCIPABORT, SCIPclockGetTime(), SCIPdebugMessage, SCIPerrorMessage, SCIPlpExactFlush(), SCIPlpExactIsSynced(), SCIPlpExactSyncLPs(), SCIPlpiExactExistsPrimalRay(), SCIPlpiExactGetInternalStatus(), SCIPlpiExactGetObjval(), SCIPlpiExactGetSolFeasibility(), SCIPlpiExactInfinity(), SCIPlpiExactIsDualFeasible(), SCIPlpiExactIsIterlimExc(), SCIPlpiExactIsObjlimExc(), SCIPlpiExactIsOptimal(), SCIPlpiExactIsPrimalFeasible(), SCIPlpiExactIsPrimalInfeasible(), SCIPlpiExactIsPrimalUnbounded(), SCIPlpiExactIsTimelimExc(), SCIPlpiExactSetBase(), SCIPlpiExactSetIntpar(), SCIPlpiExactSolveDual(), SCIPlpiFreeState(), SCIPlpiGetBase(), SCIPlpiGetState(), SCIPlpiHasStateBasis(), SCIPrationalDebugMessage, SCIPrationalIsGTReal(), SCIPrationalRoundReal(), SCIPrationalSetInfinity(), SCIPrationalSetNegInfinity(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIP_LpExact::solisbasic, SCIP_Lp::solved, SCIP_LpExact::solved, SCIP_Stat::solvingtime, TRUE, and SCIP_Lp::validsollp.
Referenced by SCIPlpExactSolveAndEval().
◆ 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().
◆ 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().
◆ SCIProwExactGetNNonz()
| int SCIProwExactGetNNonz | ( | SCIP_ROWEXACT * | row | ) |
gets the length of a row
- Parameters
-
row LP row
Definition at line 5006 of file lpexact.c.
References SCIP_RowExact::len, and NULL.
Referenced by certificatePrintRow(), printActivityConflictToCertificate(), SCIPcertificatePrintDualboundExactLP(), SCIPconsPrintCertificateExactLinear(), and SCIProwExactCreateFromRow().
◆ SCIProwExactGetVals()
| SCIP_RATIONAL ** SCIProwExactGetVals | ( | SCIP_ROWEXACT * | row | ) |
gets array with coefficients of nonzero entries
- Parameters
-
row LP row
Definition at line 5016 of file lpexact.c.
References NULL, and SCIP_RowExact::vals.
Referenced by certificatePrintRow(), printActivityConflictToCertificate(), SCIPconsPrintCertificateExactLinear(), and SCIProwExactCreateFromRow().
◆ SCIProwExactGetCols()
| SCIP_COLEXACT ** SCIProwExactGetCols | ( | SCIP_ROWEXACT * | row | ) |
gets array of exact columns
- Parameters
-
row LP row
Definition at line 5026 of file lpexact.c.
References SCIP_RowExact::cols, and NULL.
Referenced by certificatePrintRow(), SCIPcertificatePrintDualboundExactLP(), and SCIPconsPrintCertificateExactLinear().
◆ SCIProwExactIsInLP()
| SCIP_Bool SCIProwExactIsInLP | ( | SCIP_ROWEXACT * | row | ) |
returns TRUE iff row is member of current LP
- Parameters
-
row LP row
Definition at line 5036 of file lpexact.c.
References SCIP_RowExact::lppos, and NULL.
Referenced by checkCons(), and SCIPlpExactSyncLPs().
◆ 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.
◆ SCIProwExactGetRow()
| SCIP_ROW * SCIProwExactGetRow | ( | SCIP_ROWEXACT * | row | ) |
returns fp row corresponding to exact row, if it exists. Otherwise returns NULL
- Parameters
-
row SCIP row
Definition at line 5069 of file lpexact.c.
References SCIP_RowExact::fprow, and NULL.
Referenced by certificatePrintRow(), and SCIPcertificatePrintDualboundExactLP().
◆ SCIProwExactGetRowRhs()
| SCIP_ROW * SCIProwExactGetRowRhs | ( | SCIP_ROWEXACT * | row | ) |
returns rhs-relaxation part of exact row, if it exists. Otherwise returns NULL
- Parameters
-
row SCIP row
Definition at line 5079 of file lpexact.c.
References SCIP_RowExact::fprowrhs, and NULL.
Referenced by addOneRowSafely(), cutsSubstituteMIRSafely(), and SCIPaggrRowAddRowSafely().
◆ SCIProwExactHasFpRelax()
| SCIP_Bool SCIProwExactHasFpRelax | ( | SCIP_ROWEXACT * | row | ) |
true if row can be relaxed (possibly as two fp rows)
- Parameters
-
row SCIP row
Definition at line 5089 of file lpexact.c.
References SCIP_RowExact::fprelaxable, and NULL.
Referenced by addOneRowSafely(), cutsSubstituteMIRSafely(), and SCIPaggrRowAddRowSafely().
◆ 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 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.
◆ 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 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().
◆ 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().
◆ 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().
◆ 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().
◆ SCIProwExactSort()
| void SCIProwExactSort | ( | SCIP_ROWEXACT * | row | ) |
sorts row entries such that LP columns precede non-LP columns and inside both parts lower column indices precede higher ones
- Parameters
-
row row to be sorted
Definition at line 5755 of file lpexact.c.
References NULL, rowExactSortLP(), and rowExactSortNonLP().
Referenced by rowExactCreateFromRowLimitEncodingLength(), and rowExactMerge().
◆ rowExactMerge()
|
static |
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
- Parameters
-
row row to be sorted set global SCIP settings
Definition at line 5773 of file lpexact.c.
References SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::delaysort, SCIP_RowExact::fprow, SCIP_ColExact::index, SCIP_RowExact::integral, SCIP_RowExact::len, SCIP_RowExact::linkpos, SCIP_RowExact::lpcolssorted, SCIP_Row::name, SCIP_RowExact::nlpcols, SCIP_RowExact::nonlpcolssorted, NULL, SCIP_RowExact::nunlinked, SCIPcolIsIntegral(), SCIPintervalSetRational(), SCIPrationalAdd(), SCIPrationalIsIntegral(), SCIPrationalIsZero(), SCIPrationalSetRational(), SCIProwExactSort(), SCIPsetDebugMsg, TRUE, SCIP_RowExact::vals, and SCIP_RowExact::valsinterval.
Referenced by SCIProwExactForceSort().
◆ 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().
◆ SCIPcolExactGetVar()
| SCIP_VAR * SCIPcolExactGetVar | ( | SCIP_COLEXACT * | col | ) |
gets variable this column represents
- Parameters
-
col LP column
Definition at line 6052 of file lpexact.c.
References NULL, and SCIP_ColExact::var.
Referenced by certificatePrintRow(), SCIPcertificatePrintDualboundExactLP(), SCIPconsPrintCertificateExactLinear(), and SCIProwExactGenerateFpRows().
◆ SCIProwExactEnsureSize()
| SCIP_RETCODE SCIProwExactEnsureSize | ( | SCIP_ROWEXACT * | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| int | num | ||
| ) |
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().
◆ getObjvalDeltaObjExact()
|
static |
compute the objective delta due the new objective coefficient
- Parameters
-
set global SCIP settings oldobj old objective value of variable newobj new objective value of variable lb lower bound of variable ub upper bound of variable deltaval pointer to store the delta value deltainf pointer to store the number of variables with infinite best bound
Definition at line 6100 of file lpexact.c.
References SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalIsAbsInfinity(), SCIPrationalIsEQ(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPrationalNegate(), and SCIPrationalSetReal().
Referenced by SCIPlpExactUpdateVarObj().
◆ SCIProwExactGetLhs()
| SCIP_RATIONAL * SCIProwExactGetLhs | ( | SCIP_ROWEXACT * | row | ) |
returns the left hand side of the row
- Parameters
-
row LP row
Definition at line 6255 of file lpexact.c.
References SCIP_RowExact::lhs, and NULL.
Referenced by SCIPconsPrintCertificateExactLinear(), and SCIPsepastoreExactAddCut().
◆ SCIProwExactGetRhs()
| SCIP_RATIONAL * SCIProwExactGetRhs | ( | SCIP_ROWEXACT * | row | ) |
returns the right hand side of the row
- Parameters
-
row LP row
Definition at line 6266 of file lpexact.c.
References NULL, and SCIP_RowExact::rhs.
Referenced by certificatePrintRow(), SCIPconsPrintCertificateExactLinear(), and SCIPsepastoreExactAddCut().
◆ SCIProwExactGetConstant()
| SCIP_RATIONAL * SCIProwExactGetConstant | ( | SCIP_ROWEXACT * | row | ) |
returns the constant of the row
- Parameters
-
row LP row
Definition at line 6277 of file lpexact.c.
References SCIP_RowExact::constant, and NULL.
Referenced by SCIPconsPrintCertificateExactLinear().
◆ getObjvalDeltaLbExact()
|
static |
compute the objective delta due the new lower bound
- Parameters
-
obj objective value of variable oldlb old lower bound of variable newlb new lower bound of variable deltaval pointer to store the delta value deltainf pointer to store the number of variables with infinite best bound
Definition at line 6289 of file lpexact.c.
References SCIPrationalDiff(), SCIPrationalIsAbsInfinity(), SCIPrationalIsInfinity(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPrationalNegate(), and SCIPrationalSetReal().
Referenced by SCIPlpExactUpdateVarLb(), and SCIPlpExactUpdateVarLbGlobal().
◆ getObjvalDeltaUbExact()
|
static |
compute the objective delta due the new upper bound
- Parameters
-
obj objective value of variable oldub old upper bound of variable newub new upper bound of variable deltaval pointer to store the delta value deltainf pointer to store the number of variables with infinite best bound
Definition at line 6331 of file lpexact.c.
References SCIPrationalDiff(), SCIPrationalIsAbsInfinity(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalMult(), SCIPrationalNegate(), and SCIPrationalSetReal().
Referenced by SCIPlpExactUpdateVarUb(), and SCIPlpExactUpdateVarUbGlobal().
◆ lpExactUpdateObjval()
|
static |
updates current pseudo and loose objective values for a change in a variable's objective value or bounds
- Parameters
-
lpexact current LP data var problem variable that changed deltavalex delta value in the objective function deltainf delta value for the number of variables with infinite best bound local should the local pseudo objective value be updated? loose should the loose objective value be updated? global should the global pseudo objective value be updated?
Definition at line 6373 of file lpexact.c.
References SCIP_LpExact::glbpseudoobjval, SCIP_LpExact::glbpseudoobjvalinf, SCIP_LpExact::looseobjval, SCIP_LpExact::looseobjvalinf, NULL, SCIP_LpExact::pseudoobjval, SCIP_LpExact::pseudoobjvalinf, SCIP_VARSTATUS_LOOSE, SCIPrationalAdd(), SCIPrationalIsZero(), SCIPvarGetStatusExact(), and TRUE.
Referenced by SCIPlpExactUpdateVarColumn(), SCIPlpExactUpdateVarLb(), SCIPlpExactUpdateVarLbGlobal(), SCIPlpExactUpdateVarLoose(), SCIPlpExactUpdateVarObj(), SCIPlpExactUpdateVarUb(), and SCIPlpExactUpdateVarUbGlobal().
◆ 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().
◆ 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().
◆ colExactStoreSolVals()
|
static |
save current LP solution values stored in each column
- Parameters
-
colexact exact LP column blkmem block memory
Definition at line 7648 of file lpexact.c.
References SCIP_ColExactSolVals::basisstatus, SCIP_ColExact::basisstatus, BMSallocBlockMemory, NULL, SCIP_ColExactSolVals::primsol, SCIP_ColExact::primsol, SCIP_ColExactSolVals::redcost, SCIP_ColExact::redcost, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPrationalCopyBlock(), SCIPrationalSetRational(), and SCIP_ColExact::storedsolvals.
Referenced by SCIPlpExactStartDive().
◆ colExactRestoreSolVals()
|
static |
restore LP solution values in column
- Parameters
-
colexact exact LP column blkmem block memory validlp number of lp for which restored values are valid freebuffer should buffer for LP solution values be freed?
Definition at line 7685 of file lpexact.c.
References SCIP_ColExactSolVals::basisstatus, SCIP_ColExact::basisstatus, BMSfreeBlockMemoryNull, NULL, SCIP_ColExactSolVals::primsol, SCIP_ColExact::primsol, SCIP_ColExactSolVals::redcost, SCIP_ColExact::redcost, SCIP_BASESTAT_ZERO, SCIP_OKAY, SCIPrationalSetRational(), SCIPrationalSetReal(), SCIP_ColExact::storedsolvals, SCIP_ColExact::validfarkaslp, and SCIP_ColExact::validredcostlp.
Referenced by SCIPlpExactEndDive().
◆ rowExactStoreSolVals()
|
static |
save current LP solution values stored in each column
- Parameters
-
rowexact exact LP row blkmem block memory infeasible is the solution infeasible?
Definition at line 7732 of file lpexact.c.
References SCIP_RowExactSolVals::activity, SCIP_RowExact::activity, SCIP_RowExactSolVals::basisstatus, SCIP_RowExact::basisstatus, BMSallocBlockMemory, SCIP_RowExact::dualfarkas, SCIP_RowExactSolVals::dualsol, SCIP_RowExact::dualsol, NULL, SCIP_ALLOC, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPrationalCopyBlock(), SCIPrationalCreateBlock(), SCIPrationalSetInfinity(), SCIPrationalSetRational(), and SCIP_RowExact::storedsolvals.
Referenced by SCIPlpExactStartDive().
◆ rowExactRestoreSolVals()
|
static |
restore LP solution values in row
- Parameters
-
rowexact exact LP column blkmem block memory validlp number of lp for which restored values are valid freebuffer should buffer for LP solution values be freed? infeasible is the solution infeasible?
Definition at line 7789 of file lpexact.c.
References SCIP_RowExactSolVals::activity, SCIP_RowExact::activity, SCIP_RowExactSolVals::basisstatus, SCIP_RowExact::basisstatus, BMSfreeBlockMemoryNull, SCIP_RowExact::dualfarkas, SCIP_RowExactSolVals::dualsol, SCIP_RowExact::dualsol, NULL, SCIP_BASESTAT_BASIC, SCIP_INVALID, SCIP_OKAY, SCIPrationalSetRational(), SCIPrationalSetReal(), SCIP_RowExact::storedsolvals, and SCIP_RowExact::validactivitylp.
Referenced by SCIPlpExactEndDive().
◆ lpExactStoreSolVals()
|
static |
save current LP values dependent on the solution
- Parameters
-
lpexact exact LP data stat problem statistics blkmem block memory
Definition at line 7838 of file lpexact.c.
References BMSallocMemory, SCIP_LpExactSolVals::dualchecked, SCIP_LpExact::dualchecked, SCIP_LpExactSolVals::dualfeasible, SCIP_LpExact::dualfeasible, SCIP_LpExactSolVals::lpissolved, SCIP_LpExactSolVals::lpobjval, SCIP_LpExact::lpobjval, SCIP_LpExactSolVals::lpsolstat, SCIP_LpExact::lpsolstat, NULL, SCIP_LpExactSolVals::primalchecked, SCIP_LpExact::primalchecked, SCIP_LpExactSolVals::primalfeasible, SCIP_LpExact::primalfeasible, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPrationalCopyBlock(), SCIPrationalSetRational(), SCIP_LpExactSolVals::solisbasic, SCIP_LpExact::solisbasic, SCIP_LpExact::solved, and SCIP_LpExact::storedsolvals.
Referenced by SCIPlpExactStartDive().
◆ lpExactRestoreSolVals()
|
static |
restore LP solution values in column
- Parameters
-
lpexact exact LP data blkmem block memory
Definition at line 7887 of file lpexact.c.
References SCIP_LpExactSolVals::dualchecked, SCIP_LpExact::dualchecked, SCIP_LpExactSolVals::dualfeasible, SCIP_LpExact::dualfeasible, FALSE, SCIP_LpExactSolVals::lpissolved, SCIP_LpExactSolVals::lpobjval, SCIP_LpExact::lpobjval, SCIP_LpExactSolVals::lpsolstat, SCIP_LpExact::lpsolstat, NULL, SCIP_LpExactSolVals::primalchecked, SCIP_LpExact::primalchecked, SCIP_LpExactSolVals::primalfeasible, SCIP_LpExact::primalfeasible, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIPrationalSetInfinity(), SCIPrationalSetRational(), SCIP_LpExactSolVals::solisbasic, SCIP_LpExact::solisbasic, SCIP_LpExact::solved, and SCIP_LpExact::storedsolvals.
Referenced by SCIPlpExactEndDive().
◆ SCIProwExactLock()
| void SCIProwExactLock | ( | SCIP_ROWEXACT * | row | ) |
locks an unmodifiable row, which forbids further changes; has no effect on modifiable rows
- Parameters
-
row exact LP row
Definition at line 7943 of file lpexact.c.
References SCIP_RowExact::modifiable, SCIP_RowExact::nlocks, and NULL.
◆ SCIProwExactUnlock()
| void SCIProwExactUnlock | ( | SCIP_ROWEXACT * | row | ) |
unlocks a lock of an unmodifiable row; a row with no sealed lock may be modified; has no effect on modifiable rows
- Parameters
-
row exact LP row
Definition at line 7957 of file lpexact.c.
References SCIP_RowExact::modifiable, SCIP_RowExact::nlocks, and NULL.
◆ ensureChgrowsSizeExact()
|
static |
ensures that chgrows array can store at least num entries
- Parameters
-
lpexact current exact LP data set global SCIP settings num minimum number of entries to store
Definition at line 7973 of file lpexact.c.
References BMSreallocMemoryArray, SCIP_LpExact::chgrows, SCIP_LpExact::chgrowssize, SCIP_LpExact::nchgrows, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by rowExactSideChanged().
◆ rowExactSideChanged()
|
static |
notifies exact LP row that its sides were changed
- Parameters
-
rowexact exact LP row set global SCIP settings lpexact current exact LP data sidetype type of side: left or right hand side
Definition at line 7997 of file lpexact.c.
References SCIP_LpExact::chgrows, ensureChgrowsSizeExact(), FALSE, SCIP_LpExact::flushed, SCIP_RowExact::lhschanged, SCIP_RowExact::lpipos, SCIP_LpExact::nchgrows, NULL, SCIP_RowExact::rhschanged, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPABORT, SCIPerrorMessage, and TRUE.
Referenced by SCIProwExactChgLhs(), and SCIProwExactChgRhs().
◆ 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().
◆ 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().
◆ 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 | ||
| ) |
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().
◆ SCIPlpExactDiving()
| SCIP_Bool SCIPlpExactDiving | ( | SCIP_LPEXACT * | lpexact | ) |
returns whether the exact LP is in exact diving mode
- Parameters
-
lpexact current exact LP data
Definition at line 8423 of file lpexact.c.
References SCIP_LpExact::diving, FALSE, and NULL.
Referenced by SCIPchgRowExactLhs(), SCIPchgRowExactRhs(), SCIPchgVarLbExactDive(), SCIPchgVarUbExactDive(), SCIPendDive(), SCIPendExactDive(), SCIPinExactDive(), SCIPisExactDivePossible(), SCIPlpEndDive(), SCIPsolveExactDiveLP(), SCIPstartExactDive(), SCIPvarChgLbExactDive(), and SCIPvarChgUbExactDive().
◆ 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().