46 ClpModel(
bool emptyMessages =
false);
63 bool dropNames =
true,
bool dropIntegers =
true);
82 const double *collb,
const double *colub,
84 const double *rowlb,
const double *rowub,
87 const double *collb,
const double *colub,
89 const double *rowlb,
const double *rowub,
94 void loadProblem(
const int numcols,
const int numrows,
97 const double *collb,
const double *colub,
99 const double *rowlb,
const double *rowub,
108 void loadProblem(
const int numcols,
const int numrows,
110 const double *value,
const int *length,
111 const double *collb,
const double *colub,
113 const double *rowlb,
const double *rowub,
118 const int *column,
const double *element);
125 int readMps(
const char *filename,
126 bool keepNames =
false,
127 bool ignoreErrors =
false);
129 int readGMPL(
const char *filename,
const char *dataName,
130 bool keepNames =
false);
142 void resize(
int newNumberRows,
int newNumberColumns);
144 void deleteRows(
int number,
const int *which);
146 void addRow(
int numberInRow,
const int *columns,
153 const double *elements);
155 void addRows(
int number,
const double *rowLower,
156 const double *rowUpper,
159 const double *elements);
160 #ifndef CLP_NO_VECTOR
161 void addRows(
int number,
const double *rowLower,
162 const double *rowUpper,
171 bool checkDuplicates =
true);
181 bool checkDuplicates =
true);
187 int numberColumns,
const int *whichColumns);
191 const double *elements,
200 const double *elements);
201 void addColumns(
int number,
const double *columnLower,
202 const double *columnUpper,
203 const double *objective,
204 const CoinBigIndex *columnStarts,
const int *columnLengths,
206 const double *elements);
207 #ifndef CLP_NO_VECTOR
208 void addColumns(
int number,
const double *columnLower,
209 const double *columnUpper,
210 const double *objective,
219 bool checkDuplicates =
true);
228 bool checkDuplicates =
true);
231 bool keepZero =
false)
280 void setRowName(
int rowIndex, std::string &name);
291 int findNetwork(
char *rotate,
double fractionNeeded = 0.75);
309 int formatType = 0,
int numberAcross = 2,
310 double objSense = 0.0)
const;
573 double lower,
double upper);
584 const int *indexLast,
585 const double *boundList);
602 double lower,
double upper)
614 const int *indexLast,
615 const double *boundList)
622 void setRowLower(
int elementIndex,
double elementValue);
626 void setRowUpper(
int elementIndex,
double elementValue);
630 double lower,
double upper);
639 const int *indexLast,
640 const double *boundList);
643 inline const double *
rowScale()
const
722 inline double *
objective(
const double *solution,
double &offset,
bool refresh =
true)
const
832 bool deleteCurrent =
false)
859 inline double *
ray()
const
866 return (
ray_ != NULL);
1029 inline const std::vector< std::string > *
rowNames()
const
1063 int emptyProblem(
int *infeasNumber = NULL,
double *infeasSum = NULL,
bool printMessage =
true);
1075 void times(
double scalar,
1076 const double *x,
double *y)
const;
1081 const double *x,
double *y)
const;
1185 #define COIN_CBC_USING_CLP 0x01000000
1202 void getRowBound(
int iRow,
double &lower,
double &upper)
const;
1205 const double *collb,
const double *colub,
1207 const double *rowlb,
const double *rowub,
1208 const double *rowObjective = NULL);
1330 #define ROW_COLUMN_COUNTS_SAME 1
1331 #define MATRIX_SAME 2
1332 #define MATRIX_JUST_ROWS_ADDED 4
1333 #define MATRIX_JUST_COLUMNS_ADDED 8
1334 #define ROW_LOWER_SAME 16
1335 #define ROW_UPPER_SAME 32
1336 #define OBJECTIVE_SAME 64
1337 #define COLUMN_LOWER_SAME 128
1338 #define COLUMN_UPPER_SAME 256
1339 #define BASIS_SAME 512
1340 #define ALL_SAME 65339
1341 #define ALL_SAME_EXCEPT_COLUMN_BOUNDS 65337
const char *const * rowNamesAsChar() const
Create row names as char **.
double * mutableInverseRowScale() const
int maximumIterations() const
Maximum number of iterations.
void copyColumnNames(const std::vector< std::string > &columnNames, int first, int last)
Copies in Column names - modifies names first .. last-1.
int getNumCols() const
Number of columns.
ClpTrustedData * trustedUserPointer_
Trusted user pointer e.g. for heuristics.
bool isAbandoned() const
Are there a numerical difficulties?
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 setColL...
void * getUserPointer() const
const double * getColLower() const
char * integerInformation() const
Integer information.
This is a simple minded model which is stored in a format which makes it easier to construct and modi...
void setSmallElementValue(double value)
double * ray_
Infeasible/unbounded ray.
ClpDataSave & operator=(const ClpDataSave &rhs)
Assignment operator. This copies the data.
int numberIterations() const
Number of iterations.
Base class for message handling.
void setUserPointer(void *pointer)
User pointer for whatever reason.
void setObjectiveCoefficient(int elementIndex, double elementValue)
Set an objective function coefficient.
CoinPackedMatrix baseMatrix_
Base packed matrix.
This is a tiny class where data can be saved round calls.
int numberThreads_
Number of threads (not very operational)
double * dualRowSolution() const
Dual row solution.
int numberColumns_
Number of columns.
double infeasibilityCost_
double * rowUpper_
Row upper.
double * primalRowSolution() const
Primal row solution.
ClpObjective * objectiveAsObject() const
Objective methods.
void deleteRowsAndColumns(int numberRows, const int *whichRows, int numberColumns, const int *whichColumns)
Deletes rows AND columns (keeps old sizes)
ClpEventHandler * eventHandler_
Event handler.
void gutsOfDelete(int type)
Does most of deletion (0 = all, 1 = most)
std::vector< std::string > columnNames_
Column names.
bool defaultHandler_
Flag to say if default handler (so delete)
void chgRowLower(const double *rowLower)
Change row lower bounds.
void setColBounds(int elementIndex, double lower, double upper)
Set a single column lower and upper bound.
double * rowUpper() const
Row upper.
void setColumnUpper(int elementIndex, double elementValue)
Set a single column upper bound Use DBL_MAX for infinity.
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.
int solveType() const
Solve type - 1 simplex, 2 simplex interface, 3 Interior.
For a structure to be used by trusted code.
Objective Abstract Base Class.
double * savedColumnScale_
Saved column scale factors.
void setNumberThreads(int value)
void setRowSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
Set the bounds on a number of rows simultaneously
double * reducedCost_
Reduced costs.
char * integerType_
Integer information.
void copyinStatus(const unsigned char *statusArray)
Copy in status (basis) vector.
bool isInteger(int index) const
Return true if the index-th variable is an integer variable.
void setDualTolerance(double value)
Number of rows.
The maximum amount the primal constraints can be violated and still be considered feasible...
int scalingFlag() const
Gets scalingFlag.
unsigned int specialOptions_
For advanced options See get and set for meaning.
CoinPackedMatrix * matrix() const
Matrix (if not ClpPackedmatrix be careful about memory leak.
Just a marker, so that we can allocate a static sized array to store parameters.
bool isPrimalObjectiveLimitReached() const
Is the given primal objective limit reached?
CoinMessageHandler * messageHandler() const
Return handler.
ClpTrustedData * getTrustedUserPointer() const
unsigned int specialOptions_
double objectiveScale() const
Scaling of objective.
ClpObjective * objective_
Objective.
int problemStatus_
Status of problem.
double objectiveOffset() const
Objective offset.
unsigned char * status_
Status (i.e.
void onStopped()
On stopped - sets secondary status.
ClpPackedMatrix * clpScaledMatrix() const
Scaled ClpPackedMatrix.
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).
int findNetwork(char *rotate, double fractionNeeded=0.75)
Find a network subset.
bool getIntParam(ClpIntParam key, int &value) const
Set an integer parameter.
double optimizationDirection() const
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
void setColUpper(int elementIndex, double elementValue)
Set a single column upper bound Use DBL_MAX for infinity.
double * rowObjective_
Row Objective (? sign) - may be NULL.
int maximumInternalColumns_
Maximum number of columns (internal arrays) in model.
void setColLower(int elementIndex, double elementValue)
Set a single column lower bound Use -DBL_MAX for -infinity.
CoinMessages * messagesPointer()
Return pointer to messages.
double * primalColumnSolution() const
Primal column solution.
CoinThreadRandom & mutableRandomNumberGenerator()
Thread specific random number generator.
const std::vector< std::string > * columnNames() const
Column names.
ClpDataSave()
Default constructor.
void setRowName(int rowIndex, std::string &name)
Set name of row.
int numberRows() const
Number of rows.
void loadQuadraticObjective(const int numberColumns, const CoinBigIndex *start, const int *column, const double *element)
Load up quadratic objective.
unsigned char * statusCopy() const
Return copy of status (i.e.
std::string strParam_[ClpLastStrParam]
Array of string parameters.
double optimizationDirection_
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
void setObjCoeff(int elementIndex, double elementValue)
Set an objective function coefficient.
void setTrustedUserPointer(ClpTrustedData *pointer)
Trusted user pointer.
void copy(const ClpMatrixBase *from, ClpMatrixBase *&to)
Copy contents - resizing if necessary - otherwise re-use memory.
void returnModel(ClpModel &otherModel)
Return model - nulls all arrays so can be deleted safely also updates any scalars.
int status() const
Status of problem: -1 - unknown e.g.
virtual void modifyCoefficient(int row, int column, double newElement, bool keepZero=false)
Modify one element of packed matrix.
Just a marker, so that we can allocate a static sized array to store parameters.
bool isDualObjectiveLimitReached() const
Is the given dual objective limit reached?
void setPrimalObjectiveLimit(double value)
Number of rows.
const double * getColSolution() const
Number of rows.
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 cu...
int whatsChanged() const
What has changed in model (only for masochistic users)
double dualTolerance() const
Dual tolerance to use.
Sparse Matrix Base Class.
ClpEventHandler * eventHandler() const
Event handler.
virtual double * gradient(const ClpSimplex *model, const double *solution, double &offset, bool refresh, int includeLinear=2)=0
Returns gradient.
double presolveTolerance() const
Presolve tolerance to use.
double * mutableRowScale() const
double * columnActivity_
Column activities.
void scaling(int mode=1)
Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3 auto, 4 auto-but-as-initialSolve-in-bab...
const double * columnScale() const
int secondaryStatus() const
Secondary status of problem - may get extended 0 - none 1 - primal infeasible because dual limit reac...
bool isProvenOptimal() const
Is optimality proven?
double * columnUpper_
Column Upper.
void setRowObjective(const double *rowObjective)
This just loads up a row objective.
const double * inverseColumnScale() const
int logLevel() const
Get current log (detail) level.
double objectiveScale_
Scaling of objective.
int numberThreads() const
Number of threads (not really being used)
void deleteRows(int number, const int *which)
Deletes rows.
double * inverseRowScale_
Inverse row scale factors for matrix (end of rowScale_)
const double * getRowUpper() const
Number of rows.
void stopPermanentArrays()
Stop using maximumRows_ and Columns_.
double * savedRowScale_
Saved row scale factors for matrix.
const double * rowScale() const
Scaling.
void setNewRowCopy(ClpMatrixBase *newCopy)
Set new row matrix.
double * rowObjective() const
Row Objective.
void setSeed(int seed)
Set seed.
bool statusExists() const
See if status (i.e. basis) array exists (partly for OsiClp)
void setColSetBounds(const int *indexFirst, const int *indexLast, const double *boundList)
Set the bounds on a number of columns simultaneously
double * dualColumnSolution() const
Reduced costs.
void setColumnBounds(int elementIndex, double lower, double upper)
Set a single column lower and upper bound.
unsigned int whatsChanged_
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
const double * getRowLower() const
Number of rows.
void setRowScale(double *scale)
double * mutableInverseColumnScale() const
double dualObjectiveLimit() const
Dual objective limit.
Abstract base class for various sparse vectors.
const double * getReducedCost() const
Number of rows.
void addRow(int numberInRow, const int *columns, const double *elements, double rowLower=-COIN_DBL_MAX, double rowUpper=COIN_DBL_MAX)
Add one row.
CoinModel * createCoinModel() const
This creates a coinModel object.
double * columnLower_
Column Lower.
int scalingFlag_
Scale flag, 0 none, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic, 5 geometric on rows...
void chgObjCoefficients(const double *objIn)
Change objective coefficients.
bool setStrParam(ClpStrParam key, const std::string &value)
Set an string parameter.
void passInMessageHandler(CoinMessageHandler *handler)
Pass in Message handler (not deleted at end)
void setRhsScale(double value)
int maximumColumns_
Maximum number of columns in model.
const double * inverseRowScale() const
double * objective(const double *solution, double &offset, bool refresh=true) const
void copyRowNames(const std::vector< std::string > &rowNames, int first, int last)
Copies in Row names - modifies names first .. last-1.
bool setDblParam(ClpDblParam key, double value)
Set an double parameter.
ClpIntParam
This is where to put any useful stuff.
#define COIN_CBC_USING_CLP
void deleteIntegerInformation()
Drop integer informations.
void deleteRay()
just delete ray if exists
bool isProvenPrimalInfeasible() const
Is primal infeasiblity proven?
bool getStrParam(ClpStrParam key, std::string &value) const
Set an integer parameter.
void setWhatsChanged(int value)
double rawObjectiveValue() const
Objective value - always minimize.
void setObjectiveValue(double value)
CoinPackedMatrix baseRowCopy_
Base row copy.
void deleteNamesAsChar(const char *const *names, int number) const
Delete char * version of names.
double getObjSense() const
Number of rows.
double * rowLower() const
Row lower.
double maximumSeconds() const
Maximum time in seconds (from when set called)
int intParam_[ClpLastIntParam]
Array of integer parameters.
void setSolveType(int type)
Number of rows.
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...
int numberColumns() const
Number of rows.
bool defaultHandler() const
Return true if default handler.
const std::vector< std::string > * rowNames() const
Row names.
double zeroFactorizationTolerance_
const double * internalRay() const
Access internal ray storage. Users should call infeasibilityRay() or unboundedRay() instead...
double * infeasibilityRay(bool fullRay=false) const
Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays...
double zeroSimplexTolerance_
Just a marker, so that we can allocate a static sized array to store parameters.
virtual CoinBigIndex getNumElements() const =0
Number of entries in the packed matrix.
int numberRows_
Number of rows.
void startPermanentArrays()
Start using maximumRows_ and Columns_.
void setColumnName(int colIndex, std::string &name)
Set name of col.
CoinMessages * coinMessagesPointer()
Return pointer to Coin messages.
double objectiveValue() const
Objective value.
void getRowBound(int iRow, double &lower, double &upper) const
gets lower and upper bounds on rows
ClpMatrixBase * rowCopy() const
Row Matrix.
double objectiveValue_
Objective value.
bool rayExists() const
just test if infeasibility or unbounded Ray exists
int solveType_
Solve type - 1 simplex, 2 simplex interface, 3 Interior.
bool isIterationLimitReached() const
Iteration limit reached?
ClpModel(bool emptyMessages=false)
Default constructor.
void generateCpp(FILE *fp)
Create C++ lines to get to current state.
const std::string & rowName(int iRow) const
Pass in Message handler (not deleted at end)
int readMps(const char *filename, bool keepNames=false, bool ignoreErrors=false)
Read an mps file from the given filename.
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 setObjectivePointer(ClpObjective *newobjective)
Pass in Message handler (not deleted at end)
void addRows(int number, const double *rowLower, const double *rowUpper, const CoinBigIndex *rowStarts, const int *columns, const double *elements)
Add rows.
Set Dual objective limit.
unsigned char * statusArray() const
Return address of status (i.e. basis) array (char[numberRows+numberColumns])
double getObjValue() const
This is a first attempt at a message handler.
CoinMessages messages() const
Return messages.
The maximum amount the dual constraints can be violated and still be considered feasible.
double rhsScale_
Scaling of rhs and bounds.
void borrowModel(ClpModel &otherModel)
Borrow model.
void gutsOfScaling()
Does much of scaling.
void setColSolution(const double *input)
Number of rows.
Base class for Clp event handling.
const double * getObjCoefficients() const
void chgColumnLower(const double *columnLower)
Change column lower bounds.
const double COIN_DBL_MAX
void setDualObjectiveLimit(double value)
Number of rows.
const std::string & problemName() const
Number of rows.
Abstract base class for Clp Matrices.
void setInteger(int index)
Set the index-th variable to be an integer variable.
const double * getRowPrice() const
Number of rows.
ClpMatrixBase * clpMatrix() const
Clp Matrix.
void setMaximumWallSeconds(double value)
Number of rows.
CoinBigIndex getNumElements() const
Number of elements in matrix.
void newLanguage(CoinMessages::Language language)
Set language.
void setObjective(ClpObjective *objective)
Pass in Message handler (not deleted at end)
int secondaryStatus_
Secondary status of problem.
int numberIterations_
Number of iterations.
void setOptimizationDirection(double value)
Number of rows.
double * columnUpper() const
Column Upper.
void copyNames(const std::vector< std::string > &rowNames, const std::vector< std::string > &columnNames)
Copies in names.
~ClpDataSave()
Destructor.
Class to hold and manipulate an array of massaged messages.
void unscale()
If we constructed a "really" scaled model then this reverses the operation.
ClpPackedMatrix * swapScaledMatrix(ClpPackedMatrix *scaledMatrix)
Swaps pointer to scaled ClpPackedMatrix.
void setRowUpper(int elementIndex, double elementValue)
Set a single row upper bound Use DBL_MAX for infinity.
bool getDblParam(ClpDblParam key, double &value) const
Set an integer parameter.
void setColumnScale(double *scale)
void setNumberIterations(int numberIterationsNew)
Number of rows.
int lengthNames_
length of names (0 means no names)
const char *const * columnNamesAsChar() const
Create column names as char **.
void resize(int newNumberRows, int newNumberColumns)
Resizes rim part of model.
virtual CoinPackedMatrix * getPackedMatrix() const =0
Return a complete CoinPackedMatrix.
void setMaximumIterations(int value)
Number of rows.
CoinMessageHandler * handler_
Message handler.
CoinMessages coinMessages_
Coin messages.
void setProblemStatus(int problemStatusNew)
Set problem status.
double * mutableColumnScale() const
double primalObjectiveLimit() const
Primal objective limit.
double * rowScale_
Row scale factors for matrix.
void setLogLevel(int value)
Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - ver...
void transposeTimes(double scalar, const double *x, double *y) const
Return y + x * scalar * A in y.
void chgColumnUpper(const double *columnUpper)
Change column upper bounds.
void setObjectiveScale(double value)
Class for thread specific random numbers.
bool isProvenDualInfeasible() const
Is dual infeasiblity proven?
void setClpScaledMatrix(ClpPackedMatrix *scaledMatrix)
Sets pointer to scaled ClpPackedMatrix.
int getNumRows() const
Number of rows.
void setLengthNames(int value)
length of names (0 means no names0
int readGMPL(const char *filename, const char *dataName, bool keepNames=false)
Read GMPL files from the given filenames.
void dropNames()
Drops names - makes lengthnames 0 and names empty.
double * rowLower_
Row lower.
void setContinuous(int index)
Set the index-th variable to be a continuous variable.
int maximumInternalRows_
Maximum number of rows (internal arrays) in model.
double rhsScale() const
Scaling of rhs and bounds.
In many cases it is natural to build a model by adding one row at a time.
double * unboundedRay() const
void deleteColumns(int number, const int *which)
Deletes columns.
void setLogLevel(int value)
Set current log (detail) level.
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
double getSmallElementValue() const
Small element value - elements less than this set to zero, default is 1.0e-20.
void modifyCoefficient(int row, int column, double newElement, bool keepZero=false)
Modify one element of a matrix.
void setColumnLower(int elementIndex, double elementValue)
Set a single column lower bound Use -DBL_MAX for -infinity.
void times(double scalar, const double *x, double *y) const
Return y + A * x * scalar in y.
void deleteQuadraticObjective()
Get rid of quadratic objective.
CoinBigIndex cleanMatrix(double threshold=1.0e-20)
Really clean up matrix (if ClpPackedMatrix).
void setRowLower(int elementIndex, double elementValue)
Set a single row lower bound Use -DBL_MAX for -infinity.
void setMaximumSeconds(double value)
Number of rows.
double smallElement_
Small element value.
void setObjectiveOffset(double value)
Number of rows.
Maximum time in seconds - after, this action is as max iterations.
double * rowActivity_
Row activities.
void setPrimalTolerance(double value)
Number of rows.
double * objective() const
Objective.
const std::string & columnName(int iColumn) const
Pass in Message handler (not deleted at end)
double * swapRowScale(double *newScale)
void * userPointer_
User pointer for whatever reason.
void setRandomSeed(int value)
Set seed for thread specific random number generator.
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 cu...
double * columnScale_
Column scale factors.
CoinMessages messages_
Messages.
Objective function constant.
int maximumRows_
Maximum number of rows in model.
int logLevel() const
Pass in Message handler (not deleted at end)
std::string getRowName(int iRow) const
Return name or Rnnnnnnn.
void createEmptyMatrix()
Create empty ClpPackedMatrix.
CoinMessageHandler * pushMessageHandler(CoinMessageHandler *handler, bool &oldDefault)
Pass in Message handler (not deleted at end) and return current.
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.
CoinThreadRandom * randomNumberGenerator()
Thread specific random number generator.
double dblParam_[ClpLastDblParam]
Array of double parameters.
double primalTolerance() const
Primal tolerance to use.
void setSecondaryStatus(int newstatus)
Number of rows.
std::vector< std::string > rowNames_
Row names.
CoinThreadRandom randomNumberGenerator_
Thread specific random number generator.
std::string getColumnName(int iColumn) const
Return name or Cnnnnnnn.
double * inverseColumnScale_
Inverse column scale factors for matrix (end of columnScale_)
bool inCbcBranchAndBound() const
Set an integer parameter.
bool hitMaximumIterations() const
Returns true if hit maximum iterations (or time)
void popMessageHandler(CoinMessageHandler *oldHandler, bool oldDefault)
back to previous message handler
int lengthNames() const
length of names (0 means no names0
ClpModel & operator=(const ClpModel &rhs)
Assignment operator. This copies the data.
void copyInIntegerInformation(const char *information)
Copy in integer informations.
int problemStatus() const
Number of rows.
Language
Supported languages.
ClpPackedMatrix * scaledMatrix_
Scaled packed matrix.
bool setIntParam(ClpIntParam key, int value)
Set an integer parameter.
const double * getRowObjCoefficients() const
void setDefaultMessageHandler()
Overrides message handler with a default one.
ClpMatrixBase * rowCopy_
Row copy if wanted.
ClpMatrixBase * matrix_
Packed matrix.
void chgRowUpper(const double *rowUpper)
Change row upper bounds.
CoinMessages coinMessages() const
Return Coin messages.
void setRowBounds(int elementIndex, double lower, double upper)
Set a single row lower and upper bound.
The maximum number of iterations Clp can execute in the simplex methods.
unsigned int specialOptions() const
For advanced options 1 - Don't keep changing infeasibility weight 2 - Keep nonLinearCost round solves...
void setSpecialOptions(unsigned int value)
Set an integer parameter.
const double * getColUpper() const
const double * getRowActivity() const
Number of rows.
int getIterationCount() const
Number of rows.
double * columnLower() const
Column Lower.
Tolerance to use in presolve.
bool permanentArrays() const
If we are using maximumRows_ and Columns_.
void setLanguage(CoinMessages::Language language)
Pass in Message handler (not deleted at end)
void passInEventHandler(const ClpEventHandler *eventHandler)
Pass in Event handler (cloned and deleted at end)
int emptyProblem(int *infeasNumber=NULL, double *infeasSum=NULL, bool printMessage=true)
Solve a problem with no elements - return status and dual and primal infeasibilites.
double * ray() const
For advanced users - no need to delete - sign not changed.