90 if( requiredsize > *
nvars )
125 if( requiredsize > *
nvars )
163 rowidx = matrix->
nrows;
164 rangedorequality =
FALSE;
169 matrix->
lhs[rowidx] = -rhs;
176 matrix->
lhs[rowidx] = lhs;
177 matrix->
rhs[rowidx] = rhs;
181 rangedorequality =
TRUE;
194 if( rangedorequality )
198 for( j = 0; j <
nvars; j++ )
213 assert(0 <= probindex && probindex < matrix->ncols);
222 for( j = 0; j <
nvars; j++ )
243 assert(0 <= probindex && probindex < matrix->ncols);
280 rowidx = matrix->
nrows;
281 rangedorequality =
FALSE;
298 rangedorequality =
TRUE;
311 if( rangedorequality )
315 for( j = 0; j <
nvars; j++ )
331 assert(0 <= probindex && probindex < matrix->ncols);
340 for( j = 0; j <
nvars; j++ )
362 assert(0 <= probindex && probindex < matrix->ncols);
416 activeconstant = 0.0;
428 for( v = 0; v < nactivevars; v++ )
437 lhs -= activeconstant;
439 rhs -= activeconstant;
442 if( nactivevars > 0 )
444 SCIP_CALL(
addRow(
scip, matrix, activevars, activevals, nactivevars, lhs, rhs, maxnnonzsmem, rowadded) );
509 for( v = 0; v < nactivevars; v++ )
523 if( nactivevars > 0 )
525 SCIP_CALL(
addRowExact(matrix, activevars, activevals, nactivevars, tmplhs, tmprhs, maxnnonzsmem, rowadded) );
569 for(
i = 0;
i < matrix->
nrows;
i++ )
573 for( ; rowpnt < rowend; rowpnt++ )
581 for(
i = 0;
i < matrix->
ncols-1;
i++ )
586 for(
i = 0;
i < matrix->
nrows;
i++ )
594 for( ; rowpnt < rowend; rowpnt++, valpnt++ )
596 assert(*rowpnt < matrix->ncols);
628 for( row = 0; row < matrix->
nrows; row++ )
638 rowend = rowpnt + matrix->
rowmatcnt[row];
641 for( ; rowpnt < rowend; rowpnt++, valpnt++ )
719 const char* conshdlrname;
743 *initialized =
FALSE;
761 for(
i = 0;
i < nconshdlrs; ++
i )
765 if( nconshdlrconss > 0 )
769 if( strcmp(conshdlrname,
"linear") == 0 || strcmp(conshdlrname,
"knapsack") == 0
770 || strcmp(conshdlrname,
"setppc") == 0 || strcmp(conshdlrname,
"logicor") == 0
771 || strcmp(conshdlrname,
"varbound") == 0 || (strcmp(conshdlrname,
"exactlinear") == 0) )
774 nconss += nconshdlrconss;
777#ifdef SCIP_DISABLED_CODE
778 else if( strcmp(conshdlrname,
"linking") == 0 )
781 nconss += 2* nconshdlrconss;
785 nconssall += nconshdlrconss;
793 if( nconss < nconssall )
895 for( v = 0; v < matrix->
ncols; v++ )
929 for(
i = 0;
i < nconshdlrs; ++
i )
943 if( strcmp(conshdlrname,
"linear") == 0 )
947 cons = conshdlrconss[
c];
968 matrix->
cons[cnt] = cons;
973 else if( strcmp(conshdlrname,
"exactlinear") == 0 )
977 cons = conshdlrconss[
c];
998 matrix->
cons[cnt] = cons;
1003 else if( strcmp(conshdlrname,
"knapsack") == 0 )
1005 if( nconshdlrconss > 0 )
1017 cons = conshdlrconss[
c];
1025 if( onlyifcomplete )
1034 if(
nvars > valssize )
1036 valssize = (int) (1.5 *
nvars);
1040 for( v = 0; v <
nvars; v++ )
1050 matrix->
cons[cnt] = cons;
1058 else if( strcmp(conshdlrname,
"setppc") == 0 )
1065 cons = conshdlrconss[
c];
1073 if( onlyifcomplete )
1103 matrix->
cons[cnt] = cons;
1108 else if( strcmp(conshdlrname,
"logicor") == 0 )
1112 cons = conshdlrconss[
c];
1120 if( onlyifcomplete )
1132 matrix->
cons[cnt] = cons;
1137 else if( strcmp(conshdlrname,
"varbound") == 0 )
1139 if( nconshdlrconss > 0 )
1150 cons = conshdlrconss[
c];
1158 if( onlyifcomplete )
1175 matrix->
cons[cnt] = cons;
1188#ifdef SCIP_DISABLED_CODE
1189 else if( strcmp(conshdlrname,
"linking") == 0 )
1191 if( nconshdlrconss > 0 )
1207 cons = conshdlrconss[
c];
1215 if( onlyifcomplete )
1228 if( nconsvars > valssize )
1230 valssize = (int) (1.5 * nconsvars);
1236 for( j = 0; j < nconsvars - 1; j++ )
1238 consvars[j] = curconsvars[j];
1239 consvals[j] = (
SCIP_Real) curconsvals[j];
1243 consvars[nconsvars - 1] = SCIPgetIntvarLinking(
scip, cons);
1244 consvals[nconsvars - 1] = -1;
1252 matrix->
cons[cnt] = cons;
1253 matrix->
cons[cnt + 1] = cons;
1272 for(
i = 0;
i < matrix->
ncols; ++
i )
1276 lockmismatch =
TRUE;
1284 if( onlyifcomplete )
1297 *initialized =
TRUE;
1356 if( (*matrix) !=
NULL )
1414 (*matrix)->nrows = 0;
1415 (*matrix)->ncols = 0;
1416 (*matrix)->nnonzs = 0;
1440 rowend = rowpnt + matrix->
rowmatcnt[row];
1444 for(; (rowpnt < rowend); rowpnt++, valpnt++)
1455 printf(
" <= %.15g ###\n", matrix->
rhs[row]);
1548 classsizes[0] = matrix->
nrows;
1550 for( t = 1; t < matrix->
nrows; ++t )
1551 pcset[pcsetfill++] = t;
1554 for(
c = 0;
c < matrix->
ncols; ++
c )
1564 for( ; (colpnt < colend); colpnt++, valpnt++ )
1569 if( scale[rowidx] == 0.0 )
1570 scale[rowidx] = aij;
1571 assert(scale[rowidx] != 0.0);
1573 rowindices[
i] = rowidx;
1574 values[
i] = aij / scale[rowidx];
1575 pc = pclass[rowidx];
1576 assert(pc < matrix->nrows);
1579 assert(classsizes[pc] > 0);
1581 if( classsizes[pc] == 0 )
1583 assert(pcsetfill < matrix->nrows);
1584 pcset[pcsetfill++] = pc;
1605 while( k <
i && pcs[k] == startpc )
1609 if( k - startk > 1 )
1610 SCIPsortRealInt(&(values[startk]), &(rowindices[startk]), k - startk);
1616 startval = values[startk + t];
1620 while( t < k - startk &&
SCIPisEQ(
scip, startval, values[startk + t]) )
1624 newpclass = pcset[0];
1626 pcset[0] = pcset[--pcsetfill];
1629 for( m = startk + startt; m < startk + t; m++ )
1633 assert(newpclass < matrix->nrows);
1635 pclass[rowindices[m]] = newpclass;
1636 classsizes[newpclass]++;
1639 if( t == k - startk )
1706 classsizes[0] = matrix->
ncols;
1708 for( t = 1; t < matrix->
ncols; ++t )
1709 pcset[pcsetfill++] = t;
1712 for(
r = 0;
r < matrix->
nrows; ++
r )
1722 for( ; (rowpnt < rowend); rowpnt++, valpnt++ )
1728 varineq[colidx] =
TRUE;
1730 if( scale[colidx] == 0.0 )
1731 scale[colidx] = aij;
1732 assert(scale[colidx] != 0.0);
1734 colindices[
i] = colidx;
1735 values[
i] = aij / scale[colidx];
1736 pc = pclass[colidx];
1737 assert(pc < matrix->ncols);
1740 assert(classsizes[pc] > 0);
1742 if( classsizes[pc] == 0 )
1744 assert(pcsetfill < matrix->ncols);
1745 pcset[pcsetfill++] = pc;
1766 while( k <
i && pcs[k] == startpc )
1770 if( k - startk > 1 )
1771 SCIPsortRealInt(&(values[startk]), &(colindices[startk]), k - startk);
1777 startval = values[startk + t];
1781 while( t < k - startk &&
SCIPisEQ(
scip, startval, values[startk + t]) )
1785 newpclass = pcset[0];
1787 pcset[0] = pcset[--pcsetfill];
1790 for( m = startk + startt; m < startk + t; m++ )
1794 assert(newpclass < matrix->ncols);
1796 pclass[colindices[m]] = newpclass;
1797 classsizes[newpclass]++;
1800 if( t == k - startk )
1830#undef SCIPmatrixGetColValPtr
1831#undef SCIPmatrixGetColIdxPtr
1832#undef SCIPmatrixGetColNNonzs
1833#undef SCIPmatrixGetNColumns
1834#undef SCIPmatrixGetColUb
1835#undef SCIPmatrixGetColLb
1836#undef SCIPmatrixGetColNUplocks
1837#undef SCIPmatrixGetColNDownlocks
1838#undef SCIPmatrixGetVar
1839#undef SCIPmatrixGetColName
1840#undef SCIPmatrixGetRowValPtr
1841#undef SCIPmatrixGetRowValPtrExact
1842#undef SCIPmatrixGetRowIdxPtr
1843#undef SCIPmatrixGetRowNNonzs
1844#undef SCIPmatrixGetRowName
1845#undef SCIPmatrixGetNRows
1846#undef SCIPmatrixGetRowLhs
1847#undef SCIPmatrixGetRowLhsExact
1848#undef SCIPmatrixGetRowRhs
1849#undef SCIPmatrixGetRowRhsExact
1850#undef SCIPmatrixIsRowRhsInfinity
1851#undef SCIPmatrixGetNNonzs
1852#undef SCIPmatrixGetRowMinActivity
1853#undef SCIPmatrixGetRowMaxActivity
1854#undef SCIPmatrixGetRowNMinActNegInf
1855#undef SCIPmatrixGetRowNMinActPosInf
1856#undef SCIPmatrixGetRowNMaxActNegInf
1857#undef SCIPmatrixGetRowNMaxActPosInf
1858#undef SCIPmatrixGetCons
1867 assert(0 <= col && col < matrix->ncols);
1879 assert(0 <= col && col < matrix->ncols);
1891 assert(0 <= col && col < matrix->ncols);
1903 return matrix->
ncols;
1914 return matrix->
ub[col];
1925 return matrix->
lb[col];
1935 assert(0 <= col && col < matrix->ncols);
1947 assert(0 <= col && col < matrix->ncols);
1959 assert(0 <= col && col < matrix->ncols);
1961 return matrix->
vars[col];
1971 assert(0 <= col && col < matrix->ncols);
1983 assert(0 <= row && row < matrix->nrows);
1995 assert(0 <= row && row < matrix->nrows);
2007 assert(0 <= row && row < matrix->nrows);
2019 assert(0 <= row && row < matrix->nrows);
2031 assert(0 <= row && row < matrix->nrows);
2043 return matrix->
nrows;
2053 assert(0 <= row && row < matrix->nrows);
2055 return matrix->
lhs[row];
2065 assert(0 <= row && row < matrix->nrows);
2067 return matrix->
rhs[row];
2077 assert(0 <= row && row < matrix->nrows);
2089 assert(0 <= row && row < matrix->nrows);
2101 assert(0 <= row && row < matrix->nrows);
2123 assert(0 <= row && row < matrix->nrows);
2135 assert(0 <= row && row < matrix->nrows);
2147 assert(0 <= row && row < matrix->nrows);
2159 assert(0 <= row && row < matrix->nrows);
2171 assert(0 <= row && row < matrix->nrows);
2183 assert(0 <= row && row < matrix->nrows);
2195 assert(0 <= row && row < matrix->nrows);
2197 return matrix->
cons[row];
2207 assert(0 <= col && col < matrix->ncols);
2219 assert(0 <= col && col < matrix->ncols);
Constraint handler for linear constraints in their most general form, .
Constraint handler for knapsack constraints of the form , x binary and .
Constraint handler for linear constraints in their most general form, .
Constraint handler for logicor constraints (equivalent to set covering, but algorithms are suited fo...
Constraint handler for the set partitioning / packing / covering constraints .
Constraint handler for variable bound constraints .
SCIP_RETCODE SCIPgetBinvarsLinking(SCIP *scip, SCIP_CONS *cons, SCIP_VAR ***binvars, int *nbinvars)
int SCIPgetNVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetVbdcoefVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_RATIONAL * SCIPgetLhsExactLinear(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPcleanupConssSetppc(SCIP *scip, SCIP_Bool onlychecked, SCIP_Bool *infeasible, int *naddconss, int *ndelconss, int *nchgcoefs, int *nfixedvars)
SCIP_Real SCIPgetRhsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_RATIONAL * SCIPgetRhsExactLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPcleanupConssLinear(SCIP *scip, SCIP_Bool onlychecked, SCIP_Bool *infeasible, int *ndelconss)
SCIP_VAR ** SCIPgetVarsExactLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetLhsLinear(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPcleanupConssKnapsack(SCIP *scip, SCIP_Bool onlychecked, SCIP_Bool *infeasible, int *ndelconss)
int SCIPgetNVarsExactLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_Real * SCIPgetValsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetVbdvarVarbound(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPcleanupConssVarbound(SCIP *scip, SCIP_Bool onlychecked, SCIP_Bool *infeasible, int *naddconss, int *ndelconss, int *nchgbds)
SCIP_RETCODE SCIPcleanupConssLogicor(SCIP *scip, SCIP_Bool onlychecked, int *naddconss, int *ndelconss, int *nchgcoefs)
SCIP_VAR ** SCIPgetVarsSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetVarVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_Longint * SCIPgetWeightsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Longint SCIPgetCapacityKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetLhsVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_SETPPCTYPE SCIPgetTypeSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetRhsVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real * SCIPgetValsLinking(SCIP *scip, SCIP_CONS *cons)
SCIP_RATIONAL ** SCIPgetValsExactLinear(SCIP *scip, SCIP_CONS *cons)
@ SCIP_SETPPCTYPE_PARTITIONING
@ SCIP_SETPPCTYPE_COVERING
@ SCIP_SETPPCTYPE_PACKING
SCIP_Bool SCIPisStopped(SCIP *scip)
int SCIPgetNVars(SCIP *scip)
int SCIPgetNConss(SCIP *scip)
SCIP_VAR ** SCIPgetVars(SCIP *scip)
int SCIPconshdlrGetNCheckConss(SCIP_CONSHDLR *conshdlr)
SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr)
int SCIPgetNConshdlrs(SCIP *scip)
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLR ** SCIPgetConshdlrs(SCIP *scip)
SCIP_Bool SCIPconsIsTransformed(SCIP_CONS *cons)
const char * SCIPconsGetName(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsModifiable(SCIP_CONS *cons)
SCIP_Bool SCIPisExact(SCIP *scip)
#define SCIPfreeBuffer(scip, ptr)
BMS_BUFMEM * SCIPbuffer(SCIP *scip)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPreallocBufferArray(scip, ptr, num)
#define SCIPallocClearMemoryArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPfreeMemoryArray(scip, ptr)
#define SCIPduplicateBufferArray(scip, ptr, source, num)
#define SCIPallocBuffer(scip, ptr)
#define SCIPfreeBufferArrayNull(scip, ptr)
int SCIPgetNActivePricers(SCIP *scip)
void SCIPrationalSetInfinity(SCIP_RATIONAL *res)
SCIP_Real SCIPrationalGetReal(SCIP_RATIONAL *rational)
void SCIPrationalFreeBuffer(BMS_BUFMEM *bufmem, SCIP_RATIONAL **rational)
void SCIPrationalDiff(SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
SCIP_RETCODE SCIPrationalCopyBufferArray(BMS_BUFMEM *mem, SCIP_RATIONAL ***result, SCIP_RATIONAL **src, int len)
SCIP_Bool SCIPrationalIsPositive(SCIP_RATIONAL *rational)
SCIP_RETCODE SCIPrationalCreateBuffer(BMS_BUFMEM *bufmem, SCIP_RATIONAL **rational)
SCIP_Bool SCIPrationalIsZero(SCIP_RATIONAL *rational)
void SCIPrationalSetRational(SCIP_RATIONAL *res, SCIP_RATIONAL *src)
void SCIPrationalSetFraction(SCIP_RATIONAL *res, SCIP_Longint nom, SCIP_Longint denom)
void SCIPrationalNegate(SCIP_RATIONAL *res, SCIP_RATIONAL *op)
SCIP_Bool SCIPrationalIsNegative(SCIP_RATIONAL *rational)
SCIP_Bool SCIPrationalIsInfinity(SCIP_RATIONAL *rational)
SCIP_RETCODE SCIPrationalCreateBufferArray(BMS_BUFMEM *mem, SCIP_RATIONAL ***rational, int size)
SCIP_Bool SCIPrationalIsNegInfinity(SCIP_RATIONAL *rational)
SCIP_RETCODE SCIPrationalReallocBufferArray(BMS_BUFMEM *mem, SCIP_RATIONAL ***result, int oldlen, int newlen)
void SCIPrationalMultReal(SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_Real op2)
void SCIPrationalFreeBufferArray(BMS_BUFMEM *mem, SCIP_RATIONAL ***ratbufarray, int size)
SCIP_RETCODE SCIPrationalCopyBuffer(BMS_BUFMEM *bufmem, SCIP_RATIONAL **result, SCIP_RATIONAL *src)
SCIP_Bool SCIPrationalIsLE(SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)
int SCIPvarGetNLocksUpType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
int SCIPvarGetProbindex(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_RETCODE SCIPgetProbvarLinearSumExact(SCIP *scip, SCIP_VAR **vars, SCIP_RATIONAL **scalars, int *nvars, int varssize, SCIP_RATIONAL *constant, int *requiredsize, SCIP_Bool mergemultiples)
SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize)
SCIP_RATIONAL * SCIPvarGetLbGlobalExact(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
int SCIPvarGetNLocksDownType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)
SCIP_RATIONAL * SCIPvarGetUbGlobalExact(SCIP_VAR *var)
void SCIPsortRealInt(SCIP_Real *realarray, int *intarray, int len)
void SCIPsortIntIntReal(int *intarray1, int *intarray2, SCIP_Real *realarray, int len)
assert(minobj< SCIPgetCutoffbound(scip))
static const SCIP_Real scalars[]
SCIP_Bool SCIPmatrixUplockConflict(SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetRowNMinActNegInf(SCIP_MATRIX *matrix, int row)
int * SCIPmatrixGetColIdxPtr(SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetNNonzs(SCIP_MATRIX *matrix)
SCIP_RATIONAL * SCIPmatrixGetRowLhsExact(SCIP_MATRIX *matrix, int row)
static SCIP_RETCODE setColumnMajorFormat(SCIP *scip, SCIP_MATRIX *matrix)
int SCIPmatrixGetRowNNonzs(SCIP_MATRIX *matrix, int row)
const char * SCIPmatrixGetRowName(SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetColNDownlocks(SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetColNNonzs(SCIP_MATRIX *matrix, int col)
SCIP_Bool SCIPmatrixIsRowRhsInfinity(SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetColNUplocks(SCIP_MATRIX *matrix, int col)
SCIP_Real SCIPmatrixGetRowMaxActivity(SCIP_MATRIX *matrix, int row)
static SCIP_RETCODE calcActivityBounds(SCIP *scip, SCIP_MATRIX *matrix)
SCIP_Real SCIPmatrixGetColLb(SCIP_MATRIX *matrix, int col)
static SCIP_RETCODE addRowExact(SCIP_MATRIX *matrix, SCIP_VAR **vars, SCIP_RATIONAL **vals, int nvars, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, int maxnnonzsmem, SCIP_Bool *rowadded)
SCIP_Real SCIPmatrixGetRowLhs(SCIP_MATRIX *matrix, int row)
const char * SCIPmatrixGetColName(SCIP_MATRIX *matrix, int col)
SCIP_Real * SCIPmatrixGetRowValPtr(SCIP_MATRIX *matrix, int row)
SCIP_Bool SCIPmatrixDownlockConflict(SCIP_MATRIX *matrix, int col)
SCIP_RATIONAL ** SCIPmatrixGetRowValPtrExact(SCIP_MATRIX *matrix, int row)
static SCIP_RETCODE addRow(SCIP *scip, SCIP_MATRIX *matrix, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Real lhs, SCIP_Real rhs, int maxnnonzsmem, SCIP_Bool *rowadded)
SCIP_Real SCIPmatrixGetRowRhs(SCIP_MATRIX *matrix, int row)
SCIP_Real * SCIPmatrixGetColValPtr(SCIP_MATRIX *matrix, int col)
int SCIPmatrixGetRowNMinActPosInf(SCIP_MATRIX *matrix, int row)
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)
int SCIPmatrixGetNColumns(SCIP_MATRIX *matrix)
SCIP_Real SCIPmatrixGetRowMinActivity(SCIP_MATRIX *matrix, int row)
SCIP_CONS * SCIPmatrixGetCons(SCIP_MATRIX *matrix, int row)
SCIP_RETCODE SCIPmatrixGetParallelRows(SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass)
static SCIP_RETCODE getActiveVariables(SCIP *scip, SCIP_VAR ***vars, SCIP_Real **scalars, int *nvars, SCIP_Real *constant)
static SCIP_RETCODE getActiveVariablesExact(SCIP *scip, SCIP_VAR ***vars, SCIP_RATIONAL **scalars, int *nvars, SCIP_RATIONAL *constant)
void SCIPmatrixFree(SCIP *scip, SCIP_MATRIX **matrix)
int SCIPmatrixGetRowNMaxActPosInf(SCIP_MATRIX *matrix, int row)
int SCIPmatrixGetRowNMaxActNegInf(SCIP_MATRIX *matrix, int row)
SCIP_VAR * SCIPmatrixGetVar(SCIP_MATRIX *matrix, int col)
SCIP_RATIONAL * SCIPmatrixGetRowRhsExact(SCIP_MATRIX *matrix, int row)
int * SCIPmatrixGetRowIdxPtr(SCIP_MATRIX *matrix, int row)
static SCIP_RETCODE addConstraintExact(SCIP *scip, SCIP_MATRIX *matrix, SCIP_VAR **vars, SCIP_RATIONAL **vals, int nvars, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, int maxnnonzsmem, SCIP_Bool *rowadded)
static SCIP_RETCODE addConstraint(SCIP *scip, SCIP_MATRIX *matrix, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Real lhs, SCIP_Real rhs, int maxnnonzsmem, SCIP_Bool *rowadded)
void SCIPmatrixPrintRow(SCIP *scip, SCIP_MATRIX *matrix, int row)
SCIP_RETCODE SCIPmatrixGetParallelCols(SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass, SCIP_Bool *varineq)
int SCIPmatrixGetNRows(SCIP_MATRIX *matrix)
void SCIPmatrixRemoveColumnBounds(SCIP *scip, SCIP_MATRIX *matrix, int col)
SCIP_Real SCIPmatrixGetColUb(SCIP_MATRIX *matrix, int col)
memory allocation routines
#define BMSclearMemoryArray(ptr, num)
public methods for managing constraints
public methods for matrix
public methods for message output
methods for sorting joint arrays of various types
public methods for problem variables
wrapper for rational number arithmetic
public methods for constraint handler plugins and constraints
public methods for exact solving
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for variable pricer plugins
public methods for global and local (sub)problems
public methods for SCIP variables
SCIP_RATIONAL ** rhsexact
SCIP_RATIONAL ** lhsexact
SCIP_RATIONAL ** colmatvalexact
SCIP_RATIONAL ** rowmatvalexact
SCIP_Bool * isrhsinfinite
SCIP_MATRIXVALSEXACT * matrixvalsexact
data structure for MIP matrix
struct SCIP_Cons SCIP_CONS
struct SCIP_Conshdlr SCIP_CONSHDLR
struct SCIP_Matrix SCIP_MATRIX
struct SCIP_Rational SCIP_RATIONAL
enum SCIP_Retcode SCIP_RETCODE