SCIP

Solving Constraint Integer Programs

pub_matrix.h File Reference

Detailed Description

public methods for matrix

Author
Dieter Weninger

Definition in file pub_matrix.h.

#include "scip/def.h"
#include "scip/type_var.h"
#include "scip/type_cons.h"
#include "scip/type_matrix.h"

Go to the source code of this file.

Functions

SCIP_EXPORT SCIP_Real * SCIPmatrixGetColValPtr (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int * SCIPmatrixGetColIdxPtr (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetColNNonzs (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetNColumns (SCIP_MATRIX *matrix)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetColUb (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetColLb (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetColNUplocks (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetColNDownlocks (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_VAR * SCIPmatrixGetVar (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT const char * SCIPmatrixGetColName (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_Real * SCIPmatrixGetRowValPtr (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int * SCIPmatrixGetRowIdxPtr (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNNonzs (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT const char * SCIPmatrixGetRowName (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetNRows (SCIP_MATRIX *matrix)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowLhs (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowRhs (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Bool SCIPmatrixIsRowRhsInfinity (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetNNonzs (SCIP_MATRIX *matrix)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMinActivity (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMaxActivity (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMinActNegInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMinActPosInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMaxActNegInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMaxActPosInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_CONS * SCIPmatrixGetCons (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Bool SCIPmatrixUplockConflict (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_Bool SCIPmatrixDownlockConflict (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_RETCODE SCIPmatrixCreate (SCIP *scip, SCIP_MATRIX **matrixptr, SCIP_Bool *initialized, SCIP_Bool *complete)
 
SCIP_EXPORT void SCIPmatrixFree (SCIP *scip, SCIP_MATRIX **matrix)
 
SCIP_EXPORT void SCIPmatrixPrintRow (SCIP *scip, SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelRows (SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass)
 
SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelCols (SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass, SCIP_Bool *varineq)
 

Function Documentation

◆ SCIPmatrixGetColValPtr()

SCIP_EXPORT SCIP_Real* SCIPmatrixGetColValPtr ( SCIP_MATRIX *  matrix,
int  col 
)

get column based start pointer of values

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1315 of file matrix.c.

References SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatval, and NULL.

Referenced by calcColActivity(), dualBoundStrengthening(), findDominancePairs(), getDownlockRowIdx(), getMinColActWithoutRow(), getUplockRowIdx(), isUpperBoundImplied(), and SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixGetColIdxPtr()

SCIP_EXPORT int* SCIPmatrixGetColIdxPtr ( SCIP_MATRIX *  matrix,
int  col 
)

◆ SCIPmatrixGetColNNonzs()

SCIP_EXPORT int SCIPmatrixGetColNNonzs ( SCIP_MATRIX *  matrix,
int  col 
)

◆ SCIPmatrixGetNColumns()

◆ SCIPmatrixGetColUb()

SCIP_EXPORT SCIP_Real SCIPmatrixGetColUb ( SCIP_MATRIX *  matrix,
int  col 
)

◆ SCIPmatrixGetColLb()

SCIP_EXPORT SCIP_Real SCIPmatrixGetColLb ( SCIP_MATRIX *  matrix,
int  col 
)

◆ SCIPmatrixGetColNUplocks()

SCIP_EXPORT int SCIPmatrixGetColNUplocks ( SCIP_MATRIX *  matrix,
int  col 
)

get number of uplocks of column

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1383 of file matrix.c.

References NULL, and SCIP_Matrix::nuplocks.

Referenced by cancelRow(), compensateVarLock(), detectDominatingVlbs(), detectDominatingVubs(), findUplockAggregations(), getUplockRowIdx(), SCIP_DECL_PRESOLEXEC(), and singletonColumnStuffing().

◆ SCIPmatrixGetColNDownlocks()

SCIP_EXPORT int SCIPmatrixGetColNDownlocks ( SCIP_MATRIX *  matrix,
int  col 
)

get number of downlocks of column

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1395 of file matrix.c.

References SCIP_Matrix::ndownlocks, and NULL.

Referenced by cancelRow(), compensateVarLock(), detectDominatingVlbs(), detectDominatingVubs(), findDownlockAggregations(), getDownlockRowIdx(), SCIP_DECL_PRESOLEXEC(), and singletonColumnStuffing().

◆ SCIPmatrixGetVar()

◆ SCIPmatrixGetColName()

SCIP_EXPORT const char* SCIPmatrixGetColName ( SCIP_MATRIX *  matrix,
int  col 
)

get name of column/variable

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1419 of file matrix.c.

References NULL, SCIPvarGetName(), and SCIP_Matrix::vars.

◆ SCIPmatrixGetRowValPtr()

◆ SCIPmatrixGetRowIdxPtr()

◆ SCIPmatrixGetRowNNonzs()

◆ SCIPmatrixGetRowName()

SCIP_EXPORT const char* SCIPmatrixGetRowName ( SCIP_MATRIX *  matrix,
int  row 
)

get name of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1467 of file matrix.c.

References SCIP_Matrix::cons, NULL, and SCIPconsGetName().

Referenced by cancelRow().

◆ SCIPmatrixGetNRows()

◆ SCIPmatrixGetRowLhs()

◆ SCIPmatrixGetRowRhs()

SCIP_EXPORT SCIP_Real SCIPmatrixGetRowRhs ( SCIP_MATRIX *  matrix,
int  row 
)

get right-hand-side of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1501 of file matrix.c.

References NULL, and SCIP_Matrix::rhs.

Referenced by calcVarBoundsDominated(), calcVarBoundsDominating(), cancelRow(), compensateVarLock(), dualBoundStrengthening(), findDominancePairs(), findFixings(), getVarUpperBoundOfRow(), and SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixIsRowRhsInfinity()

◆ SCIPmatrixGetNNonzs()

SCIP_EXPORT int SCIPmatrixGetNNonzs ( SCIP_MATRIX *  matrix)

get number of non-zeros of matrix

Parameters
matrixmatrix instance

Definition at line 1525 of file matrix.c.

References SCIP_Matrix::nnonzs, and NULL.

Referenced by SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixGetRowMinActivity()

SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMinActivity ( SCIP_MATRIX *  matrix,
int  row 
)

get minimal activity of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1535 of file matrix.c.

References SCIP_Matrix::minactivity, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), getBinVarIdxInDownlockRow(), getBinVarIdxInUplockRow(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowMaxActivity()

SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMaxActivity ( SCIP_MATRIX *  matrix,
int  row 
)

get maximal activity of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1547 of file matrix.c.

References SCIP_Matrix::maxactivity, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), getBinVarIdxInDownlockRow(), getBinVarIdxInUplockRow(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMinActNegInf()

SCIP_EXPORT int SCIPmatrixGetRowNMinActNegInf ( SCIP_MATRIX *  matrix,
int  row 
)

get number of negative infinities present within minimal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1559 of file matrix.c.

References SCIP_Matrix::minactivityneginf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMinActPosInf()

SCIP_EXPORT int SCIPmatrixGetRowNMinActPosInf ( SCIP_MATRIX *  matrix,
int  row 
)

get number of positive infinities present within minimal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1571 of file matrix.c.

References SCIP_Matrix::minactivityposinf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMaxActNegInf()

SCIP_EXPORT int SCIPmatrixGetRowNMaxActNegInf ( SCIP_MATRIX *  matrix,
int  row 
)

get number of negative infinities present within maximal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1583 of file matrix.c.

References SCIP_Matrix::maxactivityneginf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMaxActPosInf()

SCIP_EXPORT int SCIPmatrixGetRowNMaxActPosInf ( SCIP_MATRIX *  matrix,
int  row 
)

get number of positive infinities present within maximal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1595 of file matrix.c.

References SCIP_Matrix::maxactivityposinf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetCons()

SCIP_EXPORT SCIP_CONS* SCIPmatrixGetCons ( SCIP_MATRIX *  matrix,
int  row 
)

get constraint pointer for constraint representing row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1607 of file matrix.c.

References SCIP_Matrix::cons, and NULL.

Referenced by cancelRow(), detectDominatingVlbs(), detectDominatingVubs(), and SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixUplockConflict()

SCIP_EXPORT SCIP_Bool SCIPmatrixUplockConflict ( SCIP_MATRIX *  matrix,
int  col 
)

get if conflicting uplocks of variable present

get if conflicting uplocks of a specific variable present

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1619 of file matrix.c.

References NULL, SCIP_Matrix::nuplocks, SCIP_LOCKTYPE_MODEL, SCIPvarGetNLocksUpType(), and SCIP_Matrix::vars.

◆ SCIPmatrixDownlockConflict()

SCIP_EXPORT SCIP_Bool SCIPmatrixDownlockConflict ( SCIP_MATRIX *  matrix,
int  col 
)

get if conflicting downlocks of variable present

get if conflicting downlocks of a specific variable present

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1631 of file matrix.c.

References SCIP_Matrix::ndownlocks, NULL, SCIP_LOCKTYPE_MODEL, SCIPvarGetNLocksDownType(), and SCIP_Matrix::vars.

◆ SCIPmatrixCreate()

SCIP_EXPORT SCIP_RETCODE SCIPmatrixCreate ( SCIP *  scip,
SCIP_MATRIX **  matrixptr,
SCIP_Bool *  initialized,
SCIP_Bool *  complete 
)

initialize matrix

Parameters
scipcurrent scip instance
matrixptrpointer to constraint matrix object to be initialized
initializedwas the initialization successful?
completeare all constraint represented within the matrix?

Definition at line 437 of file matrix.c.

References addConstraint(), BMSclearMemoryArray, calcActivityBounds(), SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatcnt, SCIP_Matrix::colmatind, SCIP_Matrix::colmatval, SCIP_Matrix::cons, FALSE, SCIP_Matrix::isrhsinfinite, SCIP_Matrix::lb, SCIP_Matrix::lhs, SCIP_Matrix::maxactivity, SCIP_Matrix::maxactivityneginf, SCIP_Matrix::maxactivityposinf, SCIP_Matrix::minactivity, SCIP_Matrix::minactivityneginf, SCIP_Matrix::minactivityposinf, SCIP_Matrix::ncols, SCIP_Matrix::ndownlocks, SCIP_Matrix::nnonzs, SCIP_Matrix::nrows, NULL, SCIP_Matrix::nuplocks, SCIP_Matrix::rhs, SCIP_Matrix::rowmatbeg, SCIP_Matrix::rowmatcnt, SCIP_Matrix::rowmatind, SCIP_Matrix::rowmatval, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_LOCKTYPE_MODEL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPallocBuffer, SCIPallocBufferArray, SCIPallocClearMemoryArray, SCIPconshdlrGetCheckConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNCheckConss(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPgetBinvarsLinking(), SCIPgetCapacityKnapsack(), SCIPgetConshdlrs(), SCIPgetIntvarLinking(), SCIPgetLhsLinear(), SCIPgetLhsVarbound(), SCIPgetNConshdlrs(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetNVarsKnapsack(), SCIPgetNVarsLinear(), SCIPgetNVarsLogicor(), SCIPgetNVarsSetppc(), SCIPgetRhsLinear(), SCIPgetRhsVarbound(), SCIPgetTypeSetppc(), SCIPgetValsLinear(), SCIPgetValsLinking(), SCIPgetVars(), SCIPgetVarsKnapsack(), SCIPgetVarsLinear(), SCIPgetVarsLogicor(), SCIPgetVarsSetppc(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), SCIPgetWeightsKnapsack(), SCIPinfinity(), SCIPisStopped(), SCIPreallocBufferArray, SCIPvarGetLbGlobal(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetUbGlobal(), setColumnMajorFormat(), TRUE, SCIP_Matrix::ub, and SCIP_Matrix::vars.

Referenced by SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixFree()

SCIP_EXPORT void SCIPmatrixFree ( SCIP *  scip,
SCIP_MATRIX **  matrix 
)

frees the constraint matrix

Parameters
scipcurrent SCIP instance
matrixconstraint matrix object

Definition at line 864 of file matrix.c.

References NULL, SCIPfreeBuffer, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, and SCIPfreeMemoryArray.

Referenced by SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixPrintRow()

SCIP_EXPORT void SCIPmatrixPrintRow ( SCIP *  scip,
SCIP_MATRIX *  matrix,
int  row 
)

print one row of the MIP matrix

print one row of the matrix

Parameters
scipcurrent SCIP instance
matrixconstraint matrix object
rowrow index

Definition at line 927 of file matrix.c.

References SCIP_Matrix::cons, SCIP_Matrix::lhs, SCIP_Matrix::rhs, SCIP_Matrix::rowmatbeg, SCIP_Matrix::rowmatcnt, SCIP_Matrix::rowmatind, SCIP_Matrix::rowmatval, SCIP_Real, SCIPconsGetName(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and SCIP_Matrix::vars.

Referenced by cancelRow(), compensateVarLock(), and getActivities().

◆ SCIPmatrixGetParallelRows()

SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelRows ( SCIP *  scip,
SCIP_MATRIX *  matrix,
SCIP_Real *  scale,
int *  pclass 
)

detect parallel rows, rhs/lhs are ignored

detect parallel rows of matrix. rhs/lhs are ignored.

Parameters
scipSCIP instance
matrixmatrix containing the constraints
scalescale factors of rows
pclassparallel row classes

Definition at line 959 of file matrix.c.

References BMSclearMemoryArray, SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatcnt, SCIP_Matrix::colmatind, SCIP_Matrix::colmatval, SCIP_Matrix::ncols, SCIP_Matrix::nrows, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), SCIPsortIntIntReal(), SCIPsortRealInt(), and TRUE.

◆ SCIPmatrixGetParallelCols()

SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelCols ( SCIP *  scip,
SCIP_MATRIX *  matrix,
SCIP_Real *  scale,
int *  pclass,
SCIP_Bool *  varineq 
)

detect parallel rows, obj ignored

detect parallel rows of matrix. obj coefficients are ignored.

Parameters
scipSCIP instance
matrixmatrix containing the constraints
scalescale factors of cols
pclassparallel column classes
varineqindicating if variable is within an equation

Definition at line 1115 of file matrix.c.

References BMSclearMemoryArray, SCIP_Matrix::isrhsinfinite, SCIP_Matrix::ncols, SCIP_Matrix::nrows, NULL, r, SCIP_Matrix::rowmatbeg, SCIP_Matrix::rowmatcnt, SCIP_Matrix::rowmatind, SCIP_Matrix::rowmatval, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), SCIPsortIntIntReal(), SCIPsortRealInt(), and TRUE.