SCIP Doxygen Documentation
Loading...
Searching...
No Matches
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_RealSCIPmatrixGetColValPtr (SCIP_MATRIX *matrix, int col)
int * SCIPmatrixGetColIdxPtr (SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetColNNonzs (SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetNColumns (SCIP_MATRIX *matrix)
SCIP_Real SCIPmatrixGetColUb (SCIP_MATRIX *matrix, int col)
SCIP_Real SCIPmatrixGetColLb (SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetColNUplocks (SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetColNDownlocks (SCIP_MATRIX *matrix, int col)
SCIP_VARSCIPmatrixGetVar (SCIP_MATRIX *matrix, int col)
const char * SCIPmatrixGetColName (SCIP_MATRIX *matrix, int col)
SCIP_RealSCIPmatrixGetRowValPtr (SCIP_MATRIX *matrix, int row)
int * SCIPmatrixGetRowIdxPtr (SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetRowNNonzs (SCIP_MATRIX *matrix, int row)
const char * SCIPmatrixGetRowName (SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetNRows (SCIP_MATRIX *matrix)
SCIP_Real SCIPmatrixGetRowLhs (SCIP_MATRIX *matrix, int row)
SCIP_Real SCIPmatrixGetRowRhs (SCIP_MATRIX *matrix, int row)
SCIP_Bool SCIPmatrixIsRowRhsInfinity (SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetNNonzs (SCIP_MATRIX *matrix)
SCIP_Real SCIPmatrixGetRowMinActivity (SCIP_MATRIX *matrix, int row)
SCIP_Real SCIPmatrixGetRowMaxActivity (SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetRowNMinActNegInf (SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetRowNMinActPosInf (SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetRowNMaxActNegInf (SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetRowNMaxActPosInf (SCIP_MATRIX *matrix, int row)
SCIP_CONSSCIPmatrixGetCons (SCIP_MATRIX *matrix, int row)
SCIP_Bool SCIPmatrixUplockConflict (SCIP_MATRIX *matrix, int col)
SCIP_Bool SCIPmatrixDownlockConflict (SCIP_MATRIX *matrix, int col)
SCIP_RETCODE SCIPmatrixCreate (SCIP *scip, SCIP_MATRIX **matrixptr, SCIP_Bool onlyifcomplete, SCIP_Bool *initialized, SCIP_Bool *complete, SCIP_Bool *infeasible, int *naddconss, int *ndelconss, int *nchgcoefs, int *nchgbds, int *nfixedvars)
void SCIPmatrixFree (SCIP *scip, SCIP_MATRIX **matrix)
void SCIPmatrixPrintRow (SCIP *scip, SCIP_MATRIX *matrix, int row)
SCIP_RETCODE SCIPmatrixGetParallelRows (SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass)
void SCIPmatrixRemoveColumnBounds (SCIP *scip, SCIP_MATRIX *matrix, int col)
SCIP_RETCODE SCIPmatrixGetParallelCols (SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass, SCIP_Bool *varineq)

Function Documentation

◆ SCIPmatrixGetColValPtr()

SCIP_Real * SCIPmatrixGetColValPtr ( SCIP_MATRIX * matrix,
int col )

◆ SCIPmatrixGetColIdxPtr()

int * SCIPmatrixGetColIdxPtr ( SCIP_MATRIX * matrix,
int col )

◆ SCIPmatrixGetColNNonzs()

int SCIPmatrixGetColNNonzs ( SCIP_MATRIX * matrix,
int col )

◆ SCIPmatrixGetNColumns()

◆ SCIPmatrixGetColUb()

SCIP_Real SCIPmatrixGetColUb ( SCIP_MATRIX * matrix,
int col )

◆ SCIPmatrixGetColLb()

SCIP_Real SCIPmatrixGetColLb ( SCIP_MATRIX * matrix,
int col )

◆ SCIPmatrixGetColNUplocks()

int SCIPmatrixGetColNUplocks ( SCIP_MATRIX * matrix,
int col )

◆ SCIPmatrixGetColNDownlocks()

int SCIPmatrixGetColNDownlocks ( SCIP_MATRIX * matrix,
int col )

◆ SCIPmatrixGetVar()

◆ SCIPmatrixGetColName()

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

get name of column/variable

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1672 of file matrix.c.

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

Referenced by transformAndSolve().

◆ SCIPmatrixGetRowValPtr()

◆ SCIPmatrixGetRowIdxPtr()

◆ SCIPmatrixGetRowNNonzs()

◆ SCIPmatrixGetRowName()

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

get name of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1720 of file matrix.c.

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

Referenced by applyLPboundTightening(), and cancelRow().

◆ SCIPmatrixGetNRows()

◆ SCIPmatrixGetRowLhs()

◆ SCIPmatrixGetRowRhs()

◆ SCIPmatrixIsRowRhsInfinity()

SCIP_Bool SCIPmatrixIsRowRhsInfinity ( SCIP_MATRIX * matrix,
int row )

flag indicating if right-hand-side of row is infinity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1766 of file matrix.c.

References assert(), SCIP_Matrix::isrhsinfinite, NULL, and SCIP_Bool.

Referenced by calcVarBoundsDominated(), calcVarBoundsDominating(), detectParallelCols(), dualBoundStrengthening(), findDominancePairs(), getDownlockRowIdx(), getUplockRowIdx(), isVlb(), isVub(), SCIP_DECL_PRESOLEXEC(), and singletonColumnStuffing().

◆ SCIPmatrixGetNNonzs()

int SCIPmatrixGetNNonzs ( SCIP_MATRIX * matrix)

get number of non-zeros of matrix

Parameters
matrixmatrix instance

Definition at line 1778 of file matrix.c.

References assert(), SCIP_Matrix::nnonzs, and NULL.

Referenced by SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixGetRowMinActivity()

SCIP_Real SCIPmatrixGetRowMinActivity ( SCIP_MATRIX * matrix,
int row )

get minimal activity of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1788 of file matrix.c.

References assert(), SCIP_Matrix::minactivity, NULL, and SCIP_Real.

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

◆ SCIPmatrixGetRowMaxActivity()

SCIP_Real SCIPmatrixGetRowMaxActivity ( SCIP_MATRIX * matrix,
int row )

get maximal activity of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1800 of file matrix.c.

References assert(), SCIP_Matrix::maxactivity, NULL, and SCIP_Real.

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

◆ SCIPmatrixGetRowNMinActNegInf()

int SCIPmatrixGetRowNMinActNegInf ( SCIP_MATRIX * matrix,
int row )

get number of negative infinities present within minimal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1812 of file matrix.c.

References assert(), SCIP_Matrix::minactivityneginf, and NULL.

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

◆ SCIPmatrixGetRowNMinActPosInf()

int SCIPmatrixGetRowNMinActPosInf ( SCIP_MATRIX * matrix,
int row )

get number of positive infinities present within minimal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1824 of file matrix.c.

References assert(), SCIP_Matrix::minactivityposinf, and NULL.

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

◆ SCIPmatrixGetRowNMaxActNegInf()

int SCIPmatrixGetRowNMaxActNegInf ( SCIP_MATRIX * matrix,
int row )

get number of negative infinities present within maximal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1836 of file matrix.c.

References assert(), SCIP_Matrix::maxactivityneginf, and NULL.

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

◆ SCIPmatrixGetRowNMaxActPosInf()

int SCIPmatrixGetRowNMaxActPosInf ( SCIP_MATRIX * matrix,
int row )

get number of positive infinities present within maximal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1848 of file matrix.c.

References assert(), SCIP_Matrix::maxactivityposinf, and NULL.

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

◆ SCIPmatrixGetCons()

SCIP_CONS * SCIPmatrixGetCons ( SCIP_MATRIX * matrix,
int row )

get constraint pointer for constraint representing row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1860 of file matrix.c.

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

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

◆ SCIPmatrixUplockConflict()

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 1872 of file matrix.c.

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

Referenced by dualBoundStrengthening(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), and SCIPmatrixCreate().

◆ SCIPmatrixDownlockConflict()

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 1884 of file matrix.c.

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

Referenced by dualBoundStrengthening(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), and SCIPmatrixCreate().

◆ SCIPmatrixCreate()

SCIP_RETCODE SCIPmatrixCreate ( SCIP * scip,
SCIP_MATRIX ** matrixptr,
SCIP_Bool onlyifcomplete,
SCIP_Bool * initialized,
SCIP_Bool * complete,
SCIP_Bool * infeasible,
int * naddconss,
int * ndelconss,
int * nchgcoefs,
int * nchgbds,
int * nfixedvars )

initialize matrix by copying all check constraints

Note
Completeness is checked by testing whether all check constraints are from a list of linear constraint handlers that can be represented.
Parameters
scipcurrent scip instance
matrixptrpointer to constraint matrix object to be initialized
onlyifcompleteshould matrix creation be skipped if matrix will not be complete?
initializedwas the initialization successful?
completeare all constraint represented within the matrix?
infeasiblepointer to return whether problem was detected to be infeasible during matrix creation
naddconsspointer to count number of added (linear) constraints during matrix creation
ndelconsspointer to count number of deleted specialized linear constraints during matrix creation
nchgcoefspointer to count number of changed coefficients during matrix creation
nchgbdspointer to count number of changed bounds during matrix creation
nfixedvarspointer to count number of fixed variables during matrix creation

Definition at line 454 of file matrix.c.

References addConstraint(), assert(), BMSclearMemoryArray, c, calcActivityBounds(), SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatcnt, SCIP_Matrix::colmatind, SCIP_Matrix::colmatval, SCIP_Matrix::cons, FALSE, i, 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, nvars, 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, SCIPcleanupConssKnapsack(), SCIPcleanupConssLinear(), SCIPcleanupConssLogicor(), SCIPcleanupConssSetppc(), SCIPcleanupConssVarbound(), SCIPconshdlrGetCheckConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNCheckConss(), SCIPconsIsModifiable(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPdelCons(), SCIPduplicateBufferArray, SCIPfindConshdlr(), SCIPfreeBuffer, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPfreeMemoryArray, SCIPgetBinvarsLinking(), SCIPgetCapacityKnapsack(), SCIPgetConshdlrs(), SCIPgetLhsLinear(), SCIPgetLhsVarbound(), SCIPgetNActivePricers(), SCIPgetNConshdlrs(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetNVarsKnapsack(), SCIPgetNVarsLinear(), SCIPgetNVarsLogicor(), SCIPgetNVarsSetppc(), SCIPgetRhsLinear(), SCIPgetRhsVarbound(), SCIPgetTypeSetppc(), SCIPgetValsLinear(), SCIPgetValsLinking(), SCIPgetVars(), SCIPgetVarsKnapsack(), SCIPgetVarsLinear(), SCIPgetVarsLogicor(), SCIPgetVarsSetppc(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), SCIPgetWeightsKnapsack(), SCIPinfinity(), SCIPisStopped(), SCIPmatrixDownlockConflict(), SCIPmatrixUplockConflict(), SCIPreallocBufferArray, SCIPvarGetLbGlobal(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetUbGlobal(), setColumnMajorFormat(), TRUE, SCIP_Matrix::ub, var, SCIP_Matrix::vars, and vars.

Referenced by SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), and SCIP_DECL_PRESOLEXEC().

◆ SCIPmatrixFree()

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

◆ SCIPmatrixPrintRow()

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 1135 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, SCIP_UNUSED, SCIPconsGetName(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and SCIP_Matrix::vars.

Referenced by cancelRow(), and compensateVarLock().

◆ SCIPmatrixGetParallelRows()

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 1214 of file matrix.c.

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

◆ SCIPmatrixRemoveColumnBounds()

void SCIPmatrixRemoveColumnBounds ( SCIP * scip,
SCIP_MATRIX * matrix,
int col )

removes the bounds of a column and updates the activities accordingly

Parameters
scipcurrent scip instance
matrixconstraint matrix
colcolumn variable to remove bounds from

Definition at line 1169 of file matrix.c.

References assert(), SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatcnt, SCIP_Matrix::colmatind, SCIP_Matrix::colmatval, i, SCIP_Matrix::lb, SCIP_Matrix::maxactivity, SCIP_Matrix::maxactivityneginf, SCIP_Matrix::maxactivityposinf, SCIP_Matrix::minactivity, SCIP_Matrix::minactivityneginf, SCIP_Matrix::minactivityposinf, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), and SCIP_Matrix::ub.

Referenced by aggregation().

◆ SCIPmatrixGetParallelCols()

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

detect parallel columns, 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 1370 of file matrix.c.

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