Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

public methods for LP rows

Functions

SCIP_EXPORT SCIP_DECL_SORTPTRCOMP (SCIProwComp)
 
SCIP_EXPORT void SCIProwLock (SCIP_ROW *row)
 
SCIP_EXPORT void SCIProwUnlock (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetScalarProduct (SCIP_ROW *row1, SCIP_ROW *row2)
 
SCIP_EXPORT SCIP_Real SCIProwGetParallelism (SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
 
SCIP_EXPORT SCIP_Real SCIProwGetOrthogonality (SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
 
SCIP_EXPORT void SCIProwSort (SCIP_ROW *row)
 
SCIP_EXPORT int SCIProwGetNNonz (SCIP_ROW *row)
 
SCIP_EXPORT int SCIProwGetNLPNonz (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_COL ** SCIProwGetCols (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_RealSCIProwGetVals (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetConstant (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetNorm (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetSumNorm (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetLhs (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetRhs (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetDualsol (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIProwGetDualfarkas (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_BASESTAT SCIProwGetBasisStatus (SCIP_ROW *row)
 
SCIP_EXPORT const char * SCIProwGetName (SCIP_ROW *row)
 
SCIP_EXPORT int SCIProwGetIndex (SCIP_ROW *row)
 
SCIP_EXPORT int SCIProwGetAge (SCIP_ROW *row)
 
SCIP_EXPORT int SCIProwGetRank (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Bool SCIProwIsIntegral (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Bool SCIProwIsLocal (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Bool SCIProwIsModifiable (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Bool SCIProwIsRemovable (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_ROWORIGINTYPE SCIProwGetOrigintype (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_CONSHDLRSCIProwGetOriginCons (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_SEPASCIProwGetOriginSepa (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Bool SCIProwIsInGlobalCutpool (SCIP_ROW *row)
 
SCIP_EXPORT int SCIProwGetLPPos (SCIP_ROW *row)
 
SCIP_EXPORT int SCIProwGetLPDepth (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Bool SCIProwIsInLP (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Longint SCIProwGetActiveLPCount (SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Longint SCIProwGetNLPsAfterCreation (SCIP_ROW *row)
 
SCIP_EXPORT void SCIProwChgRank (SCIP_ROW *row, int rank)
 
SCIP_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT SCIP_RETCODE SCIPcaptureRow (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_RETCODE SCIPreleaseRow (SCIP *scip, SCIP_ROW **row)
 
SCIP_EXPORT SCIP_RETCODE SCIPchgRowLhs (SCIP *scip, SCIP_ROW *row, SCIP_Real lhs)
 
SCIP_EXPORT SCIP_RETCODE SCIPchgRowRhs (SCIP *scip, SCIP_ROW *row, SCIP_Real rhs)
 
SCIP_EXPORT SCIP_RETCODE SCIPcacheRowExtensions (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_RETCODE SCIPflushRowExtensions (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_RETCODE SCIPaddVarToRow (SCIP *scip, SCIP_ROW *row, SCIP_VAR *var, SCIP_Real val)
 
SCIP_EXPORT SCIP_RETCODE SCIPaddVarsToRow (SCIP *scip, SCIP_ROW *row, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
 
SCIP_EXPORT SCIP_RETCODE SCIPaddVarsToRowSameCoef (SCIP *scip, SCIP_ROW *row, int nvars, SCIP_VAR **vars, SCIP_Real val)
 
SCIP_EXPORT 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_EXPORT 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)
 
SCIP_EXPORT void SCIPmarkRowNotRemovableLocal (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT int SCIPgetRowNumIntCols (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowMinCoef (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowMaxCoef (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowMinActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowMaxActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_RETCODE SCIPrecalcRowLPActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowLPActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowLPFeasibility (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_RETCODE SCIPrecalcRowPseudoActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowPseudoActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowPseudoFeasibility (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_RETCODE SCIPrecalcRowActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowActivity (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowFeasibility (SCIP *scip, SCIP_ROW *row)
 
SCIP_EXPORT SCIP_Real SCIPgetRowSolActivity (SCIP *scip, SCIP_ROW *row, SCIP_SOL *sol)
 
SCIP_EXPORT SCIP_Real SCIPgetRowSolFeasibility (SCIP *scip, SCIP_ROW *row, SCIP_SOL *sol)
 
SCIP_EXPORT SCIP_RETCODE SCIPprintRow (SCIP *scip, SCIP_ROW *row, FILE *file)
 

Function Documentation

◆ SCIP_DECL_SORTPTRCOMP()

SCIP_EXPORT 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()

SCIP_EXPORT 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()

SCIP_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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()

SCIP_EXPORT 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()

SCIP_EXPORT 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 16901 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_EXPORT SCIP_Real SCIProwGetSumNorm ( SCIP_ROW row)

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

Parameters
rowLP row

Definition at line 16954 of file lp.c.

References checkRowSumnorm, NULL, and SCIP_Row::sumnorm.

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

◆ SCIProwGetLhs()

◆ SCIProwGetRhs()

◆ SCIProwGetDualsol()

◆ SCIProwGetDualfarkas()

SCIP_EXPORT SCIP_Real SCIProwGetDualfarkas ( SCIP_ROW row)

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

Parameters
rowLP row

Definition at line 16999 of file lp.c.

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

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

◆ SCIProwGetBasisStatus()

SCIP_EXPORT 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 17014 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()

SCIP_EXPORT int SCIProwGetIndex ( SCIP_ROW row)

gets unique index of row

Parameters
rowLP row

Definition at line 17035 of file lp.c.

References SCIP_Row::index, and NULL.

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

◆ SCIProwGetAge()

SCIP_EXPORT int SCIProwGetAge ( SCIP_ROW row)

gets age of row

Parameters
rowLP row

Definition at line 17045 of file lp.c.

References SCIP_Row::age, and NULL.

Referenced by createSubscip(), and storeCuts().

◆ SCIProwGetRank()

SCIP_EXPORT int SCIProwGetRank ( SCIP_ROW row)

gets rank of row

Parameters
rowLP row

Definition at line 17055 of file lp.c.

References NULL, and SCIP_Row::rank.

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

◆ SCIProwIsIntegral()

SCIP_EXPORT 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 17065 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_EXPORT 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 17095 of file lp.c.

References NULL, and SCIP_Row::removable.

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

◆ SCIProwGetOrigintype()

SCIP_EXPORT SCIP_ROWORIGINTYPE SCIProwGetOrigintype ( SCIP_ROW row)

returns type of origin that created the row

Parameters
rowLP row

Definition at line 17105 of file lp.c.

References NULL, and SCIP_Row::origintype.

Referenced by storeCuts().

◆ SCIProwGetOriginCons()

SCIP_EXPORT SCIP_CONSHDLR* SCIProwGetOriginCons ( SCIP_ROW row)

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

Parameters
rowLP row

Definition at line 17115 of file lp.c.

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

Referenced by SCIPcutpoolSeparate().

◆ SCIProwGetOriginSepa()

SCIP_EXPORT SCIP_SEPA* SCIProwGetOriginSepa ( SCIP_ROW row)

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

Parameters
rowLP row

Definition at line 17130 of file lp.c.

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

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

◆ SCIProwIsInGlobalCutpool()

SCIP_EXPORT SCIP_Bool SCIProwIsInGlobalCutpool ( SCIP_ROW row)

returns TRUE iff row is member of the global cut pool

Parameters
rowLP row

Definition at line 17145 of file lp.c.

References SCIP_Row::inglobalcutpool, and NULL.

Referenced by SCIPselectCuts().

◆ SCIProwGetLPPos()

◆ SCIProwGetLPDepth()

SCIP_EXPORT 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 17166 of file lp.c.

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

◆ SCIProwIsInLP()

◆ SCIProwGetActiveLPCount()

SCIP_EXPORT 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 17199 of file lp.c.

References SCIP_Row::activeinlpcounter, and NULL.

Referenced by SCIPcutGetLPActivityQuot().

◆ SCIProwGetNLPsAfterCreation()

SCIP_EXPORT SCIP_Longint SCIProwGetNLPsAfterCreation ( SCIP_ROW row)

returns the number of LPs since this row has been created

Parameters
rowrow

Definition at line 17209 of file lp.c.

References SCIP_Row::nlpsaftercreation, and NULL.

Referenced by SCIPcutGetLPActivityQuot().

◆ SCIProwChgRank()

SCIP_EXPORT void SCIProwChgRank ( SCIP_ROW row,
int  rank 
)

changes the rank of LP row

Parameters
rowLP row
ranknew value for rank

Definition at line 17188 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_EXPORT 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 1136 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_EXPORT 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 1170 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_EXPORT 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 1204 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_EXPORT 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 1238 of file scip_lp.c.

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

◆ SCIPcreateEmptyRowCons()

SCIP_EXPORT 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 1268 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_EXPORT 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 1297 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_EXPORT 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 1326 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_EXPORT 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 1357 of file scip_lp.c.

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

◆ SCIPcaptureRow()

SCIP_EXPORT 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 1384 of file scip_lp.c.

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

Referenced by mcfnetworkFill().

◆ SCIPreleaseRow()

SCIP_EXPORT 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 1406 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_EXPORT 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 1427 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_EXPORT 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 1451 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_EXPORT 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 1479 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_EXPORT 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 1502 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_EXPORT 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 1539 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_EXPORT 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 1565 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_EXPORT 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 1611 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_EXPORT 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 1653 of file scip_lp.c.

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

◆ SCIPmakeRowIntegral()

SCIP_EXPORT 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 1682 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()

SCIP_EXPORT 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 1706 of file scip_lp.c.

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

Referenced by processCut(), and separatePoint().

◆ SCIPgetRowNumIntCols()

SCIP_EXPORT 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 1724 of file scip_lp.c.

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

Referenced by addCut(), and evaluateCutNumerics().

◆ SCIPgetRowMinCoef()

SCIP_EXPORT 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 1742 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_EXPORT 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 1760 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_EXPORT 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 1777 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_EXPORT 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 1794 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_EXPORT 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 1812 of file scip_lp.c.

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

◆ SCIPgetRowLPActivity()

SCIP_EXPORT 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 1831 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_EXPORT 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 1848 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_EXPORT 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 1866 of file scip_lp.c.

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

◆ SCIPgetRowPseudoActivity()

SCIP_EXPORT 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 1885 of file scip_lp.c.

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

◆ SCIPgetRowPseudoFeasibility()

SCIP_EXPORT 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 1902 of file scip_lp.c.

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

◆ SCIPrecalcRowActivity()

SCIP_EXPORT 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 1920 of file scip_lp.c.

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

◆ SCIPgetRowActivity()

SCIP_EXPORT 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 1942 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_EXPORT 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 1962 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_EXPORT 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 1982 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_EXPORT 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 2005 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_EXPORT 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 2031 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().