Loading...
Searching...
No Matches
ClpModel Class Reference

`#include <ClpModel.hpp>`

Inheritance diagram for ClpModel:
[legend]
Collaboration diagram for ClpModel:
[legend]

## Public Member Functions

Constructors and destructor
Note - copy methods copy ALL data so can chew up memory until other copy is freed
| ClpModel (bool emptyMessages=false)
| Default constructor.
| ClpModel (const ClpModel &rhs, int scalingMode=-1)
| Copy constructor.
ClpModel & | operator= (const ClpModel &rhs)
| Assignment operator. This copies the data.
| ClpModel (const ClpModel *wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns, bool dropNames=true, bool dropIntegers=true)
| Subproblem constructor.
| ~ClpModel ()
| Destructor.
gets and sets
int | numberRows () const
| Number of rows.
int | getNumRows () const
int | getNumCols () const
| Number of columns.
int | numberColumns () const
double | primalTolerance () const
| Primal tolerance to use.
void | setPrimalTolerance (double value)
double | dualTolerance () const
| Dual tolerance to use.
void | setDualTolerance (double value)
double | primalObjectiveLimit () const
| Primal objective limit.
void | setPrimalObjectiveLimit (double value)
double | dualObjectiveLimit () const
| Dual objective limit.
void | setDualObjectiveLimit (double value)
double | objectiveOffset () const
| Objective offset.
void | setObjectiveOffset (double value)
double | presolveTolerance () const
| Presolve tolerance to use.
const std::string & | problemName () const
int | numberIterations () const
| Number of iterations.
int | getIterationCount () const
void | setNumberIterations (int numberIterationsNew)
int | solveType () const
| Solve type - 1 simplex, 2 simplex interface, 3 Interior.
void | setSolveType (int type)
int | maximumIterations () const
| Maximum number of iterations.
void | setMaximumIterations (int value)
double | maximumSeconds () const
| Maximum time in seconds (from when set called).
void | setMaximumSeconds (double value)
void | setMaximumWallSeconds (double value)
bool | hitMaximumIterations () const
| Returns true if hit maximum iterations (or time).
int | status () const
| Status of problem: -1 - unknown e.g.
int | problemStatus () const
void | setProblemStatus (int problemStatusNew)
| Set problem status.
int | secondaryStatus () const

Secondary status of problem - may get extended 0 - none 1 - primal infeasible because dual limit reached OR (probably primal infeasible but can't prove it - main status was 4) 2 - scaled problem optimal - unscaled problem has primal infeasibilities 3 - scaled problem optimal - unscaled problem has dual infeasibilities 4 - scaled problem optimal - unscaled problem has primal and dual infeasibilities 5 - giving up in primal with flagged variables 6 - failed due to empty problem check 7 - postSolve says not optimal 8 - failed due to bad element check 9 - status was 3 and stopped on time 10 - status was 3 but stopped as primal feasible 11 - status was 1/2 from presolve found infeasible or unbounded 100 up - translation of enum from ClpEventHandler.

void | setSecondaryStatus (int newstatus)
bool | isAbandoned () const
| Are there a numerical difficulties?
bool | isProvenOptimal () const
| Is optimality proven?
bool | isProvenPrimalInfeasible () const
| Is primal infeasiblity proven?
bool | isProvenDualInfeasible () const
| Is dual infeasiblity proven?
bool | isPrimalObjectiveLimitReached () const
| Is the given primal objective limit reached?
bool | isDualObjectiveLimitReached () const
| Is the given dual objective limit reached?
bool | isIterationLimitReached () const
| Iteration limit reached?
double | optimizationDirection () const
| Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
double | getObjSense () const
void | setOptimizationDirection (double value)
double * | primalRowSolution () const
| Primal row solution.
const double * | getRowActivity () const
double * | primalColumnSolution () const
| Primal column solution.
const double * | getColSolution () const
void | setColSolution (const double *input)
double * | dualRowSolution () const
| Dual row solution.
const double * | getRowPrice () const
double * | dualColumnSolution () const
| Reduced costs.
const double * | getReducedCost () const
double * | rowLower () const
| Row lower.
const double * | getRowLower () const
double * | rowUpper () const
| Row upper.
const double * | getRowUpper () const
Changing bounds on variables and constraints
void | setObjectiveCoefficient (int elementIndex, double elementValue)
| Set an objective function coefficient.
void | setObjCoeff (int elementIndex, double elementValue)
| Set an objective function coefficient.
void | setColumnLower (int elementIndex, double elementValue)
| Set a single column lower bound Use -DBL_MAX for -infinity.
void | setColumnUpper (int elementIndex, double elementValue)
| Set a single column upper bound Use DBL_MAX for infinity.
void | setColumnBounds (int elementIndex, double lower, double upper)
| Set a single column lower and upper bound.
void | setColumnSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
| Set the bounds on a number of columns simultaneously The default implementation just invokes setColLower() and setColUpper() over and over again.
void | setColLower (int elementIndex, double elementValue)
| Set a single column lower bound Use -DBL_MAX for -infinity.
void | setColUpper (int elementIndex, double elementValue)
| Set a single column upper bound Use DBL_MAX for infinity.
void | setColBounds (int elementIndex, double lower, double upper)
| Set a single column lower and upper bound.
void | setColSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
| Set the bounds on a number of columns simultaneously .
void | setRowLower (int elementIndex, double elementValue)
| Set a single row lower bound Use -DBL_MAX for -infinity.
void | setRowUpper (int elementIndex, double elementValue)
| Set a single row upper bound Use DBL_MAX for infinity.
void | setRowBounds (int elementIndex, double lower, double upper)
| Set a single row lower and upper bound.
void | setRowSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
| Set the bounds on a number of rows simultaneously .
const double * | rowScale () const
| Scaling.
const double * | columnScale () const
const double * | inverseRowScale () const
const double * | inverseColumnScale () const
double * | mutableRowScale () const
double * | mutableColumnScale () const
double * | mutableInverseRowScale () const
double * | mutableInverseColumnScale () const
double * | swapRowScale (double *newScale)
void | setRowScale (double *scale)
void | setColumnScale (double *scale)
double | objectiveScale () const
| Scaling of objective.
void | setObjectiveScale (double value)
double | rhsScale () const
| Scaling of rhs and bounds.
void | setRhsScale (double value)
void | scaling (int mode=1)
| Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3 auto, 4 auto-but-as-initialSolve-in-bab.
void | unscale ()
| If we constructed a "really" scaled model then this reverses the operation.
int | scalingFlag () const
| Gets scalingFlag.
double * | objective () const
| Objective.
double * | objective (const double *solution, double &offset, bool refresh=true) const
const double * | getObjCoefficients () const
double * | rowObjective () const
| Row Objective.
const double * | getRowObjCoefficients () const
double * | columnLower () const
| Column Lower.
const double * | getColLower () const
double * | columnUpper () const
| Column Upper.
const double * | getColUpper () const
CoinPackedMatrix * | matrix () const
| Matrix (if not ClpPackedmatrix be careful about memory leak.
CoinBigIndex | getNumElements () const
| Number of elements in matrix.
double | getSmallElementValue () const
| Small element value - elements less than this set to zero, default is 1.0e-20.
void | setSmallElementValue (double value)
ClpMatrixBase * | rowCopy () const
| Row Matrix.
void | setNewRowCopy (ClpMatrixBase *newCopy)
| Set new row matrix.
ClpMatrixBase * | clpMatrix () const
| Clp Matrix.
ClpPackedMatrix * | clpScaledMatrix () const
| Scaled ClpPackedMatrix.
void | setClpScaledMatrix (ClpPackedMatrix *scaledMatrix)
| Sets pointer to scaled ClpPackedMatrix.
ClpPackedMatrix * | swapScaledMatrix (ClpPackedMatrix *scaledMatrix)
| Swaps pointer to scaled ClpPackedMatrix.
void | replaceMatrix (ClpMatrixBase *matrix, bool deleteCurrent=false)
| Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current.
void | replaceMatrix (CoinPackedMatrix *newmatrix, bool deleteCurrent=false)
| Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current.
double | objectiveValue () const
| Objective value.
void | setObjectiveValue (double value)
double | getObjValue () const
char * | integerInformation () const
| Integer information.
double * | infeasibilityRay (bool fullRay=false) const
| Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays.
double * | unboundedRay () const
double * | ray () const
| For advanced users - no need to delete - sign not changed.
bool | rayExists () const
| just test if infeasibility or unbounded Ray exists
void | deleteRay ()
| just delete ray if exists
const double * | internalRay () const
| Access internal ray storage. Users should call infeasibilityRay() or unboundedRay() instead.
bool | statusExists () const
| See if status (i.e. basis) array exists (partly for OsiClp).
unsigned char * | statusArray () const
| Return address of status (i.e. basis) array (char[numberRows+numberColumns]).
unsigned char * | statusCopy () const
| Return copy of status (i.e.
void | copyinStatus (const unsigned char *statusArray)
| Copy in status (basis) vector.
void | setUserPointer (void *pointer)
| User pointer for whatever reason.
void * | getUserPointer () const
void | setTrustedUserPointer (ClpTrustedData *pointer)
| Trusted user pointer.
ClpTrustedData * | getTrustedUserPointer () const
int | whatsChanged () const
| What has changed in model (only for masochistic users).
void | setWhatsChanged (int value)
int | numberThreads () const
| Number of threads (not really being used).
void | setNumberThreads (int value)
Message handling
void | passInMessageHandler (CoinMessageHandler *handler)
| Pass in Message handler (not deleted at end).
CoinMessageHandler * | pushMessageHandler (CoinMessageHandler *handler, bool &oldDefault)
| Pass in Message handler (not deleted at end) and return current.
void | popMessageHandler (CoinMessageHandler *oldHandler, bool oldDefault)
| back to previous message handler
void | newLanguage (CoinMessages::Language language)
| Set language.
void | setLanguage (CoinMessages::Language language)
void | setDefaultMessageHandler ()
| Overrides message handler with a default one.
CoinMessageHandler * | messageHandler () const
| Return handler.
CoinMessages | messages () const
| Return messages.
CoinMessages * | messagesPointer ()
| Return pointer to messages.
CoinMessages | coinMessages () const
| Return Coin messages.
CoinMessages * | coinMessagesPointer ()
| Return pointer to Coin messages.
void | setLogLevel (int value)
| Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - verbose above that 8,16,32 etc just for selective debug.
int | logLevel () const
bool | defaultHandler () const
| Return true if default handler.
void | passInEventHandler (const ClpEventHandler *eventHandler)
| Pass in Event handler (cloned and deleted at end).
ClpEventHandler * | eventHandler () const
| Event handler.
CoinThreadRandom * | randomNumberGenerator ()
| Thread specific random number generator.
CoinThreadRandom & | mutableRandomNumberGenerator ()
| Thread specific random number generator.
void | setRandomSeed (int value)
| Set seed for thread specific random number generator.
int | lengthNames () const
| length of names (0 means no names0
void | setLengthNames (int value)
| length of names (0 means no names0
const std::vector< std::string > * | rowNames () const
| Row names.
const std::string & | rowName (int iRow) const
std::string | getRowName (int iRow) const
| Return name or Rnnnnnnn.
const std::vector< std::string > * | columnNames () const
| Column names.
const std::string & | columnName (int iColumn) const
std::string | getColumnName (int iColumn) const
| Return name or Cnnnnnnn.
ClpObjective * | objectiveAsObject () const
| Objective methods.
void | setObjective (ClpObjective *objective)
void | setObjectivePointer (ClpObjective *newobjective)
int | emptyProblem (int *infeasNumber=NULL, double *infeasSum=NULL, bool printMessage=true)
| Solve a problem with no elements - return status and dual and primal infeasibilites.
Matrix times vector methods
They can be faster if scalar is +- 1 These are covers so user need not worry about scaling Also for simplex I am not using basic/non-basic split
void | times (double scalar, const double *x, double *y) const
| Return `y + A * x * scalar` in `y`.
void | transposeTimes (double scalar, const double *x, double *y) const
| Return `y + x * scalar * A` in `y`.
Parameter set/get methods

The set methods return true if the parameter was set to the given value, false otherwise.

There can be various reasons for failure: the given parameter is not applicable for the solver (e.g., refactorization frequency for the volume algorithm), the parameter is not yet implemented for the solver or simply the value of the parameter is out of the range the solver accepts. If a parameter setting call returns false check the details of your solver.

The get methods return true if the given parameter is applicable for the solver and is implemented. In this case the value of the parameter is returned in the second argument. Otherwise they return false.

once it has been decided where solver sits this may be redone

bool | setIntParam (ClpIntParam key, int value)
| Set an integer parameter.
bool | setDblParam (ClpDblParam key, double value)
| Set an double parameter.
bool | setStrParam (ClpStrParam key, const std::string &value)
| Set an string parameter.
bool | getIntParam (ClpIntParam key, int &value) const
bool | getDblParam (ClpDblParam key, double &value) const
bool | getStrParam (ClpStrParam key, std::string &value) const
void | generateCpp (FILE *fp)
| Create C++ lines to get to current state.
unsigned int | specialOptions () const
| For advanced options 1 - Don't keep changing infeasibility weight 2 - Keep nonLinearCost round solves 4 - Force outgoing variables to exact bound (primal) 8 - Safe to use dense initial factorization 16 -Just use basic variables for operation if column generation 32 -Create ray even in BAB 64 -Treat problem as feasible until last minute (i.e.
void | setSpecialOptions (unsigned int value)
bool | inCbcBranchAndBound () const

## Protected Member Functions

private or protected methods
void | gutsOfDelete (int type)
| Does most of deletion (0 = all, 1 = most).
void | gutsOfCopy (const ClpModel &rhs, int trueCopy=1)
| Does most of copying If trueCopy 0 then just points to arrays If -1 leaves as much as possible.
void | getRowBound (int iRow, double &lower, double &upper) const
| gets lower and upper bounds on rows
void | gutsOfLoadModel (int numberRows, int numberColumns, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL)
| puts in format I like - 4 array matrix - may make row copy
void | gutsOfScaling ()
| Does much of scaling.
double | rawObjectiveValue () const
| Objective value - always minimize.
bool | permanentArrays () const
| If we are using maximumRows_ and Columns_.
void | startPermanentArrays ()
| Start using maximumRows_ and Columns_.
void | stopPermanentArrays ()
| Stop using maximumRows_ and Columns_.
const char *const * | rowNamesAsChar () const
| Create row names as char **.
const char *const * | columnNamesAsChar () const
| Create column names as char **.
void | deleteNamesAsChar (const char *const *names, int number) const
| Delete char * version of names.
void | onStopped ()
| On stopped - sets secondary status.

## Protected Attributes

data
double | optimizationDirection_
| Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
double | dblParam_ [ClpLastDblParam]
| Array of double parameters.
double | objectiveValue_
| Objective value.
double | smallElement_
| Small element value.
double | objectiveScale_
| Scaling of objective.
double | rhsScale_
| Scaling of rhs and bounds.
int | numberRows_
| Number of rows.
int | numberColumns_
| Number of columns.
double * | rowActivity_
| Row activities.
double * | columnActivity_
| Column activities.
double * | dual_
| Duals.
double * | reducedCost_
| Reduced costs.
double * | rowLower_
| Row lower.
double * | rowUpper_
| Row upper.
ClpObjective * | objective_
| Objective.
double * | rowObjective_
| Row Objective (? sign) - may be NULL.
double * | columnLower_
| Column Lower.
double * | columnUpper_
| Column Upper.
ClpMatrixBase * | matrix_
| Packed matrix.
ClpMatrixBase * | rowCopy_
| Row copy if wanted.
ClpPackedMatrix * | scaledMatrix_
| Scaled packed matrix.
double * | ray_
| Infeasible/unbounded ray.
double * | rowScale_
| Row scale factors for matrix.
double * | columnScale_
| Column scale factors.
double * | inverseRowScale_
| Inverse row scale factors for matrix (end of rowScale_).
double * | inverseColumnScale_
| Inverse column scale factors for matrix (end of columnScale_).
int | scalingFlag_
| Scale flag, 0 none, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic, 5 geometric on rows.
unsigned char * | status_
| Status (i.e.
char * | integerType_
| Integer information.
void * | userPointer_
| User pointer for whatever reason.
ClpTrustedData * | trustedUserPointer_
| Trusted user pointer e.g. for heuristics.
int | intParam_ [ClpLastIntParam]
| Array of integer parameters.
int | numberIterations_
| Number of iterations.
int | solveType_
| Solve type - 1 simplex, 2 simplex interface, 3 Interior.
unsigned int | whatsChanged_
int | problemStatus_
| Status of problem.
int | secondaryStatus_
| Secondary status of problem.
int | lengthNames_
| length of names (0 means no names)
int | numberThreads_
| Number of threads (not very operational).
unsigned int | specialOptions_
| For advanced options See get and set for meaning.
CoinMessageHandler * | handler_
| Message handler.
bool | defaultHandler_
| Flag to say if default handler (so delete).
CoinThreadRandom | randomNumberGenerator_
| Thread specific random number generator.
ClpEventHandler * | eventHandler_
| Event handler.
std::vector< std::string > | rowNames_
| Row names.
std::vector< std::string > | columnNames_
| Column names.
CoinMessages | messages_
| Messages.
CoinMessages | coinMessages_
| Coin messages.
int | maximumColumns_
| Maximum number of columns in model.
int | maximumRows_
| Maximum number of rows in model.
int | maximumInternalColumns_
| Maximum number of columns (internal arrays) in model.
int | maximumInternalRows_
| Maximum number of rows (internal arrays) in model.
CoinPackedMatrix | baseMatrix_
| Base packed matrix.
CoinPackedMatrix | baseRowCopy_
| Base row copy.
double * | savedRowScale_
| Saved row scale factors for matrix.
double * | savedColumnScale_
| Saved column scale factors.
std::string | strParam_ [ClpLastStrParam]
| Array of string parameters.

## Load model - loads some stuff and initializes others

void | loadProblem (const ClpMatrixBase &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL)
| Loads a problem (the constraints on the rows are given by lower and upper bounds).
void | loadProblem (const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL)
void | loadProblem (const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL)
| Just like the other loadProblem() method except that the matrix is given in a standard column major ordered format (without gaps).
int | loadProblem (CoinModel &modelObject, bool tryPlusMinusOne=false)
| This loads a model from a coinModel object - returns number of errors.
void | loadProblem (const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const int *length, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL)
| This one is for after presolve to save memory.
void | loadQuadraticObjective (const int numberColumns, const CoinBigIndex *start, const int *column, const double *element)
| Load up quadratic objective.
void | loadQuadraticObjective (const CoinPackedMatrix &matrix)
void | deleteQuadraticObjective ()
| Get rid of quadratic objective.
void | setRowObjective (const double *rowObjective)
| This just loads up a row objective.
int | readMps (const char *filename, bool keepNames=false, bool ignoreErrors=false)
| Read an mps file from the given filename.
int | readGMPL (const char *filename, const char *dataName, bool keepNames=false)
| Read GMPL files from the given filenames.
void | copyInIntegerInformation (const char *information)
| Copy in integer informations.
void | deleteIntegerInformation ()
| Drop integer informations.
void | setContinuous (int index)
| Set the index-th variable to be a continuous variable.
void | setInteger (int index)
| Set the index-th variable to be an integer variable.
bool | isInteger (int index) const
| Return true if the index-th variable is an integer variable.
void | resize (int newNumberRows, int newNumberColumns)
| Resizes rim part of model.
void | deleteRows (int number, const int *which)
| Deletes rows.
void | addRow (int numberInRow, const int *columns, const double *elements, double rowLower=-COIN_DBL_MAX, double rowUpper=COIN_DBL_MAX)
| Add one row.
void | addRows (int number, const double *rowLower, const double *rowUpper, const CoinBigIndex *rowStarts, const int *columns, const double *elements)
| Add rows.
void | addRows (int number, const double *rowLower, const double *rowUpper, const CoinBigIndex *rowStarts, const int *rowLengths, const int *columns, const double *elements)
| Add rows.
void | addRows (int number, const double *rowLower, const double *rowUpper, const CoinPackedVectorBase *const *rows)
int | addRows (const CoinBuild &buildObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
| Add rows from a build object.
int | addRows (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
| Add rows from a model object.
void | deleteColumns (int number, const int *which)
| Deletes columns.
void | deleteRowsAndColumns (int numberRows, const int *whichRows, int numberColumns, const int *whichColumns)
| Deletes rows AND columns (keeps old sizes).
void | addColumn (int numberInColumn, const int *rows, const double *elements, double columnLower=0.0, double columnUpper=COIN_DBL_MAX, double objective=0.0)
| Add one column.
void | addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinBigIndex *columnStarts, const int *rows, const double *elements)
| Add columns.
void | addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinBigIndex *columnStarts, const int *columnLengths, const int *rows, const double *elements)
void | addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinPackedVectorBase *const *columns)
int | addColumns (const CoinBuild &buildObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
| Add columns from a build object If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists.
int | addColumns (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
| Add columns from a model object.
void | modifyCoefficient (int row, int column, double newElement, bool keepZero=false)
| Modify one element of a matrix.
void | chgRowLower (const double *rowLower)
| Change row lower bounds.
void | chgRowUpper (const double *rowUpper)
| Change row upper bounds.
void | chgColumnLower (const double *columnLower)
| Change column lower bounds.
void | chgColumnUpper (const double *columnUpper)
| Change column upper bounds.
void | chgObjCoefficients (const double *objIn)
| Change objective coefficients.
void | borrowModel (ClpModel &otherModel)
| Borrow model.
void | returnModel (ClpModel &otherModel)
| Return model - nulls all arrays so can be deleted safely also updates any scalars.
void | createEmptyMatrix ()
| Create empty ClpPackedMatrix.
CoinBigIndex | cleanMatrix (double threshold=1.0e-20)
| Really clean up matrix (if ClpPackedMatrix).
void | copy (const ClpMatrixBase *from, ClpMatrixBase *&to)
| Copy contents - resizing if necessary - otherwise re-use memory.
void | dropNames ()
| Drops names - makes lengthnames 0 and names empty.
void | copyNames (const std::vector< std::string > &rowNames, const std::vector< std::string > &columnNames)
| Copies in names.
void | copyRowNames (const std::vector< std::string > &rowNames, int first, int last)
| Copies in Row names - modifies names first .. last-1.
void | copyColumnNames (const std::vector< std::string > &columnNames, int first, int last)
| Copies in Column names - modifies names first .. last-1.
void | copyRowNames (const char *const *rowNames, int first, int last)
| Copies in Row names - modifies names first .. last-1.
void | copyColumnNames (const char *const *columnNames, int first, int last)
| Copies in Column names - modifies names first .. last-1.
void | setRowName (int rowIndex, std::string &name)
| Set name of row.
void | setColumnName (int colIndex, std::string &name)
| Set name of col.
int | findNetwork (char *rotate, double fractionNeeded=0.75)
| Find a network subset.
CoinModel * | createCoinModel () const
| This creates a coinModel object.
int | writeMps (const char *filename, int formatType=0, int numberAcross=2, double objSense=0.0) const
| Write the problem in MPS format to the specified file.
void | synchronizeMatrix ()
| Makes sure matrix dimensions are at least model dimensions.

## Detailed Description

Definition at line 38 of file ClpModel.hpp.

## Constructor & Destructor Documentation

## ClpModel() [1/3]

ClpModel::ClpModel | ( | bool | emptyMessages = false | ) |

Default constructor.

## ClpModel() [2/3]

ClpModel::ClpModel | ( | const ClpModel & | rhs,
|  | int | scalingMode = -1 )

Copy constructor.

May scale depending on mode -1 leave mode as is 0 -off, 1 equilibrium, 2 geometric, 3, auto, 4 auto-but-as-initialSolve-in-bab

## ClpModel() [3/3]

ClpModel::ClpModel | ( | const ClpModel * | wholeModel,
|  | int | numberRows,
|  | const int * | whichRows,
|  | int | numberColumns,
|  | const int * | whichColumns,
|  | bool | dropNames = true,
|  | bool | dropIntegers = true )

Subproblem constructor.

A subset of whole model is created from the row and column lists given. The new order is given by list order and duplicates are allowed. Name and integer information can be dropped

## ~ClpModel()

ClpModel::~ClpModel | ( |  | ) |

Destructor.

## Member Function Documentation

## operator=()

ClpModel & ClpModel::operator= | ( | const ClpModel & | rhs | ) |

Assignment operator. This copies the data.

## loadProblem() [1/5]

void ClpModel::loadProblem | ( | const ClpMatrixBase & | matrix,
|  | const double * | collb,
|  | const double * | colub,
|  | const double * | obj,
|  | const double * | rowlb,
|  | const double * | rowub,
|  | const double * | rowObjective = NULL )

Loads a problem (the constraints on the rows are given by lower and upper bounds).

If a pointer is 0 then the following values are the default:

- `colub`: all columns have upper bound infinity
- `collb`: all columns have lower bound 0
- `rowub`: all rows have upper bound infinity
- `rowlb`: all rows have lower bound -infinity
- `obj`: all variables have 0 objective coefficient

## loadProblem() [2/5]

void ClpModel::loadProblem | ( | const CoinPackedMatrix & | matrix,
|  | const double * | collb,
|  | const double * | colub,
|  | const double * | obj,
|  | const double * | rowlb,
|  | const double * | rowub,
|  | const double * | rowObjective = NULL )

## loadProblem() [3/5]

void ClpModel::loadProblem | ( | const int | numcols,
|  | const int | numrows,
|  | const CoinBigIndex * | start,
|  | const int * | index,
|  | const double * | value,
|  | const double * | collb,
|  | const double * | colub,
|  | const double * | obj,
|  | const double * | rowlb,
|  | const double * | rowub,
|  | const double * | rowObjective = NULL )

Just like the other loadProblem() method except that the matrix is given in a standard column major ordered format (without gaps).

## loadProblem() [4/5]

int ClpModel::loadProblem | ( | CoinModel & | modelObject,
|  | bool | tryPlusMinusOne = false )

This loads a model from a coinModel object - returns number of errors.

modelObject not const as may be changed as part of process If tryPlusMinusOne then will try adding as +-1 matrix

## loadProblem() [5/5]

void ClpModel::loadProblem | ( | const int | numcols,
|  | const int | numrows,
|  | const CoinBigIndex * | start,
|  | const int * | index,
|  | const double * | value,
|  | const int * | length,
|  | const double * | collb,
|  | const double * | colub,
|  | const double * | obj,
|  | const double * | rowlb,
|  | const double * | rowub,
|  | const double * | rowObjective = NULL )

This one is for after presolve to save memory.

## loadQuadraticObjective() [1/2]

void ClpModel::loadQuadraticObjective | ( | const int | numberColumns,
|  | const CoinBigIndex * | start,
|  | const int * | column,
|  | const double * | element )

Load up quadratic objective.

This is stored as a CoinPackedMatrix

## loadQuadraticObjective() [2/2]

void ClpModel::loadQuadraticObjective | ( | const CoinPackedMatrix & | matrix | ) |

## deleteQuadraticObjective()

void ClpModel::deleteQuadraticObjective | ( |  | ) |

Get rid of quadratic objective.

## setRowObjective()

void ClpModel::setRowObjective | ( | const double * | rowObjective | ) |

This just loads up a row objective.

## readMps()

int ClpModel::readMps | ( | const char * | filename,
|  | bool | keepNames = false,
|  | bool | ignoreErrors = false )

Read an mps file from the given filename.

## readGMPL()

int ClpModel::readGMPL | ( | const char * | filename,
|  | const char * | dataName,
|  | bool | keepNames = false )

Read GMPL files from the given filenames.

## copyInIntegerInformation()

void ClpModel::copyInIntegerInformation | ( | const char * | information | ) |

Copy in integer informations.

## deleteIntegerInformation()

void ClpModel::deleteIntegerInformation | ( |  | ) |

Drop integer informations.

## setContinuous()

void ClpModel::setContinuous | ( | int | index | ) |

Set the index-th variable to be a continuous variable.

## setInteger()

void ClpModel::setInteger | ( | int | index | ) |

Set the index-th variable to be an integer variable.

## isInteger()

bool ClpModel::isInteger | ( | int | index | ) | const

Return true if the index-th variable is an integer variable.

## resize()

void ClpModel::resize | ( | int | newNumberRows,
|  | int | newNumberColumns )

Resizes rim part of model.

## synchronizeMatrix()

void ClpModel::synchronizeMatrix | ( |  | ) |

private

Makes sure matrix dimensions are at least model dimensions.

## deleteRows()

void ClpModel::deleteRows | ( | int | number,
|  | const int * | which )

Deletes rows.

## addRow()

void ClpModel::addRow | ( | int | numberInRow,
|  | const int * | columns,
|  | const double * | elements,
|  | double | rowLower = -COIN_DBL_MAX,
|  | double | rowUpper = COIN_DBL_MAX )

Add one row.

## addRows() [1/5]

void ClpModel::addRows | ( | int | number,
|  | const double * | rowLower,
|  | const double * | rowUpper,
|  | const CoinBigIndex * | rowStarts,
|  | const int * | columns,
|  | const double * | elements )

Add rows.

## addRows() [2/5]

void ClpModel::addRows | ( | int | number,
|  | const double * | rowLower,
|  | const double * | rowUpper,
|  | const CoinBigIndex * | rowStarts,
|  | const int * | rowLengths,
|  | const int * | columns,
|  | const double * | elements )

Add rows.

## addRows() [3/5]

void ClpModel::addRows | ( | int | number,
|  | const double * | rowLower,
|  | const double * | rowUpper,
|  | const CoinPackedVectorBase *const * | rows )

## addRows() [4/5]

int ClpModel::addRows | ( | const CoinBuild & | buildObject,
|  | bool | tryPlusMinusOne = false,
|  | bool | checkDuplicates = true )

Add rows from a build object.

If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists. Returns number of errors e.g. duplicates

## addRows() [5/5]

int ClpModel::addRows | ( | CoinModel & | modelObject,
|  | bool | tryPlusMinusOne = false,
|  | bool | checkDuplicates = true )

Add rows from a model object.

returns -1 if object in bad state (i.e. has column information) otherwise number of errors.

modelObject non const as can be regularized as part of build If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists.

## deleteColumns()

void ClpModel::deleteColumns | ( | int | number,
|  | const int * | which )

Deletes columns.

## deleteRowsAndColumns()

void ClpModel::deleteRowsAndColumns | ( | int | numberRows,
|  | const int * | whichRows,
|  | int | numberColumns,
|  | const int * | whichColumns )

Deletes rows AND columns (keeps old sizes).

## addColumn()

void ClpModel::addColumn | ( | int | numberInColumn,
|  | const int * | rows,
|  | const double * | elements,
|  | double | columnLower = 0.0,
|  | double | columnUpper = COIN_DBL_MAX,
|  | double | objective = 0.0 )

Add one column.

## addColumns() [1/5]

void ClpModel::addColumns | ( | int | number,
|  | const double * | columnLower,
|  | const double * | columnUpper,
|  | const double * | objective,
|  | const CoinBigIndex * | columnStarts,
|  | const int * | rows,
|  | const double * | elements )

Add columns.

## addColumns() [2/5]

void ClpModel::addColumns | ( | int | number,
|  | const double * | columnLower,
|  | const double * | columnUpper,
|  | const double * | objective,
|  | const CoinBigIndex * | columnStarts,
|  | const int * | columnLengths,
|  | const int * | rows,
|  | const double * | elements )

## addColumns() [3/5]

void ClpModel::addColumns | ( | int | number,
|  | const double * | columnLower,
|  | const double * | columnUpper,
|  | const double * | objective,
|  | const CoinPackedVectorBase *const * | columns )

## addColumns() [4/5]

int ClpModel::addColumns | ( | const CoinBuild & | buildObject,
|  | bool | tryPlusMinusOne = false,
|  | bool | checkDuplicates = true )

Add columns from a build object If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists.

Returns number of errors e.g. duplicates

## addColumns() [5/5]

int ClpModel::addColumns | ( | CoinModel & | modelObject,
|  | bool | tryPlusMinusOne = false,
|  | bool | checkDuplicates = true )

Add columns from a model object.

returns -1 if object in bad state (i.e. has row information) otherwise number of errors modelObject non const as can be regularized as part of build If tryPlusMinusOne then will try adding as +-1 matrix if no matrix exists.

## modifyCoefficient()

void ClpModel::modifyCoefficient | ( | int | row,
|  | int | column,
|  | double | newElement,
|  | bool | keepZero = false )

inline

Modify one element of a matrix.

Definition at line 234 of file ClpModel.hpp.

## chgRowLower()

void ClpModel::chgRowLower | ( | const double * | rowLower | ) |

Change row lower bounds.

## chgRowUpper()

void ClpModel::chgRowUpper | ( | const double * | rowUpper | ) |

Change row upper bounds.

## chgColumnLower()

void ClpModel::chgColumnLower | ( | const double * | columnLower | ) |

Change column lower bounds.

## chgColumnUpper()

void ClpModel::chgColumnUpper | ( | const double * | columnUpper | ) |

Change column upper bounds.

## chgObjCoefficients()

void ClpModel::chgObjCoefficients | ( | const double * | objIn | ) |

Change objective coefficients.

## borrowModel()

void ClpModel::borrowModel | ( | ClpModel & | otherModel | ) |

Borrow model.

This is so we don't have to copy large amounts of data around. It assumes a derived class wants to overwrite an empty model with a real one - while it does an algorithm

## returnModel()

void ClpModel::returnModel | ( | ClpModel & | otherModel | ) |

Return model - nulls all arrays so can be deleted safely also updates any scalars.

## createEmptyMatrix()

void ClpModel::createEmptyMatrix | ( |  | ) |

Create empty ClpPackedMatrix.

## cleanMatrix()

CoinBigIndex ClpModel::cleanMatrix | ( | double | threshold = 1.0e-20 | ) |

Really clean up matrix (if ClpPackedMatrix).

a) eliminate all duplicate AND small elements in matrix b) remove all gaps and set extraGap_ and extraMajor_ to 0.0 c) reallocate arrays and make max lengths equal to lengths d) orders elements returns number of elements eliminated or -1 if not ClpPackedMatrix

## copy()

void ClpModel::copy | ( | const ClpMatrixBase * | from,
|  | ClpMatrixBase *& | to )

Copy contents - resizing if necessary - otherwise re-use memory.

## dropNames()

void ClpModel::dropNames | ( |  | ) |

Drops names - makes lengthnames 0 and names empty.

## copyNames()

void ClpModel::copyNames | ( | const std::vector< std::string > & | rowNames,
|  | const std::vector< std::string > & | columnNames )

Copies in names.

## copyRowNames() [1/2]

void ClpModel::copyRowNames | ( | const std::vector< std::string > & | rowNames,
|  | int | first,
|  | int | last )

Copies in Row names - modifies names first .. last-1.

## copyColumnNames() [1/2]

void ClpModel::copyColumnNames | ( | const std::vector< std::string > & | columnNames,
|  | int | first,
|  | int | last )

Copies in Column names - modifies names first .. last-1.

## copyRowNames() [2/2]

void ClpModel::copyRowNames | ( | const char *const * | rowNames,
|  | int | first,
|  | int | last )

Copies in Row names - modifies names first .. last-1.

## copyColumnNames() [2/2]

void ClpModel::copyColumnNames | ( | const char *const * | columnNames,
|  | int | first,
|  | int | last )

Copies in Column names - modifies names first .. last-1.

## setRowName()

void ClpModel::setRowName | ( | int | rowIndex,
|  | std::string & | name )

Set name of row.

## setColumnName()

void ClpModel::setColumnName | ( | int | colIndex,
|  | std::string & | name )

Set name of col.

## findNetwork()

int ClpModel::findNetwork | ( | char * | rotate,
|  | double | fractionNeeded = 0.75 )

Find a network subset.

rotate array should be numberRows. On output -1 not in network 0 in network as is 1 in network with signs swapped Returns number of network rows

## createCoinModel()

CoinModel * ClpModel::createCoinModel | ( |  | ) | const

This creates a coinModel object.

## writeMps()

int ClpModel::writeMps | ( | const char * | filename,
|  | int | formatType = 0,
|  | int | numberAcross = 2,
|  | double | objSense = 0.0 ) const

Write the problem in MPS format to the specified file.

Row and column names may be null. formatType is

- 0 - normal
- 1 - extra accuracy
- 2 - IEEE hex

Returns non-zero on I/O error

## numberRows()

int ClpModel::numberRows | ( |  | ) | const

inline

Number of rows.

Definition at line 319 of file ClpModel.hpp.

## getNumRows()

int ClpModel::getNumRows | ( |  | ) | const

inline

Definition at line 323 of file ClpModel.hpp.

## getNumCols()

int ClpModel::getNumCols | ( |  | ) | const

inline

Number of columns.

Definition at line 328 of file ClpModel.hpp.

## numberColumns()

int ClpModel::numberColumns | ( |  | ) | const

inline

Definition at line 332 of file ClpModel.hpp.

## primalTolerance()

double ClpModel::primalTolerance | ( |  | ) | const

inline

Primal tolerance to use.

Definition at line 337 of file ClpModel.hpp.

## setPrimalTolerance()

void ClpModel::setPrimalTolerance | ( | double | value | ) |

## dualTolerance()

double ClpModel::dualTolerance | ( |  | ) | const

inline

Dual tolerance to use.

Definition at line 343 of file ClpModel.hpp.

## setDualTolerance()

void ClpModel::setDualTolerance | ( | double | value | ) |

## primalObjectiveLimit()

double ClpModel::primalObjectiveLimit | ( |  | ) | const

inline

Primal objective limit.

Definition at line 349 of file ClpModel.hpp.

## setPrimalObjectiveLimit()

void ClpModel::setPrimalObjectiveLimit | ( | double | value | ) |

## dualObjectiveLimit()

double ClpModel::dualObjectiveLimit | ( |  | ) | const

inline

Dual objective limit.

Definition at line 355 of file ClpModel.hpp.

## setDualObjectiveLimit()

void ClpModel::setDualObjectiveLimit | ( | double | value | ) |

## objectiveOffset()

double ClpModel::objectiveOffset | ( |  | ) | const

inline

Objective offset.

Definition at line 361 of file ClpModel.hpp.

## setObjectiveOffset()

void ClpModel::setObjectiveOffset | ( | double | value | ) |

## presolveTolerance()

double ClpModel::presolveTolerance | ( |  | ) | const

inline

Presolve tolerance to use.

Definition at line 367 of file ClpModel.hpp.

## problemName()

const std::string & ClpModel::problemName | ( |  | ) | const

inline

Definition at line 372 of file ClpModel.hpp.

## numberIterations()

int ClpModel::numberIterations | ( |  | ) | const

inline

Number of iterations.

Definition at line 378 of file ClpModel.hpp.

## getIterationCount()

int ClpModel::getIterationCount | ( |  | ) | const

inline

Definition at line 382 of file ClpModel.hpp.

## setNumberIterations()

void ClpModel::setNumberIterations | ( | int | numberIterationsNew | ) |

inline

Definition at line 386 of file ClpModel.hpp.

## solveType()

int ClpModel::solveType | ( |  | ) | const

inline

Solve type - 1 simplex, 2 simplex interface, 3 Interior.

Definition at line 391 of file ClpModel.hpp.

## setSolveType()

void ClpModel::setSolveType | ( | int | type | ) |

inline

Definition at line 395 of file ClpModel.hpp.

## maximumIterations()

int ClpModel::maximumIterations | ( |  | ) | const

inline

Maximum number of iterations.

Definition at line 400 of file ClpModel.hpp.

## setMaximumIterations()

void ClpModel::setMaximumIterations | ( | int | value | ) |

## maximumSeconds()

double ClpModel::maximumSeconds | ( |  | ) | const

inline

Maximum time in seconds (from when set called).

Definition at line 406 of file ClpModel.hpp.

## setMaximumSeconds()

void ClpModel::setMaximumSeconds | ( | double | value | ) |

## setMaximumWallSeconds()

void ClpModel::setMaximumWallSeconds | ( | double | value | ) |

## hitMaximumIterations()

bool ClpModel::hitMaximumIterations | ( |  | ) | const

Returns true if hit maximum iterations (or time).

## status()

int ClpModel::status | ( |  | ) | const

inline

Status of problem: -1 - unknown e.g.

before solve or if postSolve says not optimal 0 - optimal 1 - primal infeasible 2 - dual infeasible 3 - stopped on iterations or time 4 - stopped due to errors 5 - stopped by event handler (virtual int ClpEventHandler::event())

Definition at line 423 of file ClpModel.hpp.

## problemStatus()

int ClpModel::problemStatus | ( |  | ) | const

inline

Definition at line 427 of file ClpModel.hpp.

## setProblemStatus()

void ClpModel::setProblemStatus | ( | int | problemStatusNew | ) |

inline

Set problem status.

Definition at line 432 of file ClpModel.hpp.

## secondaryStatus()

int ClpModel::secondaryStatus | ( |  | ) | const

inline

Secondary status of problem - may get extended 0 - none 1 - primal infeasible because dual limit reached OR (probably primal infeasible but can't prove it - main status was 4) 2 - scaled problem optimal - unscaled problem has primal infeasibilities 3 - scaled problem optimal - unscaled problem has dual infeasibilities 4 - scaled problem optimal - unscaled problem has primal and dual infeasibilities 5 - giving up in primal with flagged variables 6 - failed due to empty problem check 7 - postSolve says not optimal 8 - failed due to bad element check 9 - status was 3 and stopped on time 10 - status was 3 but stopped as primal feasible 11 - status was 1/2 from presolve found infeasible or unbounded 100 up - translation of enum from ClpEventHandler.

Definition at line 452 of file ClpModel.hpp.

## setSecondaryStatus()

void ClpModel::setSecondaryStatus | ( | int | newstatus | ) |

inline

Definition at line 456 of file ClpModel.hpp.

## isAbandoned()

bool ClpModel::isAbandoned | ( |  | ) | const

inline

Are there a numerical difficulties?

Definition at line 461 of file ClpModel.hpp.

## isProvenOptimal()

bool ClpModel::isProvenOptimal | ( |  | ) | const

inline

Is optimality proven?

Definition at line 466 of file ClpModel.hpp.

## isProvenPrimalInfeasible()

bool ClpModel::isProvenPrimalInfeasible | ( |  | ) | const

inline

Is primal infeasiblity proven?

Definition at line 471 of file ClpModel.hpp.

## isProvenDualInfeasible()

bool ClpModel::isProvenDualInfeasible | ( |  | ) | const

inline

Is dual infeasiblity proven?

Definition at line 476 of file ClpModel.hpp.

## isPrimalObjectiveLimitReached()

bool ClpModel::isPrimalObjectiveLimitReached | ( |  | ) | const

Is the given primal objective limit reached?

## isDualObjectiveLimitReached()

bool ClpModel::isDualObjectiveLimitReached | ( |  | ) | const

Is the given dual objective limit reached?

## isIterationLimitReached()

bool ClpModel::isIterationLimitReached | ( |  | ) | const

inline

Iteration limit reached?

Definition at line 485 of file ClpModel.hpp.

## optimizationDirection()

double ClpModel::optimizationDirection | ( |  | ) | const

inline

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

Definition at line 490 of file ClpModel.hpp.

## getObjSense()

double ClpModel::getObjSense | ( |  | ) | const

inline

Definition at line 494 of file ClpModel.hpp.

## setOptimizationDirection()

void ClpModel::setOptimizationDirection | ( | double | value | ) |

## primalRowSolution()

double * ClpModel::primalRowSolution | ( |  | ) | const

inline

Primal row solution.

Definition at line 500 of file ClpModel.hpp.

## getRowActivity()

const double * ClpModel::getRowActivity | ( |  | ) | const

inline

Definition at line 504 of file ClpModel.hpp.

## primalColumnSolution()

double * ClpModel::primalColumnSolution | ( |  | ) | const

inline

Primal column solution.

Definition at line 509 of file ClpModel.hpp.

## getColSolution()

const double * ClpModel::getColSolution | ( |  | ) | const

inline

Definition at line 513 of file ClpModel.hpp.

## setColSolution()

void ClpModel::setColSolution | ( | const double * | input | ) |

inline

Definition at line 517 of file ClpModel.hpp.

## dualRowSolution()

double * ClpModel::dualRowSolution | ( |  | ) | const

inline

Dual row solution.

Definition at line 522 of file ClpModel.hpp.

## getRowPrice()

const double * ClpModel::getRowPrice | ( |  | ) | const

inline

Definition at line 526 of file ClpModel.hpp.

## dualColumnSolution()

double * ClpModel::dualColumnSolution | ( |  | ) | const

inline

Reduced costs.

Definition at line 531 of file ClpModel.hpp.

## getReducedCost()

const double * ClpModel::getReducedCost | ( |  | ) | const

inline

Definition at line 535 of file ClpModel.hpp.

## rowLower()

double * ClpModel::rowLower | ( |  | ) | const

inline

Row lower.

Definition at line 540 of file ClpModel.hpp.

## getRowLower()

const double * ClpModel::getRowLower | ( |  | ) | const

inline

Definition at line 544 of file ClpModel.hpp.

## rowUpper()

double * ClpModel::rowUpper | ( |  | ) | const

inline

Row upper.

Definition at line 549 of file ClpModel.hpp.

## getRowUpper()

const double * ClpModel::getRowUpper | ( |  | ) | const

inline

Definition at line 553 of file ClpModel.hpp.

## setObjectiveCoefficient()

void ClpModel::setObjectiveCoefficient | ( | int | elementIndex,
|  | double | elementValue )

Set an objective function coefficient.

## setObjCoeff()

void ClpModel::setObjCoeff | ( | int | elementIndex,
|  | double | elementValue )

inline

Set an objective function coefficient.

Definition at line 563 of file ClpModel.hpp.

## setColumnLower()

void ClpModel::setColumnLower | ( | int | elementIndex,
|  | double | elementValue )

Set a single column lower bound
Use -DBL_MAX for -infinity.

## setColumnUpper()

void ClpModel::setColumnUpper | ( | int | elementIndex,
|  | double | elementValue )

Set a single column upper bound
Use DBL_MAX for infinity.

## setColumnBounds()

void ClpModel::setColumnBounds | ( | int | elementIndex,
|  | double | lower,
|  | double | upper )

Set a single column lower and upper bound.

## setColumnSetBounds()

void ClpModel::setColumnSetBounds | ( | const int * | indexFirst,
|  | const int * | indexLast,
|  | const double * | boundList )

Set the bounds on a number of columns simultaneously
The default implementation just invokes setColLower() and setColUpper() over and over again.

Parameters

  indexFirst,indexLast | pointers to the beginning and after the end of the array of the indices of the variables whose either bound changes
  boundList | the new lower/upper bound pairs for the variables

## setColLower()

void ClpModel::setColLower | ( | int | elementIndex,
|  | double | elementValue )

inline

Set a single column lower bound
Use -DBL_MAX for -infinity.

Definition at line 594 of file ClpModel.hpp.

## setColUpper()

void ClpModel::setColUpper | ( | int | elementIndex,
|  | double | elementValue )

inline

Set a single column upper bound
Use DBL_MAX for infinity.

Definition at line 600 of file ClpModel.hpp.

## setColBounds()

void ClpModel::setColBounds | ( | int | elementIndex,
|  | double | lower,
|  | double | upper )

inline

Set a single column lower and upper bound.

Definition at line 606 of file ClpModel.hpp.

## setColSetBounds()

void ClpModel::setColSetBounds | ( | const int * | indexFirst,
|  | const int * | indexLast,
|  | const double * | boundList )

inline

Set the bounds on a number of columns simultaneously
.

Parameters

  indexFirst,indexLast | pointers to the beginning and after the end of the array of the indices of the variables whose either bound changes
  boundList | the new lower/upper bound pairs for the variables

Definition at line 618 of file ClpModel.hpp.

## setRowLower()

void ClpModel::setRowLower | ( | int | elementIndex,
|  | double | elementValue )

Set a single row lower bound
Use -DBL_MAX for -infinity.

## setRowUpper()

void ClpModel::setRowUpper | ( | int | elementIndex,
|  | double | elementValue )

Set a single row upper bound
Use DBL_MAX for infinity.

## setRowBounds()

void ClpModel::setRowBounds | ( | int | elementIndex,
|  | double | lower,
|  | double | upper )

Set a single row lower and upper bound.

## setRowSetBounds()

void ClpModel::setRowSetBounds | ( | const int * | indexFirst,
|  | const int * | indexLast,
|  | const double * | boundList )

Set the bounds on a number of rows simultaneously
.

Parameters

  indexFirst,indexLast | pointers to the beginning and after the end of the array of the indices of the constraints whose either bound changes
  boundList | the new lower/upper bound pairs for the constraints

## rowScale()

const double * ClpModel::rowScale | ( |  | ) | const

inline

Scaling.

Definition at line 649 of file ClpModel.hpp.

## columnScale()

const double * ClpModel::columnScale | ( |  | ) | const

inline

Definition at line 653 of file ClpModel.hpp.

## inverseRowScale()

const double * ClpModel::inverseRowScale | ( |  | ) | const

inline

Definition at line 657 of file ClpModel.hpp.

## inverseColumnScale()

const double * ClpModel::inverseColumnScale | ( |  | ) | const

inline

Definition at line 661 of file ClpModel.hpp.

## mutableRowScale()

double * ClpModel::mutableRowScale | ( |  | ) | const

inline

Definition at line 665 of file ClpModel.hpp.

## mutableColumnScale()

double * ClpModel::mutableColumnScale | ( |  | ) | const

inline

Definition at line 669 of file ClpModel.hpp.

## mutableInverseRowScale()

double * ClpModel::mutableInverseRowScale | ( |  | ) | const

inline

Definition at line 673 of file ClpModel.hpp.

## mutableInverseColumnScale()

double * ClpModel::mutableInverseColumnScale | ( |  | ) | const

inline

Definition at line 677 of file ClpModel.hpp.

## swapRowScale()

double * ClpModel::swapRowScale | ( | double * | newScale | ) |

inline

Definition at line 681 of file ClpModel.hpp.

## setRowScale()

void ClpModel::setRowScale | ( | double * | scale | ) |

## setColumnScale()

void ClpModel::setColumnScale | ( | double * | scale | ) |

## objectiveScale()

double ClpModel::objectiveScale | ( |  | ) | const

inline

Scaling of objective.

Definition at line 690 of file ClpModel.hpp.

## setObjectiveScale()

void ClpModel::setObjectiveScale | ( | double | value | ) |

inline

Definition at line 694 of file ClpModel.hpp.

## rhsScale()

double ClpModel::rhsScale | ( |  | ) | const

inline

Scaling of rhs and bounds.

Definition at line 699 of file ClpModel.hpp.

## setRhsScale()

void ClpModel::setRhsScale | ( | double | value | ) |

inline

Definition at line 703 of file ClpModel.hpp.

## scaling()

void ClpModel::scaling | ( | int | mode = 1 | ) |

Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3 auto, 4 auto-but-as-initialSolve-in-bab.

## unscale()

void ClpModel::unscale | ( |  | ) |

If we constructed a "really" scaled model then this reverses the operation.

Quantities may not be exactly as they were before due to rounding errors

## scalingFlag()

int ClpModel::scalingFlag | ( |  | ) | const

inline

Gets scalingFlag.

Definition at line 713 of file ClpModel.hpp.

## objective() [1/2]

double * ClpModel::objective | ( |  | ) | const

inline

Objective.

Definition at line 718 of file ClpModel.hpp.

## objective() [2/2]

double * ClpModel::objective | ( | const double * | solution,
|  | double & | offset,
|  | bool | refresh = true ) const

inline

Definition at line 727 of file ClpModel.hpp.

## getObjCoefficients()

const double * ClpModel::getObjCoefficients | ( |  | ) | const

inline

Definition at line 736 of file ClpModel.hpp.

## rowObjective()

double * ClpModel::rowObjective | ( |  | ) | const

inline

Row Objective.

Definition at line 746 of file ClpModel.hpp.

## getRowObjCoefficients()

const double * ClpModel::getRowObjCoefficients | ( |  | ) | const

inline

Definition at line 750 of file ClpModel.hpp.

## columnLower()

double * ClpModel::columnLower | ( |  | ) | const

inline

Column Lower.

Definition at line 755 of file ClpModel.hpp.

## getColLower()

const double * ClpModel::getColLower | ( |  | ) | const

inline

Definition at line 759 of file ClpModel.hpp.

## columnUpper()

double * ClpModel::columnUpper | ( |  | ) | const

inline

Column Upper.

Definition at line 764 of file ClpModel.hpp.

## getColUpper()

const double * ClpModel::getColUpper | ( |  | ) | const

inline

Definition at line 768 of file ClpModel.hpp.

## matrix()

CoinPackedMatrix * ClpModel::matrix | ( |  | ) | const

inline

Matrix (if not ClpPackedmatrix be careful about memory leak.

Definition at line 773 of file ClpModel.hpp.

## getNumElements()

CoinBigIndex ClpModel::getNumElements | ( |  | ) | const

inline

Number of elements in matrix.

Definition at line 781 of file ClpModel.hpp.

## getSmallElementValue()

double ClpModel::getSmallElementValue | ( |  | ) | const

inline

Small element value - elements less than this set to zero, default is 1.0e-20.

Definition at line 787 of file ClpModel.hpp.

## setSmallElementValue()

void ClpModel::setSmallElementValue | ( | double | value | ) |

inline

Definition at line 791 of file ClpModel.hpp.

## rowCopy()

ClpMatrixBase * ClpModel::rowCopy | ( |  | ) | const

inline

Row Matrix.

Definition at line 796 of file ClpModel.hpp.

## setNewRowCopy()

void ClpModel::setNewRowCopy | ( | ClpMatrixBase * | newCopy | ) |

Set new row matrix.

## clpMatrix()

ClpMatrixBase * ClpModel::clpMatrix | ( |  | ) | const

inline

Clp Matrix.

Definition at line 803 of file ClpModel.hpp.

## clpScaledMatrix()

ClpPackedMatrix * ClpModel::clpScaledMatrix | ( |  | ) | const

inline

Scaled ClpPackedMatrix.

Definition at line 808 of file ClpModel.hpp.

## setClpScaledMatrix()

void ClpModel::setClpScaledMatrix | ( | ClpPackedMatrix * | scaledMatrix | ) |

inline

Sets pointer to scaled ClpPackedMatrix.

Definition at line 813 of file ClpModel.hpp.

## swapScaledMatrix()

ClpPackedMatrix * ClpModel::swapScaledMatrix | ( | ClpPackedMatrix * | scaledMatrix | ) |

inline

Swaps pointer to scaled ClpPackedMatrix.

Definition at line 819 of file ClpModel.hpp.

## replaceMatrix() [1/2]

void ClpModel::replaceMatrix | ( | ClpMatrixBase * | matrix,
|  | bool | deleteCurrent = false )

Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current.

This was used where matrices were being rotated. ClpModel takes ownership.

## replaceMatrix() [2/2]

void ClpModel::replaceMatrix | ( | CoinPackedMatrix * | newmatrix,
|  | bool | deleteCurrent = false )

inline

Replace Clp Matrix (current is not deleted unless told to and new is used) So up to user to delete current.

This was used where matrices were being rotated. This version changes CoinPackedMatrix to ClpPackedMatrix. ClpModel takes ownership.

Definition at line 836 of file ClpModel.hpp.

## objectiveValue()

double ClpModel::objectiveValue | ( |  | ) | const

inline

Objective value.

Definition at line 842 of file ClpModel.hpp.

## setObjectiveValue()

void ClpModel::setObjectiveValue | ( | double | value | ) |

inline

Definition at line 846 of file ClpModel.hpp.

## getObjValue()

double ClpModel::getObjValue | ( |  | ) | const

inline

Definition at line 850 of file ClpModel.hpp.

## integerInformation()

char * ClpModel::integerInformation | ( |  | ) | const

inline

Integer information.

Definition at line 855 of file ClpModel.hpp.

## infeasibilityRay()

double * ClpModel::infeasibilityRay | ( | bool | fullRay = false | ) | const

Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays.

## unboundedRay()

double * ClpModel::unboundedRay | ( |  | ) | const

## ray()

double * ClpModel::ray | ( |  | ) | const

inline

For advanced users - no need to delete - sign not changed.

Definition at line 864 of file ClpModel.hpp.

## rayExists()

bool ClpModel::rayExists | ( |  | ) | const

inline

just test if infeasibility or unbounded Ray exists

Definition at line 869 of file ClpModel.hpp.

## deleteRay()

void ClpModel::deleteRay | ( |  | ) |

inline

just delete ray if exists

Definition at line 874 of file ClpModel.hpp.

## internalRay()

const double * ClpModel::internalRay | ( |  | ) | const

inline

Access internal ray storage. Users should call infeasibilityRay() or unboundedRay() instead.

Definition at line 880 of file ClpModel.hpp.

## statusExists()

bool ClpModel::statusExists | ( |  | ) | const

inline

See if status (i.e. basis) array exists (partly for OsiClp).

Definition at line 885 of file ClpModel.hpp.

## statusArray()

unsigned char * ClpModel::statusArray | ( |  | ) | const

inline

Return address of status (i.e. basis) array (char[numberRows+numberColumns]).

Definition at line 890 of file ClpModel.hpp.

## statusCopy()

unsigned char * ClpModel::statusCopy | ( |  | ) | const

Return copy of status (i.e.

basis) array (char[numberRows+numberColumns]), use delete []

## copyinStatus()

void ClpModel::copyinStatus | ( | const unsigned char * | statusArray | ) |

Copy in status (basis) vector.

## setUserPointer()

void ClpModel::setUserPointer | ( | void * | pointer | ) |

inline

User pointer for whatever reason.

Definition at line 901 of file ClpModel.hpp.

## getUserPointer()

void * ClpModel::getUserPointer | ( |  | ) | const

inline

Definition at line 905 of file ClpModel.hpp.

## setTrustedUserPointer()

void ClpModel::setTrustedUserPointer | ( | ClpTrustedData * | pointer | ) |

inline

Trusted user pointer.

Definition at line 910 of file ClpModel.hpp.

## getTrustedUserPointer()

ClpTrustedData * ClpModel::getTrustedUserPointer | ( |  | ) | const

inline

Definition at line 914 of file ClpModel.hpp.

## whatsChanged()

int ClpModel::whatsChanged | ( |  | ) | const

inline

What has changed in model (only for masochistic users).

Definition at line 919 of file ClpModel.hpp.

## setWhatsChanged()

void ClpModel::setWhatsChanged | ( | int | value | ) |

inline

Definition at line 923 of file ClpModel.hpp.

## numberThreads()

int ClpModel::numberThreads | ( |  | ) | const

inline

Number of threads (not really being used).

Definition at line 928 of file ClpModel.hpp.

## setNumberThreads()

void ClpModel::setNumberThreads | ( | int | value | ) |

inline

Definition at line 932 of file ClpModel.hpp.

## passInMessageHandler()

void ClpModel::passInMessageHandler | ( | CoinMessageHandler * | handler | ) |

Pass in Message handler (not deleted at end).

## pushMessageHandler()

CoinMessageHandler * ClpModel::pushMessageHandler | ( | CoinMessageHandler * | handler,
|  | bool & | oldDefault )

Pass in Message handler (not deleted at end) and return current.

## popMessageHandler()

void ClpModel::popMessageHandler | ( | CoinMessageHandler * | oldHandler,
|  | bool | oldDefault )

back to previous message handler

## newLanguage()

void ClpModel::newLanguage | ( | CoinMessages::Language | language | ) |

Set language.

## setLanguage()

void ClpModel::setLanguage | ( | CoinMessages::Language | language | ) |

inline

Definition at line 948 of file ClpModel.hpp.

## setDefaultMessageHandler()

void ClpModel::setDefaultMessageHandler | ( |  | ) |

Overrides message handler with a default one.

## messageHandler()

CoinMessageHandler * ClpModel::messageHandler | ( |  | ) | const

inline

Return handler.

Definition at line 955 of file ClpModel.hpp.

## messages()

CoinMessages ClpModel::messages | ( |  | ) | const

inline

Return messages.

Definition at line 960 of file ClpModel.hpp.

## messagesPointer()

CoinMessages * ClpModel::messagesPointer | ( |  | ) |

inline

Return pointer to messages.

Definition at line 965 of file ClpModel.hpp.

## coinMessages()

CoinMessages ClpModel::coinMessages | ( |  | ) | const

inline

Return Coin messages.

Definition at line 970 of file ClpModel.hpp.

## coinMessagesPointer()

CoinMessages * ClpModel::coinMessagesPointer | ( |  | ) |

inline

Return pointer to Coin messages.

Definition at line 975 of file ClpModel.hpp.

## setLogLevel()

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

inline

Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - verbose above that 8,16,32 etc just for selective debug.

Definition at line 987 of file ClpModel.hpp.

## logLevel()

int ClpModel::logLevel | ( |  | ) | const

inline

Definition at line 991 of file ClpModel.hpp.

## defaultHandler()

bool ClpModel::defaultHandler | ( |  | ) | const

inline

Return true if default handler.

Definition at line 996 of file ClpModel.hpp.

## passInEventHandler()

void ClpModel::passInEventHandler | ( | const ClpEventHandler * | eventHandler | ) |

Pass in Event handler (cloned and deleted at end).

## eventHandler()

ClpEventHandler * ClpModel::eventHandler | ( |  | ) | const

inline

Event handler.

Definition at line 1003 of file ClpModel.hpp.

## randomNumberGenerator()

CoinThreadRandom * ClpModel::randomNumberGenerator | ( |  | ) |

inline

Thread specific random number generator.

Definition at line 1008 of file ClpModel.hpp.

## mutableRandomNumberGenerator()

CoinThreadRandom & ClpModel::mutableRandomNumberGenerator | ( |  | ) |

inline

Thread specific random number generator.

Definition at line 1013 of file ClpModel.hpp.

## setRandomSeed()

void ClpModel::setRandomSeed | ( | int | value | ) |

inline

Set seed for thread specific random number generator.

Definition at line 1018 of file ClpModel.hpp.

## lengthNames()

int ClpModel::lengthNames | ( |  | ) | const

inline

length of names (0 means no names0

Definition at line 1023 of file ClpModel.hpp.

## setLengthNames()

void ClpModel::setLengthNames | ( | int | value | ) |

inline

length of names (0 means no names0

Definition at line 1029 of file ClpModel.hpp.

## rowNames()

const std::vector< std::string > * ClpModel::rowNames | ( |  | ) | const

inline

Row names.

Definition at line 1034 of file ClpModel.hpp.

## rowName()

const std::string & ClpModel::rowName | ( | int | iRow | ) | const

inline

Definition at line 1038 of file ClpModel.hpp.

## getRowName()

std::string ClpModel::getRowName | ( | int | iRow | ) | const

Return name or Rnnnnnnn.

## columnNames()

const std::vector< std::string > * ClpModel::columnNames | ( |  | ) | const

inline

Column names.

Definition at line 1045 of file ClpModel.hpp.

## columnName()

const std::string & ClpModel::columnName | ( | int | iColumn | ) | const

inline

Definition at line 1049 of file ClpModel.hpp.

## getColumnName()

std::string ClpModel::getColumnName | ( | int | iColumn | ) | const

Return name or Cnnnnnnn.

## objectiveAsObject()

ClpObjective * ClpModel::objectiveAsObject | ( |  | ) | const

inline

Objective methods.

Definition at line 1057 of file ClpModel.hpp.

## setObjective()

void ClpModel::setObjective | ( | ClpObjective * | objective | ) |

## setObjectivePointer()

void ClpModel::setObjectivePointer | ( | ClpObjective * | newobjective | ) |

inline

Definition at line 1062 of file ClpModel.hpp.

## emptyProblem()

int ClpModel::emptyProblem | ( | int * | infeasNumber = NULL,
|  | double * | infeasSum = NULL,
|  | bool | printMessage = true )

Solve a problem with no elements - return status and dual and primal infeasibilites.

## times()

void ClpModel::times | ( | double | scalar,
|  | const double * | x,
|  | double * | y ) const

Return `y + A * x * scalar` in `y`.

Precondition
  `x` must be of size `numColumns()`
  `y` must be of size `numRows()`

## transposeTimes()

void ClpModel::transposeTimes | ( | double | scalar,
|  | const double * | x,
|  | double * | y ) const

Return `y + x * scalar * A` in `y`.

Precondition
  `x` must be of size `numRows()`
  `y` must be of size `numColumns()`

## setIntParam()

bool ClpModel::setIntParam | ( | ClpIntParam | key,
|  | int | value )

Set an integer parameter.

## setDblParam()

bool ClpModel::setDblParam | ( | ClpDblParam | key,
|  | double | value )

Set an double parameter.

## setStrParam()

bool ClpModel::setStrParam | ( | ClpStrParam | key,
|  | const std::string & | value )

Set an string parameter.

## getIntParam()

bool ClpModel::getIntParam | ( | ClpIntParam | key,
|  | int & | value ) const

inline

Definition at line 1116 of file ClpModel.hpp.

## getDblParam()

bool ClpModel::getDblParam | ( | ClpDblParam | key,
|  | double & | value ) const

inline

Definition at line 1126 of file ClpModel.hpp.

## getStrParam()

bool ClpModel::getStrParam | ( | ClpStrParam | key,
|  | std::string & | value ) const

inline

Definition at line 1137 of file ClpModel.hpp.

## generateCpp()

void ClpModel::generateCpp | ( | FILE * | fp | ) |

Create C++ lines to get to current state.

## specialOptions()

unsigned int ClpModel::specialOptions | ( |  | ) | const

inline

For advanced options 1 - Don't keep changing infeasibility weight 2 - Keep nonLinearCost round solves 4 - Force outgoing variables to exact bound (primal) 8 - Safe to use dense initial factorization 16 -Just use basic variables for operation if column generation 32 -Create ray even in BAB 64 -Treat problem as feasible until last minute (i.e.

minimize infeasibilities) 128 - Switch off all matrix sanity checks 256 - No row copy 512 - If not in values pass, solution guaranteed, skip as much as possible 1024 - In branch and bound 2048 - Don't bother to re-factorize if < 20 iterations 4096 - Skip some optimality checks 8192 - Do Primal when cleaning up primal 16384 - In fast dual (so we can switch off things) 32768 - called from Osi 65536 - keep arrays around as much as possible (also use maximumR/C) 131072 - transposeTimes is -1.0 and can skip basic and fixed 262144 - extra copy of scaled matrix 524288 - Clp fast dual 1048576 - don't need to finish dual (can return 3) 2097152 - ray even if >2 pivots AND if problem is "crunched" 4194304 - don't scale integer variables 8388608 - Idiot when not really sure about it 16777216 - zero costs! NOTE - many applications can call Clp but there may be some short cuts which are taken which are not guaranteed safe from all applications. Vetted applications will have a bit set and the code may test this At present I expect a few such applications - if too many I will have to re-think. It is up to application owner to change the code if she/he needs these short cuts. I will not debug unless in Coin repository. See COIN_CLP_VETTED comments. 0x01000000 is Cbc (and in branch and bound) 0x02000000 is in a different branch and bound

Definition at line 1185 of file ClpModel.hpp.

## setSpecialOptions()

void ClpModel::setSpecialOptions | ( | unsigned int | value | ) |

## inCbcBranchAndBound()

bool ClpModel::inCbcBranchAndBound | ( |  | ) | const

inline

Definition at line 1191 of file ClpModel.hpp.

## gutsOfDelete()

void ClpModel::gutsOfDelete | ( | int | type | ) |

protected

Does most of deletion (0 = all, 1 = most).

## gutsOfCopy()

void ClpModel::gutsOfCopy | ( | const ClpModel & | rhs,
|  | int | trueCopy = 1 )

protected

Does most of copying If trueCopy 0 then just points to arrays If -1 leaves as much as possible.

## getRowBound()

void ClpModel::getRowBound | ( | int | iRow,
|  | double & | lower,
|  | double & | upper ) const

protected

gets lower and upper bounds on rows

## gutsOfLoadModel()

void ClpModel::gutsOfLoadModel | ( | int | numberRows,
|  | int | numberColumns,
|  | const double * | collb,
|  | const double * | colub,
|  | const double * | obj,
|  | const double * | rowlb,
|  | const double * | rowub,
|  | const double * | rowObjective = NULL )

protected

puts in format I like - 4 array matrix - may make row copy

## gutsOfScaling()

void ClpModel::gutsOfScaling | ( |  | ) |

protected

Does much of scaling.

## rawObjectiveValue()

double ClpModel::rawObjectiveValue | ( |  | ) | const

inline protected

Objective value - always minimize.

Definition at line 1217 of file ClpModel.hpp.

## permanentArrays()

bool ClpModel::permanentArrays | ( |  | ) | const

inline protected

If we are using maximumRows_ and Columns_.

Definition at line 1222 of file ClpModel.hpp.

## startPermanentArrays()

void ClpModel::startPermanentArrays | ( |  | ) |

protected

Start using maximumRows_ and Columns_.

## stopPermanentArrays()

void ClpModel::stopPermanentArrays | ( |  | ) |

protected

Stop using maximumRows_ and Columns_.

## rowNamesAsChar()

const char *const * ClpModel::rowNamesAsChar | ( |  | ) | const

protected

Create row names as char **.

## columnNamesAsChar()

const char *const * ClpModel::columnNamesAsChar | ( |  | ) | const

protected

Create column names as char **.

## deleteNamesAsChar()

void ClpModel::deleteNamesAsChar | ( | const char *const * | names,
|  | int | number ) const

protected

Delete char * version of names.

## onStopped()

void ClpModel::onStopped | ( |  | ) |

protected

On stopped - sets secondary status.

## Member Data Documentation

## optimizationDirection_

double ClpModel::optimizationDirection_

protected

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

Definition at line 1245 of file ClpModel.hpp.

## dblParam_

double ClpModel::dblParam_[ClpLastDblParam]

protected

Array of double parameters.

Definition at line 1247 of file ClpModel.hpp.

## objectiveValue_

double ClpModel::objectiveValue_

protected

Objective value.

Definition at line 1249 of file ClpModel.hpp.

## smallElement_

double ClpModel::smallElement_

protected

Small element value.

Definition at line 1251 of file ClpModel.hpp.

## objectiveScale_

double ClpModel::objectiveScale_

protected

Scaling of objective.

Definition at line 1253 of file ClpModel.hpp.

## rhsScale_

double ClpModel::rhsScale_

protected

Scaling of rhs and bounds.

Definition at line 1255 of file ClpModel.hpp.

## numberRows_

int ClpModel::numberRows_

protected

Number of rows.

Definition at line 1257 of file ClpModel.hpp.

## numberColumns_

int ClpModel::numberColumns_

protected

Number of columns.

Definition at line 1259 of file ClpModel.hpp.

## rowActivity_

double* ClpModel::rowActivity_

protected

Row activities.

Definition at line 1261 of file ClpModel.hpp.

## columnActivity_

double* ClpModel::columnActivity_

protected

Column activities.

Definition at line 1263 of file ClpModel.hpp.

## dual_

double* ClpModel::dual_

protected

Duals.

Definition at line 1265 of file ClpModel.hpp.

## reducedCost_

double* ClpModel::reducedCost_

protected

Reduced costs.

Definition at line 1267 of file ClpModel.hpp.

## rowLower_

double* ClpModel::rowLower_

protected

Row lower.

Definition at line 1269 of file ClpModel.hpp.

## rowUpper_

double* ClpModel::rowUpper_

protected

Row upper.

Definition at line 1271 of file ClpModel.hpp.

## objective_

ClpObjective* ClpModel::objective_

protected

Objective.

Definition at line 1273 of file ClpModel.hpp.

## rowObjective_

double* ClpModel::rowObjective_

protected

Row Objective (? sign) - may be NULL.

Definition at line 1275 of file ClpModel.hpp.

## columnLower_

double* ClpModel::columnLower_

protected

Column Lower.

Definition at line 1277 of file ClpModel.hpp.

## columnUpper_

double* ClpModel::columnUpper_

protected

Column Upper.

Definition at line 1279 of file ClpModel.hpp.

## matrix_

ClpMatrixBase* ClpModel::matrix_

protected

Packed matrix.

Definition at line 1281 of file ClpModel.hpp.

## rowCopy_

ClpMatrixBase* ClpModel::rowCopy_

protected

Row copy if wanted.

Definition at line 1283 of file ClpModel.hpp.

## scaledMatrix_

ClpPackedMatrix* ClpModel::scaledMatrix_

protected

Scaled packed matrix.

Definition at line 1285 of file ClpModel.hpp.

## ray_

double* ClpModel::ray_

protected

Infeasible/unbounded ray.

Definition at line 1287 of file ClpModel.hpp.

## rowScale_

double* ClpModel::rowScale_

protected

Row scale factors for matrix.

Definition at line 1289 of file ClpModel.hpp.

## columnScale_

double* ClpModel::columnScale_

protected

Column scale factors.

Definition at line 1291 of file ClpModel.hpp.

## inverseRowScale_

double* ClpModel::inverseRowScale_

protected

Inverse row scale factors for matrix (end of rowScale_).

Definition at line 1293 of file ClpModel.hpp.

## inverseColumnScale_

double* ClpModel::inverseColumnScale_

protected

Inverse column scale factors for matrix (end of columnScale_).

Definition at line 1295 of file ClpModel.hpp.

## scalingFlag_

int ClpModel::scalingFlag_

protected

Scale flag, 0 none, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic, 5 geometric on rows.

Definition at line 1298 of file ClpModel.hpp.

## status_

unsigned char* ClpModel::status_

protected

Status (i.e.

basis) Region. I know that not all algorithms need a status array, but it made sense for things like crossover and put all permanent stuff in one place. No assumption is made about what is in status array (although it might be good to reserve bottom 3 bits (i.e. 0-7 numeric) for classic status). This is number of columns + number of rows long (in that order).

Definition at line 1306 of file ClpModel.hpp.

## integerType_

char* ClpModel::integerType_

protected

Integer information.

Definition at line 1308 of file ClpModel.hpp.

## userPointer_

void* ClpModel::userPointer_

protected

User pointer for whatever reason.

Definition at line 1310 of file ClpModel.hpp.

## trustedUserPointer_

ClpTrustedData* ClpModel::trustedUserPointer_

protected

Trusted user pointer e.g. for heuristics.

Definition at line 1312 of file ClpModel.hpp.

## intParam_

int ClpModel::intParam_[ClpLastIntParam]

protected

Array of integer parameters.

Definition at line 1314 of file ClpModel.hpp.

## numberIterations_

int ClpModel::numberIterations_

protected

Number of iterations.

Definition at line 1316 of file ClpModel.hpp.

## solveType_

int ClpModel::solveType_

protected

Solve type - 1 simplex, 2 simplex interface, 3 Interior.

Definition at line 1318 of file ClpModel.hpp.

## whatsChanged_

unsigned int ClpModel::whatsChanged_

protected

Definition at line 1347 of file ClpModel.hpp.

## problemStatus_

int ClpModel::problemStatus_

protected

Status of problem.

Definition at line 1349 of file ClpModel.hpp.

## secondaryStatus_

int ClpModel::secondaryStatus_

protected

Secondary status of problem.

Definition at line 1351 of file ClpModel.hpp.

## lengthNames_

int ClpModel::lengthNames_

protected

length of names (0 means no names)

Definition at line 1353 of file ClpModel.hpp.

## numberThreads_

int ClpModel::numberThreads_

protected

Number of threads (not very operational).

Definition at line 1355 of file ClpModel.hpp.

## specialOptions_

unsigned int ClpModel::specialOptions_

protected

For advanced options See get and set for meaning.

Definition at line 1359 of file ClpModel.hpp.

## handler_

CoinMessageHandler* ClpModel::handler_

protected

Message handler.

Definition at line 1361 of file ClpModel.hpp.

## defaultHandler_

bool ClpModel::defaultHandler_

protected

Flag to say if default handler (so delete).

Definition at line 1363 of file ClpModel.hpp.

## randomNumberGenerator_

CoinThreadRandom ClpModel::randomNumberGenerator_

protected

Thread specific random number generator.

Definition at line 1365 of file ClpModel.hpp.

## eventHandler_

ClpEventHandler* ClpModel::eventHandler_

protected

Event handler.

Definition at line 1367 of file ClpModel.hpp.

## rowNames_

std::vector< std::string > ClpModel::rowNames_

protected

Row names.

Definition at line 1370 of file ClpModel.hpp.

## columnNames_

std::vector< std::string > ClpModel::columnNames_

protected

Column names.

Definition at line 1372 of file ClpModel.hpp.

## messages_

CoinMessages ClpModel::messages_

protected

Messages.

Definition at line 1375 of file ClpModel.hpp.

## coinMessages_

CoinMessages ClpModel::coinMessages_

protected

Coin messages.

Definition at line 1377 of file ClpModel.hpp.

## maximumColumns_

int ClpModel::maximumColumns_

protected

Maximum number of columns in model.

Definition at line 1379 of file ClpModel.hpp.

## maximumRows_

int ClpModel::maximumRows_

protected

Maximum number of rows in model.

Definition at line 1381 of file ClpModel.hpp.

## maximumInternalColumns_

int ClpModel::maximumInternalColumns_

protected

Maximum number of columns (internal arrays) in model.

Definition at line 1383 of file ClpModel.hpp.

## maximumInternalRows_

int ClpModel::maximumInternalRows_

protected

Maximum number of rows (internal arrays) in model.

Definition at line 1385 of file ClpModel.hpp.

## baseMatrix_

CoinPackedMatrix ClpModel::baseMatrix_

protected

Base packed matrix.

Definition at line 1387 of file ClpModel.hpp.

## baseRowCopy_

CoinPackedMatrix ClpModel::baseRowCopy_

protected

Base row copy.

Definition at line 1389 of file ClpModel.hpp.

## savedRowScale_

double* ClpModel::savedRowScale_

protected

Saved row scale factors for matrix.

Definition at line 1391 of file ClpModel.hpp.

## savedColumnScale_

double* ClpModel::savedColumnScale_

protected

Saved column scale factors.

Definition at line 1393 of file ClpModel.hpp.

## strParam_

std::string ClpModel::strParam_[ClpLastStrParam]

protected

Array of string parameters.

Definition at line 1396 of file ClpModel.hpp.

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

- Clp/src/ClpModel.hpp