Scippy

SCIP

Solving Constraint Integer Programs

lp.h File Reference

Detailed Description

internal methods for LP management

Author
Tobias Achterberg
Marc Pfetsch
Kati Wolter
Gerald Gamrath

Definition in file lp.h.

#include <stdio.h>
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_misc.h"
#include "scip/type_lp.h"
#include "scip/type_var.h"
#include "scip/type_prob.h"
#include "scip/type_sol.h"
#include "scip/pub_lp.h"
#include "scip/struct_lp.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPcolCreate (SCIP_COL **col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, int len, SCIP_ROW **rows, SCIP_Real *vals, SCIP_Bool removable)
 
SCIP_RETCODE SCIPcolFree (SCIP_COL **col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
 
void SCIPcolPrint (SCIP_COL *col, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
 
SCIP_RETCODE SCIPcolAddCoef (SCIP_COL *col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_ROW *row, SCIP_Real val)
 
SCIP_RETCODE SCIPcolDelCoef (SCIP_COL *col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_ROW *row)
 
SCIP_RETCODE SCIPcolChgCoef (SCIP_COL *col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_ROW *row, SCIP_Real val)
 
SCIP_RETCODE SCIPcolIncCoef (SCIP_COL *col, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_ROW *row, SCIP_Real incval)
 
SCIP_RETCODE SCIPcolChgObj (SCIP_COL *col, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newobj)
 
SCIP_RETCODE SCIPcolChgLb (SCIP_COL *col, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newlb)
 
SCIP_RETCODE SCIPcolChgUb (SCIP_COL *col, SCIP_SET *set, SCIP_LP *lp, SCIP_Real newub)
 
SCIP_Real SCIPcolCalcRedcost (SCIP_COL *col, SCIP_Real *dualsol)
 
SCIP_Real SCIPcolGetRedcost (SCIP_COL *col, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_Real SCIPcolGetFeasibility (SCIP_COL *col, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_Real SCIPcolCalcFarkasCoef (SCIP_COL *col, SCIP_Real *dualfarkas)
 
SCIP_Real SCIPcolGetFarkasCoef (SCIP_COL *col, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_Real SCIPcolGetFarkasValue (SCIP_COL *col, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_RETCODE SCIPlpStartStrongbranch (SCIP_LP *lp)
 
SCIP_RETCODE SCIPlpEndStrongbranch (SCIP_LP *lp)
 
void SCIPcolSetStrongbranchData (SCIP_COL *col, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_Real lpobjval, SCIP_Real primsol, SCIP_Real sbdown, SCIP_Real sbup, SCIP_Bool sbdownvalid, SCIP_Bool sbupvalid, SCIP_Longint iter, int itlim)
 
void SCIPcolInvalidateStrongbranchData (SCIP_COL *col, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_RETCODE SCIPcolGetStrongbranch (SCIP_COL *col, SCIP_Bool integral, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *lperror)
 
SCIP_RETCODE SCIPcolGetStrongbranches (SCIP_COL **cols, int ncols, SCIP_Bool integral, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_LP *lp, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *lperror)
 
void SCIPcolGetStrongbranchLast (SCIP_COL *col, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Real *solval, SCIP_Real *lpobjval)
 
SCIP_Longint SCIPcolGetStrongbranchLPAge (SCIP_COL *col, SCIP_STAT *stat)
 
void SCIPcolMarkNotRemovableLocal (SCIP_COL *col, SCIP_STAT *stat)
 
SCIP_RETCODE SCIProwCreate (SCIP_ROW **row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, int len, SCIP_COL **cols, SCIP_Real *vals, SCIP_Real lhs, SCIP_Real rhs, SCIP_ROWORIGINTYPE origintype, void *origin, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool removable)
 
SCIP_RETCODE SCIProwFree (SCIP_ROW **row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
 
void SCIProwPrint (SCIP_ROW *row, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
 
SCIP_RETCODE SCIProwEnsureSize (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
 
void SCIProwCapture (SCIP_ROW *row)
 
SCIP_RETCODE SCIProwRelease (SCIP_ROW **row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
 
void SCIProwDelaySort (SCIP_ROW *row)
 
void SCIProwForceSort (SCIP_ROW *row, SCIP_SET *set)
 
SCIP_RETCODE SCIProwAddCoef (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_COL *col, SCIP_Real val)
 
SCIP_RETCODE SCIProwDelCoef (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_COL *col)
 
SCIP_RETCODE SCIProwChgCoef (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_COL *col, SCIP_Real val)
 
SCIP_RETCODE SCIProwIncCoef (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_COL *col, SCIP_Real incval)
 
SCIP_RETCODE SCIProwChgConstant (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_Real constant)
 
SCIP_RETCODE SCIProwAddConstant (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_Real addval)
 
SCIP_RETCODE SCIProwChgLhs (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_Real lhs)
 
SCIP_RETCODE SCIProwChgRhs (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_Real rhs)
 
SCIP_RETCODE SCIProwChgLocal (SCIP_ROW *row, SCIP_Bool local)
 
SCIP_RETCODE SCIProwCalcIntegralScalar (SCIP_ROW *row, SCIP_SET *set, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Bool usecontvars, SCIP_Real *intscalar, SCIP_Bool *success)
 
SCIP_RETCODE SCIProwMakeIntegral (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_STAT *stat, SCIP_LP *lp, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Bool usecontvars, SCIP_Bool *success)
 
void SCIProwRecalcLPActivity (SCIP_ROW *row, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetLPActivity (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_Real SCIProwGetLPFeasibility (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_Real SCIProwGetRelaxFeasibility (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetNLPFeasibility (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
void SCIProwRecalcPseudoActivity (SCIP_ROW *row, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetPseudoActivity (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetPseudoFeasibility (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetSolActivity (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol)
 
SCIP_Real SCIProwGetSolFeasibility (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol)
 
SCIP_Real SCIProwGetMinActivity (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetMaxActivity (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Bool SCIProwIsRedundant (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetMaxval (SCIP_ROW *row, SCIP_SET *set)
 
SCIP_Real SCIProwGetMinval (SCIP_ROW *row, SCIP_SET *set)
 
int SCIProwGetMaxidx (SCIP_ROW *row, SCIP_SET *set)
 
int SCIProwGetMinidx (SCIP_ROW *row, SCIP_SET *set)
 
SCIP_Real SCIProwGetLPEfficacy (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp)
 
SCIP_Bool SCIProwIsLPEfficacious (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_LP *lp, SCIP_Bool root)
 
SCIP_Real SCIProwGetSolEfficacy (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol)
 
SCIP_Bool SCIProwIsSolEfficacious (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Bool root)
 
SCIP_Real SCIProwGetRelaxEfficacy (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetNLPEfficacy (SCIP_ROW *row, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_Real SCIProwGetObjParallelism (SCIP_ROW *row, SCIP_SET *set, SCIP_LP *lp)
 
SCIP_RETCODE SCIProwCatchEvent (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
 
SCIP_RETCODE SCIProwDropEvent (SCIP_ROW *row, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int filterpos)
 
void SCIProwMarkNotRemovableLocal (SCIP_ROW *row, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPlpCreate (SCIP_LP **lp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, const char *name)
 
SCIP_RETCODE SCIPlpFree (SCIP_LP **lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
 
SCIP_RETCODE SCIPlpReset (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
 
SCIP_RETCODE SCIPlpAddCol (SCIP_LP *lp, SCIP_SET *set, SCIP_COL *col, int depth)
 
SCIP_RETCODE SCIPlpAddRow (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_ROW *row, int depth)
 
SCIP_RETCODE SCIPlpShrinkCols (SCIP_LP *lp, SCIP_SET *set, int newncols)
 
SCIP_RETCODE SCIPlpShrinkRows (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, int newnrows)
 
SCIP_RETCODE SCIPlpClear (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
 
void SCIPlpMarkSize (SCIP_LP *lp)
 
void SCIPlpSetSizeMark (SCIP_LP *lp, int nrows, int ncols)
 
SCIP_RETCODE SCIPlpGetBasisInd (SCIP_LP *lp, int *basisind)
 
SCIP_RETCODE SCIPlpGetBase (SCIP_LP *lp, int *cstat, int *rstat)
 
SCIP_RETCODE SCIPlpGetBInvRow (SCIP_LP *lp, int r, SCIP_Real *coef)
 
SCIP_RETCODE SCIPlpGetBInvCol (SCIP_LP *lp, int c, SCIP_Real *coef)
 
SCIP_RETCODE SCIPlpGetBInvARow (SCIP_LP *lp, int r, SCIP_Real *binvrow, SCIP_Real *coef)
 
SCIP_RETCODE SCIPlpGetBInvACol (SCIP_LP *lp, int c, SCIP_Real *coef)
 
SCIP_RETCODE SCIPlpSumRows (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob, SCIP_Real *weights, SCIP_REALARRAY *sumcoef, SCIP_Real *sumlhs, SCIP_Real *sumrhs)
 
SCIP_RETCODE SCIPlpCalcMIR (SCIP_LP *lp, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, SCIP_Bool fixintegralrhs, int *boundsfortrans, SCIP_BOUNDTYPE *boundtypesfortrans, int maxmksetcoefs, SCIP_Real maxweightrange, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Real *weights, int *sidetypes, SCIP_Real scale, SCIP_Real *mksetcoefs, SCIP_Bool *mksetcoefsvalid, SCIP_Real *mircoef, SCIP_Real *mirrhs, SCIP_Real *cutactivity, SCIP_Bool *success, SCIP_Bool *cutislocal, int *cutrank)
 
SCIP_RETCODE SCIPlpCalcStrongCG (SCIP_LP *lp, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real boundswitch, SCIP_Bool usevbds, SCIP_Bool allowlocal, int maxmksetcoefs, SCIP_Real maxweightrange, SCIP_Real minfrac, SCIP_Real maxfrac, SCIP_Real *weights, SCIP_Real scale, SCIP_Real *strongcgcoef, SCIP_Real *strongcgrhs, SCIP_Real *cutactivity, SCIP_Bool *success, SCIP_Bool *cutislocal, int *cutrank)
 
SCIP_RETCODE SCIPlpGetState (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate)
 
SCIP_RETCODE SCIPlpSetState (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_LPISTATE *lpistate, SCIP_Bool wasprimfeas, SCIP_Bool wasdualfeas)
 
SCIP_RETCODE SCIPlpFreeState (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPISTATE **lpistate)
 
SCIP_RETCODE SCIPlpGetNorms (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPINORMS **lpinorms)
 
SCIP_RETCODE SCIPlpSetNorms (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPINORMS *lpinorms)
 
SCIP_RETCODE SCIPlpFreeNorms (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_LPINORMS **lpinorms)
 
SCIP_RETCODE SCIPlpSetCutoffbound (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob, SCIP_Real cutoffbound)
 
SCIP_RETCODE SCIPlpFlush (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue)
 
SCIP_RETCODE SCIPlpMarkFlushed (SCIP_LP *lp, SCIP_SET *set)
 
SCIP_RETCODE SCIPlpSolveAndEval (SCIP_LP *lp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_Longint itlim, SCIP_Bool limitresolveiters, SCIP_Bool aging, SCIP_Bool keepsol, SCIP_Bool *lperror)
 
SCIP_LPSOLSTAT SCIPlpGetSolstat (SCIP_LP *lp)
 
void SCIPlpSetRootLPIsRelax (SCIP_LP *lp, SCIP_Bool isrelax)
 
SCIP_Bool SCIPlpIsRootLPRelax (SCIP_LP *lp)
 
SCIP_Real SCIPlpGetObjval (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
 
SCIP_Real SCIPlpGetColumnObjval (SCIP_LP *lp)
 
SCIP_Real SCIPlpGetLooseObjval (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
 
void SCIPlpStoreRootObjval (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
 
void SCIPlpInvalidateRootObjval (SCIP_LP *lp)
 
SCIP_Real SCIPlpGetGlobalPseudoObjval (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
 
SCIP_Real SCIPlpGetPseudoObjval (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob)
 
SCIP_Real SCIPlpGetModifiedPseudoObjval (SCIP_LP *lp, SCIP_SET *set, SCIP_PROB *prob, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype)
 
SCIP_Real SCIPlpGetModifiedProvedPseudoObjval (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldbound, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype)
 
SCIP_RETCODE SCIPlpUpdateVarObj (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
 
SCIP_RETCODE SCIPlpUpdateVarLbGlobal (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldlb, SCIP_Real newlb)
 
SCIP_RETCODE SCIPlpUpdateVarLb (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldlb, SCIP_Real newlb)
 
SCIP_RETCODE SCIPlpUpdateVarUbGlobal (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldub, SCIP_Real newub)
 
SCIP_RETCODE SCIPlpUpdateVarUb (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldub, SCIP_Real newub)
 
SCIP_RETCODE SCIPlpUpdateAddVar (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var)
 
SCIP_RETCODE SCIPlpUpdateDelVar (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var)
 
SCIP_RETCODE SCIPlpUpdateVarColumn (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var)
 
SCIP_RETCODE SCIPlpUpdateVarLoose (SCIP_LP *lp, SCIP_SET *set, SCIP_VAR *var)
 
void SCIPlpDecNLoosevars (SCIP_LP *lp)
 
SCIP_RETCODE SCIPlpGetSol (SCIP_LP *lp, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool *primalfeasible, SCIP_Bool *dualfeasible)
 
SCIP_RETCODE SCIPlpGetUnboundedSol (SCIP_LP *lp, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool *primalfeasible, SCIP_Bool *rayfeasible)
 
SCIP_RETCODE SCIPlpGetPrimalRay (SCIP_LP *lp, SCIP_SET *set, SCIP_Real *ray)
 
SCIP_RETCODE SCIPlpGetDualfarkas (SCIP_LP *lp, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPlpGetIterations (SCIP_LP *lp, int *iterations)
 
SCIP_RETCODE SCIPlpUpdateAges (SCIP_LP *lp, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPlpRemoveNewObsoletes (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
 
SCIP_RETCODE SCIPlpRemoveAllObsoletes (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
 
SCIP_RETCODE SCIPlpCleanupNew (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Bool root)
 
SCIP_RETCODE SCIPlpCleanupAll (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Bool root)
 
SCIP_RETCODE SCIPlpRemoveRedundantRows (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter)
 
SCIP_RETCODE SCIPlpStartDive (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPlpEndDive (SCIP_LP *lp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_VAR **vars, int nvars)
 
SCIP_RETCODE SCIPlpRecordOldRowSideDive (SCIP_LP *lp, SCIP_ROW *row, SCIP_SIDETYPE sidetype)
 
SCIP_RETCODE SCIPlpStartProbing (SCIP_LP *lp)
 
SCIP_RETCODE SCIPlpEndProbing (SCIP_LP *lp)
 
void SCIPlpStartStrongbranchProbing (SCIP_LP *lp)
 
void SCIPlpEndStrongbranchProbing (SCIP_LP *lp)
 
SCIP_RETCODE SCIPlpGetProvedLowerbound (SCIP_LP *lp, SCIP_SET *set, SCIP_Real *bound)
 
SCIP_RETCODE SCIPlpIsInfeasibilityProved (SCIP_LP *lp, SCIP_SET *set, SCIP_Bool *proved)
 
SCIP_RETCODE SCIPlpWrite (SCIP_LP *lp, const char *fname)
 
SCIP_RETCODE SCIPlpWriteMip (SCIP_LP *lp, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, const char *fname, SCIP_Bool genericnames, SCIP_Bool origobj, SCIP_OBJSENSE objsense, SCIP_Real objscale, SCIP_Real objoffset, SCIP_Bool lazyconss)
 
void SCIPlpRecalculateObjSqrNorm (SCIP_SET *set, SCIP_LP *lp)
 
SCIP_RETCODE SCIPlpComputeRelIntPoint (SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_LP *lp, SCIP_PROB *prob, SCIP_Bool relaxrows, SCIP_Bool inclobjcutoff, SCIP_Real timelimit, int iterlimit, SCIP_Real *point, SCIP_Bool *success)
 
SCIP_COL ** SCIPlpGetCols (SCIP_LP *lp)
 
int SCIPlpGetNCols (SCIP_LP *lp)
 
SCIP_ROW ** SCIPlpGetRows (SCIP_LP *lp)
 
int SCIPlpGetNRows (SCIP_LP *lp)
 
SCIP_COL ** SCIPlpGetNewcols (SCIP_LP *lp)
 
int SCIPlpGetNNewcols (SCIP_LP *lp)
 
SCIP_ROW ** SCIPlpGetNewrows (SCIP_LP *lp)
 
int SCIPlpGetNNewrows (SCIP_LP *lp)
 
SCIP_Real SCIPlpGetObjNorm (SCIP_LP *lp)
 
SCIP_Real SCIPlpGetRootObjval (SCIP_LP *lp)
 
SCIP_Real SCIPlpGetRootColumnObjval (SCIP_LP *lp)
 
SCIP_Real SCIPlpGetRootLooseObjval (SCIP_LP *lp)
 
SCIP_LPISCIPlpGetLPI (SCIP_LP *lp)
 
void SCIPlpSetIsRelax (SCIP_LP *lp, SCIP_Bool relax)
 
SCIP_Bool SCIPlpIsRelax (SCIP_LP *lp)
 
SCIP_Bool SCIPlpIsSolved (SCIP_LP *lp)
 
SCIP_Bool SCIPlpIsSolBasic (SCIP_LP *lp)
 
SCIP_Bool SCIPlpDiving (SCIP_LP *lp)
 
SCIP_Bool SCIPlpDivingObjChanged (SCIP_LP *lp)
 
void SCIPlpMarkDivingObjChanged (SCIP_LP *lp)
 

Function Documentation

SCIP_RETCODE SCIPcolCreate ( SCIP_COL **  col,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_VAR var,
int  len,
SCIP_ROW **  rows,
SCIP_Real vals,
SCIP_Bool  removable 
)

creates an LP column

Parameters
colpointer to column data
blkmemblock memory
setglobal SCIP settings
statproblem statistics
varvariable, this column represents
lennumber of nonzeros in the column
rowsarray with rows of column entries
valsarray with coefficients of column entries
removableshould the column be removed from the LP due to aging or cleanup?

Definition at line 3051 of file lp.c.

References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, SCIP_Stat::ncolidx, NULL, SCIP_Var::obj, SCIP_ALLOC, SCIP_BASESTAT_ZERO, SCIP_INVALID, SCIP_OKAY, SCIPsetIsZero(), SCIPvarGetLbLazy(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetUbLazy(), SCIPvarGetUbLocal(), SCIPvarIsIntegral(), and TRUE.

Referenced by SCIPvarColumn().

SCIP_RETCODE SCIPcolFree ( SCIP_COL **  col,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp 
)

frees an LP column

Parameters
colpointer to LP column
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data

Definition at line 3147 of file lp.c.

References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, colUnlink(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, and SCIPvarGetStatus().

Referenced by SCIPvarLoose(), and varFree().

void SCIPcolPrint ( SCIP_COL col,
SCIP_MESSAGEHDLR messagehdlr,
FILE *  file 
)

output column to file stream

Parameters
colLP column
messagehdlrmessage handler
fileoutput file (or NULL for standard output)

Definition at line 3177 of file lp.c.

References SCIP_Col::lb, SCIP_Col::len, SCIP_Row::name, NULL, SCIP_Col::obj, SCIP_Col::rows, SCIPmessageFPrintInfo(), SCIP_Col::ub, SCIP_Col::vals, and SCIP_Col::var.

SCIP_RETCODE SCIPcolAddCoef ( SCIP_COL col,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_ROW row,
SCIP_Real  val 
)

adds a previously non existing coefficient to an LP column

Parameters
colLP column
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
rowLP row
valvalue of coefficient

Definition at line 3217 of file lp.c.

References checkLinks, colAddCoef(), SCIP_Lp::diving, NULL, SCIP_CALL, and SCIP_OKAY.

SCIP_RETCODE SCIPcolDelCoef ( SCIP_COL col,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_ROW row 
)

deletes coefficient from column

deletes existing coefficient from column

Parameters
colcolumn to be changed
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
rowcoefficient to be deleted

Definition at line 3238 of file lp.c.

References checkLinks, colDelCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, SCIP_Row::name, NULL, rowDelCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetIsEQ(), SCIPvarGetName(), SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var.

SCIP_RETCODE SCIPcolChgCoef ( SCIP_COL col,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_ROW row,
SCIP_Real  val 
)

changes or adds a coefficient to an LP column

Parameters
colLP column
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
rowLP row
valvalue of coefficient

Definition at line 3283 of file lp.c.

References checkLinks, colAddCoef(), colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, NULL, rowChgCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.

SCIP_RETCODE SCIPcolIncCoef ( SCIP_COL col,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_ROW row,
SCIP_Real  incval 
)

increases value of an existing or nonexisting coefficient in an LP column

increases value of an existing or non-existing coefficient in an LP column

Parameters
colLP column
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
rowLP row
incvalvalue to add to the coefficient

Definition at line 3334 of file lp.c.

References checkLinks, colAddCoef(), colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, colSearchCoef(), SCIP_Lp::diving, SCIP_Col::index, SCIP_Col::linkpos, NULL, rowChgCoefPos(), SCIP_Col::rows, SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Col::vals, and SCIP_Row::vals.

SCIP_RETCODE SCIPcolChgObj ( SCIP_COL col,
SCIP_SET set,
SCIP_LP lp,
SCIP_Real  newobj 
)

changes objective value of column

Parameters
colLP column to change
setglobal SCIP settings
lpcurrent LP data
newobjnew objective value

Definition at line 3409 of file lp.c.

References FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lb, SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_Col::objchanged, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, SCIP_Col::ub, and SCIP_Col::var.

Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgObjDive().

SCIP_RETCODE SCIPcolChgLb ( SCIP_COL col,
SCIP_SET set,
SCIP_LP lp,
SCIP_Real  newlb 
)

changes lower bound of column

Parameters
colLP column to change
setglobal SCIP settings
lpcurrent LP data
newlbnew lower bound value

Definition at line 3456 of file lp.c.

References FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lb, SCIP_Col::lbchanged, SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, and SCIP_Col::var.

Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgLbDive().

SCIP_RETCODE SCIPcolChgUb ( SCIP_COL col,
SCIP_SET set,
SCIP_LP lp,
SCIP_Real  newub 
)

changes upper bound of column

Parameters
colLP column to change
setglobal SCIP settings
lpcurrent LP data
newubnew upper bound value

Definition at line 3501 of file lp.c.

References FALSE, SCIP_Lp::flushed, insertColChgcols(), SCIP_Col::lpipos, SCIP_Lp::nchgcols, NULL, SCIP_Col::obj, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPsetIsEQ(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), TRUE, SCIP_Col::ub, SCIP_Col::ubchanged, and SCIP_Col::var.

Referenced by SCIPeventProcess(), SCIPlpEndDive(), and SCIPvarChgUbDive().

SCIP_Real SCIPcolCalcRedcost ( SCIP_COL col,
SCIP_Real dualsol 
)

calculates the reduced costs of a column using the given dual solution vector

Parameters
colLP column
dualsoldual solution vector for current LP rows

Definition at line 3546 of file lp.c.

References SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::obj, SCIP_Col::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var.

Referenced by undoBdchgsDualsol().

SCIP_Real SCIPcolGetRedcost ( SCIP_COL col,
SCIP_STAT stat,
SCIP_LP lp 
)

gets the reduced costs of a column in last LP or after recalculation

Parameters
colLP column
statproblem statistics
lpcurrent LP data

Definition at line 3651 of file lp.c.

References colCalcInternalRedcost(), SCIP_Stat::lpcount, NULL, SCIP_Col::redcost, SCIP_INVALID, SCIP_Col::validredcostlp, and SCIP_Lp::validsollp.

Referenced by SCIPcolGetFeasibility(), SCIPgetColRedcost(), SCIPprobUpdateBestRootSol(), and SCIPvarGetRedcost().

SCIP_Real SCIPcolGetFeasibility ( SCIP_COL col,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp 
)

gets the feasibility of (the dual row of) a column in last LP or after recalculation

Parameters
colLP column
setglobal SCIP settings
statproblem statistics
lpcurrent LP data

Definition at line 3675 of file lp.c.

References SCIP_Col::lb, SCIP_Stat::lpcount, NULL, REALABS, SCIP_Real, SCIPcolGetRedcost(), SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIP_Col::ub, and SCIP_Lp::validsollp.

Referenced by SCIPpricestoreAddProbVars().

SCIP_Real SCIPcolCalcFarkasCoef ( SCIP_COL col,
SCIP_Real dualfarkas 
)

calculates the Farkas coefficient y^T A_i of a column i using the given dual Farkas vector y

Parameters
colLP column
dualfarkasdense dual Farkas vector for current LP rows

Definition at line 3729 of file lp.c.

References SCIP_Col::linkpos, SCIP_Row::lppos, SCIP_Col::nlprows, NULL, SCIP_Col::nunlinked, SCIP_Col::rows, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetCol(), SCIPvarGetStatus(), SCIP_Col::vals, and SCIP_Col::var.

SCIP_Real SCIPcolGetFarkasCoef ( SCIP_COL col,
SCIP_STAT stat,
SCIP_LP lp 
)

gets the Farkas coefficient y^T A_i of a column i in last LP (which must be infeasible)

gets the Farkas coefficient of a column in last LP (which must be infeasible)

Parameters
colLP column
statproblem statistics
lpcurrent LP data

Definition at line 3834 of file lp.c.

References colCalcInternalFarkasCoef(), SCIP_Col::farkascoef, SCIP_Stat::lpcount, NULL, SCIP_INVALID, SCIP_Col::validfarkaslp, and SCIP_Lp::validfarkaslp.

Referenced by SCIPcolGetFarkasValue(), and SCIPgetColFarkasCoef().

SCIP_Real SCIPcolGetFarkasValue ( SCIP_COL col,
SCIP_STAT stat,
SCIP_LP lp 
)

gets the Farkas value of a column in last LP (which must be infeasible), i.e. the Farkas coefficient y^T A_i times the best bound for this coefficient, i.e. max{y^T A_i x_i | lb <= x_i <= ub}

Parameters
colLP column
statproblem statistics
lpcurrent LP data

Definition at line 3860 of file lp.c.

References SCIP_Col::lb, NULL, SCIP_Real, SCIPcolGetFarkasCoef(), and SCIP_Col::ub.

Referenced by SCIPpricestoreAddProbVars().

SCIP_RETCODE SCIPlpStartStrongbranch ( SCIP_LP lp)

start strong branching - call before any strong branching

Parameters
lpLP data

Definition at line 3879 of file lp.c.

References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiStartStrongbranch(), SCIP_Lp::strongbranching, and TRUE.

Referenced by SCIPstartStrongbranch().

SCIP_RETCODE SCIPlpEndStrongbranch ( SCIP_LP lp)

end strong branching - call after any strong branching

Parameters
lpLP data

Definition at line 3894 of file lp.c.

References FALSE, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpiEndStrongbranch(), and SCIP_Lp::strongbranching.

Referenced by SCIPendStrongbranch().

void SCIPcolSetStrongbranchData ( SCIP_COL col,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp,
SCIP_Real  lpobjval,
SCIP_Real  primsol,
SCIP_Real  sbdown,
SCIP_Real  sbup,
SCIP_Bool  sbdownvalid,
SCIP_Bool  sbupvalid,
SCIP_Longint  iter,
int  itlim 
)

sets strong branching information for a column variable

Parameters
colLP column
setglobal SCIP settings
statdynamic problem statistics
lpLP data
lpobjvalobjective value of the current LP
primsolprimal solution value of the column in the current LP
sbdowndual bound after branching column down
sbupdual bound after branching column up
sbdownvalidis the returned down value a valid dual bound?
sbupvalidis the returned up value a valid dual bound?
itertotal number of strong branching iterations
itlimiteration limit applied to the strong branching call

Definition at line 3909 of file lp.c.

References SCIP_Lp::cols, SCIP_Lp::cutoffbound, SCIP_Stat::lpcount, SCIP_Col::lpipos, SCIP_Col::lppos, MIN, SCIP_Lp::ncols, SCIP_Stat::nnodes, SCIP_Stat::nrootsblpiterations, SCIP_Stat::nrootstrongbranchs, SCIP_Col::nsbcalls, SCIP_Stat::nsbdivinglps, SCIP_Stat::nsblpiterations, SCIP_Stat::nstrongbranchs, NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_VARSTATUS_COLUMN, SCIPcolIsIntegral(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::strongbranchprobing, SCIP_Col::validsblp, and SCIP_Col::var.

Referenced by SCIPgetVarStrongbranchWithPropagation().

void SCIPcolInvalidateStrongbranchData ( SCIP_COL col,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp 
)
SCIP_RETCODE SCIPcolGetStrongbranch ( SCIP_COL col,
SCIP_Bool  integral,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB prob,
SCIP_LP lp,
int  itlim,
SCIP_Real down,
SCIP_Real up,
SCIP_Bool downvalid,
SCIP_Bool upvalid,
SCIP_Bool lperror 
)

gets strong branching information on a column variable

Parameters
colLP column
integralshould integral strong branching be performed?
setglobal SCIP settings
statdynamic problem statistics
probproblem data
lpLP data
itlimiteration limit for strong branchings
downstores dual bound after branching column down
upstores dual bound after branching column up
downvalidstores whether the returned down value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value
upvalidstores whether the returned up value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value
lperrorpointer to store whether an unresolved LP error occurred

Definition at line 3998 of file lp.c.

References SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Lp::lpobjval, SCIP_Col::lppos, SCIP_Lp::lpsolstat, MIN, SCIP_Lp::ncols, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Stat::nrootsblpiterations, SCIP_Stat::nrootstrongbranchs, SCIP_Col::nsbcalls, SCIP_Stat::nsbdivinglps, SCIP_Stat::nsblpiterations, SCIP_Stat::nstrongbranchs, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolIsIntegral(), SCIPdebugMessage, SCIPlpGetObjval(), SCIPlpiStrongbranchFrac(), SCIPlpiStrongbranchInt(), SCIPsetInfinity(), SCIPsetIsFeasIntegral(), SCIPsetIsIntegral(), SCIPvarGetCol(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::solved, SCIP_Lp::strongbranching, SCIP_Stat::strongbranchtime, TRUE, SCIP_Col::validsblp, SCIP_Lp::validsollp, and SCIP_Col::var.

Referenced by SCIPgetVarStrongbranchFrac(), and SCIPgetVarStrongbranchInt().

SCIP_RETCODE SCIPcolGetStrongbranches ( SCIP_COL **  cols,
int  ncols,
SCIP_Bool  integral,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB prob,
SCIP_LP lp,
int  itlim,
SCIP_Real down,
SCIP_Real up,
SCIP_Bool downvalid,
SCIP_Bool upvalid,
SCIP_Bool lperror 
)

gets strong branching information on column variables

Parameters
colsLP columns
ncolsnumber of columns
integralshould integral strong branching be performed?
setglobal SCIP settings
statdynamic problem statistics
probproblem data
lpLP data
itlimiteration limit for strong branchings
downstores dual bounds after branching columns down
upstores dual bounds after branching columns up
downvalidstores whether the returned down values are valid dual bounds, or NULL; otherwise, they can only be used as an estimate value
upvalidstores whether the returned up values are valid dual bounds, or NULL; otherwise, they can only be used as an estimate value
lperrorpointer to store whether an unresolved LP error occurred

Definition at line 4157 of file lp.c.

References SCIP_Lp::cols, SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjvalinf, SCIP_Stat::lpcount, SCIP_Lp::lpi, SCIP_Col::lpipos, SCIP_Col::lppos, SCIP_Lp::lpsolstat, MIN, SCIP_Lp::ncols, SCIP_Stat::nduallpiterations, SCIP_Stat::nduallps, SCIP_Stat::ndualresolvelpiterations, SCIP_Stat::ndualresolvelps, SCIP_Stat::nnodes, SCIP_Stat::nprimallpiterations, SCIP_Stat::nprimallps, SCIP_Stat::nprimalresolvelpiterations, SCIP_Stat::nprimalresolvelps, SCIP_Stat::nrootsblpiterations, SCIP_Stat::nrootstrongbranchs, SCIP_Col::nsbcalls, SCIP_Stat::nsbdivinglps, SCIP_Stat::nsblpiterations, SCIP_Stat::nstrongbranchs, NULL, SCIP_Col::primsol, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sbitlim, SCIP_Col::sblpobjval, SCIP_Col::sbnode, SCIP_Col::sbsolval, SCIP_Col::sbup, SCIP_Col::sbupvalid, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_LPERROR, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPclockStart(), SCIPclockStop(), SCIPcolIsIntegral(), SCIPdebugMessage, SCIPlpGetObjval(), SCIPlpiStrongbranchesFrac(), SCIPlpiStrongbranchesInt(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsFeasIntegral(), SCIPvarGetCol(), SCIPvarGetStatus(), SCIPvarIsIntegral(), SCIP_Lp::solved, SCIP_Stat::strongbranchtime, TRUE, SCIP_Col::validsblp, SCIP_Lp::validsollp, and SCIP_Col::var.

Referenced by SCIPgetVarsStrongbranchesFrac(), and SCIPgetVarsStrongbranchesInt().

void SCIPcolGetStrongbranchLast ( SCIP_COL col,
SCIP_Real down,
SCIP_Real up,
SCIP_Bool downvalid,
SCIP_Bool upvalid,
SCIP_Real solval,
SCIP_Real lpobjval 
)

gets last strong branching information available for a column variable; returns values of SCIP_INVALID, if strong branching was not yet called on the given column; keep in mind, that the returned old values may have nothing to do with the current LP solution

Parameters
colLP column
downstores dual bound after branching column down, or NULL
upstores dual bound after branching column up, or NULL
downvalidstores whether the returned down value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value
upvalidstores whether the returned up value is a valid dual bound, or NULL; otherwise, it can only be used as an estimate value
solvalstores LP solution value of column at last strong branching call, or NULL
lpobjvalstores LP objective value at last strong branching call, or NULL

Definition at line 4393 of file lp.c.

References NULL, SCIP_Col::sbdown, SCIP_Col::sbdownvalid, SCIP_Col::sblpobjval, SCIP_Col::sbsolval, SCIP_Col::sbup, and SCIP_Col::sbupvalid.

Referenced by SCIPgetVarStrongbranchLast().

SCIP_Longint SCIPcolGetStrongbranchLPAge ( SCIP_COL col,
SCIP_STAT stat 
)

if strong branching was already applied on the column at the current node, returns the number of LPs solved after the LP where the strong branching on this column was applied; if strong branching was not yet applied on the column at the current node, returns INT_MAX

Parameters
colLP column
statdynamic problem statistics

Definition at line 4425 of file lp.c.

References SCIP_Stat::lpcount, SCIP_Stat::nnodes, SCIP_Stat::nsbdivinglps, NULL, SCIP_Col::sbnode, SCIP_LONGINT_MAX, and SCIP_Col::validsblp.

Referenced by SCIPgetVarStrongbranchLPAge().

void SCIPcolMarkNotRemovableLocal ( SCIP_COL col,
SCIP_STAT stat 
)

marks a column to be not removable from the LP in the current node because it became obsolete

Parameters
colLP column
statproblem statistics

Definition at line 4437 of file lp.c.

References SCIP_Stat::nnodes, NULL, and SCIP_Col::obsoletenode.

Referenced by SCIPmarkColNotRemovableLocal().

SCIP_RETCODE SCIProwCreate ( SCIP_ROW **  row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
const char *  name,
int  len,
SCIP_COL **  cols,
SCIP_Real vals,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_ROWORIGINTYPE  origintype,
void *  origin,
SCIP_Bool  local,
SCIP_Bool  modifiable,
SCIP_Bool  removable 
)

creates and captures an LP row

Parameters
rowpointer to LP row data
blkmemblock memory
setglobal SCIP settings
statproblem statistics
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
origintypetype of origin of row
originpointer to constraint handler or separator who created the row (NULL if unkown)
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 4787 of file lp.c.

References BMSallocBlockMemory, BMSallocBlockMemoryArray, BMSduplicateBlockMemoryArray, FALSE, SCIP_Col::index, SCIP_Stat::nrowidx, NULL, rowCalcNorms(), SCIP_ALLOC, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPeventfilterCreate(), SCIProwCapture(), SCIPsetInfinity(), SCIPsetIsIntegral(), SCIPsetIsZero(), SCIPsetRound(), SCIPvarIsIntegral(), TRUE, and SCIP_Col::var.

Referenced by SCIPcreateEmptyRowCons(), SCIPcreateEmptyRowSepa(), SCIPcreateEmptyRowUnspec(), SCIPcreateRowCons(), SCIPcreateRowSepa(), and SCIPcreateRowUnspec().

SCIP_RETCODE SCIProwFree ( SCIP_ROW **  row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_LP lp 
)

frees an LP row

Parameters
rowpointer to LP row
blkmemblock memory
setglobal SCIP settings
lpcurrent LP data

Definition at line 4923 of file lp.c.

References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeBlockMemoryNull, NULL, rowUnlink(), SCIP_CALL, SCIP_OKAY, and SCIPeventfilterFree().

Referenced by SCIProwRelease().

void SCIProwPrint ( SCIP_ROW row,
SCIP_MESSAGEHDLR messagehdlr,
FILE *  file 
)

output row to file stream

Parameters
rowLP row
messagehdlrmessage handler
fileoutput file (or NULL for standard output)

Definition at line 4955 of file lp.c.

References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::name, NULL, REALABS, SCIP_Row::rhs, SCIP_DEFAULT_EPSILON, SCIP_VARSTATUS_COLUMN, SCIPmessageFPrintInfo(), SCIPvarGetName(), SCIPvarGetStatus(), SCIP_Row::vals, and SCIP_Col::var.

Referenced by SCIPprintRow().

SCIP_RETCODE SCIProwEnsureSize ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
int  num 
)

ensures, that column array of row can store at least num entries

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
numminimum number of entries to store

Definition at line 579 of file lp.c.

References BMSreallocBlockMemoryArray, SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::len, SCIP_Row::linkpos, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Row::size, and SCIP_Row::vals.

Referenced by rowAddCoef(), SCIPaddVarsToRow(), and SCIPaddVarsToRowSameCoef().

void SCIProwCapture ( SCIP_ROW row)

increases usage counter of LP row

Parameters
rowLP row

Definition at line 4995 of file lp.c.

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

Referenced by cutCreate(), forkCreate(), lpFlushAddRows(), pseudoforkCreate(), SCIPcaptureRow(), SCIPlpAddRow(), SCIProwCreate(), SCIPsepastoreApplyCuts(), and sepastoreAddCut().

SCIP_RETCODE SCIProwRelease ( SCIP_ROW **  row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_LP lp 
)

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

Parameters
rowpointer to LP row
blkmemblock memory
setglobal SCIP settings
lpcurrent LP data

Definition at line 5008 of file lp.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIProwFree().

Referenced by cutFree(), forkFree(), lpDelRowset(), lpFlushDelRows(), pseudoforkFree(), SCIPlpFree(), SCIPlpShrinkRows(), SCIPreleaseRow(), SCIPsepastoreApplyCuts(), SCIPsepastoreClearCuts(), sepastoreAddCut(), sepastoreDelCut(), and subrootFree().

void SCIProwDelaySort ( SCIP_ROW row)

enables delaying of row sorting

Parameters
rowLP row

Definition at line 5802 of file lp.c.

References SCIP_Row::delaysort, NULL, and TRUE.

Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPcacheRowExtensions().

void SCIProwForceSort ( SCIP_ROW row,
SCIP_SET set 
)

disables delaying of row sorting, sorts row and merges coefficients with equal columns

Parameters
rowLP row
setglobal SCIP settings

Definition at line 5813 of file lp.c.

References SCIP_Row::delaysort, FALSE, NULL, and rowMerge().

Referenced by SCIPaddVarsToRow(), SCIPaddVarsToRowSameCoef(), and SCIPflushRowExtensions().

SCIP_RETCODE SCIProwAddCoef ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_COL col,
SCIP_Real  val 
)

adds a previously non existing coefficient to an LP row

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
colLP column
valvalue of coefficient

Definition at line 5065 of file lp.c.

References checkLinks, SCIP_Lp::diving, SCIP_Row::lppos, NULL, rowAddCoef(), SCIP_CALL, and SCIP_OKAY.

SCIP_RETCODE SCIProwDelCoef ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_COL col 
)

deletes coefficient from row

Parameters
rowrow to be changed
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
colcoefficient to be deleted

Definition at line 5086 of file lp.c.

References checkLinks, colDelCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, SCIP_Row::name, NULL, rowDelCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetIsEQ(), SCIPvarGetName(), SCIP_Col::vals, SCIP_Row::vals, and SCIP_Col::var.

SCIP_RETCODE SCIProwChgCoef ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_COL col,
SCIP_Real  val 
)

changes or adds a coefficient to an LP row

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
colLP column
valvalue of coefficient

Definition at line 5132 of file lp.c.

References checkLinks, colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::delaysort, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, NULL, rowAddCoef(), rowChgCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIP_Col::vals, and SCIP_Row::vals.

SCIP_RETCODE SCIProwIncCoef ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_COL col,
SCIP_Real  incval 
)

increases value of an existing or nonexisting coefficient in an LP column

increases value of an existing or non-existing coefficient in an LP row

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
colLP column
incvalvalue to add to the coefficient

Definition at line 5184 of file lp.c.

References checkLinks, colChgCoefPos(), SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Lp::diving, SCIP_Col::index, SCIP_Row::linkpos, SCIP_Row::lppos, NULL, rowAddCoef(), rowChgCoefPos(), SCIP_Col::rows, rowSearchCoef(), SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), SCIPsetIsZero(), SCIP_Col::vals, and SCIP_Row::vals.

Referenced by SCIPvarAddToRow().

SCIP_RETCODE SCIProwChgConstant ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_Real  constant 
)

changes constant value of a row

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
lpcurrent LP data
constantnew constant value

Definition at line 5238 of file lp.c.

References SCIP_Row::constant, SCIP_Lp::diving, SCIP_Stat::domchgcount, SCIP_Row::lhs, SCIP_Row::lppos, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, SCIP_Row::pseudoactivity, REALABS, SCIP_Row::rhs, rowEventConstantChanged(), rowSideChanged(), SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_SIDETYPE_RIGHT, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIP_Row::validactivitybdsdomchg, and SCIP_Row::validpsactivitydomchg.

Referenced by rowScale(), and SCIProwAddConstant().

SCIP_RETCODE SCIProwAddConstant ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_Real  addval 
)

add constant value to a row

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
lpcurrent LP data
addvalconstant value to add to the row

Definition at line 5293 of file lp.c.

References SCIP_Row::constant, SCIP_Lp::diving, SCIP_Row::lhs, SCIP_Row::lppos, NULL, REALABS, SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, SCIProwChgConstant(), SCIPsetIsInfinity(), and SCIPsetIsZero().

Referenced by SCIPvarAddToRow().

SCIP_RETCODE SCIProwChgLhs ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_Real  lhs 
)

changes left hand side of LP row

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
lhsnew left hand side

Definition at line 5319 of file lp.c.

References SCIP_Lp::diving, SCIP_Row::lhs, NULL, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, and SCIPsetIsEQ().

Referenced by rowScale(), SCIPchgRowLhs(), SCIPchgRowLhsDive(), and SCIPlpEndDive().

SCIP_RETCODE SCIProwChgRhs ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LP lp,
SCIP_Real  rhs 
)

changes right hand side of LP row

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpcurrent LP data
rhsnew right hand side

Definition at line 5351 of file lp.c.

References SCIP_Lp::diving, NULL, SCIP_Row::rhs, rowEventSideChanged(), rowSideChanged(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_RIGHT, and SCIPsetIsEQ().

Referenced by rowScale(), SCIPchgRowRhs(), SCIPchgRowRhsDive(), and SCIPlpEndDive().

SCIP_RETCODE SCIProwChgLocal ( SCIP_ROW row,
SCIP_Bool  local 
)

changes the local flag of LP row

Parameters
rowLP row
localnew value for local flag

Definition at line 5383 of file lp.c.

References SCIP_Row::local, NULL, and SCIP_OKAY.

Referenced by sepastoreAddCut().

SCIP_RETCODE SCIProwCalcIntegralScalar ( SCIP_ROW row,
SCIP_SET set,
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

Parameters
rowLP row
setglobal SCIP settings
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 5400 of file lp.c.

References SCIP_Row::cols, SCIP_Row::cols_index, FALSE, isIntegralScalar(), SCIP_Row::len, MIN, nscalars, NULL, REALABS, SCIP_Bool, SCIP_INVALID, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARSTATUS_COLUMN, SCIPcalcGreComDiv(), SCIPcolIsIntegral(), SCIPdebug, SCIPdebugMessage, SCIPrealToRational(), SCIProwGetName(), SCIPsetIsInfinity(), SCIPsetIsPositive(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetStatus(), TRUE, SCIP_Row::vals, and SCIP_Col::var.

Referenced by SCIPcalcRowIntegralScalar(), and SCIProwMakeIntegral().

SCIP_RETCODE SCIProwMakeIntegral ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_STAT stat,
SCIP_LP lp,
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 become integral

Parameters
rowLP row
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
statproblem statistics
lpcurrent LP data
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 5635 of file lp.c.

References NULL, rowScale(), SCIP_CALL, SCIP_OKAY, SCIP_Real, and SCIProwCalcIntegralScalar().

Referenced by SCIPmakeRowIntegral().

void SCIProwRecalcLPActivity ( SCIP_ROW row,
SCIP_STAT stat 
)
SCIP_Real SCIProwGetLPActivity ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp 
)

returns the activity of a row in the current LP solution

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics
lpcurrent LP data

Definition at line 5878 of file lp.c.

References SCIP_Row::activity, SCIP_Stat::lpcount, MAX, MIN, NULL, SCIP_INVALID, SCIP_Real, SCIProwRecalcLPActivity(), SCIPsetInfinity(), SCIP_Row::validactivitylp, and SCIP_Lp::validsollp.

Referenced by SCIPgetRowActivity(), SCIPgetRowLPActivity(), SCIPgetRowSolActivity(), and SCIProwGetLPFeasibility().

SCIP_Real SCIProwGetLPFeasibility ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp 
)

returns the feasibility of a row in the current LP solution: negative value means infeasibility

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics
lpcurrent LP data

Definition at line 5908 of file lp.c.

References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetLPActivity().

Referenced by SCIPcutpoolSeparate(), SCIPgetRowFeasibility(), SCIPgetRowLPFeasibility(), SCIPgetRowSolFeasibility(), SCIProwGetLPEfficacy(), sepastoreApplyBdchg(), and sepastoreApplyCut().

SCIP_Real SCIProwGetRelaxFeasibility ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

returns the feasibility of a row in the current relaxed solution: negative value means infeasibility

returns the feasibility of a row in the relaxed solution solution: negative value means infeasibility

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics

Definition at line 5928 of file lp.c.

References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Row::rhs, SCIP_Real, SCIPsetInfinity(), SCIPvarGetRelaxSol(), SCIP_Row::vals, and SCIP_Col::var.

Referenced by SCIProwGetRelaxEfficacy(), sepastoreApplyBdchg(), and sepastoreApplyCut().

SCIP_Real SCIProwGetNLPFeasibility ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

returns the feasibility of a row in the current NLP solution: negative value means infeasibility

returns the feasibility of a row in the current NLP solution: negative value means infeasibility

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics

Definition at line 5990 of file lp.c.

References SCIP_Row::cols, SCIP_Row::constant, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, SCIP_Row::nlpcols, NULL, SCIP_Row::nunlinked, SCIP_Row::rhs, SCIP_Real, SCIPsetInfinity(), SCIPvarGetNLPSol(), SCIP_Row::vals, and SCIP_Col::var.

Referenced by SCIProwGetNLPEfficacy(), sepastoreApplyBdchg(), and sepastoreApplyCut().

SCIP_Real SCIProwGetPseudoActivity ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

returns the pseudo activity of a row in the current pseudo solution

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics

Definition at line 6076 of file lp.c.

References SCIP_Stat::domchgcount, MAX, MIN, NULL, SCIP_Row::pseudoactivity, SCIP_INVALID, SCIP_Real, SCIProwRecalcPseudoActivity(), SCIPsetInfinity(), and SCIP_Row::validpsactivitydomchg.

Referenced by SCIPgetRowActivity(), SCIPgetRowPseudoActivity(), SCIPgetRowSolActivity(), and SCIProwGetPseudoFeasibility().

SCIP_Real SCIProwGetPseudoFeasibility ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

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

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics

Definition at line 6104 of file lp.c.

References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetPseudoActivity().

Referenced by SCIPgetRowFeasibility(), SCIPgetRowPseudoFeasibility(), and SCIPgetRowSolFeasibility().

SCIP_Real SCIProwGetSolActivity ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_SOL sol 
)

returns the activity of a row for a given solution

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data
solprimal CIP solution

Definition at line 6120 of file lp.c.

References SCIP_Row::cols, SCIP_Row::constant, SCIP_Col::lb, SCIP_Row::len, SCIP_Row::lhs, SCIP_Row::linkpos, SCIP_Col::lppos, MAX, MIN, NULL, SCIP_Row::rhs, SCIP_Real, SCIP_UNKNOWN, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsolGetVal(), SCIP_Col::ub, SCIP_Row::vals, and SCIP_Col::var.

Referenced by SCIPgetRowSolActivity(), SCIProwGetSolFeasibility(), and SCIPsolAdjustImplicitSolVals().

SCIP_Real SCIProwGetSolFeasibility ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_SOL sol 
)

returns the feasibility of a row for the given solution

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data
solprimal CIP solution

Definition at line 6162 of file lp.c.

References SCIP_Row::lhs, MIN, NULL, SCIP_Row::rhs, SCIP_Real, and SCIProwGetSolActivity().

Referenced by SCIPcutpoolSeparate(), SCIPgetRowSolFeasibility(), and SCIProwGetSolEfficacy().

SCIP_Real SCIProwGetMinActivity ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

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

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data

Definition at line 6240 of file lp.c.

References SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, and SCIP_Row::validactivitybdsdomchg.

Referenced by SCIPaddCut(), SCIPgetRowMinActivity(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible().

SCIP_Real SCIProwGetMaxActivity ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

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

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data

Definition at line 6261 of file lp.c.

References SCIP_Stat::domchgcount, SCIP_Row::maxactivity, SCIP_Row::minactivity, NULL, rowCalcActivityBounds(), SCIP_INVALID, and SCIP_Row::validactivitybdsdomchg.

Referenced by SCIPaddCut(), SCIPgetRowMaxActivity(), SCIPlpRemoveRedundantRows(), SCIProwIsRedundant(), sepastoreIsCutRedundant(), and sepastoreIsCutRedundantOrInfeasible().

SCIP_Bool SCIProwIsRedundant ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

returns whether the row is unmodifiable and redundant w.r.t. the columns' bounds

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data

Definition at line 6282 of file lp.c.

References FALSE, SCIP_Row::lhs, SCIP_Row::modifiable, NULL, SCIP_Row::rhs, SCIP_Real, SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsInfinity(), and TRUE.

Referenced by SCIPlpRemoveRedundantRows().

SCIP_Real SCIProwGetMaxval ( SCIP_ROW row,
SCIP_SET set 
)

gets maximal absolute value of row vector coefficients

Parameters
rowLP row
setglobal SCIP settings

Definition at line 6313 of file lp.c.

References SCIP_Row::len, SCIP_Row::maxval, NULL, SCIP_Row::nummaxval, and rowCalcIdxsAndVals().

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

SCIP_Real SCIProwGetMinval ( SCIP_ROW row,
SCIP_SET set 
)

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

Parameters
rowLP row
setglobal SCIP settings

Definition at line 6329 of file lp.c.

References SCIP_Row::len, SCIP_Row::minval, NULL, SCIP_Row::numminval, and rowCalcIdxsAndVals().

Referenced by SCIPgetRowMinCoef().

int SCIProwGetMaxidx ( SCIP_ROW row,
SCIP_SET set 
)

gets maximal column index of row entries

Parameters
rowLP row
setglobal SCIP settings

Definition at line 6345 of file lp.c.

References SCIP_Row::len, SCIP_Row::maxidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx.

Referenced by SCIPcutpoolAddNewRow().

int SCIProwGetMinidx ( SCIP_ROW row,
SCIP_SET set 
)

gets minimal column index of row entries

Parameters
rowLP row
setglobal SCIP settings

Definition at line 6361 of file lp.c.

References SCIP_Row::len, SCIP_Row::minidx, NULL, rowCalcIdxsAndVals(), and SCIP_Row::validminmaxidx.

SCIP_Real SCIProwGetLPEfficacy ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp 
)

returns row's efficacy with respect to the current LP solution: e = -feasibility/norm

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data
lpcurrent LP data

Definition at line 6377 of file lp.c.

References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetLPFeasibility(), SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().

Referenced by computeScore(), SCIPgetCutEfficacy(), and SCIProwIsLPEfficacious().

SCIP_Bool SCIProwIsLPEfficacious ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_LP lp,
SCIP_Bool  root 
)

returns whether the row's efficacy with respect to the current LP solution is greater than the minimal cut efficacy

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data
lpcurrent LP data
rootshould the root's minimal cut efficacy be used?

Definition at line 6418 of file lp.c.

References SCIP_Real, SCIProwGetLPEfficacy(), and SCIPsetIsEfficacious().

Referenced by SCIPcutpoolSeparate(), and SCIPisCutEfficacious().

SCIP_Real SCIProwGetSolEfficacy ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_SOL sol 
)

returns row's efficacy with respect to the given primal solution: e = -feasibility/norm

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data
solprimal CIP solution

Definition at line 6434 of file lp.c.

References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetSolFeasibility(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().

Referenced by SCIPgetCutEfficacy(), and SCIProwIsSolEfficacious().

SCIP_Bool SCIProwIsSolEfficacious ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat,
SCIP_SOL sol,
SCIP_Bool  root 
)

returns whether the row's efficacy with respect to the given primal solution is greater than the minimal cut efficacy

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data
solprimal CIP solution
rootshould the root's minimal cut efficacy be used?

Definition at line 6477 of file lp.c.

References SCIP_Real, SCIProwGetSolEfficacy(), and SCIPsetIsEfficacious().

Referenced by SCIPcutpoolSeparate(), and SCIPisCutEfficacious().

SCIP_Real SCIProwGetRelaxEfficacy ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

returns row's efficacy with respect to the relaxed solution: e = -feasibility/norm

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data

Definition at line 6493 of file lp.c.

References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNorm(), SCIProwGetRelaxFeasibility(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().

Referenced by computeScore().

SCIP_Real SCIProwGetNLPEfficacy ( SCIP_ROW row,
SCIP_SET set,
SCIP_STAT stat 
)

returns row's efficacy with respect to the NLP solution: e = -feasibility/norm

Parameters
rowLP row
setglobal SCIP settings
statproblem statistics data

Definition at line 6533 of file lp.c.

References SCIP_Row::len, MAX, NULL, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIProwGetMaxval(), SCIProwGetNLPFeasibility(), SCIProwGetNorm(), SCIProwGetSumNorm(), and SCIPsetSumepsilon().

Referenced by computeScore().

SCIP_Real SCIProwGetObjParallelism ( SCIP_ROW row,
SCIP_SET set,
SCIP_LP lp 
)

gets parallelism of row with objective function: if the returned value is 1, the row is parallel to the objective function, if the value is 0, it is orthogonal to the objective function

Parameters
rowLP row
setglobal SCIP settings
lpcurrent LP data

Definition at line 7337 of file lp.c.

References checkRowObjprod, checkRowSqrnorm, MAX, MIN, NULL, SCIP_Row::objprod, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, REALABS, SCIP_Real, SCIPlpRecalculateObjSqrNorm(), SCIPsetIsPositive(), SCIPsetIsSumGE(), SCIPsetIsSumLE(), and SCIP_Row::sqrnorm.

Referenced by sepastoreAddCut().

SCIP_RETCODE SCIProwCatchEvent ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTTYPE  eventtype,
SCIP_EVENTHDLR eventhdlr,
SCIP_EVENTDATA eventdata,
int *  filterpos 
)

includes event handler with given data in row's event filter

Parameters
rowrow
blkmemblock memory
setglobal SCIP settings
eventtypeevent type to catch
eventhdlrevent handler to call for the event processing
eventdataevent data to pass to the event handler for the event processing
filterpospointer to store position of event filter entry, or NULL

Definition at line 7370 of file lp.c.

References SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_EVENTTYPE_ROWCHANGED, SCIP_OKAY, SCIPdebugMessage, and SCIPeventfilterAdd().

Referenced by SCIPcatchRowEvent().

SCIP_RETCODE SCIProwDropEvent ( SCIP_ROW row,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTTYPE  eventtype,
SCIP_EVENTHDLR eventhdlr,
SCIP_EVENTDATA eventdata,
int  filterpos 
)

deletes event handler with given data from row's event filter

Parameters
rowrow
blkmemblock memory
setglobal SCIP settings
eventtypeevent type mask of dropped event
eventhdlrevent handler to call for the event processing
eventdataevent data to pass to the event handler for the event processing
filterposposition of event filter entry returned by SCIPvarCatchEvent(), or -1

Definition at line 7394 of file lp.c.

References SCIP_Row::eventfilter, SCIP_Row::name, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPeventfilterDel().

Referenced by SCIPdropRowEvent().

void SCIProwMarkNotRemovableLocal ( SCIP_ROW row,
SCIP_STAT stat 
)

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

marks a row to be not removable from the LP in the current node because it became obsolete

Parameters
rowLP row
statproblem statistics

Definition at line 7415 of file lp.c.

References SCIP_Stat::nnodes, NULL, and SCIP_Row::obsoletenode.

Referenced by SCIPmarkRowNotRemovableLocal().

SCIP_RETCODE SCIPlpFree ( SCIP_LP **  lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter 
)

frees LP data object

Parameters
lppointer to LP data object
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
eventfilterglobal event filter

Definition at line 8771 of file lp.c.

References BMSfreeMemory, BMSfreeMemoryArrayNull, BMSfreeMemoryNull, freeDiveChgSideArrays(), NULL, SCIP_CALL, SCIP_OKAY, SCIPlpClear(), SCIPlpiFree(), and SCIProwRelease().

Referenced by freeTransform().

SCIP_RETCODE SCIPlpReset ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter 
)

resets the LP to the empty LP by removing all columns and rows from LP, releasing all rows, and flushing the changes to the LP solver

Parameters
lpLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter

Definition at line 8815 of file lp.c.

References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::lastlpalgo, SCIP_Stat::lpcount, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpClear(), SCIPlpFlush(), SCIP_Lp::solisbasic, SCIP_Lp::solved, TRUE, SCIP_Lp::validfarkaslp, and SCIP_Lp::validsollp.

Referenced by freeSolve(), and initSolve().

SCIP_RETCODE SCIPlpAddRow ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter,
SCIP_ROW row,
int  depth 
)
SCIP_RETCODE SCIPlpShrinkCols ( SCIP_LP lp,
SCIP_SET set,
int  newncols 
)

removes all columns after the given number of columns from the LP

removes all columns after the given number of cols from the LP

Parameters
lpLP data
setglobal SCIP settings
newncolsnew number of columns in the LP

Definition at line 9024 of file lp.c.

References checkLazyColArray(), checkLinks, SCIP_Lp::cols, colUpdateDelLP(), SCIP_Lp::diving, FALSE, SCIP_Lp::flushed, SCIP_Lp::lazycols, SCIP_Col::len, SCIP_Col::lpdepth, SCIP_Lp::lpifirstchgcol, SCIP_Col::lppos, MIN, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Lp::nremovablecols, NULL, SCIP_Col::removable, SCIP_Col::rows, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPdebugMessage, SCIPvarGetCol(), SCIPvarGetStatus(), and SCIP_Col::var.

Referenced by focusnodeCleanupVars(), focusnodeToFork(), SCIPlpClear(), SCIPtreeLoadLP(), and treeBacktrackProbing().

SCIP_RETCODE SCIPlpShrinkRows ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter,
int  newnrows 
)

removes and releases all rows after the given number of rows from the LP

Parameters
lpLP data
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
eventfilterglobal event filter
newnrowsnew number of rows in the LP

Definition at line 9092 of file lp.c.

References checkLinks, SCIP_Row::cols, SCIP_EventFilter::eventmask, FALSE, SCIP_Lp::flushed, SCIP_EventFilter::len, SCIP_Row::len, SCIP_Row::lpdepth, SCIP_Lp::lpifirstchgrow, SCIP_Row::lppos, MIN, SCIP_Lp::nremovablerows, SCIP_Lp::nrows, NULL, SCIP_Row::removable, SCIP_Lp::rows, rowUpdateDelLP(), SCIP_CALL, SCIP_EVENTTYPE_ROWDELETEDLP, SCIP_OKAY, SCIPdebugMessage, SCIPeventCreateRowDeletedLP(), SCIPeventqueueAdd(), SCIProwRelease(), and SCIProwUnlock().

Referenced by focusnodeToFork(), SCIPlpClear(), SCIPlpEndDive(), SCIPtreeLoadLP(), and treeBacktrackProbing().

SCIP_RETCODE SCIPlpClear ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter 
)

removes all columns and rows from LP, releases all rows

Parameters
lpLP data
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
eventfilterglobal event filter

Definition at line 9158 of file lp.c.

References SCIP_Lp::diving, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpShrinkCols(), and SCIPlpShrinkRows().

Referenced by SCIPlpFree(), SCIPlpReset(), and SCIPtreeLoadLP().

void SCIPlpMarkSize ( SCIP_LP lp)

remembers number of columns and rows to track the newly added ones

Parameters
lpcurrent LP data

Definition at line 9177 of file lp.c.

References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, SCIP_Lp::ncols, SCIP_Lp::nrows, and NULL.

Referenced by SCIPnodeFocus(), SCIPtreeLoadLP(), and treeCreateProbingNode().

void SCIPlpSetSizeMark ( SCIP_LP lp,
int  nrows,
int  ncols 
)

sets the remembered number of columns and rows to the given values

Parameters
lpcurrent LP data
nrowsnumber of rows to set the size marker to
ncolsnumber of columns to set the size marker to

Definition at line 9189 of file lp.c.

References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, and NULL.

Referenced by treeBacktrackProbing().

SCIP_RETCODE SCIPlpGetBasisInd ( SCIP_LP lp,
int *  basisind 
)

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

Parameters
lpLP data
basisindpointer to store basis indices ready to keep number of rows entries

Definition at line 9203 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBasisInd(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by SCIPgetLPBasisInd().

SCIP_RETCODE SCIPlpGetBase ( SCIP_LP lp,
int *  cstat,
int *  rstat 
)

gets current basis status for columns and rows; arrays must be large enough to store the basis status

Parameters
lpLP data
cstatarray to store column basis status, or NULL
rstatarray to store row basis status, or NULL

Definition at line 9220 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBase(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

SCIP_RETCODE SCIPlpGetBInvRow ( SCIP_LP lp,
int  r,
SCIP_Real coef 
)

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

Parameters
lpLP data
rrow number
coefpointer to store the coefficients of the row

Definition at line 9237 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvRow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by SCIPgetLPBInvRow().

SCIP_RETCODE SCIPlpGetBInvCol ( SCIP_LP lp,
int  c,
SCIP_Real coef 
)

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

Parameters
lpLP data
ccolumn 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
coefpointer to store the coefficients of the column

Definition at line 9256 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvCol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by SCIPgetLPBInvCol().

SCIP_RETCODE SCIPlpGetBInvARow ( SCIP_LP lp,
int  r,
SCIP_Real binvrow,
SCIP_Real coef 
)

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

Parameters
lpLP data
rrow number
binvrowrow in B^-1 from prior call to SCIPlpGetBInvRow(), or NULL
coefpointer to store the coefficients of the row

Definition at line 9279 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvARow(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by SCIPgetLPBInvARow().

SCIP_RETCODE SCIPlpGetBInvACol ( SCIP_LP lp,
int  c,
SCIP_Real coef 
)

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

Parameters
lpLP data
ccolumn number which can be accessed by SCIPcolGetLPPos()
coefpointer to store the coefficients of the column

Definition at line 9301 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetBInvACol(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by SCIPgetLPBInvACol().

SCIP_RETCODE SCIPlpSumRows ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob,
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

Parameters
lpLP data
setglobal SCIP settings
probproblem data
weightsrow weights in row summation
sumcoefarray to store sum coefficients indexed by variables' probindex
sumlhspointer to store the left hand side of the row summation
sumrhspointer to store the right hand side of the row summation

Definition at line 9322 of file lp.c.

References SCIP_Row::cols, SCIP_Row::cols_index, SCIP_Row::constant, FALSE, SCIP_Row::len, SCIP_Row::lhs, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIPrealarrayClear(), SCIPrealarrayExtend(), SCIPrealarrayIncVal(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetCol(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIP_Row::vals, SCIP_Col::var, and SCIP_Col::var_probindex.

Referenced by SCIPsumLPRows().

SCIP_RETCODE SCIPlpCalcMIR ( SCIP_LP lp,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB prob,
SCIP_SOL sol,
SCIP_Real  boundswitch,
SCIP_Bool  usevbds,
SCIP_Bool  allowlocal,
SCIP_Bool  fixintegralrhs,
int *  boundsfortrans,
SCIP_BOUNDTYPE boundtypesfortrans,
int  maxmksetcoefs,
SCIP_Real  maxweightrange,
SCIP_Real  minfrac,
SCIP_Real  maxfrac,
SCIP_Real weights,
int *  sidetypes,
SCIP_Real  scale,
SCIP_Real mksetcoefs,
SCIP_Bool mksetcoefsvalid,
SCIP_Real mircoef,
SCIP_Real mirrhs,
SCIP_Real cutactivity,
SCIP_Bool success,
SCIP_Bool cutislocal,
int *  cutrank 
)
Parameters
lpLP data
setglobal SCIP settings
statproblem statistics
probproblem data
solthe solution that should be separated, or NULL for LP solution
boundswitchfraction of domain up to which lower bound is used in transformation
usevbdsshould variable bounds be used in bound transformation?
allowlocalshould local information allowed to be used, resulting in a local cut?
fixintegralrhsshould complementation tried to be adjusted such that rhs gets fractional?
boundsfortransbounds that should be used for transformed variables: vlb_idx/vub_idx, -1 for global lb/ub, -2 for local lb/ub, or -3 for using closest bound; NULL for using closest bound for all variables
boundtypesfortranstype of bounds that should be used for transformed variables; NULL for using closest bound for all variables
maxmksetcoefsmaximal number of nonzeros allowed in aggregated base inequality
maxweightrangemaximal valid range max(|weights|)/min(|weights|) of row weights
minfracminimal fractionality of rhs to produce MIR cut for
maxfracmaximal fractionality of rhs to produce MIR cut for
weightsrow weights in row summation
sidetypesspecify row side type (-1 = lhs, 0 = unkown, 1 = rhs) or NULL for automatic choices
scaleadditional scaling factor multiplied to all rows
mksetcoefsarray to store mixed knapsack set coefficients: size nvars; or NULL
mksetcoefsvalidpointer to store whether mixed knapsack set coefficients are valid; or NULL
mircoefarray to store MIR coefficients: must be of size nvars
mirrhspointer to store the right hand side of the MIR row
cutactivitypointer to store the activity of the resulting cut
successpointer to store whether the returned coefficients are a valid MIR cut
cutislocalpointer to store whether the returned cut is only valid locally
cutrankpointer to store the rank of the returned cut; or NULL

Definition at line 10839 of file lp.c.

References BMScopyMemoryArray, cleanupMIRRow(), FALSE, getMIRRowActivity(), MAXCMIRSCALE, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, REALABS, roundMIRRow(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPsetSumFloor(), SCIP_Lp::solved, substituteMIRRow(), sumMIRRow(), transformMIRRow(), and TRUE.

Referenced by SCIPcalcMIR().

SCIP_RETCODE SCIPlpCalcStrongCG ( SCIP_LP lp,
SCIP_SET set,
SCIP_STAT stat,
SCIP_PROB prob,
SCIP_Real  boundswitch,
SCIP_Bool  usevbds,
SCIP_Bool  allowlocal,
int  maxmksetcoefs,
SCIP_Real  maxweightrange,
SCIP_Real  minfrac,
SCIP_Real  maxfrac,
SCIP_Real weights,
SCIP_Real  scale,
SCIP_Real strongcgcoef,
SCIP_Real strongcgrhs,
SCIP_Real cutactivity,
SCIP_Bool success,
SCIP_Bool cutislocal,
int *  cutrank 
)
Parameters
lpLP data
setglobal SCIP settings
statproblem statistics
probproblem data
boundswitchfraction of domain up to which lower bound is used in transformation
usevbdsshould variable bounds be used in bound transformation?
allowlocalshould local information allowed to be used, resulting in a local cut?
maxmksetcoefsmaximal number of nonzeros allowed in aggregated base inequality
maxweightrangemaximal valid range max(|weights|)/min(|weights|) of row weights
minfracminimal fractionality of rhs to produce strong CG cut for
maxfracmaximal fractionality of rhs to produce strong CG cut for
weightsrow weights in row summation
scaleadditional scaling factor multiplied to all rows
strongcgcoefarray to store strong CG coefficients: must be of size nvars
strongcgrhspointer to store the right hand side of the strong CG row
cutactivitypointer to store the activity of the resulting cut
successpointer to store whether the returned coefficients are a valid strong CG cut
cutislocalpointer to store whether the returned cut is only valid locally
cutrankpointer to store the rank of the returned cut; or NULL

Definition at line 11900 of file lp.c.

References cleanupMIRRow(), FALSE, getMIRRowActivity(), SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, roundStrongCGRow(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMessage, SCIPsetAllocBufferArray, SCIPsetCeil(), SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPsetSumFloor(), SCIP_Lp::solved, substituteStrongCGRow(), sumStrongCGRow(), transformStrongCGRow(), and TRUE.

Referenced by SCIPcalcStrongCG().

SCIP_RETCODE SCIPlpGetState ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_LPISTATE **  lpistate 
)

stores LP state (like basis information) into LP state object

Parameters
lpLP data
blkmemblock memory
lpistatepointer to LP state information (like basis information)

Definition at line 12089 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetState(), and SCIP_Lp::solved.

Referenced by forkCreate(), probingnodeUpdate(), and SCIPtreeStartProbing().

SCIP_RETCODE SCIPlpSetState ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_EVENTQUEUE eventqueue,
SCIP_LPISTATE lpistate,
SCIP_Bool  wasprimfeas,
SCIP_Bool  wasdualfeas 
)

loads LP state (like basis information) into solver

Parameters
lpLP data
blkmemblock memory
setglobal SCIP settings
eventqueueevent queue
lpistateLP state information (like basis information)
wasprimfeasprimal feasibility when LP state information was stored
wasdualfeasdual feasibility when LP state information was stored

Definition at line 12113 of file lp.c.

References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_OKAY, SCIPlpFlush(), SCIPlpiHasStateBasis(), SCIPlpiSetState(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by SCIPlpEndDive(), SCIPtreeEndProbing(), SCIPtreeLoadLPState(), and SCIPtreeLoadProbingLPState().

SCIP_RETCODE SCIPlpFreeState ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_LPISTATE **  lpistate 
)

frees LP state information

Parameters
lpLP data
blkmemblock memory
lpistatepointer to LP state information (like basis information)

Definition at line 12151 of file lp.c.

References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeState().

Referenced by forkReleaseLPIState(), probingnodeFree(), probingnodeUpdate(), SCIPlpEndDive(), SCIPtreeEndProbing(), and subrootReleaseLPIState().

SCIP_RETCODE SCIPlpGetNorms ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_LPINORMS **  lpinorms 
)

stores pricing norms into LP norms object

Parameters
lpLP data
blkmemblock memory
lpinormspointer to LP pricing norms information

Definition at line 12168 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpiGetNorms(), and SCIP_Lp::solved.

Referenced by SCIPtreeStartProbing().

SCIP_RETCODE SCIPlpSetNorms ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_LPINORMS lpinorms 
)

loads pricing norms from LP norms object into solver

Parameters
lpLP data
blkmemblock memory
lpinormsLP pricing norms information

Definition at line 12192 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiSetNorms().

Referenced by SCIPtreeEndProbing(), and SCIPtreeLoadProbingLPState().

SCIP_RETCODE SCIPlpFreeNorms ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_LPINORMS **  lpinorms 
)

frees pricing norms information

Parameters
lpLP data
blkmemblock memory
lpinormspointer to LP pricing norms information

Definition at line 12212 of file lp.c.

References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiFreeNorms().

Referenced by SCIPtreeEndProbing().

SCIP_RETCODE SCIPlpSetCutoffbound ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob,
SCIP_Real  cutoffbound 
)

sets the upper objective limit of the LP solver

Parameters
lpcurrent LP data
setglobal SCIP settings
probproblem data
cutoffboundnew upper objective limit

Definition at line 12226 of file lp.c.

References SCIP_Lp::cutoffbound, FALSE, SCIP_Lp::flushed, lpCutoffDisabled, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, NULL, SCIP_INVALID, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpDivingObjChanged(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPsetIsInfinity(), and SCIP_Lp::solved.

Referenced by primalSetCutoffbound(), SCIPchgCutoffboundDive(), SCIPchgVarObjDive(), and SCIPendDive().

SCIP_RETCODE SCIPlpSolveAndEval ( SCIP_LP lp,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
BMS_BLKMEM blkmem,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter,
SCIP_PROB prob,
SCIP_Longint  itlim,
SCIP_Bool  limitresolveiters,
SCIP_Bool  aging,
SCIP_Bool  keepsol,
SCIP_Bool lperror 
)

solves the LP with simplex algorithm, and copy the solution into the column's data

Parameters
lpLP data
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory buffers
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter
probproblem data
itlimmaximal number of LP iterations to perform, or -1 for no limit
limitresolveitersshould LP iterations for resolving calls be limited? (limit is computed within the method w.r.t. the average LP iterations)
agingshould aging and removal of obsolete cols/rows be applied?
keepsolshould the old LP solution be kept if no iterations were performed?
lperrorpointer to store whether an unresolved LP error occurred

Definition at line 14223 of file lp.c.

References checkLazyBounds(), SCIP_Lp::cutoffbound, SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushaddedcols, SCIP_Lp::flushdeletedcols, SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::lastlpalgo, lpCutoffDisabled, lpFlushAndSolve(), lpGetResolveItlim(), SCIP_Lp::lpi, SCIP_Lp::lpifromscratch, SCIP_Lp::lpihasfastmip, SCIP_Lp::lpiuobjlim, SCIP_Lp::lpobjval, lpSetFromscratch(), SCIP_Lp::lpsolstat, lpSolve(), MIN, SCIP_Lp::ncols, SCIP_Lp::nlazycols, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Prob::nvars, SCIP_Lp::primalfeasible, SCIP_Lp::probing, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_Longint, SCIP_LPALGO_DUALSIMPLEX, SCIP_LPALGO_PRIMALSIMPLEX, SCIP_LPERROR, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPdebugMessage, SCIPerrorMessage, SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetLPI(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpiGetObjval(), SCIPlpiHasDualRay(), SCIPlpiInfinity(), SCIPlpiIsObjlimExc(), SCIPlpRemoveNewObsoletes(), SCIPlpUpdateAges(), SCIPmessagePrintVerbInfo(), SCIPprobAllColsInLP(), SCIPsetGetCharParam(), SCIPsetInfinity(), SCIPsetIsFeasNegative(), SCIPsetIsGE(), SCIPsetIsLT(), SCIPsetSetCharParam(), SCIP_Lp::solved, TRUE, and updateLazyBounds().

Referenced by focusnodeToFork(), priceAndCutLoop(), SCIPlpEndDive(), SCIPpriceLoop(), SCIPsolveDiveLP(), SCIPtreeEndProbing(), separationRoundResolveLP(), solveNodeInitialLP(), solveNodeLP(), and solveProbingLP().

void SCIPlpSetRootLPIsRelax ( SCIP_LP lp,
SCIP_Bool  isrelax 
)

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

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

Parameters
lpLP data
isrelaxis the root lp a relaxation of the problem?

Definition at line 18934 of file lp.c.

References NULL, and SCIP_Lp::rootlpisrelax.

Referenced by SCIPprobStoreRootSol().

SCIP_Bool SCIPlpIsRootLPRelax ( SCIP_LP lp)

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

Parameters
lpLP data

Definition at line 18945 of file lp.c.

References NULL, and SCIP_Lp::rootlpisrelax.

Referenced by SCIPisRootLPRelax().

SCIP_Real SCIPlpGetObjval ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob 
)

gets objective value of current LP

Note
This method returns the objective value of the current LP solution, which might be primal or dual infeasible if a limit was hit during solving. It must not be used as a dual bound if the LP solution status is SCIP_LPSOLSTAT_ITERLIMIT or SCIP_LPSOLSTAT_TIMELIMIT.
Parameters
lpcurrent LP data
setglobal SCIP settings
probproblem data

Definition at line 14776 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalid, SCIP_Lp::looseobjvalinf, SCIP_Lp::lpobjval, SCIP_Lp::nloosevars, NULL, recomputeLooseObjectiveValue(), SCIP_INVALID, SCIPsetInfinity(), SCIPsetIsInfinity(), and SCIP_Lp::solved.

Referenced by analyzeStrongbranch(), forkCreate(), priceAndCutLoop(), propAndSolve(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPgetLPObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPlpSetCutoffbound(), SCIPnodeUpdateLowerboundLP(), SCIPprobUpdateBestRootSol(), SCIPsolLinkLPSol(), solveNodeInitialLP(), solveNodeLP(), and updatePseudocost().

SCIP_Real SCIPlpGetColumnObjval ( SCIP_LP lp)

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

Parameters
lpcurrent LP data

Definition at line 14804 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpobjval, NULL, SCIP_INVALID, and SCIP_Lp::solved.

Referenced by SCIPgetLPColumnObjval(), and SCIPlpStoreRootObjval().

SCIP_Real SCIPlpGetLooseObjval ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob 
)

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

Parameters
lpcurrent LP data
setglobal SCIP settings
probproblem data

Definition at line 14815 of file lp.c.

References SCIP_Lp::flushed, getFiniteLooseObjval(), SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, NULL, SCIP_INVALID, SCIPsetInfinity(), and SCIP_Lp::solved.

Referenced by performStrongbranchWithPropagation(), SCIPgetLPLooseObjval(), SCIPlpStoreRootObjval(), and SCIPsolLinkLPSol().

void SCIPlpStoreRootObjval ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob 
)

remembers the current LP objective value as root solution value

Parameters
lpcurrent LP data
setglobal SCIP settings
probproblem data

Definition at line 14835 of file lp.c.

References NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, SCIPlpGetColumnObjval(), and SCIPlpGetLooseObjval().

Referenced by SCIPprobStoreRootSol().

void SCIPlpInvalidateRootObjval ( SCIP_LP lp)

invalidates the root LP solution value

Parameters
lpcurrent LP data

Definition at line 14848 of file lp.c.

References NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, and SCIP_INVALID.

Referenced by freeSolve().

SCIP_Real SCIPlpGetGlobalPseudoObjval ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob 
)

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

Parameters
lpcurrent LP data
setglobal SCIP settings
probproblem data

Definition at line 14861 of file lp.c.

References SCIP_Lp::glbpseudoobjval, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::glbpseudoobjvalinf, NULL, recomputeGlbPseudoObjectiveValue(), SCIPsetInfinity(), and SCIPsetIsInfinity().

Referenced by SCIPgetGlobalPseudoObjval(), and solveNode().

SCIP_Real SCIPlpGetPseudoObjval ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob 
)

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

Parameters
lpcurrent LP data
setglobal SCIP settings
probproblem data

Definition at line 14890 of file lp.c.

References NULL, SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, recomputePseudoObjectiveValue(), SCIPsetInfinity(), and SCIPsetIsInfinity().

Referenced by applyBounding(), enforceConstraints(), SCIPconflictAnalyzePseudo(), SCIPgetPseudoObjval(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPprimalHeuristics(), SCIPsolLinkPseudoSol(), and solveNode().

SCIP_Real SCIPlpGetModifiedPseudoObjval ( SCIP_LP lp,
SCIP_SET set,
SCIP_PROB prob,
SCIP_VAR var,
SCIP_Real  oldbound,
SCIP_Real  newbound,
SCIP_BOUNDTYPE  boundtype 
)

gets pseudo objective value, if a bound of the given variable would be modified in the given way

Parameters
lpcurrent LP data
setglobal SCIP settings
probproblem data
varproblem variable
oldboundold value for bound
newboundnew value for bound
boundtypetype of bound: lower or upper bound

Definition at line 14917 of file lp.c.

References getFinitePseudoObjval(), SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), and SCIPvarGetObj().

Referenced by SCIPnodeAddBoundinfer().

SCIP_Real SCIPlpGetModifiedProvedPseudoObjval ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var,
SCIP_Real  oldbound,
SCIP_Real  newbound,
SCIP_BOUNDTYPE  boundtype 
)

gets pseudo objective value, if a bound of the given variable would be modified in the given way; perform calculations with interval arithmetic to get an exact lower bound

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable
oldboundold value for bound
newboundnew value for bound
boundtypetype of bound: lower or upper bound

Definition at line 14957 of file lp.c.

References SCIP_Lp::pseudoobjval, SCIP_Lp::pseudoobjvalid, SCIP_Lp::pseudoobjvalinf, REALABS, SCIP_Real, SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSub(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPvarGetBestBoundType(), and SCIPvarGetObj().

Referenced by SCIPnodeAddBoundinfer().

SCIP_RETCODE SCIPlpUpdateVarObj ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var,
SCIP_Real  oldobj,
SCIP_Real  newobj 
)

updates current pseudo and loose objective value for a change in a variable's objective value

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable that changed
oldobjold objective value of variable
newobjnew objective value of variable

Definition at line 15483 of file lp.c.

References FALSE, getObjvalDeltaObj(), lpUpdateObjNorms(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), and TRUE.

Referenced by SCIPeventProcess(), SCIPlpUpdateAddVar(), and SCIPlpUpdateDelVar().

SCIP_RETCODE SCIPlpUpdateVarLbGlobal ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var,
SCIP_Real  oldlb,
SCIP_Real  newlb 
)

updates current root pseudo objective value for a global change in a variable's lower bound

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable that changed
oldlbold lower bound of variable
newlbnew lower bound of variable

Definition at line 15533 of file lp.c.

References FALSE, getObjvalDeltaLb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), and TRUE.

Referenced by SCIPeventProcess().

SCIP_RETCODE SCIPlpUpdateVarLb ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var,
SCIP_Real  oldlb,
SCIP_Real  newlb 
)

updates current pseudo and loose objective value for a change in a variable's lower bound

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable that changed
oldlbold lower bound of variable
newlbnew lower bound of variable

Definition at line 15560 of file lp.c.

References FALSE, getObjvalDeltaLb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsPositive(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and TRUE.

Referenced by SCIPeventProcess().

SCIP_RETCODE SCIPlpUpdateVarUbGlobal ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var,
SCIP_Real  oldub,
SCIP_Real  newub 
)

updates current root pseudo objective value for a global change in a variable's upper bound

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable that changed
oldubold upper bound of variable
newubnew upper bound of variable

Definition at line 15601 of file lp.c.

References FALSE, getObjvalDeltaUb(), lpUpdateObjval(), NULL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetObj(), and TRUE.

Referenced by SCIPeventProcess().

SCIP_RETCODE SCIPlpUpdateVarUb ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var,
SCIP_Real  oldub,
SCIP_Real  newub 
)

updates current pseudo objective value for a change in a variable's upper bound

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable that changed
oldubold upper bound of variable
newubnew upper bound of variable

Definition at line 15628 of file lp.c.

References FALSE, getObjvalDeltaUb(), lpUpdateObjval(), lpUpdateVarProved(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetIsEQ(), SCIPsetIsNegative(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), and TRUE.

Referenced by SCIPeventProcess().

SCIP_RETCODE SCIPlpUpdateAddVar ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var 
)

informs LP, that given variable was added to the problem

Parameters
lpcurrent LP data
setglobal SCIP settings
varvariable that is now a LOOSE problem variable

Definition at line 15669 of file lp.c.

References SCIP_Lp::nloosevars, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), and SCIPvarGetStatus().

Referenced by SCIPprobAddVar().

SCIP_RETCODE SCIPlpUpdateDelVar ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var 
)

informs LP, that given variable is to be deleted from the problem

Parameters
lpcurrent LP data
setglobal SCIP settings
varvariable that will be deleted from the problem

Definition at line 15690 of file lp.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPlpDecNLoosevars(), SCIPlpUpdateVarObj(), SCIPvarGetObj(), SCIPvarGetProbindex(), and SCIPvarGetStatus().

Referenced by SCIPprobPerformVarDeletions().

SCIP_RETCODE SCIPlpUpdateVarColumn ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var 
)

informs LP, that given formerly loose problem variable is now a column variable

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable that changed from LOOSE to COLUMN

Definition at line 15826 of file lp.c.

References lpUpdateVarColumn(), lpUpdateVarColumnProved(), NULL, SCIP_CALL, and SCIP_OKAY.

Referenced by SCIPvarColumn().

SCIP_RETCODE SCIPlpUpdateVarLoose ( SCIP_LP lp,
SCIP_SET set,
SCIP_VAR var 
)

informs LP, that given formerly column problem variable is now again a loose variable

Parameters
lpcurrent LP data
setglobal SCIP settings
varproblem variable that changed from COLUMN to LOOSE

Definition at line 15950 of file lp.c.

References lpUpdateVarLoose(), lpUpdateVarLooseProved(), NULL, SCIP_CALL, and SCIP_OKAY.

Referenced by SCIPvarLoose().

void SCIPlpDecNLoosevars ( SCIP_LP lp)

decrease the number of loose variables by one

Parameters
lpcurrent LP data

Definition at line 15971 of file lp.c.

References SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Lp::nloosevars, and NULL.

Referenced by lpUpdateVarColumn(), SCIPlpUpdateDelVar(), SCIPvarFix(), and SCIPvarMultiaggregate().

SCIP_RETCODE SCIPlpGetUnboundedSol ( SCIP_LP lp,
SCIP_SET set,
SCIP_STAT stat,
SCIP_Bool primalfeasible,
SCIP_Bool rayfeasible 
)
SCIP_RETCODE SCIPlpGetPrimalRay ( SCIP_LP lp,
SCIP_SET set,
SCIP_Real ray 
)

returns primal ray proving the unboundedness of the current LP

Parameters
lpcurrent LP data
setglobal SCIP settings
rayarray for storing primal ray values, they are stored w.r.t. the problem index of the variables, so the size of this array should be at least number of active variables (all entries have to be initialized to 0 before)

Definition at line 16436 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, SCIP_Lp::lpicols, SCIP_Lp::lpobjval, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, NULL, SCIP_CALL, SCIP_LPERROR, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPerrorMessage, SCIPlpiGetPrimalRay(), SCIPlpiHasPrimalRay(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsInfinity(), SCIPvarGetProbindex(), SCIP_Lp::solved, and SCIP_Col::var.

Referenced by updatePrimalRay().

SCIP_RETCODE SCIPlpGetIterations ( SCIP_LP lp,
int *  iterations 
)

get number of iterations used in last LP solve

Parameters
lpcurrent LP data
iterationspointer to store the iteration count

Definition at line 16559 of file lp.c.

References SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiGetIterations().

Referenced by lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), and lpPrimalSimplex().

SCIP_RETCODE SCIPlpUpdateAges ( SCIP_LP lp,
SCIP_STAT stat 
)

increases age of columns with solution value 0.0 and rows with activity not at its bounds, resets age of non-zero columns and sharp rows

increases age of columns with solution value 0.0 and basic rows with activity not at its bounds, resets age of non-zero columns and sharp rows

Parameters
lpcurrent LP data
statproblem statistics

Definition at line 16574 of file lp.c.

References SCIP_Col::age, SCIP_Row::age, SCIP_Lp::cols, SCIP_Lp::flushed, SCIP_Stat::lpcount, SCIP_Lp::lpicols, SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Lp::rows, SCIP_OKAY, SCIPdebugMessage, SCIP_Lp::solved, and SCIP_Lp::validsollp.

Referenced by SCIPlpSolveAndEval().

SCIP_RETCODE SCIPlpRemoveNewObsoletes ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter 
)

removes all non-basic columns and basic rows in the part of the LP created at the current node, that are too old

Parameters
lpcurrent LP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter

Definition at line 16971 of file lp.c.

References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), and SCIP_Lp::solved.

Referenced by SCIPlpSolveAndEval().

SCIP_RETCODE SCIPlpRemoveAllObsoletes ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter 
)

removes all non-basic columns and basic rows in whole LP, that are too old

Parameters
lpcurrent LP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter

Definition at line 17002 of file lp.c.

References SCIP_Lp::diving, lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), and SCIP_Lp::solved.

SCIP_RETCODE SCIPlpCleanupNew ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter,
SCIP_Bool  root 
)

removes all non-basic columns at 0.0 and basic rows in the part of the LP created at the current node

Parameters
lpcurrent LP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter
rootare we at the root node?

Definition at line 17171 of file lp.c.

References SCIP_Lp::diving, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, SCIP_Lp::lastlpalgo, lpCleanupCols(), lpCleanupRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

Referenced by focusnodeToFork().

SCIP_RETCODE SCIPlpCleanupAll ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter,
SCIP_Bool  root 
)

removes all non-basic columns at 0.0 and basic rows in the whole LP

Parameters
lpcurrent LP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter
rootare we at the root node?

Definition at line 17210 of file lp.c.

References SCIP_Lp::diving, SCIP_Lp::lastlpalgo, lpCleanupCols(), lpCleanupRows(), SCIP_Lp::ncols, SCIP_Lp::nrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetSolstat(), SCIP_Lp::solisbasic, and SCIP_Lp::solved.

SCIP_RETCODE SCIPlpRemoveRedundantRows ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter 
)

removes all redundant rows that were added at the current node

Parameters
lpcurrent LP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter

Definition at line 17249 of file lp.c.

References SCIP_Row::basisstatus, BMSclearMemoryArray, SCIP_Lp::diving, SCIP_Lp::firstnewrow, SCIP_Lp::flushed, SCIP_Stat::lpcount, lpDelRowset(), SCIP_Lp::lpirows, SCIP_Lp::ncols, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Lp::nrows, NULL, SCIP_Lp::rows, SCIP_BASESTAT_BASIC, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIProwGetLhs(), SCIProwGetMaxActivity(), SCIProwGetMinActivity(), SCIProwGetName(), SCIProwGetRhs(), SCIProwIsRedundant(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Lp::solisbasic, and SCIP_Lp::validsollp.

Referenced by priceAndCutLoop().

SCIP_RETCODE SCIPlpEndDive ( SCIP_LP lp,
BMS_BLKMEM blkmem,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
SCIP_STAT stat,
SCIP_EVENTQUEUE eventqueue,
SCIP_EVENTFILTER eventfilter,
SCIP_PROB prob,
SCIP_VAR **  vars,
int  nvars 
)

quits LP diving and resets bounds and objective values of columns to the current node's values

Parameters
lpcurrent LP data
blkmemblock memory
setglobal SCIP settings
messagehdlrmessage handler
statproblem statistics
eventqueueevent queue
eventfilterglobal event filter
probproblem data
varsarray with all active variables
nvarsnumber of active variables

Definition at line 17424 of file lp.c.

References colRestoreSolVals(), SCIP_Lp::cols, SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidetypes, SCIP_Lp::divelpistate, SCIP_Lp::divelpwasdualfeas, SCIP_Lp::divelpwasprimfeas, SCIP_Lp::diving, SCIP_Lp::divinglazyapplied, SCIP_Lp::divinglpiitlim, SCIP_Lp::divingobjchg, FALSE, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Stat::lpcount, SCIP_LpSolVals::lpissolved, lpRestoreSolVals(), lpSetIterationLimit(), SCIP_LpSolVals::lpsolstat, SCIP_Lp::ncols, SCIP_Lp::ndivechgsides, SCIP_Lp::ndivingrows, SCIP_Lp::nlazycols, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Lp::nrows, NULL, SCIP_Col::obj, SCIP_Lp::resolvelperror, rowRestoreSolVals(), SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_SIDETYPE_LEFT, SCIP_VARSTATUS_COLUMN, SCIP_VERBLEVEL_FULL, SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), SCIPdebugMessage, SCIPlpFlush(), SCIPlpFreeState(), SCIPlpGetSolstat(), SCIPlpSetState(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIProwChgLhs(), SCIProwChgRhs(), SCIPsetIsEQ(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIP_Lp::storedsolvals, TRUE, SCIP_Col::ub, updateLazyBounds(), and SCIP_Col::var.

Referenced by SCIPendDive().

SCIP_RETCODE SCIPlpRecordOldRowSideDive ( SCIP_LP lp,
SCIP_ROW row,
SCIP_SIDETYPE  sidetype 
)

records a current row side such that any change will be undone after diving

Parameters
lpLP data object
rowrow affected by the change
sidetypeside type

Definition at line 17606 of file lp.c.

References SCIP_Lp::divechgrows, SCIP_Lp::divechgsides, SCIP_Lp::divechgsidessize, SCIP_Lp::divechgsidetypes, DIVESTACKGROWFACT, SCIP_Row::lhs, SCIP_Lp::ndivechgsides, NULL, reallocDiveChgSideArrays(), SCIP_Row::rhs, SCIP_CALL, SCIP_OKAY, and SCIP_SIDETYPE_LEFT.

Referenced by SCIPchgRowLhsDive(), and SCIPchgRowRhsDive().

SCIP_RETCODE SCIPlpStartProbing ( SCIP_LP lp)

informs the LP that probing mode was initiated

Parameters
lpcurrent LP data

Definition at line 17630 of file lp.c.

References NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE.

Referenced by SCIPtreeStartProbing().

SCIP_RETCODE SCIPlpEndProbing ( SCIP_LP lp)

informs the LP that probing mode was finished

Parameters
lpcurrent LP data

Definition at line 17645 of file lp.c.

References FALSE, NULL, SCIP_Lp::probing, SCIP_OKAY, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing.

Referenced by SCIPtreeEndProbing().

void SCIPlpStartStrongbranchProbing ( SCIP_LP lp)

informs the LP that the probing mode is now used for strongbranching

Parameters
lpcurrent LP data

Definition at line 17660 of file lp.c.

References NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, SCIP_Lp::strongbranchprobing, and TRUE.

Referenced by SCIPstartStrongbranch().

void SCIPlpEndStrongbranchProbing ( SCIP_LP lp)

informs the LP that the probing mode is not used for strongbranching anymore

Parameters
lpcurrent LP data

Definition at line 17673 of file lp.c.

References FALSE, NULL, SCIP_Lp::probing, SCIP_Lp::strongbranching, and SCIP_Lp::strongbranchprobing.

Referenced by SCIPendStrongbranch().

SCIP_RETCODE SCIPlpGetProvedLowerbound ( SCIP_LP lp,
SCIP_SET set,
SCIP_Real bound 
)

gets proven lower (dual) bound of last LP solution

Parameters
lpcurrent LP data
setglobal SCIP settings
boundpointer to store proven dual bound

Definition at line 17806 of file lp.c.

References FALSE, provedBound(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.

Referenced by SCIPnodeUpdateLowerboundLP(), and solveNodeInitialLP().

SCIP_RETCODE SCIPlpIsInfeasibilityProved ( SCIP_LP lp,
SCIP_SET set,
SCIP_Bool proved 
)

gets proven dual bound of last LP solution

Parameters
lpcurrent LP data
setglobal SCIP settings
provedpointer to store whether infeasibility is proven

Definition at line 17820 of file lp.c.

References NULL, provedBound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, and TRUE.

SCIP_RETCODE SCIPlpWrite ( SCIP_LP lp,
const char *  fname 
)

writes LP to a file

Parameters
lpcurrent LP data
fnamefile name

Definition at line 17842 of file lp.c.

References SCIP_Lp::flushed, SCIP_Lp::lpi, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpiWriteLP().

Referenced by lpBarrier(), lpDualSimplex(), lpPrimalSimplex(), and SCIPwriteLP().

SCIP_RETCODE SCIPlpWriteMip ( SCIP_LP lp,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
const char *  fname,
SCIP_Bool  genericnames,
SCIP_Bool  origobj,
SCIP_OBJSENSE  objsense,
SCIP_Real  objscale,
SCIP_Real  objoffset,
SCIP_Bool  lazyconss 
)

writes MIP to a file

writes MIP relaxation of the current B&B node to a file

Note
the transformed problem in SCIP is always a minimization problem
Parameters
lpcurrent LP data
setglobal SCIP settings
messagehdlrmessage handler
fnamefile name
genericnamesshould generic names like x_i and row_j be used in order to avoid troubles with reserved symbols?
origobjshould the original objective function be used?
objsenseobjective sense
objscaleobjective scaling factor
objoffsetobjective offset, e.g., caused by variable fixings in presolving
lazyconssoutput removable rows as lazy constraints?

Definition at line 17857 of file lp.c.

References SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::flushed, SCIP_Col::lb, SCIP_Row::lhs, SCIP_Col::lppos, SCIP_Row::lppos, SCIP_Row::name, SCIP_Var::name, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, SCIP_ERROR, SCIP_FILECREATEERROR, SCIP_MAXSTRLEN, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPerrorMessage, SCIPmessageFPrintInfo(), SCIPmessagePrintWarning(), SCIPprintSysError(), SCIProwIsRemovable(), SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsnprintf(), SCIPvarIsIntegral(), SCIP_Col::ub, SCIP_Row::vals, and SCIP_Col::var.

Referenced by SCIPwriteMIP().

void SCIPlpRecalculateObjSqrNorm ( SCIP_SET set,
SCIP_LP lp 
)

recalculates Euclidean norm of objective function vector of column variables if it have gotten unreliable during calculation

Parameters
setglobal SCIP settings
lpLP data

Definition at line 18891 of file lp.c.

References SCIP_Lp::cols, FALSE, MAX, SCIP_Lp::ncols, NULL, SCIP_Lp::objsqrnorm, SCIP_Lp::objsqrnormunreliable, and SCIPsetIsGE().

Referenced by SCIPgetObjNorm(), and SCIProwGetObjParallelism().

SCIP_RETCODE SCIPlpComputeRelIntPoint ( SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
SCIP_LP lp,
SCIP_PROB prob,
SCIP_Bool  relaxrows,
SCIP_Bool  inclobjcutoff,
SCIP_Real  timelimit,
int  iterlimit,
SCIP_Real point,
SCIP_Bool success 
)

compute relative interior point

compute relative interior point

We use the approach of

R. Freund, R. Roundy, M. J. Todd
"Identifying the Set of Always-Active Constraints in a System of Linear Inequalities by a Single Linear Program"
Tech. Rep, No. 1674-85, Sloan School, M.I.T., 1985

to compute a relative interior point for the current LP.

Assume the original LP looks as follows:

\[ \begin{array}{rrl} \min & c^T x &\\ & A x & \geq a\\ & B x & \leq b\\ & D x & = d. \end{array} \]

Note that bounds should be included in the system.

To find an interior point the following LP does the job:

\[ \begin{array}{rrl} \max & 1^T y &\\ & A x - y - \alpha a & \geq 0\\ & B x + y - \alpha b & \leq 0\\ & D x - \alpha d & = 0\\ & 0 \leq y & \leq 1\\ & \alpha & \geq 1. \end{array} \]

If the original LP is feasible, this LP is feasible as well. Any optimal solution yields the relative interior point $x^*_j/\alpha^*$. Note that this will just produce some relative interior point. It does not produce a particular relative interior point, e.g., one that maximizes the distance to the boundary in some norm.

Parameters
setglobal SCIP settings
messagehdlrmessage handler
lpLP data
probproblem data
relaxrowsshould the rows be relaxed
inclobjcutoffshould a row for the objective cutoff be included
timelimittime limit for LP solver
iterlimititeration limit for LP solver
pointarray to store relative interior point on exit
successbuffer to indicate whether interior point was successfully computed

Definition at line 19107 of file lp.c.

References BMSclearMemoryArray, SCIP_Row::cols, SCIP_Lp::cols, SCIP_Row::constant, SCIP_Lp::cutoffbound, FALSE, getFiniteLooseObjval(), SCIP_Col::lb, SCIP_Row::lhs, SCIP_Lp::looseobjval, SCIP_Lp::looseobjvalinf, SCIP_Row::lpcolssorted, SCIP_Col::lppos, MAX, SCIP_Lp::ncols, SCIP_Row::nlpcols, SCIP_Lp::nrows, NULL, SCIP_Col::obj, REALABS, SCIP_Row::rhs, SCIP_Lp::rows, rowSortLP(), SCIP_CALL, SCIP_INVALID, SCIP_LPPAR_DUALFEASTOL, SCIP_LPPAR_FEASTOL, SCIP_LPPAR_LPITLIM, SCIP_LPPAR_LPTILIM, SCIP_OBJSEN_MAXIMIZE, SCIP_OKAY, SCIP_PARAMETERUNKNOWN, SCIP_Real, SCIPdebugMessage, SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiCreate(), SCIPlpiFree(), SCIPlpiGetNCols(), SCIPlpiGetSol(), SCIPlpiInfinity(), SCIPlpiIsIterlimExc(), SCIPlpiIsOptimal(), SCIPlpiIsTimelimExc(), SCIPlpiSetIntpar(), SCIPlpiSetRealpar(), SCIPlpiSolveDual(), SCIPlpiWriteLP(), SCIPmessagePrintWarning(), SCIProwIsModifiable(), SCIPsetAllocBufferArray, SCIPsetDualfeastol(), SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetLpfeastol(), TRUE, SCIP_Col::ub, and SCIP_Row::vals.

Referenced by SCIPcomputeLPRelIntPoint().

SCIP_COL** SCIPlpGetCols ( SCIP_LP lp)

gets array with columns of the LP

Parameters
lpcurrent LP data

Definition at line 18807 of file lp.c.

References SCIP_Lp::cols, and NULL.

Referenced by branchcandCalcLPCands(), SCIPcomputeLPRelIntPoint(), SCIPgetLPCols(), SCIPgetLPColsData(), and SCIPsolLinkLPSol().

SCIP_ROW** SCIPlpGetRows ( SCIP_LP lp)

gets array with rows of the LP

Parameters
lpcurrent LP data

Definition at line 18827 of file lp.c.

References NULL, and SCIP_Lp::rows.

Referenced by conflictAnalyzeLP(), SCIPgetLPRows(), SCIPgetLPRowsData(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().

int SCIPlpGetNRows ( SCIP_LP lp)
SCIP_COL** SCIPlpGetNewcols ( SCIP_LP lp)

gets array with newly added columns after the last mark

Parameters
lpcurrent LP data

Definition at line 18847 of file lp.c.

References SCIP_Lp::cols, SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL.

Referenced by forkCreate(), and pseudoforkCreate().

int SCIPlpGetNNewcols ( SCIP_LP lp)

gets number of newly added columns after the last mark

Parameters
lpcurrent LP data

Definition at line 18858 of file lp.c.

References SCIP_Lp::firstnewcol, SCIP_Lp::ncols, and NULL.

Referenced by focusnodeCleanupVars(), focusnodeToFork(), focusnodeToJunction(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus().

SCIP_ROW** SCIPlpGetNewrows ( SCIP_LP lp)

gets array with newly added rows after the last mark

Parameters
lpcurrent LP data

Definition at line 18869 of file lp.c.

References SCIP_Lp::firstnewrow, SCIP_Lp::nrows, NULL, and SCIP_Lp::rows.

Referenced by forkCreate(), and pseudoforkCreate().

int SCIPlpGetNNewrows ( SCIP_LP lp)

gets number of newly added rows after the last mark

Parameters
lpcurrent LP data

Definition at line 18880 of file lp.c.

References SCIP_Lp::firstnewrow, SCIP_Lp::nrows, and NULL.

Referenced by focusnodeToFork(), forkCreate(), pseudoforkCreate(), and SCIPnodeFocus().

SCIP_Real SCIPlpGetObjNorm ( SCIP_LP lp)

gets Euclidean norm of objective function vector of column variables, only use this method if lp->objsqrnormunreliable == FALSE, so probably you have to call SCIPlpRecalculateObjSqrNorm before

Parameters
lpLP data

Definition at line 18922 of file lp.c.

References NULL, SCIP_Lp::objsqrnorm, and SCIP_Lp::objsqrnormunreliable.

Referenced by SCIPgetObjNorm().

SCIP_Real SCIPlpGetRootObjval ( SCIP_LP lp)

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

Parameters
lpLP data

Definition at line 18955 of file lp.c.

References MIN, NULL, SCIP_Lp::rootlooseobjval, SCIP_Lp::rootlpobjval, and SCIP_INVALID.

Referenced by SCIPgetLPRootObjval().

SCIP_Real SCIPlpGetRootColumnObjval ( SCIP_LP lp)

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

Parameters
lpLP data

Definition at line 18967 of file lp.c.

References NULL, and SCIP_Lp::rootlpobjval.

Referenced by SCIPgetLPRootColumnObjval().

SCIP_Real SCIPlpGetRootLooseObjval ( SCIP_LP lp)

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

Parameters
lpLP data

Definition at line 18979 of file lp.c.

References NULL, and SCIP_Lp::rootlooseobjval.

Referenced by SCIPgetLPRootLooseObjval().

SCIP_LPI* SCIPlpGetLPI ( SCIP_LP lp)

gets the LP solver interface

Parameters
lpcurrent LP data

Definition at line 18989 of file lp.c.

References SCIP_Lp::lpi, and NULL.

Referenced by conflictAnalyzeLP(), SCIPconflictAnalyzeLP(), SCIPgetLPI(), SCIPlpSolveAndEval(), SCIPprintLPSolutionQuality(), solveNodeLP(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().

void SCIPlpSetIsRelax ( SCIP_LP lp,
SCIP_Bool  relax 
)

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

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

Parameters
lpLP data
relaxis the current lp a relaxation?

Definition at line 18999 of file lp.c.

References SCIP_Lp::isrelax, and NULL.

Referenced by SCIPpriceLoop(), and SCIPtreeEndProbing().

SCIP_Bool SCIPlpIsRelax ( SCIP_LP lp)

returns whether the current LP is a relaxation of the problem for which it has been solved and its solution value a valid local lower bound?

Parameters
lpLP data

Definition at line 19012 of file lp.c.

References SCIP_Lp::isrelax, and NULL.

Referenced by priceAndCutLoop(), propAndSolve(), SCIPendDive(), SCIPisLPRelax(), SCIPprobStoreRootSol(), SCIPtreeEndProbing(), solveNodeInitialLP(), solveProbingLP(), and updateEstimate().

SCIP_Bool SCIPlpIsSolved ( SCIP_LP lp)

returns whether the current LP is flushed and solved

Parameters
lpcurrent LP data

Definition at line 19022 of file lp.c.

References SCIP_Lp::flushed, NULL, and SCIP_Lp::solved.

Referenced by priceAndCutLoop(), SCIPendDive(), SCIPlinkLPSol(), SCIPsolCreateLPSol(), and SCIPsolLinkCurrentSol().

SCIP_Bool SCIPlpIsSolBasic ( SCIP_LP lp)

returns whether the current LP solution is a basic solution

Parameters
lpcurrent LP data

Definition at line 19032 of file lp.c.

References NULL, and SCIP_Lp::solisbasic.

Referenced by SCIPgetLPBasisInd(), SCIPgetLPBInvACol(), SCIPgetLPBInvARow(), SCIPgetLPBInvCol(), SCIPgetLPBInvRow(), SCIPisLPSolBasic(), SCIPprobUpdateBestRootSol(), and SCIPvarGetRedcost().

SCIP_Bool SCIPlpDivingObjChanged ( SCIP_LP lp)

returns whether the LP is in diving mode and the objective value of at least one column was changed

Parameters
lpcurrent LP data

Definition at line 19052 of file lp.c.

References SCIP_Lp::divingobjchg, and NULL.

Referenced by conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), SCIPlpSetCutoffbound(), SCIPsolLinkLPSol(), and SCIPsolveDiveLP().

void SCIPlpMarkDivingObjChanged ( SCIP_LP lp)

marks the diving LP to have a changed objective function

Parameters
lpcurrent LP data

Definition at line 19062 of file lp.c.

References SCIP_Lp::diving, SCIP_Lp::divingobjchg, NULL, and TRUE.

Referenced by SCIPchgVarObjDive().