Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

public methods for LP rows

Functions

 SCIP_DECL_SORTPTRCOMP (SCIProwComp)
 
void SCIProwLock (SCIP_ROW *row)
 
void SCIProwUnlock (SCIP_ROW *row)
 
SCIP_Real SCIProwGetScalarProduct (SCIP_ROW *row1, SCIP_ROW *row2)
 
SCIP_Real SCIProwGetParallelism (SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
 
SCIP_Real SCIProwGetOrthogonality (SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
 
void SCIProwSort (SCIP_ROW *row)
 
int SCIProwGetNNonz (SCIP_ROW *row)
 
int SCIProwGetNLPNonz (SCIP_ROW *row)
 
SCIP_COL ** SCIProwGetCols (SCIP_ROW *row)
 
SCIP_RealSCIProwGetVals (SCIP_ROW *row)
 
SCIP_Real SCIProwGetConstant (SCIP_ROW *row)
 
SCIP_Real SCIProwGetNorm (SCIP_ROW *row)
 
SCIP_Real SCIProwGetSumNorm (SCIP_ROW *row)
 
SCIP_Real SCIProwGetLhs (SCIP_ROW *row)
 
SCIP_Real SCIProwGetRhs (SCIP_ROW *row)
 
SCIP_Real SCIProwGetDualsol (SCIP_ROW *row)
 
SCIP_Real SCIProwGetDualfarkas (SCIP_ROW *row)
 
SCIP_BASESTAT SCIProwGetBasisStatus (SCIP_ROW *row)
 
const char * SCIProwGetName (SCIP_ROW *row)
 
int SCIProwGetIndex (SCIP_ROW *row)
 
int SCIProwGetAge (SCIP_ROW *row)
 
int SCIProwGetRank (SCIP_ROW *row)
 
SCIP_Bool SCIProwIsIntegral (SCIP_ROW *row)
 
SCIP_Bool SCIProwIsLocal (SCIP_ROW *row)
 
SCIP_Bool SCIProwIsModifiable (SCIP_ROW *row)
 
SCIP_Bool SCIProwIsRemovable (SCIP_ROW *row)
 
SCIP_ROWORIGINTYPE SCIProwGetOrigintype (SCIP_ROW *row)
 
SCIP_CONSHDLRSCIProwGetOriginCons (SCIP_ROW *row)
 
SCIP_SEPASCIProwGetOriginSepa (SCIP_ROW *row)
 
SCIP_Bool SCIProwIsInGlobalCutpool (SCIP_ROW *row)
 
int SCIProwGetLPPos (SCIP_ROW *row)
 
int SCIProwGetLPDepth (SCIP_ROW *row)
 
SCIP_Bool SCIProwIsInLP (SCIP_ROW *row)
 
SCIP_Longint SCIProwGetActiveLPCount (SCIP_ROW *row)
 
SCIP_Longint SCIProwGetNLPsAfterCreation (SCIP_ROW *row)
 
void SCIProwChgRank (SCIP_ROW *row, int rank)
 
SCIP_RETCODE SCIPcreateRowCons (SCIP *scip, SCIP_ROW **row, SCIP_CONSHDLR *conshdlr, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcreateRowSepa (SCIP *scip, SCIP_ROW **row, SCIP_SEPA *sepa, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcreateRowUnspec (SCIP *scip, SCIP_ROW **row, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcreateRow (SCIP *scip, SCIP_ROW **row, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcreateEmptyRowCons (SCIP *scip, SCIP_ROW **row, SCIP_CONSHDLR *conshdlr, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcreateEmptyRowSepa (SCIP *scip, SCIP_ROW **row, SCIP_SEPA *sepa, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcreateEmptyRowUnspec (SCIP *scip, SCIP_ROW **row, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcreateEmptyRow (SCIP *scip, SCIP_ROW **row, const char *name, SCIP_Real lhs, SCIP_Real rhs, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcaptureRow (SCIP *scip, SCIP_ROW *row)
 
SCIP_RETCODE SCIPreleaseRow (SCIP *scip, SCIP_ROW **row)
 
SCIP_RETCODE SCIPchgRowLhs (SCIP *scip, SCIP_ROW *row, SCIP_Real lhs)
 
SCIP_RETCODE SCIPchgRowRhs (SCIP *scip, SCIP_ROW *row, SCIP_Real rhs)
 
SCIP_RETCODE SCIPcacheRowExtensions (SCIP *scip, SCIP_ROW *row)
 
SCIP_RETCODE SCIPflushRowExtensions (SCIP *scip, SCIP_ROW *row)
 
SCIP_RETCODE SCIPaddVarToRow (SCIP *scip, SCIP_ROW *row, SCIP_VAR *var, SCIP_Real val)
 
SCIP_RETCODE SCIPaddVarsToRow (SCIP *scip, SCIP_ROW *row, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
 
SCIP_RETCODE SCIPaddVarsToRowSameCoef (SCIP *scip, SCIP_ROW *row, int nvars, SCIP_VAR **vars, SCIP_Real val)
 
SCIP_RETCODE SCIPcalcRowIntegralScalar (SCIP *scip, SCIP_ROW *row, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Bool usecontvars, SCIP_Real *intscalar, SCIP_Bool *success)
 
SCIP_RETCODE SCIPmakeRowIntegral (SCIP *scip, SCIP_ROW *row, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Bool usecontvars, SCIP_Bool *success)
 
void SCIPmarkRowNotRemovableLocal (SCIP *scip, SCIP_ROW *row)
 
int SCIPgetRowNumIntCols (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowMinCoef (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowMaxCoef (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowMinActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowMaxActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_RETCODE SCIPrecalcRowLPActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowLPActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowLPFeasibility (SCIP *scip, SCIP_ROW *row)
 
SCIP_RETCODE SCIPrecalcRowPseudoActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowPseudoActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowPseudoFeasibility (SCIP *scip, SCIP_ROW *row)
 
SCIP_RETCODE SCIPrecalcRowActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowFeasibility (SCIP *scip, SCIP_ROW *row)
 
SCIP_Real SCIPgetRowSolActivity (SCIP *scip, SCIP_ROW *row, SCIP_SOL *sol)
 
SCIP_Real SCIPgetRowSolFeasibility (SCIP *scip, SCIP_ROW *row, SCIP_SOL *sol)
 
SCIP_RETCODE SCIPprintRow (SCIP *scip, SCIP_ROW *row, FILE *file)
 

Function Documentation

◆ SCIP_DECL_SORTPTRCOMP()

SCIP_DECL_SORTPTRCOMP ( SCIProwComp  )

comparison method for sorting rows by non-decreasing index

Definition at line 933 of file lp.c.

References NULL, and SCIProwGetIndex().

◆ SCIProwLock()

void SCIProwLock ( SCIP_ROW row)

locks an unmodifiable row, which forbids further changes; has no effect on modifiable rows

Parameters
rowLP row

Definition at line 5285 of file lp.c.

References SCIP_Row::modifiable, SCIP_Row::name, SCIP_Row::nlocks, NULL, SCIP_Row::nuses, and SCIPdebugMessage.

Referenced by SCIPcutpoolAddNewRow(), and SCIPlpAddRow().

◆ SCIProwUnlock()

void SCIProwUnlock ( SCIP_ROW row)

unlocks a lock of an unmodifiable row; a row with no sealed lock may be modified; has no effect on modifiable rows

Parameters
rowLP row

Definition at line 5300 of file lp.c.

References SCIP_Row::modifiable, SCIP_Row::name, SCIP_Row::nlocks, NULL, SCIP_Row::nuses, and SCIPdebugMessage.

Referenced by cutpoolDelCut(), lpDelRowset(), SCIPcutpoolClear(), and SCIPlpShrinkRows().

◆ SCIProwGetScalarProduct()

SCIP_Real SCIProwGetScalarProduct ( SCIP_ROW row1,
SCIP_ROW row2 
)

returns the scalar product of the coefficient vectors of the two given rows

returns the scalar product of the coefficient vectors of the two given rows

Note
the scalar product is computed w.r.t. the current LP columns only
Parameters
row1first LP row
row2second LP row

Definition at line 6915 of file lp.c.

References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, SCIP_Col::index, SCIP_Row::len, SCIP_Row::lpcolssorted, SCIP_Col::lppos, MAX, SCIP_Row::nlpcols, SCIP_Row::nonlpcolssorted, NULL, SCIP_Row::nunlinked, SCIP_Bool, SCIP_Real, SCIProwSort(), SCIPswapPointers(), TRUE, and SCIP_Row::vals.

Referenced by SCIProwGetParallelism().

◆ SCIProwGetParallelism()

SCIP_Real SCIProwGetParallelism ( SCIP_ROW row1,
SCIP_ROW row2,
char  orthofunc 
)

returns the degree of parallelism between the hyperplanes defined by the two row vectors v, w: p = |v*w|/(|v|*|w|); the hyperplanes are parallel, iff p = 1, they are orthogonal, iff p = 0

Parameters
row1first LP row
row2second LP row
orthofuncfunction used for calc. scalar prod. ('e'uclidean, 'd'iscrete)

Definition at line 7631 of file lp.c.

References SCIP_Row::cols, SCIP_Row::len, SCIP_Col::lppos, REALABS, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetDiscreteScalarProduct(), SCIProwGetNNonz(), SCIProwGetNorm(), SCIProwGetScalarProduct(), SQR, SCIP_Row::sqrnorm, sqrt(), and SCIP_Row::vals.

Referenced by aggregation(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), filterWithParallelism(), and SCIProwGetOrthogonality().

◆ SCIProwGetOrthogonality()

SCIP_Real SCIProwGetOrthogonality ( SCIP_ROW row1,
SCIP_ROW row2,
char  orthofunc 
)

returns the degree of orthogonality between the hyperplanes defined by the two row vectors v, w: o = 1 - |v*w|/(|v|*|w|); the hyperplanes are orthogonal, iff p = 1, they are parallel, iff p = 0

Parameters
row1first LP row
row2second LP row
orthofuncfunction used for calc. scalar prod. ('e'uclidean, 'd'iscrete)

Definition at line 7695 of file lp.c.

References SCIProwGetParallelism().

◆ SCIProwSort()

void SCIProwSort ( SCIP_ROW row)

sorts row entries such that LP columns precede non-LP columns and inside both parts lower column indices precede higher ones

Parameters
rowrow to be sorted

Definition at line 5923 of file lp.c.

References SCIP_Row::cols, SCIP_Row::delaysort, SCIP_Col::index, SCIP_Row::nlpcols, NULL, rowSortLP(), and rowSortNonLP().

Referenced by rowMerge(), SCIP_DECL_HASHKEYEQ(), SCIProwGetDiscreteScalarProduct(), and SCIProwGetScalarProduct().

◆ SCIProwGetNNonz()

◆ SCIProwGetNLPNonz()

int SCIProwGetNLPNonz ( SCIP_ROW row)

get number of nonzero entries in row vector, that correspond to columns currently in the SCIP_LP;

Warning
This method is only applicable on rows, that are completely linked to their columns (e.g. a row that is in the current LP and the LP was solved, or a row that was in a solved LP and didn't change afterwards
Parameters
rowLP row

Definition at line 16894 of file lp.c.

References SCIP_Row::nlpcols, NULL, and SCIP_Row::nunlinked.

Referenced by addFlowrowToCommodity(), cleanupNetwork(), collectIncidentFlowCols(), computeCut(), createSubscip(), deleteCommodity(), extractCapacities(), extractCapacityRows(), extractFlowRows(), extractNodes(), findUncapacitatedArcs(), generateClusterCuts(), getFlowrowFit(), getGMIFromRow(), getNodeSimilarityScore(), identifySourcesTargets(), initMatrix(), mcfnetworkExtract(), mcfnetworkFill(), mod2MatrixTransformContRows(), nodepairqueueCreate(), nodepartitionIsConnected(), selectRounding(), selectShifting(), separateCuts(), and storeCuts().

◆ SCIProwGetCols()

◆ SCIProwGetVals()

◆ SCIProwGetConstant()

◆ SCIProwGetNorm()

◆ SCIProwGetSumNorm()

SCIP_Real SCIProwGetSumNorm ( SCIP_ROW row)

gets sum norm of row vector (sum of absolute values of coefficients)

Parameters
rowLP row

Definition at line 16947 of file lp.c.

References checkRowSumnorm, NULL, and SCIP_Row::sumnorm.

Referenced by SCIProwGetLPEfficacy(), SCIProwGetNLPEfficacy(), SCIProwGetRelaxEfficacy(), and SCIProwGetSolEfficacy().

◆ SCIProwGetLhs()

◆ SCIProwGetRhs()

◆ SCIProwGetDualsol()

◆ SCIProwGetDualfarkas()

SCIP_Real SCIProwGetDualfarkas ( SCIP_ROW row)

gets the dual Farkas coefficient of a row in an infeasible LP

Parameters
rowLP row

Definition at line 16992 of file lp.c.

References SCIP_Row::dualfarkas, SCIP_Row::lppos, and NULL.

Referenced by SCIPgetDualfarkasKnapsack(), SCIPgetDualfarkasLogicor(), SCIPgetDualfarkasSetppc(), and SCIPgetDualfarkasVarbound().

◆ SCIProwGetBasisStatus()

SCIP_BASESTAT SCIProwGetBasisStatus ( SCIP_ROW row)

gets the basis status of a row in the LP solution; only valid for LPs with status SCIP_LPSOLSTAT_OPTIMAL and with SCIPisLPSolBasic(scip) == TRUE; returns SCIP_BASESTAT_BASIC for rows not in the current SCIP_LP

Parameters
rowLP row

Definition at line 17007 of file lp.c.

References SCIP_Row::basisstatus, SCIP_Row::lppos, NULL, and SCIP_BASESTAT_BASIC.

Referenced by addOneRow(), generateDisjCutSOS1(), getGMIFromRow(), getSimplexCoefficients(), and SCIP_DECL_SEPAEXECLP().

◆ SCIProwGetName()

◆ SCIProwGetIndex()

int SCIProwGetIndex ( SCIP_ROW row)

gets unique index of row

Parameters
rowLP row

Definition at line 17028 of file lp.c.

References SCIP_Row::index, and NULL.

Referenced by calcBranchScore(), checkConstraintMatching(), determineBound(), SCIP_DECL_SORTPTRCOMP(), varColCompare(), and varProcessBoundChanges().

◆ SCIProwGetAge()

int SCIProwGetAge ( SCIP_ROW row)

gets age of row

Parameters
rowLP row

Definition at line 17038 of file lp.c.

References SCIP_Row::age, and NULL.

Referenced by createSubscip(), and storeCuts().

◆ SCIProwGetRank()

int SCIProwGetRank ( SCIP_ROW row)

gets rank of row

Parameters
rowLP row

Definition at line 17048 of file lp.c.

References NULL, and SCIP_Row::rank.

Referenced by addCut(), computeCut(), createCGCutCMIR(), createCGCutStrongCG(), evaluateCutNumerics(), getVarRank(), mod2MatrixTransformContRows(), and SCIPapplyLockFixings().

◆ SCIProwIsIntegral()

SCIP_Bool SCIProwIsIntegral ( SCIP_ROW row)

returns TRUE iff the activity of the row (without the row's constant) is always integral in a feasible solution

Parameters
rowLP row

Definition at line 17058 of file lp.c.

References SCIP_Row::integral, and NULL.

Referenced by buildMod2Matrix(), computeCut(), createSubscip(), getGMIFromRow(), mod2MatrixTransformContRows(), and SCIP_DECL_SEPAEXECLP().

◆ SCIProwIsLocal()

◆ SCIProwIsModifiable()

◆ SCIProwIsRemovable()

SCIP_Bool SCIProwIsRemovable ( SCIP_ROW row)

returns TRUE iff row is removable from the LP (due to aging or cleanup)

Parameters
rowLP row

Definition at line 17088 of file lp.c.

References NULL, and SCIP_Row::removable.

Referenced by cutpoolDelCut(), SCIPcutpoolAddNewRow(), and SCIPlpWriteMip().

◆ SCIProwGetOrigintype()

SCIP_ROWORIGINTYPE SCIProwGetOrigintype ( SCIP_ROW row)

returns type of origin that created the row

Parameters
rowLP row

Definition at line 17098 of file lp.c.

References NULL, and SCIP_Row::origintype.

Referenced by storeCuts().

◆ SCIProwGetOriginCons()

SCIP_CONSHDLR* SCIProwGetOriginCons ( SCIP_ROW row)

returns origin constraint handler that created the row (NULL if not available)

Parameters
rowLP row

Definition at line 17108 of file lp.c.

References NULL, SCIP_Row::origin, SCIP_Row::origintype, and SCIP_ROWORIGINTYPE_CONS.

Referenced by SCIPcutpoolSeparate().

◆ SCIProwGetOriginSepa()

SCIP_SEPA* SCIProwGetOriginSepa ( SCIP_ROW row)

returns origin separator that created the row (NULL if not available)

Parameters
rowLP row

Definition at line 17123 of file lp.c.

References NULL, SCIP_Row::origin, SCIP_Row::origintype, and SCIP_ROWORIGINTYPE_SEPA.

Referenced by computeCut(), createSubscip(), and SCIPcutpoolSeparate().

◆ SCIProwIsInGlobalCutpool()

SCIP_Bool SCIProwIsInGlobalCutpool ( SCIP_ROW row)

returns TRUE iff row is member of the global cut pool

Parameters
rowLP row

Definition at line 17138 of file lp.c.

References SCIP_Row::inglobalcutpool, and NULL.

Referenced by SCIPselectCuts().

◆ SCIProwGetLPPos()

◆ SCIProwGetLPDepth()

int SCIProwGetLPDepth ( SCIP_ROW row)

gets depth in the tree where the row entered the LP, or -1 if it is not in LP

Parameters
rowLP row

Definition at line 17159 of file lp.c.

References SCIP_Row::lpdepth, SCIP_Row::lppos, and NULL.

◆ SCIProwIsInLP()

◆ SCIProwGetActiveLPCount()

SCIP_Longint SCIProwGetActiveLPCount ( SCIP_ROW row)

returns the number of times that this row has been sharp in an optimal LP solution

Parameters
rowrow

Definition at line 17192 of file lp.c.

References SCIP_Row::activeinlpcounter, and NULL.

Referenced by SCIPcutGetLPActivityQuot().

◆ SCIProwGetNLPsAfterCreation()

SCIP_Longint SCIProwGetNLPsAfterCreation ( SCIP_ROW row)

returns the number of LPs since this row has been created

Parameters
rowrow

Definition at line 17202 of file lp.c.

References SCIP_Row::nlpsaftercreation, and NULL.

Referenced by SCIPcutGetLPActivityQuot().

◆ SCIProwChgRank()

void SCIProwChgRank ( SCIP_ROW row,
int  rank 
)

changes the rank of LP row

Parameters
rowLP row
ranknew value for rank

Definition at line 17181 of file lp.c.

References NULL, and SCIP_Row::rank.

Referenced by addCut(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), generateOddCycleCut(), generateZerohalfCut(), newsolCliqueAddRow(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPcreateRowCons()

SCIP_RETCODE SCIPcreateRowCons ( SCIP scip,
SCIP_ROW **  row,
SCIP_CONSHDLR conshdlr,
const char *  name,
int  len,
SCIP_COL **  cols,
SCIP_Real vals,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row from a constraint handler

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to row
conshdlrconstraint handler that creates the row
namename of row
lennumber of nonzeros in the row
colsarray with columns of row entries
valsarray with coefficients of row entries
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1204 of file scip_lp.c.

References FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_CONS, SCIPcheckStage(), SCIProwCreate(), Scip::set, Scip::stat, and TRUE.

Referenced by generateConvexConcaveEstimator(), and generateOverestimatingHyperplaneCut().

◆ SCIPcreateRowSepa()

SCIP_RETCODE SCIPcreateRowSepa ( SCIP scip,
SCIP_ROW **  row,
SCIP_SEPA sepa,
const char *  name,
int  len,
SCIP_COL **  cols,
SCIP_Real vals,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row from a separator

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to row
sepaseparator that creates the row
namename of row
lennumber of nonzeros in the row
colsarray with columns of row entries
valsarray with coefficients of row entries
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1238 of file scip_lp.c.

References FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_SEPA, SCIPcheckStage(), SCIProwCreate(), Scip::set, Scip::stat, and TRUE.

◆ SCIPcreateRowUnspec()

SCIP_RETCODE SCIPcreateRowUnspec ( SCIP scip,
SCIP_ROW **  row,
const char *  name,
int  len,
SCIP_COL **  cols,
SCIP_Real vals,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row from an unspecified source

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to row
namename of row
lennumber of nonzeros in the row
colsarray with columns of row entries
valsarray with coefficients of row entries
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1272 of file scip_lp.c.

References FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_UNSPEC, SCIPcheckStage(), SCIProwCreate(), Scip::set, Scip::stat, and TRUE.

Referenced by SCIPcreateRow().

◆ SCIPcreateRow()

SCIP_RETCODE SCIPcreateRow ( SCIP scip,
SCIP_ROW **  row,
const char *  name,
int  len,
SCIP_COL **  cols,
SCIP_Real vals,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Deprecated:
Please use SCIPcreateRowCons() or SCIPcreateRowSepa() when calling from a constraint handler or separator in order to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateRowUnspec().

creates and captures an LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Deprecated:
Please use SCIPcreateRowCons() or SCIPcreateRowSepa() when calling from a constraint handler or separator in order to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateRowUnspec().
Parameters
scipSCIP data structure
rowpointer to row
namename of row
lennumber of nonzeros in the row
colsarray with columns of row entries
valsarray with coefficients of row entries
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1306 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPcreateRowUnspec(), and TRUE.

◆ SCIPcreateEmptyRowCons()

SCIP_RETCODE SCIPcreateEmptyRowCons ( SCIP scip,
SCIP_ROW **  row,
SCIP_CONSHDLR conshdlr,
const char *  name,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row without any coefficients from a constraint handler

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to row
conshdlrconstraint handler that creates the row
namename of row
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1336 of file scip_lp.c.

References FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_CONS, SCIPcheckStage(), SCIProwCreate(), Scip::set, Scip::stat, and TRUE.

Referenced by addOrbisackCover(), addOrbisackInequality(), addRelaxation(), addSymresackInequality(), createAndAddTransferredCut(), createCapacityRestriction(), createCapacityRestrictionIntvars(), createCoverCutsTimepoint(), createRelaxation(), createRow(), createRows(), cut_add(), extendToCover(), generate1ConvexIndefiniteUnderestimator(), generateAndApplyBendersCuts(), generateAndApplyBendersIntegerCuts(), generateAndApplyBendersNogoodCut(), generateBoundInequalityFromSOS1Nodes(), generateConvexConcaveEstimator(), generateCut(), generateLinearizationCut(), generateRowCardinality(), generateRowSOS2(), initLP(), LOPseparate(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSINITLP(), SCIPgetRowprepRowCons(), SCIPseparateCoversOrbisack(), SCIPStpDualAscent(), SCIPStpDualAscentPcMw(), sep_flow(), sepaImplBoundCutsSOS1(), separateCons(), separateIndicators(), separatePerspective(), separateSCIs(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), and sepaSubtour().

◆ SCIPcreateEmptyRowSepa()

SCIP_RETCODE SCIPcreateEmptyRowSepa ( SCIP scip,
SCIP_ROW **  row,
SCIP_SEPA sepa,
const char *  name,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row without any coefficients from a separator

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to row
sepaseparator that creates the row
namename of row
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1365 of file scip_lp.c.

References FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_SEPA, SCIPcheckStage(), SCIProwCreate(), Scip::set, Scip::stat, and TRUE.

Referenced by addCut(), addPathCuts(), addSubtourCuts(), addTourCuts(), computeCut(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), createObjRow(), createPartitionCut(), generateCut(), generateDisjCutSOS1(), generateOddCycleCut(), generateZerohalfCut(), newsolCliqueAddRow(), SCIP_DECL_SEPAEXECLP(), SCIPgetRowprepRowSepa(), separateCuts(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), and separateSupLiftedMinimalCoverInequality().

◆ SCIPcreateEmptyRowUnspec()

SCIP_RETCODE SCIPcreateEmptyRowUnspec ( SCIP scip,
SCIP_ROW **  row,
const char *  name,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row without any coefficients from an unspecified source

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to row
namename of row
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1394 of file scip_lp.c.

References FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIP_ROWORIGINTYPE_UNSPEC, SCIPcheckStage(), SCIProwCreate(), Scip::set, Scip::stat, and TRUE.

Referenced by SCIPcreateEmptyRow(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), and solveBilinearLP().

◆ SCIPcreateEmptyRow()

SCIP_RETCODE SCIPcreateEmptyRow ( SCIP scip,
SCIP_ROW **  row,
const char *  name,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row without any coefficients

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Deprecated:
Please use SCIPcreateEmptyRowCons() or SCIPcreateEmptyRowSepa() when calling from a constraint handler or separator in order to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateEmptyRowUnspec().

creates and captures an LP row without any coefficients

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Deprecated:
Please use SCIPcreateEmptyRowCons() or SCIPcreateEmptyRowSepa() when calling from a constraint handler or separator in order to facilitate correct statistics. If the call is from neither a constraint handler or separator, use SCIPcreateEmptyRowUnspec().
Parameters
scipSCIP data structure
rowpointer to row
namename of row
lhsleft hand side of row
rhsright hand side of row
localis row only valid locally?
modifiableis row modifiable during node processing (subject to column generation)?
removableshould the row be removed from the LP due to aging or cleanup?

Definition at line 1425 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPcreateEmptyRowUnspec(), and TRUE.

◆ SCIPcaptureRow()

SCIP_RETCODE SCIPcaptureRow ( SCIP scip,
SCIP_ROW row 
)

increases usage counter of LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowrow to capture

Definition at line 1452 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwCapture(), and TRUE.

Referenced by mcfnetworkFill().

◆ SCIPreleaseRow()

SCIP_RETCODE SCIPreleaseRow ( SCIP scip,
SCIP_ROW **  row 
)

decreases usage counter of LP row, and frees memory if necessary

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowpointer to LP row

Definition at line 1474 of file scip_lp.c.

References FALSE, Scip::lp, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwRelease(), Scip::set, and TRUE.

Referenced by addCut(), addLinearizationCuts(), addOrbisackCover(), addOrbisackInequality(), addPathCuts(), addSubtourCuts(), addSymresackInequality(), addTourCuts(), aggregation(), computeCut(), consdataFree(), consdataFreeRows(), createAndAddTransferredCut(), createCapacityRestrictionIntvars(), createCGCutCMIR(), createCGCutDirect(), createCGCuts(), createCGCutStrongCG(), createRow(), cut_add(), doSeparation(), extendToCover(), generateAndApplyBendersCuts(), generateAndApplyBendersIntegerCuts(), generateAndApplyBendersNogoodCut(), generateCut(), generateOddCycleCut(), generateZerohalfCut(), initLP(), initsepaBoundInequalityFromCardinality(), initsepaBoundInequalityFromSOS1Cons(), LOPseparate(), mcfnetworkFree(), newsolCliqueAddRow(), processCut(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSEXITSOL(), SCIP_DECL_CONSINITLP(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXITSOL(), SCIPseparateCoversOrbisack(), SCIPStpDualAscent(), SCIPStpDualAscentPcMw(), sep_flow(), sepaImplBoundCutsSOS1(), separateCons(), separateCuts(), separateIndicators(), separatePerspective(), separatePoint(), separateSCIs(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), sepaSubtour(), and solveBilinearLP().

◆ SCIPchgRowLhs()

SCIP_RETCODE SCIPchgRowLhs ( SCIP scip,
SCIP_ROW row,
SCIP_Real  lhs 
)

changes left hand side of LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
lhsnew left hand side

Definition at line 1495 of file scip_lp.c.

References Scip::eventqueue, FALSE, Scip::lp, SCIP_Row::lppos, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPlpDiving(), SCIProwChgLhs(), Scip::set, and TRUE.

Referenced by computeNogoodCut(), computeStandardIntegerOptCut(), generateAndApplyBendersIntegerCuts(), generateCut(), and handleNewVariableSOS2().

◆ SCIPchgRowRhs()

SCIP_RETCODE SCIPchgRowRhs ( SCIP scip,
SCIP_ROW row,
SCIP_Real  rhs 
)

changes right hand side of LP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
rhsnew right hand side

Definition at line 1519 of file scip_lp.c.

References Scip::eventqueue, FALSE, Scip::lp, SCIP_Row::lppos, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPlpDiving(), SCIProwChgRhs(), Scip::set, and TRUE.

Referenced by computeCut(), generateCut(), generateOddCycleCut(), and handleNewVariableSOS2().

◆ SCIPcacheRowExtensions()

SCIP_RETCODE SCIPcacheRowExtensions ( SCIP scip,
SCIP_ROW row 
)

informs row, that all subsequent additions of variables to the row should be cached and not directly applied; after all additions were applied, SCIPflushRowExtensions() must be called; while the caching of row extensions is activated, information methods of the row give invalid results; caching should be used, if a row is build with SCIPaddVarToRow() calls variable by variable to increase the performance

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1547 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwDelaySort(), and TRUE.

Referenced by addCut(), addOrbisackCover(), addOrbisackInequality(), addPathCuts(), addSubtourCuts(), addSymresackInequality(), addTourCuts(), computeCut(), createCapacityRestriction(), createCapacityRestrictionIntvars(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), createCoverCutsTimepoint(), createObjRow(), createPartitionCut(), createRow(), cut_add(), extendToCover(), generateCut(), generateDisjCutSOS1(), generateOddCycleCut(), generateZerohalfCut(), LOPseparate(), newsolCliqueAddRow(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSINITLP(), SCIP_DECL_SEPAEXECLP(), SCIPseparateCoversOrbisack(), SCIPStpDualAscent(), SCIPStpDualAscentPcMw(), sep_flow(), sepaImplBoundCutsSOS1(), separateCons(), separateIndicators(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), and sepaSubtour().

◆ SCIPflushRowExtensions()

SCIP_RETCODE SCIPflushRowExtensions ( SCIP scip,
SCIP_ROW row 
)

flushes all cached row extensions after a call of SCIPcacheRowExtensions() and merges coefficients with equal columns into a single coefficient

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1570 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwForceSort(), Scip::set, and TRUE.

Referenced by addCut(), addOrbisackCover(), addOrbisackInequality(), addPathCuts(), addSubtourCuts(), addSymresackInequality(), addTourCuts(), computeCut(), createCapacityRestriction(), createCapacityRestrictionIntvars(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), createCoverCutsTimepoint(), createObjRow(), createPartitionCut(), createRow(), cut_add(), extendToCover(), generateCut(), generateDisjCutSOS1(), generateOddCycleCut(), generateZerohalfCut(), LOPseparate(), newsolCliqueAddRow(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSINITLP(), SCIP_DECL_SEPAEXECLP(), SCIPseparateCoversOrbisack(), SCIPStpDualAscent(), SCIPStpDualAscentPcMw(), sep_flow(), sepaImplBoundCutsSOS1(), separateCons(), separateIndicators(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), and sepaSubtour().

◆ SCIPaddVarToRow()

SCIP_RETCODE SCIPaddVarToRow ( SCIP scip,
SCIP_ROW row,
SCIP_VAR var,
SCIP_Real  val 
)

resolves variable to columns and adds them with the coefficient to the row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Attention
If the absolute value of val is below the SCIP epsilon tolerance, the variable will not added.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Note
In case calling this method in the enforcement process of an lp solution, it might be that some variables, that were not yet in the LP (e.g. dynamic columns) will change their lp solution value returned by SCIP. For example, a variable, which has a negative objective value, that has no column in the lp yet, is in the lp solution on its upper bound (variables with status SCIP_VARSTATUS_LOOSE are in an lp solution on it's best bound), but creating the column, changes the solution value (variable than has status SCIP_VARSTATUS_COLUMN, and the initialization sets the lp solution value) to 0.0. (This leads to the conclusion that, if a constraint was violated, the linear relaxation might not be violated anymore.)

resolves variable to columns and adds them with the coefficient to the row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Attention
If the absolute value of val is below the SCIP epsilon tolerance, the variable will not added.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Note
In case calling this method in the enforcement process of an lp solution, it might be that some variables, that were not yet in the LP (e.g. dynamic columns) will change their lp solution value returned by SCIP. For example, a variable, which has a negative objective value, that has no column in the lp yet, is in the lp solution on its upper bound (variables with status SCIP_VARSTATUS_LOOSE are in an lp solution on it's best bound), but creating the column, changes the solution value (variable than has status SCIP_VARSTATUS_COLUMN, and the initialization sets the lp solution value) to 0.0. (This leads to the conclusion that, if a constraint was violated, the linear relaxation might not be violated anymore.)
If the variable being added is FIXED (as given by the status SCIP_VARSTATUS_FIXED), then the variable is not added to the row, but the corresponding constant is added. Similarly, if the input variable is aggregated (as given by the status SCIP_VARSTATUS_AGGREGATED), then the input variable is substituted with its aggregation. For other cases, and to better understand the function behavior, please check the code of SCIPvarAddToRow.
Parameters
scipSCIP data structure
rowLP row
varproblem variable
valvalue of coefficient

Definition at line 1607 of file scip_lp.c.

References Scip::eventqueue, FALSE, Scip::lp, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPvarAddToRow(), Scip::set, Scip::stat, Scip::transprob, and TRUE.

Referenced by addAuxiliaryVariableToCut(), addBilinearTermToCut(), addCoef(), addCut(), addFacetToCut(), addLinearTermToCut(), addOrbisackCover(), addOrbisackInequality(), addPathCuts(), addRelaxation(), addSubtourCuts(), addSymresackInequality(), addTourCuts(), computeNogoodCut(), computeStandardIntegerOptCut(), createAndAddTransferredCut(), createCapacityRestriction(), createCapacityRestrictionIntvars(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), createCoverCutsTimepoint(), createObjRow(), createPartitionCut(), createRelaxation(), createRow(), createRows(), cut_add(), extendToCover(), generate1ConvexIndefiniteUnderestimator(), generateAndApplyBendersCuts(), generateConvexConcaveEstimator(), generateCut(), generateDisjCutSOS1(), generateLinearizationCut(), generateOddCycleCut(), generateOverestimatingHyperplaneCut(), generateZerohalfCut(), handleNewVariableCardinality(), handleNewVariableSOS1(), handleNewVariableSOS2(), initLP(), LOPseparate(), newsolCliqueAddRow(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSINITLP(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_SEPAEXECLP(), SCIPseparateCoversOrbisack(), SCIPStpDualAscent(), SCIPStpDualAscentPcMw(), sep_flow(), sepaImplBoundCutsSOS1(), separateCons(), separateIndicators(), separateSequLiftedExtendedWeightInequality(), separateSequLiftedMinimalCoverInequality(), separateSupLiftedMinimalCoverInequality(), sepaSubtour(), and solveBilinearLP().

◆ SCIPaddVarsToRow()

SCIP_RETCODE SCIPaddVarsToRow ( SCIP scip,
SCIP_ROW row,
int  nvars,
SCIP_VAR **  vars,
SCIP_Real vals 
)

resolves variables to columns and adds them with the coefficients to the row; this method caches the row extensions and flushes them afterwards to gain better performance

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Attention
If a coefficients absolute value is below the SCIP epsilon tolerance, the variable with its value is not added.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
nvarsnumber of variables to add to the row
varsproblem variables to add
valsvalues of coefficients

Definition at line 1633 of file scip_lp.c.

References Scip::eventqueue, FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwDelaySort(), SCIProwEnsureSize(), SCIProwForceSort(), SCIProwGetNNonz(), SCIPvarAddToRow(), Scip::set, Scip::stat, Scip::transprob, and TRUE.

Referenced by addCut(), generateAndApplyBendersCuts(), generateBoundInequalityFromSOS1Nodes(), generateConvexConcaveEstimator(), generateCut(), generateLinearizationCut(), generateOverestimatingHyperplaneCut(), generateRowCardinality(), initLP(), SCIP_DECL_CONSINITLP(), SCIPgetRowprepRowCons(), SCIPgetRowprepRowSepa(), separatePerspective(), and separateSCIs().

◆ SCIPaddVarsToRowSameCoef()

SCIP_RETCODE SCIPaddVarsToRowSameCoef ( SCIP scip,
SCIP_ROW row,
int  nvars,
SCIP_VAR **  vars,
SCIP_Real  val 
)

resolves variables to columns and adds them with the same single coefficient to the row; this method caches the row extensions and flushes them afterwards to gain better performance

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Attention
If the absolute value of val is below the SCIP epsilon tolerance, the variables will not added.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
nvarsnumber of variables to add to the row
varsproblem variables to add
valunique value of all coefficients

Definition at line 1679 of file scip_lp.c.

References Scip::eventqueue, FALSE, Scip::lp, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwDelaySort(), SCIProwEnsureSize(), SCIProwForceSort(), SCIProwGetNNonz(), SCIPvarAddToRow(), Scip::set, Scip::stat, Scip::transprob, and TRUE.

Referenced by addRelaxation(), createRelaxation(), createRow(), createRows(), and generateRowSOS2().

◆ SCIPcalcRowIntegralScalar()

SCIP_RETCODE SCIPcalcRowIntegralScalar ( SCIP scip,
SCIP_ROW row,
SCIP_Real  mindelta,
SCIP_Real  maxdelta,
SCIP_Longint  maxdnom,
SCIP_Real  maxscale,
SCIP_Bool  usecontvars,
SCIP_Real intscalar,
SCIP_Bool success 
)

tries to find a value, such that all row coefficients, if scaled with this value become integral

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
mindeltaminimal relative allowed difference of scaled coefficient s*c and integral i
maxdeltamaximal relative allowed difference of scaled coefficient s*c and integral i
maxdnommaximal denominator allowed in rational numbers
maxscalemaximal allowed scalar
usecontvarsshould the coefficients of the continuous variables also be made integral?
intscalarpointer to store scalar that would make the coefficients integral, or NULL
successstores whether returned value is valid

Definition at line 1721 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwCalcIntegralScalar(), Scip::set, and TRUE.

◆ SCIPmakeRowIntegral()

SCIP_RETCODE SCIPmakeRowIntegral ( SCIP scip,
SCIP_ROW row,
SCIP_Real  mindelta,
SCIP_Real  maxdelta,
SCIP_Longint  maxdnom,
SCIP_Real  maxscale,
SCIP_Bool  usecontvars,
SCIP_Bool success 
)

tries to scale row, s.t. all coefficients (of integer variables) become integral

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
mindeltaminimal relative allowed difference of scaled coefficient s*c and integral i
maxdeltamaximal relative allowed difference of scaled coefficient s*c and integral i
maxdnommaximal denominator allowed in rational numbers
maxscalemaximal value to scale row with
usecontvarsshould the coefficients of the continuous variables also be made integral?
successstores whether row could be made rational

Definition at line 1750 of file scip_lp.c.

References Scip::eventqueue, FALSE, Scip::lp, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwMakeIntegral(), Scip::set, Scip::stat, and TRUE.

Referenced by addCut(), createCGCutCMIR(), createCGCutStrongCG(), evaluateCutNumerics(), and generateDisjCutSOS1().

◆ SCIPmarkRowNotRemovableLocal()

void SCIPmarkRowNotRemovableLocal ( SCIP scip,
SCIP_ROW row 
)

marks a row to be not removable from the LP in the current node

Precondition
this method can be called in the following stage of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1774 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwMarkNotRemovableLocal(), Scip::stat, and TRUE.

Referenced by processCut(), and separatePoint().

◆ SCIPgetRowNumIntCols()

int SCIPgetRowNumIntCols ( SCIP scip,
SCIP_ROW row 
)

returns number of integral columns in the row

Returns
number of integral columns in the row
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1792 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetNumIntCols(), Scip::set, and TRUE.

Referenced by addCut(), and evaluateCutNumerics().

◆ SCIPgetRowMinCoef()

SCIP_Real SCIPgetRowMinCoef ( SCIP scip,
SCIP_ROW row 
)

returns minimal absolute value of row vector's non-zero coefficients

Returns
minimal absolute value of row vector's non-zero coefficients
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1810 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetMinval(), Scip::set, and TRUE.

Referenced by addCut(), computeCut(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), generateCut(), SCIP_DECL_CONSINITLP(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPgetRowMaxCoef()

SCIP_Real SCIPgetRowMaxCoef ( SCIP scip,
SCIP_ROW row 
)

returns maximal absolute value of row vector's non-zero coefficients

Returns
maximal absolute value of row vector's non-zero coefficients
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1828 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetMaxval(), Scip::set, and TRUE.

Referenced by addCut(), addPathCuts(), addTourCuts(), computeCut(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), generateClusterCuts(), generateCut(), initMatrix(), nodepairqueueCreate(), relaxVar(), SCIP_DECL_CONSINITLP(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPgetRowMinActivity()

SCIP_Real SCIPgetRowMinActivity ( SCIP scip,
SCIP_ROW row 
)

returns the minimal activity of a row w.r.t. the column's bounds

Returns
the minimal activity of a row w.r.t. the column's bounds
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1845 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetMinActivity(), Scip::set, Scip::stat, and TRUE.

Referenced by generateLiftedFlowCoverCut(), and SCIPapplyLockFixings().

◆ SCIPgetRowMaxActivity()

SCIP_Real SCIPgetRowMaxActivity ( SCIP scip,
SCIP_ROW row 
)

returns the maximal activity of a row w.r.t. the column's bounds

Returns
the maximal activity of a row w.r.t. the column's bounds
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1862 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetMaxActivity(), Scip::set, Scip::stat, and TRUE.

Referenced by generateLiftedFlowCoverCut(), and SCIPapplyLockFixings().

◆ SCIPrecalcRowLPActivity()

SCIP_RETCODE SCIPrecalcRowLPActivity ( SCIP scip,
SCIP_ROW row 
)

recalculates the activity of a row in the last LP solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1880 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwRecalcLPActivity(), Scip::stat, and TRUE.

◆ SCIPgetRowLPActivity()

SCIP_Real SCIPgetRowLPActivity ( SCIP scip,
SCIP_ROW row 
)

returns the activity of a row in the last LP solution

Returns
activity of a row in the last LP solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1899 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPActivity(), Scip::set, Scip::stat, and TRUE.

Referenced by createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), createSubscip(), generateDisjCutSOS1(), getGMIFromRow(), getSimplexCoefficients(), SCIP_DECL_SEPAEXECLP(), and separateCons().

◆ SCIPgetRowLPFeasibility()

SCIP_Real SCIPgetRowLPFeasibility ( SCIP scip,
SCIP_ROW row 
)

returns the feasibility of a row in the last LP solution

Returns
the feasibility of a row in the last LP solution: negative value means infeasibility
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1916 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPFeasibility(), Scip::set, Scip::stat, and TRUE.

Referenced by addLinearizationCuts(), calcBranchScore(), nodepartitionIsConnected(), separateCons(), separateConsBinaryRepresentation(), separateCoverCutsCons(), and separatePoint().

◆ SCIPrecalcRowPseudoActivity()

SCIP_RETCODE SCIPrecalcRowPseudoActivity ( SCIP scip,
SCIP_ROW row 
)

recalculates the activity of a row for the current pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1934 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwRecalcPseudoActivity(), Scip::stat, and TRUE.

◆ SCIPgetRowPseudoActivity()

SCIP_Real SCIPgetRowPseudoActivity ( SCIP scip,
SCIP_ROW row 
)

returns the activity of a row for the current pseudo solution

Returns
the activity of a row for the current pseudo solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1953 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetPseudoActivity(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetRowPseudoFeasibility()

SCIP_Real SCIPgetRowPseudoFeasibility ( SCIP scip,
SCIP_ROW row 
)

returns the feasibility of a row for the current pseudo solution: negative value means infeasibility

Returns
the feasibility of a row for the current pseudo solution: negative value means infeasibility
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1970 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetPseudoFeasibility(), Scip::set, Scip::stat, and TRUE.

◆ SCIPrecalcRowActivity()

SCIP_RETCODE SCIPrecalcRowActivity ( SCIP scip,
SCIP_ROW row 
)

recalculates the activity of a row in the last LP or pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 1988 of file scip_lp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwRecalcLPActivity(), SCIProwRecalcPseudoActivity(), SCIPtreeHasCurrentNodeLP(), Scip::stat, Scip::tree, and TRUE.

◆ SCIPgetRowActivity()

SCIP_Real SCIPgetRowActivity ( SCIP scip,
SCIP_ROW row 
)

returns the activity of a row in the last LP or pseudo solution

Returns
the activity of a row in the last LP or pseudo solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 2010 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPActivity(), SCIProwGetPseudoActivity(), SCIPtreeHasCurrentNodeLP(), Scip::set, Scip::stat, Scip::tree, and TRUE.

Referenced by createRows(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_HEUREXEC(), and SCIP_DECL_SEPAEXECLP().

◆ SCIPgetRowFeasibility()

SCIP_Real SCIPgetRowFeasibility ( SCIP scip,
SCIP_ROW row 
)

returns the feasibility of a row in the last LP or pseudo solution

Returns
the feasibility of a row in the last LP or pseudo solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row

Definition at line 2030 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPFeasibility(), SCIProwGetPseudoFeasibility(), SCIPtreeHasCurrentNodeLP(), Scip::set, Scip::stat, Scip::tree, and TRUE.

Referenced by generateClusterCuts(), and nodepairqueueCreate().

◆ SCIPgetRowSolActivity()

SCIP_Real SCIPgetRowSolActivity ( SCIP scip,
SCIP_ROW row,
SCIP_SOL sol 
)

returns the activity of a row for the given primal solution

Returns
the activitiy of a row for the given primal solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
solprimal CIP solution

Definition at line 2050 of file scip_lp.c.

References FALSE, Scip::lp, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPActivity(), SCIProwGetPseudoActivity(), SCIProwGetSolActivity(), SCIPtreeHasCurrentNodeLP(), Scip::set, Scip::stat, Scip::tree, and TRUE.

Referenced by addCut(), aggregation(), applyRepair(), buildMod2Matrix(), computeCut(), computeNogoodCut(), computeStandardIntegerOptCut(), generateAndApplyBendersCuts(), getNActiveConsScore(), mod2MatrixTransformContRows(), SCIP_DECL_HEUREXEC(), SCIPcutGenerationHeuristicCMIR(), and separateCuts().

◆ SCIPgetRowSolFeasibility()

SCIP_Real SCIPgetRowSolFeasibility ( SCIP scip,
SCIP_ROW row,
SCIP_SOL sol 
)

returns the feasibility of a row for the given primal solution

Returns
the feasibility of a row for the given primal solution
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
solprimal CIP solution

Definition at line 2073 of file scip_lp.c.

References FALSE, Scip::lp, NULL, SCIP_CALL_ABORT, SCIPcheckStage(), SCIProwGetLPFeasibility(), SCIProwGetPseudoFeasibility(), SCIProwGetSolFeasibility(), SCIPtreeHasCurrentNodeLP(), Scip::set, Scip::stat, Scip::tree, and TRUE.

Referenced by extendToCover(), generateClusterCuts(), separateCons(), separateConsBinaryRepresentation(), separateCoverCutsCons(), and separatePoint().

◆ SCIPprintRow()

SCIP_RETCODE SCIPprintRow ( SCIP scip,
SCIP_ROW row,
FILE *  file 
)

output row to file stream via the message handler system

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:

output row to file stream via the message handler system

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
this method can be called in one of the following stages of the SCIP solving process:
Parameters
scipSCIP data structure
rowLP row
fileoutput file (or NULL for standard output)

Definition at line 2099 of file scip_lp.c.

References FALSE, Scip::messagehdlr, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIProwPrint(), and TRUE.

Referenced by addBoundCutSepa(), addCut(), addOrbisackCover(), addOrbisackInequality(), addPathCuts(), addRelaxation(), addSubtourCuts(), addTourCuts(), computeCut(), createCapacityRestriction(), createCapacityRestrictionIntvars(), createCGCutCMIR(), createCGCutDirect(), createCGCutStrongCG(), createObjRow(), createPartitionCut(), createRow(), cut_add(), extendToCover(), generateAndApplyBendersIntegerCuts(), generateAndApplyBendersNogoodCut(), generateBoundInequalityFromSOS1Nodes(), generateCut(), generateOddCycleCut(), generateRowCardinality(), generateRowSOS2(), initLP(), initMatrix(), initsepaBoundInequalityFromCardinality(), initsepaBoundInequalityFromSOS1Cons(), LOPseparate(), rowCalculateGauss(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSINITLP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_HEUREXEC(), SCIP_DECL_SEPAEXECLP(), SCIPapplyLockFixings(), SCIProwCalcProbability(), SCIPseparateCoversOrbisack(), sepaImplBoundCutsSOS1(), separateCons(), separateCuts(), separateIndicators(), separatePerspective(), and separatePoint().