internal methods for exact LP management
Definition in file lpexact.h.
#include <stdio.h>#include "scip/def.h"#include "blockmemshell/memory.h"#include "scip/rational.h"#include "scip/type_event.h"#include "scip/type_lpexact.h"#include "scip/type_misc.h"#include "scip/type_prob.h"#include "scip/type_rational.h"#include "scip/type_set.h"#include "scip/type_stat.h"#include "scip/type_sol.h"#include "scip/type_var.h"#include "scip/pub_lpexact.h"Go to the source code of this file.
| 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
| 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 assert(), BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, i, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPrationalCopyBlock(), SCIPrationalCopyBlockArray(), SCIPrationalCreateBlock(), SCIPrationalCreateString(), SCIPrationalIsZero(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), SCIPvarGetUbLocalExact(), SCIP_Col::var, and var.
Referenced by SCIPvarColumnExact().
| SCIP_RETCODE SCIPcolExactFree | ( | SCIP_COLEXACT ** | col, |
| BMS_BLKMEM * | blkmem ) |
frees an LP column
| col | pointer to LP column |
| blkmem | block memory |
Definition at line 2754 of file lpexact.c.
References assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryNull, NULL, SCIP_OKAY, SCIPrationalFreeBlock(), and SCIPrationalFreeBlockArray().
Referenced by varFreeExactData().
| void SCIPcolExactPrint | ( | SCIP_COLEXACT * | col, |
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| FILE * | file ) |
output column to file stream
| col | LP column |
| messagehdlr | message handler |
| file | output file (or NULL for standard output) |
Definition at line 2796 of file lpexact.c.
References assert(), 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.
| 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
| 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 assert(), colExactAddCoef(), NULL, SCIP_CALL, and SCIP_OKAY.
| SCIP_RETCODE SCIPcolExactDelCoef | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_ROWEXACT * | row ) |
deletes coefficient from column
| 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 assert(), 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.
| 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
| 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 assert(), 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.
| 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
| 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 assert(), 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.
| SCIP_RETCODE SCIPcolExactChgObj | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | newobj ) |
changes objective value of column
| 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 assert(), FALSE, SCIP_LpExact::flushed, insertColChgcols(), SCIP_ColExact::lb, SCIP_ColExact::lpipos, SCIP_LpExact::nchgcols, newobj, 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().
| SCIP_RETCODE SCIPcolExactChgLb | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | newlb ) |
changes lower bound of column
| 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 assert(), 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().
| SCIP_RETCODE SCIPcolExactChgUb | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | newub ) |
changes upper bound of column
changes upper bound of exact column
| 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 assert(), 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().
| void SCIProwExactCapture | ( | SCIP_ROWEXACT * | row | ) |
increases usage counter of LP row
| row | LP row |
Definition at line 4940 of file lpexact.c.
References assert(), SCIP_RowExact::fprow, SCIP_Row::name, SCIP_RowExact::nlocks, NULL, SCIP_RowExact::nuses, and SCIPdebugMessage.
Referenced by lpExactFlushAddRows(), SCIPcaptureRowExact(), SCIPlpExactAddRow(), SCIProwExactCreate(), and SCIPsepastoreExactAddCut().
| void SCIProwExactPrint | ( | SCIP_ROWEXACT * | row, |
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| FILE * | file ) |
output column to file stream
| row | LP row |
| messagehdlr | message handler |
| file | output file (or NULL for standard output) |
Definition at line 4953 of file lpexact.c.
References assert(), 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().
| int SCIProwExactGetIndex | ( | SCIP_ROWEXACT * | row | ) |
get the index of an exact row
| row | LP row |
Definition at line 4996 of file lpexact.c.
References assert(), SCIP_RowExact::index, and NULL.
Referenced by SCIP_DECL_SORTPTRCOMP().
| SCIP_Bool SCIProwExactIsModifiable | ( | SCIP_ROWEXACT * | row | ) |
return TRUE iff row is modifiable
| row | LP row |
Definition at line 5046 of file lpexact.c.
References assert(), SCIP_RowExact::fprow, SCIP_Row::modifiable, NULL, and SCIP_Bool.
| SCIP_Bool SCIProwHasExRow | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_ROW * | row ) |
| SCIP_RETCODE SCIProwExactChgLhs | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | lhs ) |
changes left hand side of exact LP row
| 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 assert(), 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().
| SCIP_RETCODE SCIProwExactChgRhs | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | rhs ) |
changes right hand side of exact LP row
| 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 assert(), 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().
| SCIP_COLEXACT * SCIPcolGetColExact | ( | SCIP_COL * | col | ) |
returns exact col corresponding to fpcol, if it exists. Otherwise returns NULL
| col | SCIP col |
Definition at line 5099 of file lpexact.c.
References assert(), SCIP_VarDataExact::colexact, SCIP_Var::exactdata, NULL, and SCIP_Col::var.
Referenced by rowExactCreateFromRowLimitEncodingLength().
| SCIP_RETCODE SCIPcolExactCalcFarkasRedcostCoef | ( | SCIP_COLEXACT * | col, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL * | result, | ||
| SCIP_RATIONAL ** | dual, | ||
| SCIP_Bool | usefarkas ) |
calculates the Farkas coefficient or reduced cost of a column i using the given dual Farkas vector y
calculates the Farkas coefficient y^T A_i or reduced cost c - y^T A_i of a column i using the given dual Farkas vector y
| 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 assert(), SCIP_RowExact::dualfarkas, SCIP_RowExact::dualsol, i, SCIP_ColExact::lb, SCIP_ColExact::linkpos, SCIP_RowExact::lppos, SCIP_ColExact::nlprows, NULL, SCIP_ColExact::nunlinked, SCIP_ColExact::obj, result, SCIP_ColExact::rows, SCIP_Bool, 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.
| 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
| 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 assert(), BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, i, SCIP_ColExact::index, SCIP_Stat::nrowidx, NULL, SCIP_Row::nuses, SCIP_Row::rowexact, SCIP_ALLOC, SCIP_Bool, 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, SCIP_ColExact::var, and var.
Referenced by SCIPcreateEmptyRowConsExact(), SCIPcreateRowExact(), and 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
| 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 assert(), i, 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().
| 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
| 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 assert(), SCIP_RowExact::cols, SCIP_RowExact::constant, FALSE, SCIP_LpExact::fplp, SCIP_RowExact::fprelaxable, i, SCIP_Interval::inf, SCIP_RowExact::len, SCIP_RowExact::lhs, NULL, SCIP_RowExact::rhs, SCIP_Bool, 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, SCIP_ColExact::var, and var.
Referenced by SCIPgenerateFpRowsFromRowExact().
| SCIP_RETCODE SCIPlpExactFlush | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue ) |
applies all cached changes to the LP solver
| lpexact | current exact LP data |
| blkmem | block memory |
| set | global SCIP settings |
| eventqueue | event queue |
Definition at line 3651 of file lpexact.c.
References assert(), 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().
| 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
| lpexact | current exact LP data |
| blkmem | block memory |
| set | global SCIP settings |
| eventqueue | event queue |
Definition at line 3711 of file lpexact.c.
References assert(), c, 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.
| SCIP_Bool SCIPlpExactBoundShiftUseful | ( | SCIP_LPEXACT * | lpexact | ) |
| SCIP_Bool SCIPlpExactProjectShiftPossible | ( | SCIP_LPEXACT * | lpexact | ) |
| SCIP_Bool SCIPlpExactIsSynced | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | msg ) |
checks that lp and fplp are properly synced
| 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 assert(), lpExactInSync(), NULL, and SCIP_Bool.
Referenced by lpExactFlushAndSolve().
| 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
| 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 assert(), 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().
| SCIP_RETCODE SCIPlpExactFree | ( | SCIP_LPEXACT ** | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set ) |
frees LP data object
| lpexact | pointer to exact LP data object |
| blkmem | block memory |
| set | global SCIP settings |
Definition at line 4039 of file lpexact.c.
References assert(), BMSfreeMemory, BMSfreeMemoryArrayNull, BMSfreeMemoryNull, i, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpExactClear(), SCIPlpExactProjectShiftFree(), SCIPlpiExactFree(), SCIPrationalFreeBlock(), and SCIProwExactRelease().
Referenced by freeTransform().
| SCIP_RETCODE SCIPlpExactAddCol | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_COLEXACT * | col ) |
adds a column to the LP and captures the variable
| lpexact | LP data |
| set | global SCIP settings |
| col | LP column |
Definition at line 4089 of file lpexact.c.
References assert(), checkLinks, colExactUpdateAddLP(), SCIP_LpExact::cols, SCIP_Lp::diving, ensureColexsSize(), FALSE, SCIP_LpExact::flushed, SCIP_ColExact::fpcol, SCIP_LpExact::fplp, SCIP_RowExact::fprow, i, 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().
| SCIP_RETCODE SCIPlpExactAddRow | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_ROWEXACT * | rowexact ) |
adds a row to the LP and captures it
| lpexact | LP data |
| set | global SCIP settings |
| rowexact | LP row |
Definition at line 4133 of file lpexact.c.
References assert(), SCIP_RowExact::cols, SCIP_RowExact::constant, ensureRowexsSize(), FALSE, SCIP_LpExact::flushed, SCIP_RowExact::fprow, i, 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().
| 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
| 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 assert(), FALSE, SCIP_RowExact::lhs, NULL, result, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalMin(), SCIProwExactGetSolActivity(), and sol.
Referenced by SCIPgetRowSolFeasibilityExact().
| 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
| 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 assert(), c, SCIP_Row::cols, SCIP_Row::constant, FALSE, SCIP_RowExact::fprow, SCIP_Row::len, SCIP_RowExact::len, MAX, MIN, NULL, SCIP_Col::primsol, REALABS, SCIP_Bool, SCIP_Real, SCIP_REAL_UNITROUNDOFF, SCIP_UNKNOWN, SCIPcolGetVar(), SCIPsetInfinity(), SCIPsolGetVal(), sol, TRUE, and SCIP_Row::vals.
Referenced by SCIPgetRowSolActivityWithErrorboundExact().
| 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
| 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 assert(), SCIP_RowExact::cols, SCIP_RowExact::constant, i, SCIP_ColExact::lb, SCIP_RowExact::len, SCIP_RowExact::lhs, SCIP_RowExact::linkpos, SCIP_ColExact::lppos, NULL, result, SCIP_RowExact::rhs, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPrationalAdd(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsAbsInfinity(), SCIPrationalIsInfinity(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPrationalMultReal(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIPsolGetVal(), SCIPsolGetValExact(), sol, SCIP_ColExact::ub, SCIP_RowExact::vals, and SCIP_ColExact::var.
Referenced by SCIPgetRowSolActivityExact(), and SCIProwExactGetSolFeasibility().
| 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
| 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 assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIProwExactFree(), and SCIPsetDebugMsg.
Referenced by lpExactFlushDelRows(), SCIPlpExactDelRowset(), SCIPlpExactFree(), SCIPlpExactShrinkRows(), SCIPreleaseRowExact(), SCIProwFree(), and SCIPsepastoreExactClearCuts().
| SCIP_RETCODE SCIProwExactFree | ( | SCIP_ROWEXACT ** | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact ) |
frees an LP row
| 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 assert(), BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, rowExactUnlink(), SCIP_CALL, SCIP_OKAY, SCIPrationalFreeBlock(), and SCIPrationalFreeBlockArray().
Referenced by SCIProwExactRelease().
| SCIP_RETCODE SCIProwExactEnsureSize | ( | SCIP_ROWEXACT * | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| int | num ) |
ensuresr, that column array of row can store at least num entries
ensures, that column array of row can store at least num entries
| 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 assert(), BMSreallocBlockMemoryArray, SCIP_RowExact::cols, SCIP_RowExact::cols_index, SCIP_RowExact::fprow, i, 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().
| SCIP_RETCODE SCIProwExactAddConstant | ( | SCIP_ROWEXACT * | row, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | addval ) |
add constant value to a row
| 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 assert(), 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().
| 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
| 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 assert(), checkLinks, SCIP_Lp::diving, SCIP_LpExact::fplp, SCIP_RowExact::fprow, SCIP_Row::lppos, NULL, rowExactAddCoef(), SCIP_CALL, and SCIP_OKAY.
Referenced by rowExactCreateFromRowLimitEncodingLength().
| SCIP_RETCODE SCIProwExactDelCoef | ( | SCIP_ROWEXACT * | row, |
| SCIP_SET * | set, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_COLEXACT * | col ) |
deletes coefficient from row
| 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 assert(), 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.
| 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
| 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 assert(), 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.
| SCIP_RETCODE SCIProwExactIncCoef | ( | SCIP_ROWEXACT * | row, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_COLEXACT * | col, | ||
| SCIP_RATIONAL * | incval ) |
increases value of an existing or nonexisting coefficient in an LP column
increases value of an existing or non-existing coefficient in an LP row
| 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 assert(), 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().
| SCIP_RETCODE SCIProwExactChgConstant | ( | SCIP_ROWEXACT * | row, |
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_RATIONAL * | constant ) |
changes constant value of a row
| row | LP row |
| stat | problem statistics |
| lpexact | current LP data |
| constant | new constant value |
Definition at line 5385 of file lpexact.c.
References assert(), 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().
| 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
| 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 assert(), SCIP_RowExact::lhs, NULL, result, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalMin(), and SCIProwExactGetLPActivity().
Referenced by SCIPgetRowSolFeasibilityExact().
| 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
| 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 assert(), SCIP_RowExact::lhs, NULL, result, SCIP_RowExact::rhs, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalMin(), and SCIProwExactGetPseudoActivity().
Referenced by SCIPgetRowSolFeasibilityExact().
| SCIP_RATIONAL * SCIProwExactGetLPActivity | ( | SCIP_ROWEXACT * | row, |
| SCIP_STAT * | stat, | ||
| SCIP_LPEXACT * | lpexact ) |
returns the activity of a row in the current LP solution
| 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, assert(), 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().
| SCIP_RATIONAL * SCIProwExactGetPseudoActivity | ( | SCIP_ROWEXACT * | row, |
| SCIP_STAT * | stat ) |
returns the pseudo activity of a row in the current pseudo solution
| row | LP row |
| stat | problem statistics |
Definition at line 5734 of file lpexact.c.
References assert(), 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().
| void SCIProwExactDelaySort | ( | SCIP_ROWEXACT * | rowexact | ) |
enables delaying of row sorting
| rowexact | LP rowexact |
Definition at line 5867 of file lpexact.c.
References assert(), SCIP_RowExact::delaysort, NULL, and TRUE.
Referenced by SCIPaddVarsToRowExact().
| void SCIProwExactForceSort | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_SET * | set ) |
disables delaying of row sorting, sorts row and merges coefficients with equal columns
| rowexact | LP rowexact |
| set | global SCIP settings |
Definition at line 5878 of file lpexact.c.
References assert(), SCIP_RowExact::delaysort, FALSE, NULL, and rowExactMerge().
Referenced by SCIPaddVarsToRowExact().
| void SCIProwExactRecalcLPActivity | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_STAT * | stat ) |
recalculates the current activity of a row
| rowexact | LP row |
| stat | problem statistics |
Definition at line 5891 of file lpexact.c.
References SCIP_Row::activity, SCIP_RowExact::activity, assert(), c, 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().
| void SCIProwExactRecalcPseudoActivity | ( | SCIP_ROWEXACT * | rowexact, |
| SCIP_STAT * | stat ) |
calculates the current pseudo activity of a row
| rowexact | row data |
| stat | problem statistics |
Definition at line 5960 of file lpexact.c.
References assert(), SCIP_RowExact::cols, SCIP_RowExact::constant, SCIP_Stat::domchgcount, SCIP_ColExact::fpcol, SCIP_RowExact::fprow, i, 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().
| SCIP_RATIONAL * SCIPcolExactGetObj | ( | SCIP_COLEXACT * | col | ) |
gets objective value of column
| col | LP column |
Definition at line 5996 of file lpexact.c.
References assert(), NULL, and SCIP_ColExact::obj.
| SCIP_RATIONAL * SCIPcolExactGetLb | ( | SCIP_COLEXACT * | col | ) |
gets lower bound of column
| col | LP column |
Definition at line 6006 of file lpexact.c.
References assert(), SCIP_ColExact::lb, and NULL.
Referenced by SCIPlpExactGetDualfarkas().
| SCIP_RATIONAL * SCIPcolExactGetUb | ( | SCIP_COLEXACT * | col | ) |
gets upper bound of column
| col | LP column |
Definition at line 6016 of file lpexact.c.
References assert(), NULL, and SCIP_ColExact::ub.
Referenced by SCIPlpExactGetDualfarkas().
| SCIP_RATIONAL * SCIPcolExactGetBestBound | ( | SCIP_COLEXACT * | col | ) |
gets best bound of column with respect to the objective function
| col | LP column |
Definition at line 6026 of file lpexact.c.
References assert(), SCIP_ColExact::lb, NULL, SCIP_ColExact::obj, SCIPrationalIsPositive(), SCIPrationalIsZero(), and SCIP_ColExact::ub.
Referenced by SCIProwExactRecalcPseudoActivity().
| SCIP_RATIONAL * SCIPcolExactGetPrimsol | ( | SCIP_COLEXACT * | col | ) |
gets the primal LP solution of a column
| col | LP column |
Definition at line 6039 of file lpexact.c.
References assert(), SCIP_ColExact::fpcol, SCIP_Col::lppos, NULL, and SCIP_ColExact::primsol.
Referenced by SCIPvarGetLPSolExact(), and SCIPvarGetLPSolExact_rec().
| 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
| 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 assert(), FALSE, SCIP_LpExact::fplp, getObjvalDeltaObjExact(), lpExactUpdateObjval(), newobj, NULL, oldobj, SCIP_Lp::probing, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPvarGetLbGlobalExact(), SCIPvarGetLbLocalExact(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbGlobalExact(), SCIPvarGetUbLocalExact(), TRUE, and var.
Referenced by SCIPeventProcess(), SCIPlpExactUpdateAddVar(), and SCIPlpExactUpdateDelVar().
| 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
| 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 assert(), FALSE, getObjvalDeltaLbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsPositive(), SCIPvarGetObjExact(), TRUE, and var.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
| 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
| 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 assert(), FALSE, getObjvalDeltaLbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsPositive(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), TRUE, and var.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
| 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
| 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 assert(), FALSE, getObjvalDeltaUbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsNegative(), SCIPvarGetObjExact(), TRUE, and var.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
| 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
| 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 assert(), FALSE, getObjvalDeltaUbExact(), lpExactUpdateObjval(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsNegative(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), TRUE, and var.
Referenced by SCIPeventProcess(), and updateLpExactBoundChange().
| SCIP_RETCODE SCIPlpExactUpdateAddVar | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var ) |
informs LP, that given variable was added to the problem
| 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 assert(), SCIP_LpExact::nloosevars, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpExactUpdateVarObj(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), and var.
Referenced by SCIPprobAddVar().
| SCIP_RETCODE SCIPlpExactUpdateDelVar | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_VAR * | var ) |
informs LP, that given variable is to be deleted from the problem
| 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 assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpExactDecNLoosevars(), SCIPlpExactUpdateVarObj(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), and var.
| 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
| 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 assert(), FALSE, SCIP_LpExact::looseobjvalinf, lpExactUpdateObjval(), obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPlpExactDecNLoosevars(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPrationalNegate(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatusExact(), SCIPvarGetUbLocalExact(), TRUE, and var.
Referenced by SCIPvarColumnExact().
| 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
| 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 assert(), FALSE, SCIP_LpExact::looseobjvalinf, lpExactUpdateObjval(), SCIP_LpExact::nloosevars, obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_LOOSE, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPvarGetLbLocalExact(), SCIPvarGetObjExact(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocalExact(), TRUE, and var.
| void SCIPlpExactDecNLoosevars | ( | SCIP_LPEXACT * | lpexact | ) |
decrease the number of loose variables by one
| lpexact | current LP data |
Definition at line 6770 of file lpexact.c.
References assert(), SCIP_LpExact::looseobjval, SCIP_LpExact::looseobjvalinf, SCIP_LpExact::nloosevars, NULL, and SCIPrationalSetReal().
Referenced by SCIPlpExactUpdateDelVar(), SCIPlpExactUpdateVarColumn(), and SCIPvarMultiaggregateExact().
| int SCIPlpExactGetNRows | ( | SCIP_LPEXACT * | lpexact | ) |
get the number of rows currently in the lp
| lpexact | current LP data |
Definition at line 6788 of file lpexact.c.
References assert(), SCIP_LpExact::nrows, and NULL.
Referenced by SCIPlpExactSyncLPs().
| 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
| 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, assert(), SCIP_Col::basisstatus, SCIP_ColExact::basisstatus, SCIP_Row::basisstatus, SCIP_RowExact::basisstatus, BMSclearMemoryArray, SCIP_Stat::boundingerrorexlp, c, SCIP_RowExact::constant, SCIP_Lp::dualfeasible, SCIP_LpExact::dualfeasible, SCIP_Row::dualsol, SCIP_RowExact::dualsol, FALSE, SCIP_LpExact::fplp, SCIP_RowExact::fprow, 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, obj, SCIP_Lp::primalfeasible, SCIP_LpExact::primalfeasible, primsol, 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, SCIP_ColExact::validredcostlp, and var.
Referenced by SCIPlpExactSolveAndEval(), and SCIPlpExactStartDive().
| 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
| 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_Bool, SCIP_ERROR, and SCIPerrorMessage.
Referenced by SCIPlpExactSolveAndEval(), and SCIPlpExactStartDive().
| SCIP_RETCODE SCIPlpExactGetPrimalRay | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL ** | ray ) |
returns primal ray proving the unboundedness of the current LP
| 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 assert(), c, 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, SCIP_ColExact::var, and var.
| 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
valid is not NULL. | 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 assert(), SCIP_Row::basisstatus, SCIP_RowExact::basisstatus, c, 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, primsol, 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, valid, SCIP_Row::validactivitylp, SCIP_RowExact::validactivitylp, SCIP_Col::validfarkaslp, SCIP_ColExact::validfarkaslp, SCIP_Col::validredcostlp, and SCIP_ColExact::validredcostlp.
Referenced by SCIPlpExactSolveAndEval(), and SCIPlpExactStartDive().
| SCIP_RETCODE SCIPlpExactGetIterations | ( | SCIP_LPEXACT * | lpexact, |
| int * | iterations ) |
get number of iterations used in last LP solve
| lpexact | current exact LP data |
| iterations | pointer to store the iteration count |
Definition at line 7398 of file lpexact.c.
References assert(), SCIP_LpExact::lpiexact, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiExactGetIterations().
Referenced by SCIPlpExactSolveAndEval().
| void SCIPlpExactGetObjval | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL * | res ) |
gets objective value of current LP
| lpexact | current LP data |
| set | global SCIP settings |
| res | result pointer to store rational |
Definition at line 7416 of file lpexact.c.
References assert(), 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().
| 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
| lpexact | current LP data |
| set | global SCIP settings |
| res | result pointer to store rational |
Definition at line 7438 of file lpexact.c.
References assert(), NULL, SCIP_LpExact::pseudoobjval, SCIP_LpExact::pseudoobjvalinf, SCIPrationalSetNegInfinity(), and SCIPrationalSetRational().
Referenced by SCIPcertificatePrintDualboundPseudo(), SCIPgetSolOrigObjExact(), SCIPgetSolTransObjExact(), and SCIPsolLinkPseudoSolExact().
| SCIP_RETCODE SCIPlpExactShrinkCols | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| int | newncols ) |
removes all columns after the given number of cols from the LP
| lpexact | LP data |
| set | global SCIP settings |
| newncols | new number of columns in the LP |
Definition at line 7455 of file lpexact.c.
References assert(), c, 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().
| 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
| 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 assert(), 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().
| 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
| 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 assert(), c, 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().
| 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
| 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 assert(), 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().
| SCIP_RETCODE SCIPlpExactClear | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set ) |
removes all columns and rows from LP, releases all rows
| lpexact | LP data |
| blkmem | block memory |
| set | global SCIP settings |
Definition at line 7581 of file lpexact.c.
References assert(), SCIP_Lp::diving, SCIP_LpExact::fplp, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpExactShrinkCols(), SCIPlpExactShrinkRows(), and SCIPsetDebugMsg.
Referenced by SCIPlpExactFree(), and SCIPlpExactReset().
| void SCIPlpExactForceExactSolve | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set ) |
forces an exact lp to be solved in the next exact bound computation
| lpexact | exact LP data |
| set | global SCIP settings |
Definition at line 7598 of file lpexact.c.
References assert(), SCIP_LpExact::forceexactsolve, NULL, and TRUE.
Referenced by solveNode().
| void SCIPlpExactForceSafeBound | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set ) |
forces the next exact bound computation to be executed even in probing mode
| lpexact | exact LP data |
| set | global SCIP settings |
Definition at line 7614 of file lpexact.c.
References assert(), SCIP_LpExact::forcesafebound, NULL, and TRUE.
Referenced by SCIPlpSolveAndEval(), and SCIPtreeEndProbing().
| void SCIPlpExactAllowExactSolve | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_Bool | allowexact ) |
allows an exact lp to be solved in the next exact bound computation
| 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, assert(), NULL, and SCIP_Bool.
Referenced by priceAndCutLoop(), and SCIPlpExactComputeSafeBound().
| SCIP_LPSOLSTAT SCIPlpExactGetSolstat | ( | SCIP_LPEXACT * | lpexact | ) |
gets solution status of current exact LP
| lpexact | current LP data |
Definition at line 8084 of file lpexact.c.
References assert(), SCIP_LpExact::flushed, SCIP_LpExact::lpsolstat, NULL, and SCIP_LPSOLSTAT_NOTSOLVED.
Referenced by SCIPgetLPExactSolstat(), SCIPlpExactEndDive(), SCIPlpExactStartDive(), SCIPnodeUpdateLowerboundLP(), and SCIPsolveExactDiveLP().
| SCIP_RETCODE SCIPlpExactSetCutoffbound | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_SET * | set, | ||
| SCIP_Real | cutoffbound ) |
sets the upper objective limit of the exact LP solver
| lpexact | current exact LP data |
| set | global SCIP settings |
| cutoffbound | new upper objective limit |
Definition at line 4178 of file lpexact.c.
References assert(), 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, SCIP_Real, SCIPlpExactGetObjval(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsGEReal(), SCIPrationalSetInfinity(), SCIPsetDebugMsg, and SCIP_LpExact::solved.
Referenced by SCIPlpSetCutoffbound().
| 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
| 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 assert(), SCIP_Lp::cutoffbound, SCIP_LpExact::cutoffbound, SCIP_Lp::dualchecked, SCIP_LpExact::dualfeasible, FALSE, getFiniteLooseObjvalExact(), SCIP_Lp::hasprovedbound, lpCutoffDisabled, lperror, 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, objval, SCIP_Lp::primalchecked, SCIP_LpExact::primalfeasible, SCIP_Stat::provedfeaslptime, SCIP_Stat::provedinfeaslptime, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_Longint, 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().
| SCIP_RETCODE SCIPlpExactGetState | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_LPISTATE ** | lpistate ) |
stores exact LP state (like basis information) into LP state object
| 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 assert(), SCIP_LpExact::flushed, SCIP_LpExact::lpiexact, SCIP_LpExact::nlpicols, SCIP_LpExact::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiExactGetState(), and SCIP_LpExact::solved.
| 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
| 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 assert(), SCIP_LpExact::dualchecked, SCIP_LpExact::dualfeasible, FALSE, SCIP_LpExact::flushed, SCIP_LpExact::lpiexact, NULL, SCIP_LpExact::primalchecked, SCIP_LpExact::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPlpExactFlush(), SCIPlpiExactHasStateBasis(), SCIPlpiExactSetState(), SCIP_LpExact::solisbasic, and SCIP_LpExact::solved.
Referenced by SCIPlpExactEndDive().
| SCIP_RETCODE SCIPlpExactFreeState | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_LPISTATE ** | lpistate ) |
frees exact LP state information
| 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 assert(), SCIP_LpExact::lpiexact, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiExactFreeState().
Referenced by SCIPlpExactEndDive().
| SCIP_RETCODE SCIPlpExactStartDive | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat ) |
starts exact LP diving and saves bounds and objective values of columns to the current nodes's values
initiates exact LP diving
| lpexact | current exact LP data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics |
Definition at line 8177 of file lpexact.c.
References assert(), c, 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_LpExact::lpsolstat, SCIP_LpExactSolVals::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().
| 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
| 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 assert(), c, 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_LpExact::lpobjval, SCIP_LpExactSolVals::lpobjval, SCIP_LpExact::lpsolstat, SCIP_LpExactSolVals::lpsolstat, SCIP_LpExact::ncols, SCIP_LpExact::ndivechgsides, SCIP_LpExact::nrows, NULL, nvars, 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, SCIP_ColExact::var, var, and vars.
Referenced by SCIPendExactDive().
| SCIP_RETCODE SCIPlpExactWrite | ( | SCIP_LPEXACT * | lpexact, |
| const char * | fname ) |
writes exact LP to a file
| lpexact | current LP data |
| fname | file name |
Definition at line 8434 of file lpexact.c.
References assert(), SCIP_LpExact::flushed, SCIP_LpExact::lpiexact, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiExactWriteLP().
Referenced by SCIPwriteLPexact().
| void SCIPlpExactOverwriteFpDualSol | ( | SCIP_LPEXACT * | lpexact, |
| SCIP_Bool | dualfarkas ) |
overwrites the dual values stored in the fp lp with exact values
| lpexact | current LP data |
| dualfarkas | TRUE if farkas proof, FALSE if dual sol? |
Definition at line 8449 of file lpexact.c.
References assert(), c, 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, SCIP_Bool, and SCIPrationalGetReal().
| SCIP_RETCODE SCIPlpExactSyncLPs | ( | SCIP_LPEXACT * | lpexact, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set ) |
synchronizes the exact LP with cuts from the floating-point LP
| lpexact | LP data |
| blkmem | block memory |
| set | global SCIP settings |
Definition at line 8474 of file lpexact.c.
References assert(), FALSE, SCIP_LpExact::fplp, SCIP_RowExact::fprow, i, 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().