- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# CoinPresolveMatrix Class Reference

Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolve. More...

`#include <CoinPresolveMatrix.hpp>`

Inheritance diagram for CoinPresolveMatrix:

[legend]
Collaboration diagram for CoinPresolveMatrix:

[legend]
List of all members.

## Public Member Functions
| CoinPresolveMatrix (int ncols_alloc, int nrows_alloc, CoinBigIndex nelems_alloc)
| `Native' constructor
| CoinPresolveMatrix (int ncols0, double maxmin, ClpSimplex *si, int nrows, CoinBigIndex nelems, bool doStatus, double nonLinearVariable, double bulkRatio)
| Clp OSI constructor.
void | update_model (ClpSimplex *si, int nrows0, int ncols0, CoinBigIndex nelems0)
| Update the model held by a Clp OSI.
| CoinPresolveMatrix (int ncols0, double maxmin, OsiSolverInterface *si, int nrows, CoinBigIndex nelems, bool doStatus, double nonLinearVariable, const char *prohibited, const char *rowProhibited=NULL)
| Generic OSI constructor.
void | update_model (OsiSolverInterface *si, int nrows0, int ncols0, CoinBigIndex nelems0)
| Update the model held by a generic OSI.
| ~CoinPresolveMatrix ()
| Destructor.
void | change_bias (double change_amount)
| Adjust objective function constant offset.
void | statistics ()
| Say we want statistics - also set time.
double | feasibilityTolerance ()
| Return feasibility tolerance.
void | setFeasibilityTolerance (double val)
| Set feasibility tolerance.
int | status ()
| Returns problem status (0 = feasible, 1 = infeasible, 2 = unbounded).
void | setStatus (int status)
| Set problem status.
void | setPass (int pass=0)
| Set pass number.
void | setMaximumSubstitutionLevel (int level)
| Set Maximum substitution level (normally 3).
Functions to load the problem representation
void | setMatrix (const CoinPackedMatrix *mtx)
| Load the cofficient matrix.
int | countEmptyRows ()
| Count number of empty rows.
void | setVariableType (int i, int variableType)
| Set variable type information for a single variable.
void | setVariableType (const unsigned char *variableType, int lenParam)
| Set variable type information for all variables.
void | setVariableType (bool allIntegers, int lenParam)
| Set the type of all variables.
void | setAnyInteger (bool anyInteger=true)
| Set a flag for presence (true) or absence (false) of integer variables.
Functions to retrieve problem information
const CoinBigIndex * | getRowStarts () const
| Get row start vector for row-major packed matrix.
const int * | getColIndicesByRow () const
| Get vector of column indices for row-major packed matrix.
const double * | getElementsByRow () const
| Get vector of elements for row-major packed matrix.
bool | isInteger (int i) const
| Check for integrality of the specified variable.
bool | anyInteger () const
| Check if there are any integer variables.
int | presolveOptions () const
| Picks up any special options.
void | setPresolveOptions (int value)
| Sets any special options.
Functions to manipulate row and column processing status
void | initColsToDo ()
| Initialise the column ToDo lists.
int | stepColsToDo ()
| Step column ToDo lists.
int | numberColsToDo ()
| Return the number of columns on the colsToDo_ list.
bool | colChanged (int i) const
| Has column been changed?
void | unsetColChanged (int i)
| Mark column as not changed.
void | setColChanged (int i)
| Mark column as changed.
void | addCol (int i)
| Mark column as changed and add to list of columns to process next.
bool | colProhibited (int i) const
| Test if column is eligible for preprocessing.
bool | colProhibited2 (int i) const
| Test if column is eligible for preprocessing.
void | setColProhibited (int i)
| Mark column as ineligible for preprocessing.
bool | colUsed (int i) const
| Test if column is marked as used.
void | setColUsed (int i)
| Mark column as used.
void | unsetColUsed (int i)
| Mark column as unused.
void | initRowsToDo ()
| Initialise the row ToDo lists.
int | stepRowsToDo ()
| Step row ToDo lists.
int | numberRowsToDo ()
| Return the number of rows on the rowsToDo_ list.
bool | rowChanged (int i) const
| Has row been changed?
void | unsetRowChanged (int i)
| Mark row as not changed.
void | setRowChanged (int i)
| Mark row as changed.
void | addRow (int i)
| Mark row as changed and add to list of rows to process next.
bool | rowProhibited (int i) const
| Test if row is eligible for preprocessing.
bool | rowProhibited2 (int i) const
| Test if row is eligible for preprocessing.
void | setRowProhibited (int i)
| Mark row as ineligible for preprocessing.
bool | rowUsed (int i) const
| Test if row is marked as used.
void | setRowUsed (int i)
| Mark row as used.
void | unsetRowUsed (int i)
| Mark row as unused.
bool | anyProhibited () const
| Check if there are any prohibited rows or columns.
void | setAnyProhibited (bool val=true)
| Set a flag for presence of prohibited rows or columns.
int | recomputeSums (int iRow)
| Recompute ups and downs for a row (nonzero if infeasible).
int | initializeStuff ()
| Initialize random numbers etc (nonzero if infeasible).
void | deleteStuff ()
| Delete useful arrays.
## Public Attributes
double | dobias_
| Objective function offset introduced during presolve.
unsigned char * | integerType_
| Tracks integrality of columns (1 for integer, 0 for continuous).
bool | anyInteger_
| Flag to say if any variables are integer.
bool | tuning_
| Print statistics for tuning.
double | startTime_
| Start time of presolve.
double | feasibilityTolerance_
| Bounds can be moved by this to retain feasibility.
int | status_
| Output status: 0 = feasible, 1 = infeasible, 2 = unbounded.
int | pass_
| Pass number.
int | maxSubstLevel_
| Maximum substitution level.
Matrix storage management links
Linked lists, modelled after the linked lists used in OSL factorization. They are used for management of the bulk coefficient and minor index storage areas.
presolvehlink * | clink_
| Linked list for the column-major representation.
presolvehlink * | rlink_
| Linked list for the row-major representation.
Row-major representation
Common row-major format: A pair of vectors with positional correspondence to hold coefficients and column indices, and a second pair of vectors giving the starting position and length of each row in the first pair.
CoinBigIndex * | mrstrt_
| Vector of row start positions in hcol, rowels_.
int * | hinrow_
| Vector of row lengths.
double * | rowels_
| Coefficients (positional correspondence with hcol_).
int * | hcol_
| Column indices (positional correspondence with rowels_).
Row and column processing status
Information used to determine if rows or columns can be changed and if they require further processing due to changes. There are four major lists: the [row,col]ToDo list, and the [row,col]NextToDo list. In general, a transform processes entries from the ToDo list and adds entries to the NextToDo list. There are two vectors, [row,col]Changed, which track the status of individual rows and columns.
unsigned char * | colChanged_
| Column change status information.
int * | colsToDo_
| Input list of columns to process.
int | numberColsToDo_
| Length of colsToDo_.
int * | nextColsToDo_
| Output list of columns to process next.
int | numberNextColsToDo_
| Length of nextColsToDo_.
unsigned char * | rowChanged_
| Row change status information.
int * | rowsToDo_
| Input list of rows to process.
int | numberRowsToDo_
| Length of rowsToDo_.
int * | nextRowsToDo_
| Output list of rows to process next.
int | numberNextRowsToDo_
| Length of nextRowsToDo_.
int | presolveOptions_
| Presolve options 1 set if allow duplicate column tests for integer variables 2 set to allow code to try and fix infeasibilities 4 set to inhibit x+y+z=1 mods 8 not used 16 set to allow stuff which won't unroll easily.
bool | anyProhibited_
int * | usefulRowInt_
| Useful int array 3* number rows.
double * | usefulRowDouble_
| Useful double array number rows.
int * | usefulColumnInt_
| Useful int array 2* number columns.
double * | usefulColumnDouble_
| Useful double array number columns.
double * | randomNumber_
| Array of random numbers (max row,column).
int * | infiniteUp_
| Array giving number of infinite ups on a row.
double * | sumUp_
| Array giving sum of non-infinite ups on a row.
int * | infiniteDown_
| Array giving number of infinite downs on a row.
double * | sumDown_
| Array giving sum of non-infinite downs on a row.
## Friends
void | assignPresolveToPostsolve (CoinPresolveMatrix *&preObj)
| Initialize a CoinPostsolveMatrix object, destroying the CoinPresolveMatrix object.
## Related Functions
(Note that these are not member functions.)
void | presolve_no_dups (const CoinPresolveMatrix *preObj, bool doCol=true, bool doRow=true)
| Check column-major and/or row-major matrices for duplicate entries in the major vectors.
void | presolve_links_ok (const CoinPresolveMatrix *preObj, bool doCol=true, bool doRow=false)
| Check the links which track storage order for major vectors in the bulk storage area.
void | presolve_no_zeros (const CoinPresolveMatrix *preObj, bool doCol=true, bool doRow=true)
| Check for explicit zeros in the column- and/or row-major matrices.
void | presolve_consistent (const CoinPresolveMatrix *preObj, bool chkvals=true)
| Checks for equivalence of the column- and row-major matrices.
void | presolve_check_sol (const CoinPresolveMatrix *preObj, int chkColSol=2, int chkRowAct=1, int chkStatus=1)
| Check primal solution and architectural variable status.
void | presolve_check_nbasic (const CoinPresolveMatrix *preObj)
| Check for the proper number of basic variables.

## Detailed Description

Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolve.

For problem manipulation, this class adds a row-major matrix representation, linked lists that allow for easy manipulation of the matrix when applying presolve transforms, and vectors to track row and column processing status (changed, needs further processing, change prohibited)

For problem representation, this class adds information about variable type (integer or continuous), an objective offset, and a feasibility tolerance.

NOTE that the anyInteger_ and anyProhibited_ flags are independent of the vectors used to track this information for individual variables (integerType_ and rowChanged_ and colChanged_, respectively).

NOTE also that at the end of presolve the column-major and row-major matrix representations are loosely packed (i.e., there may be gaps between columns in the bulk storage arrays).

Definition at line 772 of file CoinPresolveMatrix.hpp.

## Constructor & Destructor Documentation

CoinPresolveMatrix::CoinPresolveMatrix | ( | int | ncols_alloc,
|  | int | nrows_alloc,
|  | CoinBigIndex | nelems_alloc |
| ) |  |  |

`Native' constructor

This constructor creates an empty object which must then be loaded. On the other hand, it doesn't assume that the client is an OsiSolverInterface.

CoinPresolveMatrix::CoinPresolveMatrix | ( | int | ncols0,
|  | double | maxmin,
|  | ClpSimplex * | si,
|  | int | nrows,
|  | CoinBigIndex | nelems,
|  | bool | doStatus,
|  | double | nonLinearVariable,
|  | double | bulkRatio |
| ) |  |  |

Clp OSI constructor.

See Clp code for the definition.

CoinPresolveMatrix::CoinPresolveMatrix | ( | int | ncols0,
|  | double | maxmin,
|  | OsiSolverInterface * | si,
|  | int | nrows,
|  | CoinBigIndex | nelems,
|  | bool | doStatus,
|  | double | nonLinearVariable,
|  | const char * | prohibited,
|  | const char * | rowProhibited = `NULL` |
| ) |  |  |

Generic OSI constructor.

See OSI code for the definition.

CoinPresolveMatrix::~CoinPresolveMatrix | ( |  | ) |

Destructor.

## Member Function Documentation

void CoinPresolveMatrix::update_model | ( | ClpSimplex * | si,
|  | int | nrows0,
|  | int | ncols0,
|  | CoinBigIndex | nelems0 |
| ) |  |  |

Update the model held by a Clp OSI.

void CoinPresolveMatrix::update_model | ( | OsiSolverInterface * | si,
|  | int | nrows0,
|  | int | ncols0,
|  | CoinBigIndex | nelems0 |
| ) |  |  |

Update the model held by a generic OSI.

void CoinPresolveMatrix::setMatrix | ( | const CoinPackedMatrix * | mtx | ) |

Load the cofficient matrix.

Load the coefficient matrix before loading the other vectors (bounds, objective, variable type) required to define the problem.

int CoinPresolveMatrix::countEmptyRows | ( |  | ) | `[inline]`

Count number of empty rows.

Definition at line 850 of file CoinPresolveMatrix.hpp.

References hinrow_, and CoinPrePostsolveMatrix::nrows_.

void CoinPresolveMatrix::setVariableType | ( | int | i,
|  | int | variableType |
| ) |  |  | `[inline]`

Set variable type information for a single variable.

Set `variableType` to 0 for continous, 1 for integer. Does not manipulate the anyInteger_ flag.

Definition at line 860 of file CoinPresolveMatrix.hpp.

References integerType_, and CoinPrePostsolveMatrix::ncols0_.

void CoinPresolveMatrix::setVariableType | ( | const unsigned char * | variableType,
|  | int | lenParam |
| ) |  |  |

Set variable type information for all variables.

Set `variableType`[i] to 0 for continuous, 1 for integer. Does not manipulate the anyInteger_ flag.

void CoinPresolveMatrix::setVariableType | ( | bool | allIntegers,
|  | int | lenParam |
| ) |  |  |

Set the type of all variables.

allIntegers should be true to set the type to integer, false to set the type to continuous.

void CoinPresolveMatrix::setAnyInteger | ( | bool | anyInteger = `true` | ) | `[inline]`

Set a flag for presence (true) or absence (false) of integer variables.

Definition at line 879 of file CoinPresolveMatrix.hpp.

References anyInteger(), and anyInteger_.

const CoinBigIndex* CoinPresolveMatrix::getRowStarts | ( |  | ) | const`[inline]`

Get row start vector for row-major packed matrix.

Definition at line 888 of file CoinPresolveMatrix.hpp.

References mrstrt_.

const int* CoinPresolveMatrix::getColIndicesByRow | ( |  | ) | const`[inline]`

Get vector of column indices for row-major packed matrix.

Definition at line 891 of file CoinPresolveMatrix.hpp.

References hcol_.

const double* CoinPresolveMatrix::getElementsByRow | ( |  | ) | const`[inline]`

Get vector of elements for row-major packed matrix.

Definition at line 894 of file CoinPresolveMatrix.hpp.

References rowels_.

bool CoinPresolveMatrix::isInteger | ( | int | i | ) | const`[inline]`

Check for integrality of the specified variable.

Consults the integerType_ vector if present; fallback is the anyInteger_ flag.

Definition at line 902 of file CoinPresolveMatrix.hpp.

References anyInteger_, and integerType_.

bool CoinPresolveMatrix::anyInteger | ( |  | ) | const`[inline]`

Check if there are any integer variables.

Consults the anyInteger_ flag

Definition at line 915 of file CoinPresolveMatrix.hpp.

References anyInteger_.

Referenced by setAnyInteger().

int CoinPresolveMatrix::presolveOptions | ( |  | ) | const`[inline]`

Picks up any special options.

Definition at line 918 of file CoinPresolveMatrix.hpp.

References presolveOptions_.

void CoinPresolveMatrix::setPresolveOptions | ( | int | value | ) | `[inline]`

Sets any special options.

Definition at line 921 of file CoinPresolveMatrix.hpp.

References presolveOptions_.

void CoinPresolveMatrix::change_bias | ( | double | change_amount | ) | `[inline]`

Adjust objective function constant offset.

Definition at line 942 of file CoinPresolveMatrix.hpp.

References dobias_, and PRESOLVE_STMT.

void CoinPresolveMatrix::statistics | ( |  | ) |

Say we want statistics - also set time.

double CoinPresolveMatrix::feasibilityTolerance | ( |  | ) | `[inline]`

Return feasibility tolerance.

Definition at line 989 of file CoinPresolveMatrix.hpp.

References feasibilityTolerance_.

void CoinPresolveMatrix::setFeasibilityTolerance | ( | double | val | ) | `[inline]`

Set feasibility tolerance.

Definition at line 992 of file CoinPresolveMatrix.hpp.

References feasibilityTolerance_.

int CoinPresolveMatrix::status | ( |  | ) | `[inline]`

Returns problem status (0 = feasible, 1 = infeasible, 2 = unbounded).

Definition at line 1002 of file CoinPresolveMatrix.hpp.

References status_.

void CoinPresolveMatrix::setStatus | ( | int | status | ) | `[inline]`

Set problem status.

Definition at line 1005 of file CoinPresolveMatrix.hpp.

References status_.

void CoinPresolveMatrix::setPass | ( | int | pass = `0` | ) | `[inline]`

Set pass number.

Definition at line 1015 of file CoinPresolveMatrix.hpp.

References pass_.

void CoinPresolveMatrix::setMaximumSubstitutionLevel | ( | int | level | ) | `[inline]`

Set Maximum substitution level (normally 3).

Definition at line 1024 of file CoinPresolveMatrix.hpp.

References maxSubstLevel_.

void CoinPresolveMatrix::initColsToDo | ( |  | ) |

Initialise the column ToDo lists.

Places all columns in the colsToDo_ list except for columns marked as prohibited (viz. colChanged_).

int CoinPresolveMatrix::stepColsToDo | ( |  | ) |

Step column ToDo lists.

Moves columns on the nextColsToDo_ list to the colsToDo_ list, emptying nextColsToDo_. Returns the number of columns transferred.

int CoinPresolveMatrix::numberColsToDo | ( |  | ) | `[inline]`

Return the number of columns on the colsToDo_ list.

Definition at line 1130 of file CoinPresolveMatrix.hpp.

References numberColsToDo_.

bool CoinPresolveMatrix::colChanged | ( | int | i | ) | const`[inline]`

Has column been changed?

Definition at line 1134 of file CoinPresolveMatrix.hpp.

References colChanged_.

void CoinPresolveMatrix::unsetColChanged | ( | int | i | ) | `[inline]`

Mark column as not changed.

Definition at line 1138 of file CoinPresolveMatrix.hpp.

References colChanged_.

void CoinPresolveMatrix::setColChanged | ( | int | i | ) | `[inline]`

Mark column as changed.

Definition at line 1142 of file CoinPresolveMatrix.hpp.

References colChanged_.

void CoinPresolveMatrix::addCol | ( | int | i | ) | `[inline]`

Mark column as changed and add to list of columns to process next.

Definition at line 1146 of file CoinPresolveMatrix.hpp.

References colChanged_, nextColsToDo_, and numberNextColsToDo_.

bool CoinPresolveMatrix::colProhibited | ( | int | i | ) | const`[inline]`

Test if column is eligible for preprocessing.

Definition at line 1153 of file CoinPresolveMatrix.hpp.

References colChanged_.

bool CoinPresolveMatrix::colProhibited2 | ( | int | i | ) | const`[inline]`

Test if column is eligible for preprocessing.

The difference between this method and colProhibited() is that this method first tests anyProhibited_ before examining the specific entry for the specified column.

Definition at line 1162 of file CoinPresolveMatrix.hpp.

References anyProhibited_, and colChanged_.

void CoinPresolveMatrix::setColProhibited | ( | int | i | ) | `[inline]`

Mark column as ineligible for preprocessing.

Definition at line 1169 of file CoinPresolveMatrix.hpp.

References colChanged_.

bool CoinPresolveMatrix::colUsed | ( | int | i | ) | const`[inline]`

Test if column is marked as used.

This is for doing faster lookups to see where two columns have entries in common.

Definition at line 1177 of file CoinPresolveMatrix.hpp.

References colChanged_.

void CoinPresolveMatrix::setColUsed | ( | int | i | ) | `[inline]`

Mark column as used.

Definition at line 1181 of file CoinPresolveMatrix.hpp.

References colChanged_.

void CoinPresolveMatrix::unsetColUsed | ( | int | i | ) | `[inline]`

Mark column as unused.

Definition at line 1185 of file CoinPresolveMatrix.hpp.

References colChanged_.

void CoinPresolveMatrix::initRowsToDo | ( |  | ) |

Initialise the row ToDo lists.

Places all rows in the rowsToDo_ list except for rows marked as prohibited (viz. rowChanged_).

int CoinPresolveMatrix::stepRowsToDo | ( |  | ) |

Step row ToDo lists.

Moves rows on the nextRowsToDo_ list to the rowsToDo_ list, emptying nextRowsToDo_. Returns the number of rows transferred.

int CoinPresolveMatrix::numberRowsToDo | ( |  | ) | `[inline]`

Return the number of rows on the rowsToDo_ list.

Definition at line 1204 of file CoinPresolveMatrix.hpp.

References numberRowsToDo_.

bool CoinPresolveMatrix::rowChanged | ( | int | i | ) | const`[inline]`

Has row been changed?

Definition at line 1208 of file CoinPresolveMatrix.hpp.

References rowChanged_.

void CoinPresolveMatrix::unsetRowChanged | ( | int | i | ) | `[inline]`

Mark row as not changed.

Definition at line 1212 of file CoinPresolveMatrix.hpp.

References rowChanged_.

void CoinPresolveMatrix::setRowChanged | ( | int | i | ) | `[inline]`

Mark row as changed.

Definition at line 1216 of file CoinPresolveMatrix.hpp.

References rowChanged_.

void CoinPresolveMatrix::addRow | ( | int | i | ) | `[inline]`

Mark row as changed and add to list of rows to process next.

Definition at line 1220 of file CoinPresolveMatrix.hpp.

References nextRowsToDo_, numberNextRowsToDo_, and rowChanged_.

bool CoinPresolveMatrix::rowProhibited | ( | int | i | ) | const`[inline]`

Test if row is eligible for preprocessing.

Definition at line 1227 of file CoinPresolveMatrix.hpp.

References rowChanged_.

bool CoinPresolveMatrix::rowProhibited2 | ( | int | i | ) | const`[inline]`

Test if row is eligible for preprocessing.

The difference between this method and rowProhibited() is that this method first tests anyProhibited_ before examining the specific entry for the specified row.

Definition at line 1236 of file CoinPresolveMatrix.hpp.

References anyProhibited_, and rowChanged_.

void CoinPresolveMatrix::setRowProhibited | ( | int | i | ) | `[inline]`

Mark row as ineligible for preprocessing.

Definition at line 1243 of file CoinPresolveMatrix.hpp.

References rowChanged_.

bool CoinPresolveMatrix::rowUsed | ( | int | i | ) | const`[inline]`

Test if row is marked as used.

This is for doing faster lookups to see where two rows have entries in common. It can be used anywhere as long as it ends up zeroed out.

Definition at line 1251 of file CoinPresolveMatrix.hpp.

References rowChanged_.

void CoinPresolveMatrix::setRowUsed | ( | int | i | ) | `[inline]`

Mark row as used.

Definition at line 1255 of file CoinPresolveMatrix.hpp.

References rowChanged_.

void CoinPresolveMatrix::unsetRowUsed | ( | int | i | ) | `[inline]`

Mark row as unused.

Definition at line 1259 of file CoinPresolveMatrix.hpp.

References rowChanged_.

bool CoinPresolveMatrix::anyProhibited | ( |  | ) | const`[inline]`

Check if there are any prohibited rows or columns.

Definition at line 1265 of file CoinPresolveMatrix.hpp.

References anyProhibited_.

void CoinPresolveMatrix::setAnyProhibited | ( | bool | val = `true` | ) | `[inline]`

Set a flag for presence of prohibited rows or columns.

Definition at line 1268 of file CoinPresolveMatrix.hpp.

References anyProhibited_.

int CoinPresolveMatrix::recomputeSums | ( | int | iRow | ) |

Recompute ups and downs for a row (nonzero if infeasible).

If iRow -1 then recompute all

int CoinPresolveMatrix::initializeStuff | ( |  | ) |

Initialize random numbers etc (nonzero if infeasible).

void CoinPresolveMatrix::deleteStuff | ( |  | ) |

Delete useful arrays.

## Friends And Related Function Documentation

void assignPresolveToPostsolve | ( | CoinPresolveMatrix *& | preObj | ) | `[friend]`

Initialize a CoinPostsolveMatrix object, destroying the CoinPresolveMatrix object.

See CoinPostsolveMatrix::assignPresolveToPostsolve.

## Member Data Documentation

presolvehlink* CoinPresolveMatrix::clink_

Linked list for the column-major representation.

Definition at line 933 of file CoinPresolveMatrix.hpp.

presolvehlink* CoinPresolveMatrix::rlink_

Linked list for the row-major representation.

Definition at line 935 of file CoinPresolveMatrix.hpp.

double CoinPresolveMatrix::dobias_

Objective function offset introduced during presolve.

Definition at line 939 of file CoinPresolveMatrix.hpp.

Referenced by change_bias().

CoinBigIndex* CoinPresolveMatrix::mrstrt_

Vector of row start positions in hcol, rowels_.

Definition at line 962 of file CoinPresolveMatrix.hpp.

Referenced by getRowStarts().

int* CoinPresolveMatrix::hinrow_

Vector of row lengths.

Definition at line 964 of file CoinPresolveMatrix.hpp.

Referenced by countEmptyRows().

double* CoinPresolveMatrix::rowels_

Coefficients (positional correspondence with hcol_).

Definition at line 966 of file CoinPresolveMatrix.hpp.

Referenced by getElementsByRow().

int* CoinPresolveMatrix::hcol_

Column indices (positional correspondence with rowels_).

Definition at line 968 of file CoinPresolveMatrix.hpp.

Referenced by getColIndicesByRow().

unsigned char* CoinPresolveMatrix::integerType_

Tracks integrality of columns (1 for integer, 0 for continuous).

Definition at line 972 of file CoinPresolveMatrix.hpp.

Referenced by isInteger(), and setVariableType().

bool CoinPresolveMatrix::anyInteger_

Flag to say if any variables are integer.

Note that this flag is not manipulated by the various `setVariableType` routines.

Definition at line 978 of file CoinPresolveMatrix.hpp.

Referenced by anyInteger(), isInteger(), and setAnyInteger().

bool CoinPresolveMatrix::tuning_

Print statistics for tuning.

Definition at line 980 of file CoinPresolveMatrix.hpp.

double CoinPresolveMatrix::startTime_

Start time of presolve.

Definition at line 984 of file CoinPresolveMatrix.hpp.

double CoinPresolveMatrix::feasibilityTolerance_

Bounds can be moved by this to retain feasibility.

Definition at line 987 of file CoinPresolveMatrix.hpp.

Referenced by feasibilityTolerance(), and setFeasibilityTolerance().

int CoinPresolveMatrix::status_

Output status: 0 = feasible, 1 = infeasible, 2 = unbounded.

Actually implemented as single bit flags: 1^0 = infeasible, 1^1 = unbounded.

Definition at line 1000 of file CoinPresolveMatrix.hpp.

Referenced by setStatus(), and status().

int CoinPresolveMatrix::pass_

Pass number.

Used to control the execution of testRedundant (evoked by the implied_free transform).

Definition at line 1013 of file CoinPresolveMatrix.hpp.

Referenced by setPass().

int CoinPresolveMatrix::maxSubstLevel_

Maximum substitution level.

Used to control the execution of subst from implied_free

Definition at line 1022 of file CoinPresolveMatrix.hpp.

Referenced by setMaximumSubstitutionLevel().

unsigned char* CoinPresolveMatrix::colChanged_

Column change status information.

Coded using the following bits:

- 0x01: Column has changed
- 0x02: preprocessing prohibited
- 0x04: Column has been used

Definition at line 1050 of file CoinPresolveMatrix.hpp.

Referenced by addCol(), colChanged(), colProhibited(), colProhibited2(), colUsed(), setColChanged(), setColProhibited(), setColUsed(), unsetColChanged(), and unsetColUsed().

int* CoinPresolveMatrix::colsToDo_

Input list of columns to process.

Definition at line 1052 of file CoinPresolveMatrix.hpp.

int CoinPresolveMatrix::numberColsToDo_

Length of colsToDo_.

Definition at line 1054 of file CoinPresolveMatrix.hpp.

Referenced by numberColsToDo().

int* CoinPresolveMatrix::nextColsToDo_

Output list of columns to process next.

Definition at line 1056 of file CoinPresolveMatrix.hpp.

Referenced by addCol().

int CoinPresolveMatrix::numberNextColsToDo_

Length of nextColsToDo_.

Definition at line 1058 of file CoinPresolveMatrix.hpp.

Referenced by addCol().

unsigned char* CoinPresolveMatrix::rowChanged_

Row change status information.

Coded using the following bits:

- 0x01: Row has changed
- 0x02: preprocessing prohibited
- 0x04: Row has been used

Definition at line 1069 of file CoinPresolveMatrix.hpp.

Referenced by addRow(), rowChanged(), rowProhibited(), rowProhibited2(), rowUsed(), setRowChanged(), setRowProhibited(), setRowUsed(), unsetRowChanged(), and unsetRowUsed().

int* CoinPresolveMatrix::rowsToDo_

Input list of rows to process.

Definition at line 1071 of file CoinPresolveMatrix.hpp.

int CoinPresolveMatrix::numberRowsToDo_

Length of rowsToDo_.

Definition at line 1073 of file CoinPresolveMatrix.hpp.

Referenced by numberRowsToDo().

int* CoinPresolveMatrix::nextRowsToDo_

Output list of rows to process next.

Definition at line 1075 of file CoinPresolveMatrix.hpp.

Referenced by addRow().

int CoinPresolveMatrix::numberNextRowsToDo_

Length of nextRowsToDo_.

Definition at line 1077 of file CoinPresolveMatrix.hpp.

Referenced by addRow().

int CoinPresolveMatrix::presolveOptions_

Presolve options 1 set if allow duplicate column tests for integer variables 2 set to allow code to try and fix infeasibilities 4 set to inhibit x+y+z=1 mods 8 not used 16 set to allow stuff which won't unroll easily.

Definition at line 1085 of file CoinPresolveMatrix.hpp.

Referenced by presolveOptions(), and setPresolveOptions().

bool CoinPresolveMatrix::anyProhibited_

Flag to say if any rows or columns are marked as prohibited

Note that this flag is not manipulated by any of the various `set*Prohibited` routines.

Definition at line 1091 of file CoinPresolveMatrix.hpp.

Referenced by anyProhibited(), colProhibited2(), rowProhibited2(), and setAnyProhibited().

int* CoinPresolveMatrix::usefulRowInt_

Useful int array 3* number rows.

Definition at line 1093 of file CoinPresolveMatrix.hpp.

double* CoinPresolveMatrix::usefulRowDouble_

Useful double array number rows.

Definition at line 1095 of file CoinPresolveMatrix.hpp.

int* CoinPresolveMatrix::usefulColumnInt_

Useful int array 2* number columns.

Definition at line 1097 of file CoinPresolveMatrix.hpp.

double* CoinPresolveMatrix::usefulColumnDouble_

Useful double array number columns.

Definition at line 1099 of file CoinPresolveMatrix.hpp.

double* CoinPresolveMatrix::randomNumber_

Array of random numbers (max row,column).

Definition at line 1101 of file CoinPresolveMatrix.hpp.

int* CoinPresolveMatrix::infiniteUp_

Array giving number of infinite ups on a row.

Definition at line 1103 of file CoinPresolveMatrix.hpp.

double* CoinPresolveMatrix::sumUp_

Array giving sum of non-infinite ups on a row.

Definition at line 1105 of file CoinPresolveMatrix.hpp.

int* CoinPresolveMatrix::infiniteDown_

Array giving number of infinite downs on a row.

Definition at line 1107 of file CoinPresolveMatrix.hpp.

double* CoinPresolveMatrix::sumDown_

Array giving sum of non-infinite downs on a row.

Definition at line 1109 of file CoinPresolveMatrix.hpp.

The documentation for this class was generated from the following files:

- /home/coin/SVN-release/Bcps-0.91.0/CoinUtils/src/CoinPresolveMatrix.hpp
- /home/coin/SVN-release/Bcps-0.91.0/CoinUtils/src/CoinPresolvePsdebug.hpp