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

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

# CoinModel Class Reference

This is a simple minded model which is stored in a format which makes it easier to construct and modify but not efficient for algorithms. More...

`#include <CoinModel.hpp>`

Collaboration diagram for CoinModel:

[legend]
List of all members.

## Public Member Functions
int | computeAssociated (double *associated)
| Fills in all associated - returning number of errors.
CoinPackedMatrix * | quadraticRow (int rowNumber, double *linear, int &numberBad) const
| Gets correct form for a quadratic row - user to delete If row is not quadratic then returns which other variables are involved with tiny (1.0e-100) elements and count of total number of variables which could not be put in quadratic form.
void | replaceQuadraticRow (int rowNumber, const double *linear, const CoinPackedMatrix *quadraticPart)
| Replaces a quadratic row.
CoinModel * | reorder (const char *mark) const
| If possible return a model where if all variables marked nonzero are fixed the problem will be linear.
int | expandKnapsack (int knapsackRow, int &numberOutput, double *buildObj, CoinBigIndex *buildStart, int *buildRow, double *buildElement, int reConstruct=-1) const
| Expands out all possible combinations for a knapsack If buildObj NULL then just computes space needed - returns number elements On entry numberOutput is maximum allowed, on exit it is number needed or -1 (as will be number elements) if maximum exceeded.
void | setCutMarker (int size, const int *marker)
| Sets cut marker array.
void | setPriorities (int size, const int *priorities)
| Sets priority array.
const int * | priorities () const
| priorities (given for all columns (-1 if not integer)
Useful methods for building model
void | addRow (int numberInRow, const int *columns, const double *elements, double rowLower=-COIN_DBL_MAX, double rowUpper=COIN_DBL_MAX, const char *name=NULL)
| add a row - numberInRow may be zero
void | addColumn (int numberInColumn, const int *rows, const double *elements, double columnLower=0.0, double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0, const char *name=NULL, bool isInteger=false)
| add a column - numberInColumn may be zero */
void | addCol (int numberInColumn, const int *rows, const double *elements, double columnLower=0.0, double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0, const char *name=NULL, bool isInteger=false)
| add a column - numberInColumn may be zero */
void | operator() (int i, int j, double value)
| Sets value for row i and column j.
void | setElement (int i, int j, double value)
| Sets value for row i and column j.
int | getRow (int whichRow, int *column, double *element)
| Gets sorted row - user must provide enough space (easiest is allocate number of columns).
int | getColumn (int whichColumn, int *column, double *element)
| Gets sorted column - user must provide enough space (easiest is allocate number of rows).
void | setQuadraticElement (int i, int j, double value)
| Sets quadratic value for column i and j.
void | operator() (int i, int j, const char *value)
| Sets value for row i and column j as string.
void | setElement (int i, int j, const char *value)
| Sets value for row i and column j as string.
int | associateElement (const char *stringValue, double value)
| Associates a string with a value. Returns string id (or -1 if does not exist).
void | setRowLower (int whichRow, double rowLower)
| Sets rowLower (if row does not exist then all rows up to this are defined with default values and no elements).
void | setRowUpper (int whichRow, double rowUpper)
| Sets rowUpper (if row does not exist then all rows up to this are defined with default values and no elements).
void | setRowBounds (int whichRow, double rowLower, double rowUpper)
| Sets rowLower and rowUpper (if row does not exist then all rows up to this are defined with default values and no elements).
void | setRowName (int whichRow, const char *rowName)
| Sets name (if row does not exist then all rows up to this are defined with default values and no elements).
void | setColumnLower (int whichColumn, double columnLower)
| Sets columnLower (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnUpper (int whichColumn, double columnUpper)
| Sets columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnBounds (int whichColumn, double columnLower, double columnUpper)
| Sets columnLower and columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnObjective (int whichColumn, double columnObjective)
| Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnName (int whichColumn, const char *columnName)
| Sets name (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnIsInteger (int whichColumn, bool columnIsInteger)
| Sets integer state (if column does not exist then all columns up to this are defined with default values and no elements).
void | setObjective (int whichColumn, double columnObjective)
| Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).
void | setIsInteger (int whichColumn, bool columnIsInteger)
| Sets integer state (if column does not exist then all columns up to this are defined with default values and no elements).
void | setInteger (int whichColumn)
| Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).
void | setContinuous (int whichColumn)
| Sets continuous (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColLower (int whichColumn, double columnLower)
| Sets columnLower (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColUpper (int whichColumn, double columnUpper)
| Sets columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColBounds (int whichColumn, double columnLower, double columnUpper)
| Sets columnLower and columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColObjective (int whichColumn, double columnObjective)
| Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColName (int whichColumn, const char *columnName)
| Sets name (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColIsInteger (int whichColumn, bool columnIsInteger)
| Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).
void | setRowLower (int whichRow, const char *rowLower)
| Sets rowLower (if row does not exist then all rows up to this are defined with default values and no elements).
void | setRowUpper (int whichRow, const char *rowUpper)
| Sets rowUpper (if row does not exist then all rows up to this are defined with default values and no elements).
void | setColumnLower (int whichColumn, const char *columnLower)
| Sets columnLower (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnUpper (int whichColumn, const char *columnUpper)
| Sets columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnObjective (int whichColumn, const char *columnObjective)
| Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).
void | setColumnIsInteger (int whichColumn, const char *columnIsInteger)
| Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).
void | setObjective (int whichColumn, const char *columnObjective)
| Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).
void | setIsInteger (int whichColumn, const char *columnIsInteger)
| Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).
void | deleteRow (int whichRow)
| Deletes all entries in row and bounds.
void | deleteColumn (int whichColumn)
| Deletes all entries in column and bounds and objective.
void | deleteCol (int whichColumn)
| Deletes all entries in column and bounds.
int | deleteElement (int row, int column)
| Takes element out of matrix - returning position (<0 if not there);.
void | deleteThisElement (int row, int column, int position)
| Takes element out of matrix when position known.
int | packRows ()
| Packs down all rows i.e.
int | packColumns ()
| Packs down all columns i.e.
int | packCols ()
| Packs down all columns i.e.
int | pack ()
| Packs down all rows and columns.
int | writeMps (const char *filename, int compression=0, int formatType=0, int numberAcross=2, bool keepStrings=false)
| Write the problem in MPS format to a file with the given filename.
int | differentModel (CoinModel &other, bool ignoreNames)
| Check two models against each other.
For getting information
int | numberRows () const
| Return number of rows or maximum found so far.
int | numberColumns () const
| Return number of columns or maximum found so far.
CoinBigIndex | numberElements () const
| Return number of elements.
const CoinModelTriple * | elements () const
| Return elements as triples.
double | operator() (int i, int j) const
| Returns value for row i and column j.
double | getElement (int i, int j) const
| Returns value for row i and column j.
double | operator() (const char *rowName, const char *columnName) const
| Returns value for row rowName and column columnName.
double | getElement (const char *rowName, const char *columnName) const
| Returns value for row rowName and column columnName.
double | getQuadraticElement (int i, int j) const
| Returns quadratic value for columns i and j.
const char * | getElementAsString (int i, int j) const
| Returns value for row i and column j as string.
double * | pointer (int i, int j) const
| Returns pointer to element for row i column j.
int | position (int i, int j) const
| Returns position in elements for row i column j.
CoinModelLink | firstInRow (int whichRow) const
| Returns first element in given row - index is -1 if none.
CoinModelLink | lastInRow (int whichRow) const
| Returns last element in given row - index is -1 if none.
CoinModelLink | firstInColumn (int whichColumn) const
| Returns first element in given column - index is -1 if none.
CoinModelLink | lastInColumn (int whichColumn) const
| Returns last element in given column - index is -1 if none.
CoinModelLink | next (CoinModelLink &current) const
| Returns next element in current row or column - index is -1 if none.
CoinModelLink | previous (CoinModelLink &current) const
| Returns previous element in current row or column - index is -1 if none.
CoinModelLink | firstInQuadraticColumn (int whichColumn) const
| Returns first element in given quadratic column - index is -1 if none.
CoinModelLink | lastInQuadraticColumn (int whichColumn) const
| Returns last element in given quadratic column - index is -1 if none.
double | getRowLower (int whichRow) const
| Gets rowLower (if row does not exist then -COIN_DBL_MAX).
double | getRowUpper (int whichRow) const
| Gets rowUpper (if row does not exist then +COIN_DBL_MAX).
const char * | getRowName (int whichRow) const
| Gets name (if row does not exist then "").
double | rowLower (int whichRow) const
| Return number of rows or maximum found so far.
double | rowUpper (int whichRow) const
| Gets rowUpper (if row does not exist then COIN_DBL_MAX).
const char * | rowName (int whichRow) const
| Gets name (if row does not exist then "").
double | getColumnLower (int whichColumn) const
| Gets columnLower (if column does not exist then 0.0).
double | getColumnUpper (int whichColumn) const
| Gets columnUpper (if column does not exist then COIN_DBL_MAX).
double | getColumnObjective (int whichColumn) const
| Gets columnObjective (if column does not exist then 0.0).
const char * | getColumnName (int whichColumn) const
| Gets name (if column does not exist then "").
bool | getColumnIsInteger (int whichColumn) const
| Gets if integer (if column does not exist then false).
double | columnLower (int whichColumn) const
| Gets columnLower (if column does not exist then 0.0).
double | columnUpper (int whichColumn) const
| Gets columnUpper (if column does not exist then COIN_DBL_MAX).
double | columnObjective (int whichColumn) const
| Gets columnObjective (if column does not exist then 0.0).
double | objective (int whichColumn) const
| Gets columnObjective (if column does not exist then 0.0).
const char * | columnName (int whichColumn) const
| Gets name (if column does not exist then "").
bool | columnIsInteger (int whichColumn) const
| Gets if integer (if column does not exist then false).
bool | isInteger (int whichColumn) const
| Gets if integer (if column does not exist then false).
double | getColLower (int whichColumn) const
| Gets columnLower (if column does not exist then 0.0).
double | getColUpper (int whichColumn) const
| Gets columnUpper (if column does not exist then COIN_DBL_MAX).
double | getColObjective (int whichColumn) const
| Gets columnObjective (if column does not exist then 0.0).
const char * | getColName (int whichColumn) const
| Gets name (if column does not exist then "").
bool | getColIsInteger (int whichColumn) const
| Gets if integer (if column does not exist then false).
const char * | getRowLowerAsString (int whichRow) const
| Gets rowLower (if row does not exist then -COIN_DBL_MAX).
const char * | getRowUpperAsString (int whichRow) const
| Gets rowUpper (if row does not exist then +COIN_DBL_MAX).
const char * | rowLowerAsString (int whichRow) const
| Return number of rows or maximum found so far.
const char * | rowUpperAsString (int whichRow) const
| Gets rowUpper (if row does not exist then COIN_DBL_MAX).
const char * | getColumnLowerAsString (int whichColumn) const
| Gets columnLower (if column does not exist then 0.0).
const char * | getColumnUpperAsString (int whichColumn) const
| Gets columnUpper (if column does not exist then COIN_DBL_MAX).
const char * | getColumnObjectiveAsString (int whichColumn) const
| Gets columnObjective (if column does not exist then 0.0).
const char * | getColumnIsIntegerAsString (int whichColumn) const
| Gets if integer (if column does not exist then false).
const char * | columnLowerAsString (int whichColumn) const
| Gets columnLower (if column does not exist then 0.0).
const char * | columnUpperAsString (int whichColumn) const
| Gets columnUpper (if column does not exist then COIN_DBL_MAX).
const char * | columnObjectiveAsString (int whichColumn) const
| Gets columnObjective (if column does not exist then 0.0).
const char * | objectiveAsString (int whichColumn) const
| Gets columnObjective (if column does not exist then 0.0).
const char * | columnIsIntegerAsString (int whichColumn) const
| Gets if integer (if column does not exist then false).
const char * | isIntegerAsString (int whichColumn) const
| Gets if integer (if column does not exist then false).
int | row (const char *rowName) const
| Row index from row name (-1 if no names or no match).
int | column (const char *columnName) const
| Column index from column name (-1 if no names or no match).
double | objectiveOffset () const
| Returns the (constant) objective offset This is the RHS entry for the objective row.
void | setObjectiveOffset (double value)
| Set objective offset.
int | logLevel () const
| Get print level 0 - off, 1 - errors, 2 - more.
void | setLogLevel (int value)
| Set print level 0 - off, 1 - errors, 2 - more.
const char * | getProblemName () const
| Return the problem name.
void | setProblemName (const char *name)
| Set problem name.
int | type () const
| Returns type.
double | unsetValue () const
| returns unset value
int | createPackedMatrix (CoinPackedMatrix &matrix, const double *associated)
| Creates a packed matrix - return number of errors.
int | countPlusMinusOne (CoinBigIndex *startPositive, CoinBigIndex *startNegative, const double *associated)
| Fills in startPositive and startNegative with counts for +-1 matrix.
void | createPlusMinusOne (CoinBigIndex *startPositive, CoinBigIndex *startNegative, int *indices, const double *associated)
| Creates +-1 matrix given startPositive and startNegative counts for +-1 matrix.
int | createArrays (double *&rowLower, double *&rowUpper, double *&columnLower, double *&columnUpper, double *&objective, int *&integerType, double *&associated)
| Creates copies of various arrays - return number of errors.
bool | stringsExist () const
| Says if strings exist.
const CoinModelHash * | stringArray () const
| Return string array.
double * | associatedArray () const
| Returns associated array.
double * | rowLowerArray () const
| Return rowLower array.
double * | rowUpperArray () const
| Return rowUpper array.
double * | columnLowerArray () const
| Return columnLower array.
double * | columnUpperArray () const
| Return columnUpper array.
double * | objectiveArray () const
| Return objective array.
int * | integerTypeArray () const
| Return integerType array.
const CoinModelHash * | rowNames () const
| Return row names array.
const CoinModelHash * | columnNames () const
| Return column names array.
const int * | cutMarker () const
| Returns array of 0 or nonzero if can be a cut (or returns NULL).
double | optimizationDirection () const
| Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
void | setOptimizationDirection (double value)
| Set direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
void * | moreInfo () const
| Return pointer to more information.
void | setMoreInfo (void *info)
| Set pointer to more information.
Constructors, destructor
| CoinModel ()
| Default constructor.
| CoinModel (const char *fileName, int allowStrings=0)
| Read a problem in MPS or GAMS format from the given filename.
| CoinModel (int nonLinear, const char *fileName, const void *info)
| Read a problem from AMPL nl file NOTE - as I can't work out configure etc the source code is in Cbc_ampl.cpp!
| ~CoinModel ()
| Destructor.
Copy method
| CoinModel (const CoinModel &)
| The copy constructor.
CoinModel & | operator= (const CoinModel &)
| =
For debug
void | validateLinks () const
| Checks that links are consistent.
## Private Member Functions
void | resize (int maximumRows, int maximumColumns, int maximumElements)
| Resize.
void | fillRows (int which, bool forceCreation, bool fromAddRow=false)
| Fill in default row information.
void | fillColumns (int which, bool forceCreation, bool fromAddColumn=false)
| Fill in default column information.
void | fillList (int which, CoinModelLinkedList &list, int type) const
| Fill in default linked list information (1= row, 2 = column) Marked as const as list is mutable.
void | createList (int type) const
| Create a linked list and synchronize free type 1 for row 2 for column Marked as const as list is mutable.
int | addString (const char *string)
| Adds one string, returns index.
double | getDoubleFromString (CoinYacc &info, const char *string)
| Gets a double from a string possibly containing named strings, returns unset if not found.
void | freeStringMemory (CoinYacc &info)
| Frees value memory.
void | gdb (int nonLinear, const char *fileName, const void *info)
| Read a problem from AMPL nl file so not constructor so gdb will work.
int | decodeBit (char *phrase, char *&nextPhrase, double &coefficient, bool ifFirst) const
| returns jColumn (-2 if linear term, -1 if unknown) and coefficient
## Private Attributes
Data members
int | numberRows_
| Current number of rows.
int | maximumRows_
| Maximum number of rows.
int | numberColumns_
| Current number of columns.
int | maximumColumns_
| Maximum number of columns.
int | numberElements_
| Current number of elements.
int | maximumElements_
| Maximum number of elements.
int | numberQuadraticElements_
| Current number of quadratic elements.
int | maximumQuadraticElements_
| Maximum number of quadratic elements.
double | optimizationDirection_
| Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
double | objectiveOffset_
| Objective offset to be passed on.
char * | problemName_
| Problem name.
double * | rowLower_
| Row lower.
double * | rowUpper_
| Row upper.
CoinModelHash | rowName_
| Row names.
int * | rowType_
| Row types.
double * | objective_
| Objective.
double * | columnLower_
| Column Lower.
double * | columnUpper_
| Column Upper.
CoinModelHash | columnName_
| Column names.
int * | integerType_
| Integer information.
CoinModelHash | string_
| Strings.
int * | columnType_
| Column types.
int * | start_
| If simple then start of each row/column.
CoinModelTriple * | elements_
| Actual elements.
CoinModelHash2 | hashElements_
| Hash for elements.
CoinModelLinkedList | rowList_
| Linked list for rows.
CoinModelLinkedList | columnList_
| Linked list for columns.
CoinModelTriple * | quadraticElements_
| Actual quadratic elements (always linked lists).
CoinModelHash2 | hashQuadraticElements_
| Hash for quadratic elements.
int * | sortIndices_
| Array for sorting indices.
double * | sortElements_
| Array for sorting elements.
int | sortSize_
| Size of sort arrays.
CoinModelLinkedList | quadraticRowList_
| Linked list for quadratic rows.
CoinModelLinkedList | quadraticColumnList_
| Linked list for quadratic columns.
int | sizeAssociated_
| Size of associated values.
double * | associated_
| Associated values.
int | numberSOS_
| Number of SOS - all these are done in one go e.g. from ampl.
int * | startSOS_
| SOS starts.
int * | memberSOS_
| SOS members.
int * | typeSOS_
| SOS type.
int * | prioritySOS_
| SOS priority.
double * | referenceSOS_
| SOS reference.
int * | priority_
| priorities (given for all columns (-1 if not integer)
int * | cut_
| Nonzero if row is cut - done in one go e.g. from ampl.
void * | moreInfo_
| Pointer to more information.
int | logLevel_
| Print level.
int | type_
| Type of build - -1 unset, 0 for row, 1 for column, 2 linked.
int | links_
| Links present (could be tested by sizes of objects) 0 - none, 1 - row links, 2 - column links, 3 - both.

## Detailed Description

This is a simple minded model which is stored in a format which makes it easier to construct and modify but not efficient for algorithms.

It has to be passed across to ClpModel or OsiSolverInterface by addRows, addCol(umn)s or loadProblem.

It may have up to four parts - 1) A matrix of doubles (or strings - see note A) 2) Column information including integer information and names 3) Row information including names 4) Quadratic objective (not implemented - but see A)

This class is meant to make it more efficient to build a model. It is at its most efficient when all additions are done as addRow or as addCol but not mixed. If only 1 and 2 exist then solver.addColumns may be used to pass to solver, if only 1 and 3 exist then solver.addRows may be used. Otherwise solver.loadProblem must be used.

If addRows and addColumns are mixed or if individual elements are set then the speed will drop to some extent and more memory will be used.

It is also possible to iterate over existing elements and to access columns and rows by name. Again each of these use memory and cpu time. However memory is unlikely to be critical as most algorithms will use much more.

Notes: A) Although this could be used to pass nonlinear information around the only use at present is to have named values e.g. value1 which can then be set to a value after model is created. I have no idea whether that could be useful but I thought it might be fun. Quadratic terms are allowed in strings! A solver could try and use this if so - the convention is that 0.5* quadratic is stored

B) This class could be useful for modeling.

Definition at line 45 of file CoinModel.hpp.

## Constructor & Destructor Documentation

CoinModel::CoinModel | ( |  | ) |

Default constructor.

CoinModel::CoinModel | ( | const char * | fileName,
|  | int | allowStrings = `0` |
| ) |  |  |

Read a problem in MPS or GAMS format from the given filename.

CoinModel::CoinModel | ( | int | nonLinear,
|  | const char * | fileName,
|  | const void * | info |
| ) |  |  |

Read a problem from AMPL nl file NOTE - as I can't work out configure etc the source code is in Cbc_ampl.cpp!

CoinModel::~CoinModel | ( |  | ) |

Destructor.

CoinModel::CoinModel | ( | const CoinModel & |  | ) |

The copy constructor.

## Member Function Documentation

void CoinModel::addRow | ( | int | numberInRow,
|  | const int * | columns,
|  | const double * | elements,
|  | double | rowLower = `-COIN_DBL_MAX`,
|  | double | rowUpper = `COIN_DBL_MAX`,
|  | const char * | name = `NULL` |
| ) |  |  |

add a row - numberInRow may be zero

void CoinModel::addColumn | ( | int | numberInColumn,
|  | const int * | rows,
|  | const double * | elements,
|  | double | columnLower = `0.0`,
|  | double | columnUpper = `COIN_DBL_MAX`,
|  | double | objectiveValue = `0.0`,
|  | const char * | name = `NULL`,
|  | bool | isInteger = `false` |
| ) |  |  |

add a column - numberInColumn may be zero */

Referenced by addCol().

void CoinModel::addCol | ( | int | numberInColumn,
|  | const int * | rows,
|  | const double * | elements,
|  | double | columnLower = `0.0`,
|  | double | columnUpper = `COIN_DBL_MAX`,
|  | double | objectiveValue = `0.0`,
|  | const char * | name = `NULL`,
|  | bool | isInteger = `false` |
| ) |  |  | `[inline]`

add a column - numberInColumn may be zero */

Definition at line 61 of file CoinModel.hpp.

References addColumn(), columnLower(), columnUpper(), and isInteger().

void CoinModel::operator() | ( | int | i,
|  | int | j,
|  | double | value |
| ) |  |  | `[inline]`

Sets value for row i and column j.

Definition at line 69 of file CoinModel.hpp.

References setElement().

void CoinModel::setElement | ( | int | i,
|  | int | j,
|  | double | value |
| ) |  |  |

Sets value for row i and column j.

Referenced by operator()().

int CoinModel::getRow | ( | int | whichRow,
|  | int * | column,
|  | double * | element |
| ) |  |  |

Gets sorted row - user must provide enough space (easiest is allocate number of columns).

If column or element NULL then just returns number Returns number of elements

int CoinModel::getColumn | ( | int | whichColumn,
|  | int * | column,
|  | double * | element |
| ) |  |  |

Gets sorted column - user must provide enough space (easiest is allocate number of rows).

If row or element NULL then just returns number Returns number of elements

void CoinModel::setQuadraticElement | ( | int | i,
|  | int | j,
|  | double | value |
| ) |  |  |

Sets quadratic value for column i and j.

void CoinModel::operator() | ( | int | i,
|  | int | j,
|  | const char * | value |
| ) |  |  | `[inline]`

Sets value for row i and column j as string.

Definition at line 88 of file CoinModel.hpp.

References setElement().

void CoinModel::setElement | ( | int | i,
|  | int | j,
|  | const char * | value |
| ) |  |  |

Sets value for row i and column j as string.

int CoinModel::associateElement | ( | const char * | stringValue,
|  | double | value |
| ) |  |  |

Associates a string with a value. Returns string id (or -1 if does not exist).

void CoinModel::setRowLower | ( | int | whichRow,
|  | double | rowLower |
| ) |  |  |

Sets rowLower (if row does not exist then all rows up to this are defined with default values and no elements).

void CoinModel::setRowUpper | ( | int | whichRow,
|  | double | rowUpper |
| ) |  |  |

Sets rowUpper (if row does not exist then all rows up to this are defined with default values and no elements).

void CoinModel::setRowBounds | ( | int | whichRow,
|  | double | rowLower,
|  | double | rowUpper |
| ) |  |  |

Sets rowLower and rowUpper (if row does not exist then all rows up to this are defined with default values and no elements).

void CoinModel::setRowName | ( | int | whichRow,
|  | const char * | rowName |
| ) |  |  |

Sets name (if row does not exist then all rows up to this are defined with default values and no elements).

void CoinModel::setColumnLower | ( | int | whichColumn,
|  | double | columnLower |
| ) |  |  |

Sets columnLower (if column does not exist then all columns up to this are defined with default values and no elements).

Referenced by setColLower().

void CoinModel::setColumnUpper | ( | int | whichColumn,
|  | double | columnUpper |
| ) |  |  |

Sets columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).

Referenced by setColUpper().

void CoinModel::setColumnBounds | ( | int | whichColumn,
|  | double | columnLower,
|  | double | columnUpper |
| ) |  |  |

Sets columnLower and columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).

Referenced by setColBounds().

void CoinModel::setColumnObjective | ( | int | whichColumn,
|  | double | columnObjective |
| ) |  |  |

Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).

Referenced by setColObjective(), and setObjective().

void CoinModel::setColumnName | ( | int | whichColumn,
|  | const char * | columnName |
| ) |  |  |

Sets name (if column does not exist then all columns up to this are defined with default values and no elements).

Referenced by setColName().

void CoinModel::setColumnIsInteger | ( | int | whichColumn,
|  | bool | columnIsInteger |
| ) |  |  |

Sets integer state (if column does not exist then all columns up to this are defined with default values and no elements).

Referenced by setColIsInteger(), setContinuous(), setInteger(), and setIsInteger().

void CoinModel::setObjective | ( | int | whichColumn,
|  | double | columnObjective |
| ) |  |  | `[inline]`

Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 137 of file CoinModel.hpp.

References setColumnObjective().

void CoinModel::setIsInteger | ( | int | whichColumn,
|  | bool | columnIsInteger |
| ) |  |  | `[inline]`

Sets integer state (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 142 of file CoinModel.hpp.

References setColumnIsInteger().

void CoinModel::setInteger | ( | int | whichColumn | ) | `[inline]`

Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 147 of file CoinModel.hpp.

References setColumnIsInteger().

void CoinModel::setContinuous | ( | int | whichColumn | ) | `[inline]`

Sets continuous (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 152 of file CoinModel.hpp.

References setColumnIsInteger().

void CoinModel::setColLower | ( | int | whichColumn,
|  | double | columnLower |
| ) |  |  | `[inline]`

Sets columnLower (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 157 of file CoinModel.hpp.

References setColumnLower().

void CoinModel::setColUpper | ( | int | whichColumn,
|  | double | columnUpper |
| ) |  |  | `[inline]`

Sets columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 162 of file CoinModel.hpp.

References setColumnUpper().

void CoinModel::setColBounds | ( | int | whichColumn,
|  | double | columnLower,
|  | double | columnUpper |
| ) |  |  | `[inline]`

Sets columnLower and columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 167 of file CoinModel.hpp.

References setColumnBounds().

void CoinModel::setColObjective | ( | int | whichColumn,
|  | double | columnObjective |
| ) |  |  | `[inline]`

Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 172 of file CoinModel.hpp.

References setColumnObjective().

void CoinModel::setColName | ( | int | whichColumn,
|  | const char * | columnName |
| ) |  |  | `[inline]`

Sets name (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 177 of file CoinModel.hpp.

References setColumnName().

void CoinModel::setColIsInteger | ( | int | whichColumn,
|  | bool | columnIsInteger |
| ) |  |  | `[inline]`

Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 182 of file CoinModel.hpp.

References setColumnIsInteger().

void CoinModel::setRowLower | ( | int | whichRow,
|  | const char * | rowLower |
| ) |  |  |

Sets rowLower (if row does not exist then all rows up to this are defined with default values and no elements).

void CoinModel::setRowUpper | ( | int | whichRow,
|  | const char * | rowUpper |
| ) |  |  |

Sets rowUpper (if row does not exist then all rows up to this are defined with default values and no elements).

void CoinModel::setColumnLower | ( | int | whichColumn,
|  | const char * | columnLower |
| ) |  |  |

Sets columnLower (if column does not exist then all columns up to this are defined with default values and no elements).

void CoinModel::setColumnUpper | ( | int | whichColumn,
|  | const char * | columnUpper |
| ) |  |  |

Sets columnUpper (if column does not exist then all columns up to this are defined with default values and no elements).

void CoinModel::setColumnObjective | ( | int | whichColumn,
|  | const char * | columnObjective |
| ) |  |  |

Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).

void CoinModel::setColumnIsInteger | ( | int | whichColumn,
|  | const char * | columnIsInteger |
| ) |  |  |

Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).

void CoinModel::setObjective | ( | int | whichColumn,
|  | const char * | columnObjective |
| ) |  |  | `[inline]`

Sets columnObjective (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 211 of file CoinModel.hpp.

References setColumnObjective().

void CoinModel::setIsInteger | ( | int | whichColumn,
|  | const char * | columnIsInteger |
| ) |  |  | `[inline]`

Sets integer (if column does not exist then all columns up to this are defined with default values and no elements).

Definition at line 216 of file CoinModel.hpp.

References setColumnIsInteger().

void CoinModel::deleteRow | ( | int | whichRow | ) |

Deletes all entries in row and bounds.

Will be ignored by writeMps etc and will be packed down if asked for.

void CoinModel::deleteColumn | ( | int | whichColumn | ) |

Deletes all entries in column and bounds and objective.

Will be ignored by writeMps etc and will be packed down if asked for.

Referenced by deleteCol().

void CoinModel::deleteCol | ( | int | whichColumn | ) | `[inline]`

Deletes all entries in column and bounds.

If last column the number of columns will be decremented and true returned.

Definition at line 226 of file CoinModel.hpp.

References deleteColumn().

int CoinModel::deleteElement | ( | int | row,
|  | int | column |
| ) |  |  |

Takes element out of matrix - returning position (<0 if not there);.

void CoinModel::deleteThisElement | ( | int | row,
|  | int | column,
|  | int | position |
| ) |  |  |

Takes element out of matrix when position known.

int CoinModel::packRows | ( |  | ) |

Packs down all rows i.e.

removes empty rows permanently. Empty rows have no elements and feasible bounds. returns number of rows deleted.

int CoinModel::packColumns | ( |  | ) |

Packs down all columns i.e.

removes empty columns permanently. Empty columns have no elements and no objective. returns number of columns deleted.

Referenced by packCols().

int CoinModel::packCols | ( |  | ) | `[inline]`

Packs down all columns i.e.

removes empty columns permanently. Empty columns have no elements and no objective. returns number of columns deleted.

Definition at line 240 of file CoinModel.hpp.

References packColumns().

int CoinModel::pack | ( |  | ) |

Packs down all rows and columns.

i.e. removes empty rows and columns permanently. Empty rows have no elements and feasible bounds. Empty columns have no elements and no objective. returns number of rows+columns deleted.

int CoinModel::writeMps | ( | const char * | filename,
|  | int | compression = `0`,
|  | int | formatType = `0`,
|  | int | numberAcross = `2`,
|  | bool | keepStrings = `false` |
| ) |  |  |

Write the problem in MPS format to a file with the given filename.

Parameters:

  | compression | can be set to three values to indicate what kind of file should be written 0: plain text (default) 1: gzip compressed (.gz is appended to `filename`) 2: bzip2 compressed (.bz2 is appended to `filename`) (TODO) If the library was not compiled with the requested compression then writeMps falls back to writing a plain text file.
  | formatType | specifies the precision to used for values in the MPS file 0: normal precision (default) 1: extra accuracy 2: IEEE hex
  | numberAcross | specifies whether 1 or 2 (default) values should be specified on every data line in the MPS file.

not const as may change model e.g. fill in default bounds

int CoinModel::differentModel | ( | CoinModel & | other,
|  | bool | ignoreNames |
| ) |  |  |

Check two models against each other.

Return nonzero if different. Ignore names if that set. May modify both models by cleaning up

int CoinModel::numberRows | ( |  | ) | const`[inline]`

Return number of rows or maximum found so far.

Definition at line 287 of file CoinModel.hpp.

References numberRows_.

int CoinModel::numberColumns | ( |  | ) | const`[inline]`

Return number of columns or maximum found so far.

Definition at line 290 of file CoinModel.hpp.

References numberColumns_.

CoinBigIndex CoinModel::numberElements | ( |  | ) | const`[inline]`

Return number of elements.

Definition at line 293 of file CoinModel.hpp.

References numberElements_.

const CoinModelTriple* CoinModel::elements | ( |  | ) | const`[inline]`

Return elements as triples.

Definition at line 296 of file CoinModel.hpp.

References elements_.

double CoinModel::operator() | ( | int | i,
|  | int | j |
| ) |  |  | const`[inline]`

Returns value for row i and column j.

Definition at line 299 of file CoinModel.hpp.

References getElement().

double CoinModel::getElement | ( | int | i,
|  | int | j |
| ) |  |  | const

Returns value for row i and column j.

Referenced by operator()().

double CoinModel::operator() | ( | const char * | rowName,
|  | const char * | columnName |
| ) |  |  | const`[inline]`

Returns value for row rowName and column columnName.

Definition at line 304 of file CoinModel.hpp.

References getElement().

double CoinModel::getElement | ( | const char * | rowName,
|  | const char * | columnName |
| ) |  |  | const

Returns value for row rowName and column columnName.

double CoinModel::getQuadraticElement | ( | int | i,
|  | int | j |
| ) |  |  | const

Returns quadratic value for columns i and j.

const char* CoinModel::getElementAsString | ( | int | i,
|  | int | j |
| ) |  |  | const

Returns value for row i and column j as string.

Returns NULL if does not exist. Returns "Numeric" if not a string

double* CoinModel::pointer | ( | int | i,
|  | int | j |
| ) |  |  | const

Returns pointer to element for row i column j.

Only valid until next modification. NULL if element does not exist

int CoinModel::position | ( | int | i,
|  | int | j |
| ) |  |  | const

Returns position in elements for row i column j.

Only valid until next modification. -1 if element does not exist

CoinModelLink CoinModel::firstInRow | ( | int | whichRow | ) | const

Returns first element in given row - index is -1 if none.

Index is given by .index and value by .value

CoinModelLink CoinModel::lastInRow | ( | int | whichRow | ) | const

Returns last element in given row - index is -1 if none.

Index is given by .index and value by .value

CoinModelLink CoinModel::firstInColumn | ( | int | whichColumn | ) | const

Returns first element in given column - index is -1 if none.

Index is given by .index and value by .value

CoinModelLink CoinModel::lastInColumn | ( | int | whichColumn | ) | const

Returns last element in given column - index is -1 if none.

Index is given by .index and value by .value

CoinModelLink CoinModel::next | ( | CoinModelLink & | current | ) | const

Returns next element in current row or column - index is -1 if none.

Index is given by .index and value by .value. User could also tell because input.next would be NULL

CoinModelLink CoinModel::previous | ( | CoinModelLink & | current | ) | const

Returns previous element in current row or column - index is -1 if none.

Index is given by .index and value by .value. User could also tell because input.previous would be NULL May not be correct if matrix updated.

CoinModelLink CoinModel::firstInQuadraticColumn | ( | int | whichColumn | ) | const

Returns first element in given quadratic column - index is -1 if none.

Index is given by .index and value by .value May not be correct if matrix updated.

CoinModelLink CoinModel::lastInQuadraticColumn | ( | int | whichColumn | ) | const

Returns last element in given quadratic column - index is -1 if none.

Index is given by .index and value by .value

double CoinModel::getRowLower | ( | int | whichRow | ) | const

Gets rowLower (if row does not exist then -COIN_DBL_MAX).

Referenced by rowLower().

double CoinModel::getRowUpper | ( | int | whichRow | ) | const

Gets rowUpper (if row does not exist then +COIN_DBL_MAX).

Referenced by rowUpper().

const char* CoinModel::getRowName | ( | int | whichRow | ) | const

Gets name (if row does not exist then "").

Referenced by rowName().

double CoinModel::rowLower | ( | int | whichRow | ) | const`[inline]`

Return number of rows or maximum found so far.

Definition at line 370 of file CoinModel.hpp.

References getRowLower().

double CoinModel::rowUpper | ( | int | whichRow | ) | const`[inline]`

Gets rowUpper (if row does not exist then COIN_DBL_MAX).

Definition at line 374 of file CoinModel.hpp.

References getRowUpper().

const char* CoinModel::rowName | ( | int | whichRow | ) | const`[inline]`

Gets name (if row does not exist then "").

Definition at line 378 of file CoinModel.hpp.

References getRowName().

double CoinModel::getColumnLower | ( | int | whichColumn | ) | const

Gets columnLower (if column does not exist then 0.0).

Referenced by columnLower(), and getColLower().

double CoinModel::getColumnUpper | ( | int | whichColumn | ) | const

Gets columnUpper (if column does not exist then COIN_DBL_MAX).

Referenced by columnUpper(), and getColUpper().

double CoinModel::getColumnObjective | ( | int | whichColumn | ) | const

Gets columnObjective (if column does not exist then 0.0).

Referenced by columnObjective(), getColObjective(), and objective().

const char* CoinModel::getColumnName | ( | int | whichColumn | ) | const

Gets name (if column does not exist then "").

Referenced by columnName(), and getColName().

bool CoinModel::getColumnIsInteger | ( | int | whichColumn | ) | const

Gets if integer (if column does not exist then false).

Referenced by columnIsInteger(), getColIsInteger(), and isInteger().

double CoinModel::columnLower | ( | int | whichColumn | ) | const`[inline]`

Gets columnLower (if column does not exist then 0.0).

Definition at line 397 of file CoinModel.hpp.

References getColumnLower().

Referenced by addCol().

double CoinModel::columnUpper | ( | int | whichColumn | ) | const`[inline]`

Gets columnUpper (if column does not exist then COIN_DBL_MAX).

Definition at line 401 of file CoinModel.hpp.

References getColumnUpper().

Referenced by addCol().

double CoinModel::columnObjective | ( | int | whichColumn | ) | const`[inline]`

Gets columnObjective (if column does not exist then 0.0).

Definition at line 405 of file CoinModel.hpp.

References getColumnObjective().

double CoinModel::objective | ( | int | whichColumn | ) | const`[inline]`

Gets columnObjective (if column does not exist then 0.0).

Definition at line 409 of file CoinModel.hpp.

References getColumnObjective().

const char* CoinModel::columnName | ( | int | whichColumn | ) | const`[inline]`

Gets name (if column does not exist then "").

Definition at line 413 of file CoinModel.hpp.

References getColumnName().

bool CoinModel::columnIsInteger | ( | int | whichColumn | ) | const`[inline]`

Gets if integer (if column does not exist then false).

Definition at line 417 of file CoinModel.hpp.

References getColumnIsInteger().

bool CoinModel::isInteger | ( | int | whichColumn | ) | const`[inline]`

Gets if integer (if column does not exist then false).

Definition at line 421 of file CoinModel.hpp.

References getColumnIsInteger().

Referenced by addCol().

double CoinModel::getColLower | ( | int | whichColumn | ) | const`[inline]`

Gets columnLower (if column does not exist then 0.0).

Definition at line 425 of file CoinModel.hpp.

References getColumnLower().

double CoinModel::getColUpper | ( | int | whichColumn | ) | const`[inline]`

Gets columnUpper (if column does not exist then COIN_DBL_MAX).

Definition at line 429 of file CoinModel.hpp.

References getColumnUpper().

double CoinModel::getColObjective | ( | int | whichColumn | ) | const`[inline]`

Gets columnObjective (if column does not exist then 0.0).

Definition at line 433 of file CoinModel.hpp.

References getColumnObjective().

const char* CoinModel::getColName | ( | int | whichColumn | ) | const`[inline]`

Gets name (if column does not exist then "").

Definition at line 437 of file CoinModel.hpp.

References getColumnName().

bool CoinModel::getColIsInteger | ( | int | whichColumn | ) | const`[inline]`

Gets if integer (if column does not exist then false).

Definition at line 441 of file CoinModel.hpp.

References getColumnIsInteger().

const char* CoinModel::getRowLowerAsString | ( | int | whichRow | ) | const

Gets rowLower (if row does not exist then -COIN_DBL_MAX).

Referenced by rowLowerAsString().

const char* CoinModel::getRowUpperAsString | ( | int | whichRow | ) | const

Gets rowUpper (if row does not exist then +COIN_DBL_MAX).

Referenced by rowUpperAsString().

const char* CoinModel::rowLowerAsString | ( | int | whichRow | ) | const`[inline]`

Return number of rows or maximum found so far.

Definition at line 449 of file CoinModel.hpp.

References getRowLowerAsString().

const char* CoinModel::rowUpperAsString | ( | int | whichRow | ) | const`[inline]`

Gets rowUpper (if row does not exist then COIN_DBL_MAX).

Definition at line 453 of file CoinModel.hpp.

References getRowUpperAsString().

const char* CoinModel::getColumnLowerAsString | ( | int | whichColumn | ) | const

Gets columnLower (if column does not exist then 0.0).

Referenced by columnLowerAsString().

const char* CoinModel::getColumnUpperAsString | ( | int | whichColumn | ) | const

Gets columnUpper (if column does not exist then COIN_DBL_MAX).

Referenced by columnUpperAsString().

const char* CoinModel::getColumnObjectiveAsString | ( | int | whichColumn | ) | const

Gets columnObjective (if column does not exist then 0.0).

Referenced by columnObjectiveAsString(), and objectiveAsString().

const char* CoinModel::getColumnIsIntegerAsString | ( | int | whichColumn | ) | const

Gets if integer (if column does not exist then false).

Referenced by columnIsIntegerAsString(), and isIntegerAsString().

const char* CoinModel::columnLowerAsString | ( | int | whichColumn | ) | const`[inline]`

Gets columnLower (if column does not exist then 0.0).

Definition at line 469 of file CoinModel.hpp.

References getColumnLowerAsString().

const char* CoinModel::columnUpperAsString | ( | int | whichColumn | ) | const`[inline]`

Gets columnUpper (if column does not exist then COIN_DBL_MAX).

Definition at line 473 of file CoinModel.hpp.

References getColumnUpperAsString().

const char* CoinModel::columnObjectiveAsString | ( | int | whichColumn | ) | const`[inline]`

Gets columnObjective (if column does not exist then 0.0).

Definition at line 477 of file CoinModel.hpp.

References getColumnObjectiveAsString().

const char* CoinModel::objectiveAsString | ( | int | whichColumn | ) | const`[inline]`

Gets columnObjective (if column does not exist then 0.0).

Definition at line 481 of file CoinModel.hpp.

References getColumnObjectiveAsString().

const char* CoinModel::columnIsIntegerAsString | ( | int | whichColumn | ) | const`[inline]`

Gets if integer (if column does not exist then false).

Definition at line 485 of file CoinModel.hpp.

References getColumnIsIntegerAsString().

const char* CoinModel::isIntegerAsString | ( | int | whichColumn | ) | const`[inline]`

Gets if integer (if column does not exist then false).

Definition at line 489 of file CoinModel.hpp.

References getColumnIsIntegerAsString().

int CoinModel::row | ( | const char * | rowName | ) | const

Row index from row name (-1 if no names or no match).

int CoinModel::column | ( | const char * | columnName | ) | const

Column index from column name (-1 if no names or no match).

double CoinModel::objectiveOffset | ( |  | ) | const`[inline]`

Returns the (constant) objective offset This is the RHS entry for the objective row.

Definition at line 498 of file CoinModel.hpp.

References objectiveOffset_.

void CoinModel::setObjectiveOffset | ( | double | value | ) | `[inline]`

Set objective offset.

Definition at line 501 of file CoinModel.hpp.

References objectiveOffset_.

int CoinModel::logLevel | ( |  | ) | const`[inline]`

Get print level 0 - off, 1 - errors, 2 - more.

Definition at line 504 of file CoinModel.hpp.

References logLevel_.

void CoinModel::setLogLevel | ( | int | value | ) |

Set print level 0 - off, 1 - errors, 2 - more.

const char* CoinModel::getProblemName | ( |  | ) | const`[inline]`

Return the problem name.

Definition at line 509 of file CoinModel.hpp.

References problemName_.

void CoinModel::setProblemName | ( | const char * | name | ) |

Set problem name.

int CoinModel::type | ( |  | ) | const`[inline]`

Returns type.

Definition at line 514 of file CoinModel.hpp.

References type_.

double CoinModel::unsetValue | ( |  | ) | const`[inline]`

returns unset value

Definition at line 517 of file CoinModel.hpp.

int CoinModel::createPackedMatrix | ( | CoinPackedMatrix & | matrix,
|  | const double * | associated |
| ) |  |  |

Creates a packed matrix - return number of errors.

int CoinModel::countPlusMinusOne | ( | CoinBigIndex * | startPositive,
|  | CoinBigIndex * | startNegative,
|  | const double * | associated |
| ) |  |  |

Fills in startPositive and startNegative with counts for +-1 matrix.

If not +-1 then startPositive[0]==-1 otherwise counts and startPositive[numberColumns]== size

- return number of errors

void CoinModel::createPlusMinusOne | ( | CoinBigIndex * | startPositive,
|  | CoinBigIndex * | startNegative,
|  | int * | indices,
|  | const double * | associated |
| ) |  |  |

Creates +-1 matrix given startPositive and startNegative counts for +-1 matrix.

int CoinModel::createArrays | ( | double *& | rowLower,
|  | double *& | rowUpper,
|  | double *& | columnLower,
|  | double *& | columnUpper,
|  | double *& | objective,
|  | int *& | integerType,
|  | double *& | associated |
| ) |  |  |

Creates copies of various arrays - return number of errors.

bool CoinModel::stringsExist | ( |  | ) | const`[inline]`

Says if strings exist.

Definition at line 539 of file CoinModel.hpp.

References CoinModelHash::numberItems(), and string_.

const CoinModelHash* CoinModel::stringArray | ( |  | ) | const`[inline]`

Return string array.

Definition at line 542 of file CoinModel.hpp.

References string_.

double* CoinModel::associatedArray | ( |  | ) | const`[inline]`

Returns associated array.

Definition at line 545 of file CoinModel.hpp.

References associated_.

double* CoinModel::rowLowerArray | ( |  | ) | const`[inline]`

Return rowLower array.

Definition at line 548 of file CoinModel.hpp.

References rowLower_.

double* CoinModel::rowUpperArray | ( |  | ) | const`[inline]`

Return rowUpper array.

Definition at line 551 of file CoinModel.hpp.

References rowUpper_.

double* CoinModel::columnLowerArray | ( |  | ) | const`[inline]`

Return columnLower array.

Definition at line 554 of file CoinModel.hpp.

References columnLower_.

double* CoinModel::columnUpperArray | ( |  | ) | const`[inline]`

Return columnUpper array.

Definition at line 557 of file CoinModel.hpp.

References columnUpper_.

double* CoinModel::objectiveArray | ( |  | ) | const`[inline]`

Return objective array.

Definition at line 560 of file CoinModel.hpp.

References objective_.

int* CoinModel::integerTypeArray | ( |  | ) | const`[inline]`

Return integerType array.

Definition at line 563 of file CoinModel.hpp.

References integerType_.

const CoinModelHash* CoinModel::rowNames | ( |  | ) | const`[inline]`

Return row names array.

Definition at line 566 of file CoinModel.hpp.

References rowName_.

const CoinModelHash* CoinModel::columnNames | ( |  | ) | const`[inline]`

Return column names array.

Definition at line 569 of file CoinModel.hpp.

References columnName_.

const int* CoinModel::cutMarker | ( |  | ) | const`[inline]`

Returns array of 0 or nonzero if can be a cut (or returns NULL).

Definition at line 572 of file CoinModel.hpp.

References cut_.

double CoinModel::optimizationDirection | ( |  | ) | const`[inline]`

Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.

Definition at line 575 of file CoinModel.hpp.

References optimizationDirection_.

void CoinModel::setOptimizationDirection | ( | double | value | ) | `[inline]`

Set direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.

Definition at line 579 of file CoinModel.hpp.

References optimizationDirection_.

void* CoinModel::moreInfo | ( |  | ) | const`[inline]`

Return pointer to more information.

Definition at line 582 of file CoinModel.hpp.

References moreInfo_.

void CoinModel::setMoreInfo | ( | void * | info | ) | `[inline]`

Set pointer to more information.

Definition at line 585 of file CoinModel.hpp.

References moreInfo_.

CoinModel& CoinModel::operator= | ( | const CoinModel & |  | ) |

=

void CoinModel::validateLinks | ( |  | ) | const

Checks that links are consistent.

void CoinModel::resize | ( | int | maximumRows,
|  | int | maximumColumns,
|  | int | maximumElements |
| ) |  |  | `[private]`

Resize.

void CoinModel::fillRows | ( | int | which,
|  | bool | forceCreation,
|  | bool | fromAddRow = `false` |
| ) |  |  | `[private]`

Fill in default row information.

void CoinModel::fillColumns | ( | int | which,
|  | bool | forceCreation,
|  | bool | fromAddColumn = `false` |
| ) |  |  | `[private]`

Fill in default column information.

void CoinModel::fillList | ( | int | which,
|  | CoinModelLinkedList & | list,
|  | int | type |
| ) |  |  | const`[private]`

Fill in default linked list information (1= row, 2 = column) Marked as const as list is mutable.

void CoinModel::createList | ( | int | type | ) | const`[private]`

Create a linked list and synchronize free type 1 for row 2 for column Marked as const as list is mutable.

int CoinModel::addString | ( | const char * | string | ) | `[private]`

Adds one string, returns index.

double CoinModel::getDoubleFromString | ( | CoinYacc & | info,
|  | const char * | string |
| ) |  |  | `[private]`

Gets a double from a string possibly containing named strings, returns unset if not found.

void CoinModel::freeStringMemory | ( | CoinYacc & | info | ) | `[private]`

Frees value memory.

int CoinModel::computeAssociated | ( | double * | associated | ) |

Fills in all associated - returning number of errors.

CoinPackedMatrix* CoinModel::quadraticRow | ( | int | rowNumber,
|  | double * | linear,
|  | int & | numberBad |
| ) |  |  | const

Gets correct form for a quadratic row - user to delete If row is not quadratic then returns which other variables are involved with tiny (1.0e-100) elements and count of total number of variables which could not be put in quadratic form.

void CoinModel::replaceQuadraticRow | ( | int | rowNumber,
|  | const double * | linear,
|  | const CoinPackedMatrix * | quadraticPart |
| ) |  |  |

Replaces a quadratic row.

CoinModel* CoinModel::reorder | ( | const char * | mark | ) | const

If possible return a model where if all variables marked nonzero are fixed the problem will be linear.

At present may only work if quadratic. Returns NULL if not possible

int CoinModel::expandKnapsack | ( | int | knapsackRow,
|  | int & | numberOutput,
|  | double * | buildObj,
|  | CoinBigIndex * | buildStart,
|  | int * | buildRow,
|  | double * | buildElement,
|  | int | reConstruct = `-1` |
| ) |  |  | const

Expands out all possible combinations for a knapsack If buildObj NULL then just computes space needed - returns number elements On entry numberOutput is maximum allowed, on exit it is number needed or -1 (as will be number elements) if maximum exceeded.

numberOutput will have at least space to return values which reconstruct input. Rows returned will be original rows but no entries will be returned for any rows all of whose entries are in knapsack. So up to user to allow for this. If reConstruct >=0 then returns number of entrie which make up item "reConstruct" in expanded knapsack. Values in buildRow and buildElement;

void CoinModel::setCutMarker | ( | int | size,
|  | const int * | marker |
| ) |  |  |

Sets cut marker array.

void CoinModel::setPriorities | ( | int | size,
|  | const int * | priorities |
| ) |  |  |

Sets priority array.

const int* CoinModel::priorities | ( |  | ) | const`[inline]`

priorities (given for all columns (-1 if not integer)

Definition at line 673 of file CoinModel.hpp.

References priority_.

void CoinModel::gdb | ( | int | nonLinear,
|  | const char * | fileName,
|  | const void * | info |
| ) |  |  | `[private]`

Read a problem from AMPL nl file so not constructor so gdb will work.

int CoinModel::decodeBit | ( | char * | phrase,
|  | char *& | nextPhrase,
|  | double & | coefficient,
|  | bool | ifFirst |
| ) |  |  | const`[private]`

returns jColumn (-2 if linear term, -1 if unknown) and coefficient

## Member Data Documentation

int CoinModel::numberRows_`[private]`

Current number of rows.

Definition at line 686 of file CoinModel.hpp.

Referenced by numberRows().

int CoinModel::maximumRows_`[private]`

Maximum number of rows.

Definition at line 688 of file CoinModel.hpp.

int CoinModel::numberColumns_`[private]`

Current number of columns.

Definition at line 690 of file CoinModel.hpp.

Referenced by numberColumns().

int CoinModel::maximumColumns_`[private]`

Maximum number of columns.

Definition at line 692 of file CoinModel.hpp.

int CoinModel::numberElements_`[private]`

Current number of elements.

Definition at line 694 of file CoinModel.hpp.

Referenced by numberElements().

int CoinModel::maximumElements_`[private]`

Maximum number of elements.

Definition at line 696 of file CoinModel.hpp.

int CoinModel::numberQuadraticElements_`[private]`

Current number of quadratic elements.

Definition at line 698 of file CoinModel.hpp.

int CoinModel::maximumQuadraticElements_`[private]`

Maximum number of quadratic elements.

Definition at line 700 of file CoinModel.hpp.

double CoinModel::optimizationDirection_`[private]`

Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.

Definition at line 702 of file CoinModel.hpp.

Referenced by optimizationDirection(), and setOptimizationDirection().

double CoinModel::objectiveOffset_`[private]`

Objective offset to be passed on.

Definition at line 704 of file CoinModel.hpp.

Referenced by objectiveOffset(), and setObjectiveOffset().

char* CoinModel::problemName_`[private]`

Problem name.

Definition at line 706 of file CoinModel.hpp.

Referenced by getProblemName().

double* CoinModel::rowLower_`[private]`

Row lower.

Definition at line 708 of file CoinModel.hpp.

Referenced by rowLowerArray().

double* CoinModel::rowUpper_`[private]`

Row upper.

Definition at line 710 of file CoinModel.hpp.

Referenced by rowUpperArray().

CoinModelHash CoinModel::rowName_`[private]`

Row names.

Definition at line 712 of file CoinModel.hpp.

Referenced by rowNames().

int* CoinModel::rowType_`[private]`

Row types.

Has information - at present bit 0 - rowLower is a string bit 1 - rowUpper is a string

Definition at line 718 of file CoinModel.hpp.

double* CoinModel::objective_`[private]`

Objective.

Definition at line 720 of file CoinModel.hpp.

Referenced by objectiveArray().

double* CoinModel::columnLower_`[private]`

Column Lower.

Definition at line 722 of file CoinModel.hpp.

Referenced by columnLowerArray().

double* CoinModel::columnUpper_`[private]`

Column Upper.

Definition at line 724 of file CoinModel.hpp.

Referenced by columnUpperArray().

CoinModelHash CoinModel::columnName_`[private]`

Column names.

Definition at line 726 of file CoinModel.hpp.

Referenced by columnNames().

int* CoinModel::integerType_`[private]`

Integer information.

Definition at line 728 of file CoinModel.hpp.

Referenced by integerTypeArray().

CoinModelHash CoinModel::string_`[private]`

Strings.

Definition at line 730 of file CoinModel.hpp.

Referenced by stringArray(), and stringsExist().

int* CoinModel::columnType_`[private]`

Column types.

Has information - at present bit 0 - columnLower is a string bit 1 - columnUpper is a string bit 2 - objective is a string bit 3 - integer setting is a string

Definition at line 738 of file CoinModel.hpp.

int* CoinModel::start_`[private]`

If simple then start of each row/column.

Definition at line 740 of file CoinModel.hpp.

CoinModelTriple* CoinModel::elements_`[private]`

Actual elements.

Definition at line 742 of file CoinModel.hpp.

Referenced by elements().

CoinModelHash2 CoinModel::hashElements_`[mutable, private]`

Hash for elements.

Definition at line 744 of file CoinModel.hpp.

CoinModelLinkedList CoinModel::rowList_`[mutable, private]`

Linked list for rows.

Definition at line 746 of file CoinModel.hpp.

CoinModelLinkedList CoinModel::columnList_`[mutable, private]`

Linked list for columns.

Definition at line 748 of file CoinModel.hpp.

CoinModelTriple* CoinModel::quadraticElements_`[private]`

Actual quadratic elements (always linked lists).

Definition at line 750 of file CoinModel.hpp.

CoinModelHash2 CoinModel::hashQuadraticElements_`[mutable, private]`

Hash for quadratic elements.

Definition at line 752 of file CoinModel.hpp.

int* CoinModel::sortIndices_`[private]`

Array for sorting indices.

Definition at line 754 of file CoinModel.hpp.

double* CoinModel::sortElements_`[private]`

Array for sorting elements.

Definition at line 756 of file CoinModel.hpp.

int CoinModel::sortSize_`[private]`

Size of sort arrays.

Definition at line 758 of file CoinModel.hpp.

CoinModelLinkedList CoinModel::quadraticRowList_`[mutable, private]`

Linked list for quadratic rows.

Definition at line 760 of file CoinModel.hpp.

CoinModelLinkedList CoinModel::quadraticColumnList_`[mutable, private]`

Linked list for quadratic columns.

Definition at line 762 of file CoinModel.hpp.

int CoinModel::sizeAssociated_`[private]`

Size of associated values.

Definition at line 764 of file CoinModel.hpp.

double* CoinModel::associated_`[private]`

Associated values.

Definition at line 766 of file CoinModel.hpp.

Referenced by associatedArray().

int CoinModel::numberSOS_`[private]`

Number of SOS - all these are done in one go e.g. from ampl.

Definition at line 768 of file CoinModel.hpp.

int* CoinModel::startSOS_`[private]`

SOS starts.

Definition at line 770 of file CoinModel.hpp.

int* CoinModel::memberSOS_`[private]`

SOS members.

Definition at line 772 of file CoinModel.hpp.

int* CoinModel::typeSOS_`[private]`

SOS type.

Definition at line 774 of file CoinModel.hpp.

int* CoinModel::prioritySOS_`[private]`

SOS priority.

Definition at line 776 of file CoinModel.hpp.

double* CoinModel::referenceSOS_`[private]`

SOS reference.

Definition at line 778 of file CoinModel.hpp.

int* CoinModel::priority_`[private]`

priorities (given for all columns (-1 if not integer)

Definition at line 780 of file CoinModel.hpp.

Referenced by priorities().

int* CoinModel::cut_`[private]`

Nonzero if row is cut - done in one go e.g. from ampl.

Definition at line 782 of file CoinModel.hpp.

Referenced by cutMarker().

void* CoinModel::moreInfo_`[private]`

Pointer to more information.

Definition at line 784 of file CoinModel.hpp.

Referenced by moreInfo(), and setMoreInfo().

int CoinModel::logLevel_`[private]`

Print level.

I could have gone for full message handling but this should normally be silent and lightweight. I can always change. 0 - no output 1 - on errors 2 - more detailed

Definition at line 792 of file CoinModel.hpp.

Referenced by logLevel().

int CoinModel::type_`[mutable, private]`

Type of build - -1 unset, 0 for row, 1 for column, 2 linked.

Definition at line 799 of file CoinModel.hpp.

Referenced by type().

int CoinModel::links_`[mutable, private]`

Links present (could be tested by sizes of objects) 0 - none, 1 - row links, 2 - column links, 3 - both.

Definition at line 806 of file CoinModel.hpp.

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

- /home/coin/SVN-release/Osi-0.98.1/CoinUtils/src/CoinModel.hpp