# SCIP

Solving Constraint Integer Programs

LP Relaxation

## Detailed Description

methods to build and access LP relaxation information

methods to interact with LP columns and LP rows

## Modules

LP Column
public methods for LP columns

LP Row
public methods for LP rows

Cuts and Cutpools
common methods used to manipulate, generate, and strengthen cuts and to organize the cutpool

LP Diving
methods to initiate and conduct LP diving

## Functions

SCIP_EXPORT SCIP_Bool SCIPhasCurrentNodeLP (SCIP *scip)

SCIP_EXPORT SCIP_Bool SCIPisLPConstructed (SCIP *scip)

SCIP_EXPORT SCIP_RETCODE SCIPconstructLP (SCIP *scip, SCIP_Bool *cutoff)

SCIP_EXPORT SCIP_RETCODE SCIPflushLP (SCIP *scip)

SCIP_EXPORT SCIP_LPSOLSTAT SCIPgetLPSolstat (SCIP *scip)

SCIP_EXPORT SCIP_Bool SCIPisLPPrimalReliable (SCIP *scip)

SCIP_EXPORT SCIP_Bool SCIPisLPDualReliable (SCIP *scip)

SCIP_EXPORT SCIP_Bool SCIPisLPRelax (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetLPObjval (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetLPColumnObjval (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetLPLooseObjval (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetGlobalPseudoObjval (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetPseudoObjval (SCIP *scip)

SCIP_EXPORT SCIP_Bool SCIPisRootLPRelax (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetLPRootObjval (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetLPRootColumnObjval (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetLPRootLooseObjval (SCIP *scip)

SCIP_EXPORT SCIP_Real SCIPgetLPFeastol (SCIP *scip)

SCIP_EXPORT void SCIPsetLPFeastol (SCIP *scip, SCIP_Real newfeastol)

SCIP_EXPORT void SCIPresetLPFeastol (SCIP *scip)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPColsData (SCIP *scip, SCIP_COL ***cols, int *ncols)

SCIP_EXPORT SCIP_COL ** SCIPgetLPCols (SCIP *scip)

SCIP_EXPORT int SCIPgetNLPCols (SCIP *scip)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPRowsData (SCIP *scip, SCIP_ROW ***rows, int *nrows)

SCIP_EXPORT SCIP_ROW ** SCIPgetLPRows (SCIP *scip)

SCIP_EXPORT int SCIPgetNLPRows (SCIP *scip)

SCIP_EXPORT SCIP_Bool SCIPallColsInLP (SCIP *scip)

SCIP_EXPORT SCIP_Bool SCIPisLPSolBasic (SCIP *scip)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPBasisInd (SCIP *scip, int *basisind)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvRow (SCIP *scip, int r, SCIP_Real *coefs, int *inds, int *ninds)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvCol (SCIP *scip, int c, SCIP_Real *coefs, int *inds, int *ninds)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvARow (SCIP *scip, int r, SCIP_Real *binvrow, SCIP_Real *coefs, int *inds, int *ninds)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvACol (SCIP *scip, int c, SCIP_Real *coefs, int *inds, int *ninds)

SCIP_EXPORT SCIP_RETCODE SCIPsumLPRows (SCIP *scip, SCIP_Real *weights, SCIP_REALARRAY *sumcoef, SCIP_Real *sumlhs, SCIP_Real *sumrhs)

SCIP_EXPORT SCIP_RETCODE SCIPwriteLP (SCIP *scip, const char *filename)

SCIP_EXPORT SCIP_RETCODE SCIPwriteMIP (SCIP *scip, const char *filename, SCIP_Bool genericnames, SCIP_Bool origobj, SCIP_Bool lazyconss)

SCIP_EXPORT SCIP_RETCODE SCIPgetLPI (SCIP *scip, SCIP_LPI **lpi)

SCIP_EXPORT SCIP_RETCODE SCIPprintLPSolutionQuality (SCIP *scip, FILE *file)

SCIP_EXPORT SCIP_RETCODE SCIPcomputeLPRelIntPoint (SCIP *scip, SCIP_Bool relaxrows, SCIP_Bool inclobjcutoff, SCIP_Real timelimit, int iterlimit, SCIP_SOL **point)

## ◆ SCIPhasCurrentNodeLP()

 SCIP_EXPORT SCIP_Bool SCIPhasCurrentNodeLP ( SCIP * scip )

returns, whether the LP was or is to be solved in the current node

Returns
whether the LP was or is to be solved in the current node.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 74 of file scip_lp.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeHasCurrentNodeLP(), Scip::tree, and TRUE.

## ◆ SCIPisLPConstructed()

 SCIP_EXPORT SCIP_Bool SCIPisLPConstructed ( SCIP * scip )

returns, whether the LP of the current node is already constructed

Returns
whether the LP of the current node is already constructed.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 92 of file scip_lp.c.

## ◆ SCIPconstructLP()

 SCIP_EXPORT SCIP_RETCODE SCIPconstructLP ( SCIP * scip, SCIP_Bool * cutoff )

makes sure that the LP of the current node is loaded and may be accessed through the LP information methods

Warning
Contructing the LP might change the amount of variables known in the transformed problem and therefore also the variables array of SCIP (returned by SCIPgetVars() and SCIPgetVarsData()), so it might be necessary to call one of the later method after this one
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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure cutoff pointer to store whether the node can be cut off

Definition at line 115 of file scip_lp.c.

Referenced by applyVbounds(), initialiseSubproblem(), and SCIP_DECL_HEUREXEC().

## ◆ SCIPflushLP()

 SCIP_EXPORT SCIP_RETCODE SCIPflushLP ( SCIP * scip )

makes sure that the LP of the current node is flushed

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 139 of file scip_lp.c.

Referenced by applyVbounds(), and SCIP_DECL_HEUREXEC().

## ◆ SCIPgetLPSolstat()

 SCIP_EXPORT SCIP_LPSOLSTAT SCIPgetLPSolstat ( SCIP * scip )

gets solution status of current LP

Returns
the solution status of current LP.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 159 of file scip_lp.c.

## ◆ SCIPisLPPrimalReliable()

 SCIP_EXPORT SCIP_Bool SCIPisLPPrimalReliable ( SCIP * scip )

returns whether the current LP solution passed the primal feasibility check

Returns
whether the current LP solution passed the primal feasibility check.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

returns whether the current LP solution passed the primal feasibility check

Returns
whether the current LP solution passed the primal feasibility check.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 180 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpIsPrimalReliable(), and TRUE.

## ◆ SCIPisLPDualReliable()

 SCIP_EXPORT SCIP_Bool SCIPisLPDualReliable ( SCIP * scip )

returns whether the current LP solution passed the dual feasibility check

Returns
whether the current LP solution passed the dual feasibility check.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 198 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpIsDualReliable(), and TRUE.

## ◆ SCIPisLPRelax()

 SCIP_EXPORT SCIP_Bool SCIPisLPRelax ( SCIP * scip )

returns whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound

Returns
whether the current lp is a relaxation of the current problem and its optimal objective value is a local lower bound.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 216 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpIsRelax(), and TRUE.

Referenced by performStrongbranchWithPropagation(), and redcostAvailable().

## ◆ SCIPgetLPObjval()

 SCIP_EXPORT SCIP_Real SCIPgetLPObjval ( SCIP * scip )

gets objective value of current LP (which is the sum of column and loose objective value)

Returns
the objective value of current LP (which is the sum of column and loose objective value).
Precondition
This method can be called if scip is in one of the following stages:
Note
This method returns the objective value of the current LP solution, which might be primal or dual infeasible if a limit was hit during solving. It must not be used as a dual bound if the LP solution status returned by SCIPgetLPSolstat() is SCIP_LPSOLSTAT_ITERLIMIT or SCIP_LPSOLSTAT_TIMELIMIT.

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 238 of file scip_lp.c.

## ◆ SCIPgetLPColumnObjval()

 SCIP_EXPORT SCIP_Real SCIPgetLPColumnObjval ( SCIP * scip )

gets part of objective value of current LP that results from COLUMN variables only

Returns
the part of objective value of current LP that results from COLUMN variables only.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 256 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpGetColumnObjval(), and TRUE.

## ◆ SCIPgetLPLooseObjval()

 SCIP_EXPORT SCIP_Real SCIPgetLPLooseObjval ( SCIP * scip )

gets part of objective value of current LP that results from LOOSE variables only

Returns
part of objective value of current LP that results from LOOSE variables only.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 274 of file scip_lp.c.

## ◆ SCIPgetGlobalPseudoObjval()

 SCIP_EXPORT SCIP_Real SCIPgetGlobalPseudoObjval ( SCIP * scip )

gets the global pseudo objective value; that is all variables set to their best (w.r.t. the objective function) global bound

Returns
the global pseudo objective value; that is all variables set to their best (w.r.t. the objective function) global bound.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 299 of file scip_lp.c.

Referenced by propagateCutoffboundGlobally(), and resolvePropagation().

## ◆ SCIPgetPseudoObjval()

 SCIP_EXPORT SCIP_Real SCIPgetPseudoObjval ( SCIP * scip )

gets the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the objective function) local bound

Returns
the pseudo objective value for the current search node; that is all variables set to their best (w.r.t. the objective function) local bound.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 324 of file scip_lp.c.

Referenced by applyOptcumulative(), and SCIP_DECL_DISPOUTPUT().

## ◆ SCIPisRootLPRelax()

 SCIP_EXPORT SCIP_Bool SCIPisRootLPRelax ( SCIP * scip )

returns whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound

Returns
whether the root lp is a relaxation of the problem and its optimal objective value is a global lower bound.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 342 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpIsRootLPRelax(), and TRUE.

## ◆ SCIPgetLPRootObjval()

 SCIP_EXPORT SCIP_Real SCIPgetLPRootObjval ( SCIP * scip )

gets the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved

Returns
the objective value of the root node LP or SCIP_INVALID if the root node LP was not (yet) solved.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 363 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpGetRootObjval(), and TRUE.

## ◆ SCIPgetLPRootColumnObjval()

 SCIP_EXPORT SCIP_Real SCIPgetLPRootColumnObjval ( SCIP * scip )

gets part of the objective value of the root node LP that results from COLUMN variables only; returns SCIP_INVALID if the root node LP was not (yet) solved

Returns
the part of the objective value of the root node LP that results from COLUMN variables only; or SCIP_INVALID if the root node LP was not (yet) solved.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 386 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpGetRootColumnObjval(), and TRUE.

## ◆ SCIPgetLPRootLooseObjval()

 SCIP_EXPORT SCIP_Real SCIPgetLPRootLooseObjval ( SCIP * scip )

gets part of the objective value of the root node LP that results from LOOSE variables only; returns SCIP_INVALID if the root node LP was not (yet) solved

Returns
the part of the objective value of the root node LP that results from LOOSE variables only; or SCIP_INVALID if the root node LP was not (yet) solved.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 409 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpGetRootLooseObjval(), and TRUE.

## ◆ SCIPgetLPFeastol()

 SCIP_EXPORT SCIP_Real SCIPgetLPFeastol ( SCIP * scip )

gets current primal feasibility tolerance of LP

Parameters
 scip SCIP data structure

Definition at line 419 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpGetFeastol(), and TRUE.

Referenced by enforceConstraint(), SCIPlpfeastol(), and separatePoint().

## ◆ SCIPsetLPFeastol()

 SCIP_EXPORT void SCIPsetLPFeastol ( SCIP * scip, SCIP_Real newfeastol )

sets primal feasibility tolerance of LP

Parameters
 scip SCIP data structure newfeastol new primal feasibility tolerance for LP

Definition at line 429 of file scip_lp.c.

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

Referenced by SCIPchgLpfeastol().

## ◆ SCIPresetLPFeastol()

 SCIP_EXPORT void SCIPresetLPFeastol ( SCIP * scip )

resets primal feasibility tolerance of LP

Sets primal feasibility tolerance to min of numerics/lpfeastolfactor * numerics/feastol and relaxfeastol.

Parameters
 scip SCIP data structure

Definition at line 443 of file scip_lp.c.

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

## ◆ SCIPgetLPColsData()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPColsData ( SCIP * scip, SCIP_COL *** cols, int * ncols )

gets current LP columns along with the current number of LP columns

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure cols pointer to store the array of LP columns, or NULL ncols pointer to store the number of LP columns, or NULL

Definition at line 462 of file scip_lp.c.

## ◆ SCIPgetLPCols()

 SCIP_EXPORT SCIP_COL** SCIPgetLPCols ( SCIP * scip )

gets current LP columns

Returns
the current LP columns.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 497 of file scip_lp.c.

Referenced by findUncapacitatedArcs(), getNextFlowrow(), and mcfnetworkFill().

## ◆ SCIPgetNLPCols()

 SCIP_EXPORT int SCIPgetNLPCols ( SCIP * scip )

gets current number of LP columns

Returns
the current number of LP columns.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 518 of file scip_lp.c.

## ◆ SCIPgetLPRowsData()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPRowsData ( SCIP * scip, SCIP_ROW *** rows, int * nrows )

gets current LP rows along with the current number of LP rows

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure rows pointer to store the array of LP rows, or NULL nrows pointer to store the number of LP rows, or NULL

Definition at line 540 of file scip_lp.c.

## ◆ SCIPgetLPRows()

 SCIP_EXPORT SCIP_ROW** SCIPgetLPRows ( SCIP * scip )

gets current LP rows

Returns
the current LP rows.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 575 of file scip_lp.c.

## ◆ SCIPgetNLPRows()

 SCIP_EXPORT int SCIPgetNLPRows ( SCIP * scip )

gets current number of LP rows

Returns
the current number of LP rows.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 596 of file scip_lp.c.

## ◆ SCIPallColsInLP()

 SCIP_EXPORT SCIP_Bool SCIPallColsInLP ( SCIP * scip )

returns TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing

Returns
TRUE iff all columns, i.e. every variable with non-empty column w.r.t. all ever created rows, are present in the LP, and FALSE, if there are additional already existing columns, that may be added to the LP in pricing.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 619 of file scip_lp.c.

## ◆ SCIPisLPSolBasic()

 SCIP_EXPORT SCIP_Bool SCIPisLPSolBasic ( SCIP * scip )

returns whether the current LP solution is basic, i.e. is defined by a valid simplex basis

Returns
whether the current LP solution is basic, i.e. is defined by a valid simplex basis.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure

Definition at line 637 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPlpIsSolBasic(), and TRUE.

## ◆ SCIPgetLPBasisInd()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPBasisInd ( SCIP * scip, int * basisind )

gets all indices of basic columns and rows: index i >= 0 corresponds to column i, index i < 0 to row -i-1

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure basisind pointer to store basis indices ready to keep number of rows entries

Definition at line 656 of file scip_lp.c.

Referenced by createCGMIPprimalsols(), SCIP_DECL_SEPAEXECLP(), and SCIPdummyDebugMethodForSun().

## ◆ SCIPgetLPBInvRow()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvRow ( SCIP * scip, int r, SCIP_Real * coefs, int * inds, int * ninds )

gets a row from the inverse basis matrix B^-1

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure r row number coefs array to store the coefficients of the row inds array to store the non-zero indices, or NULL ninds pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations)

Definition at line 684 of file scip_lp.c.

Referenced by createCGMIPprimalsols(), and SCIP_DECL_SEPAEXECLP().

## ◆ SCIPgetLPBInvCol()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvCol ( SCIP * scip, int c, SCIP_Real * coefs, int * inds, int * ninds )

gets a column from the inverse basis matrix B^-1

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure c column number of B^-1; this is NOT the number of the column in the LP returned by SCIPcolGetLPPos(); you have to call SCIPgetBasisInd() to get the array which links the B^-1 column numbers to the row and column numbers of the LP! c must be between 0 and nrows-1, since the basis has the size nrows * nrows coefs array to store the coefficients of the column inds array to store the non-zero indices, or NULL ninds pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations)

Definition at line 719 of file scip_lp.c.

## ◆ SCIPgetLPBInvARow()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvARow ( SCIP * scip, int r, SCIP_Real * binvrow, SCIP_Real * coefs, int * inds, int * ninds )

gets a row from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A)

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure r row number binvrow row in B^-1 from prior call to SCIPgetLPBInvRow(), or NULL coefs array to store the coefficients of the row inds array to store the non-zero indices, or NULL ninds pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations)

Definition at line 755 of file scip_lp.c.

Referenced by SCIP_DECL_SEPAEXECLP().

## ◆ SCIPgetLPBInvACol()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPBInvACol ( SCIP * scip, int c, SCIP_Real * coefs, int * inds, int * ninds )

gets a column from the product of inverse basis matrix B^-1 and coefficient matrix A (i.e. from B^-1 * A), i.e., it computes B^-1 * A_c with A_c being the c'th column of A

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure c column number which can be accessed by SCIPcolGetLPPos() coefs array to store the coefficients of the column inds array to store the non-zero indices, or NULL ninds pointer to store the number of non-zero indices, or NULL (-1: if we do not store sparsity informations)

Definition at line 789 of file scip_lp.c.

Referenced by generateAverageRay().

## ◆ SCIPsumLPRows()

 SCIP_EXPORT SCIP_RETCODE SCIPsumLPRows ( SCIP * scip, SCIP_Real * weights, SCIP_REALARRAY * sumcoef, SCIP_Real * sumlhs, SCIP_Real * sumrhs )

calculates a weighted sum of all LP rows; for negative weights, the left and right hand side of the corresponding LP row are swapped in the summation

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure weights row weights in row summation sumcoef array to store sum coefficients indexed by variables' probindex sumlhs pointer to store the left hand side of the row summation sumrhs pointer to store the right hand side of the row summation

Definition at line 822 of file scip_lp.c.

References FALSE, Scip::lp, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPlpSumRows(), Scip::set, Scip::transprob, and TRUE.

## ◆ SCIPwriteLP()

 SCIP_EXPORT SCIP_RETCODE SCIPwriteLP ( SCIP * scip, const char * filename )

writes current LP to a file

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure filename file name

Definition at line 847 of file scip_lp.c.

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIP_DECL_HEUREXEC().

## ◆ SCIPwriteMIP()

 SCIP_EXPORT SCIP_RETCODE SCIPwriteMIP ( SCIP * scip, const char * filename, SCIP_Bool genericnames, SCIP_Bool origobj, SCIP_Bool lazyconss )

writes MIP relaxation of the current branch-and-bound node to a file

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure filename file name genericnames should generic names like x_i and row_j be used in order to avoid troubles with reserved symbols? origobj should the original objective function be used? lazyconss output removable rows as lazy constraints?

Definition at line 881 of file scip_lp.c.

Referenced by SCIP_DECL_DIALOGEXEC().

## ◆ SCIPgetLPI()

 SCIP_EXPORT SCIP_RETCODE SCIPgetLPI ( SCIP * scip, SCIP_LPI ** lpi )

gets the LP interface of SCIP; with the LPI you can use all of the methods defined in lpi/lpi.h;

Warning
You have to make sure, that the full internal state of the LPI does not change or is recovered completely after the end of the method that uses the LPI. In particular, if you manipulate the LP or its solution (e.g. by calling one of the SCIPlpiAdd...() or one of the SCIPlpiSolve...() methods), you have to check in advance with SCIPlpiWasSolved() whether the LP is currently solved. If this is the case, you have to make sure, the internal solution status is recovered completely at the end of your method. This can be achieved by getting the LPI state before applying any LPI manipulations with SCIPlpiGetState() and restoring it afterwards with SCIPlpiSetState() and SCIPlpiFreeState(). Additionally you have to resolve the LP with the appropriate SCIPlpiSolve...() call in order to reinstall the internal solution status.
Make also sure, that all parameter values that you have changed are set back to their original values.
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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure lpi pointer to store the LP interface

Definition at line 931 of file scip_lp.c.

References FALSE, Scip::lp, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPlpGetLPI(), and TRUE.

Referenced by performStrongbranchWithPropagation(), SCIP_DECL_DISPOUTPUT(), and selectVarRecursive().

## ◆ SCIPprintLPSolutionQuality()

 SCIP_EXPORT SCIP_RETCODE SCIPprintLPSolutionQuality ( SCIP * scip, FILE * file )

Displays quality information about the current LP solution. An LP solution need to be available. Information printed is subject to what the LP solver supports

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Note
The printing process is done via the message handler system.

displays quality information about the current LP solution. An LP solution need to be available; information printed is subject to what the LP solver supports

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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Note
The printing process is done via the message handler system.
Parameters
 scip SCIP data structure file output file (or NULL for standard output)

Definition at line 967 of file scip_lp.c.

Referenced by SCIP_DECL_DIALOGEXEC().

## ◆ SCIPcomputeLPRelIntPoint()

 SCIP_EXPORT SCIP_RETCODE SCIPcomputeLPRelIntPoint ( SCIP * scip, SCIP_Bool relaxrows, SCIP_Bool inclobjcutoff, SCIP_Real timelimit, int iterlimit, SCIP_SOL ** point )

compute relative interior point to current LP

SCIPlpComputeRelIntPoint
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 if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
 scip SCIP data structure relaxrows should the rows be relaxed inclobjcutoff should a row for the objective cutoff be included timelimit time limit for LP solver iterlimit iteration limit for LP solver point relative interior point on exit

Definition at line 1040 of file scip_lp.c.

Referenced by SCIP_DECL_SEPAEXECLP(), and setAndUpdateCorePoint().