Loading...
Searching...
No Matches
ClpInterior Class Reference

This solves LPs using interior point methods. More...

`#include <ClpInterior.hpp>`

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

## Public Member Functions

Constructors and destructor and copy
| ClpInterior ()
| Default constructor.
| ClpInterior (const ClpInterior &)
| Copy constructor.
| ClpInterior (const ClpModel &)
| Copy constructor from model.
| ClpInterior (const ClpModel *wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns, bool dropNames=true, bool dropIntegers=true)
| Subproblem constructor.
ClpInterior & | operator= (const ClpInterior &rhs)
| Assignment operator. This copies the data.
| ~ClpInterior ()
| Destructor.
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).
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.
int | readMps (const char *filename, bool keepNames=false, bool ignoreErrors=false)
| Read an mps file from the given filename.
void | borrowModel (ClpModel &otherModel)
| Borrow model.
void | returnModel (ClpModel &otherModel)
| Return model - updates any scalars.
Functions most useful to user
int | pdco ()
| Pdco algorithm - see ClpPdco.hpp for method.
int | pdco (ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo)
int | primalDual ()
| Primal-Dual Predictor-Corrector barrier.
most useful gets and sets
bool | primalFeasible () const
| If problem is primal feasible.
bool | dualFeasible () const
| If problem is dual feasible.
int | algorithm () const
| Current (or last) algorithm.
void | setAlgorithm (int value)
| Set algorithm.
CoinWorkDouble | sumDualInfeasibilities () const
| Sum of dual infeasibilities.
CoinWorkDouble | sumPrimalInfeasibilities () const
| Sum of primal infeasibilities.
CoinWorkDouble | dualObjective () const
| dualObjective.
CoinWorkDouble | primalObjective () const
| primalObjective.
CoinWorkDouble | diagonalNorm () const
| diagonalNorm
CoinWorkDouble | linearPerturbation () const
| linearPerturbation
void | setLinearPerturbation (CoinWorkDouble value)
CoinWorkDouble | projectionTolerance () const
| projectionTolerance
void | setProjectionTolerance (CoinWorkDouble value)
CoinWorkDouble | diagonalPerturbation () const
| diagonalPerturbation
void | setDiagonalPerturbation (CoinWorkDouble value)
CoinWorkDouble | gamma () const
| gamma
void | setGamma (CoinWorkDouble value)
CoinWorkDouble | delta () const
| delta
void | setDelta (CoinWorkDouble value)
CoinWorkDouble | complementarityGap () const
| ComplementarityGap.
CoinWorkDouble | largestPrimalError () const
| Largest error on Ax-b.
CoinWorkDouble | largestDualError () const
| Largest error on basic duals.
int | maximumBarrierIterations () const
| Maximum iterations.
void | setMaximumBarrierIterations (int value)
void | setCholesky (ClpCholeskyBase *cholesky)
| Set cholesky (and delete present one).
int | numberFixed () const
| Return number fixed to see if worth presolving.
void | fixFixed (bool reallyFix=true)
| fix variables interior says should be.
CoinWorkDouble * | primalR () const
| Primal erturbation vector.
CoinWorkDouble * | dualR () const
| Dual erturbation vector.
public methods
CoinWorkDouble | rawObjectiveValue () const
| Raw objective value (so always minimize).
int | isColumn (int sequence) const
| Returns 1 if sequence indicates column.
int | sequenceWithin (int sequence) const
| Returns sequence number within section.
void | checkSolution ()
| Checks solution.
CoinWorkDouble | quadraticDjs (CoinWorkDouble *djRegion, const CoinWorkDouble *solution, CoinWorkDouble scaleFactor)
| Modifies djs to allow for quadratic.
void | setFixed (int sequence)
| To say a variable is fixed.
void | clearFixed (int sequence)
bool | fixed (int sequence) const
void | setFlagged (int sequence)
| To flag a variable.
void | clearFlagged (int sequence)
bool | flagged (int sequence) const
void | setFixedOrFree (int sequence)
| To say a variable is fixed OR free.
void | clearFixedOrFree (int sequence)
bool | fixedOrFree (int sequence) const
void | setLowerBound (int sequence)
| To say a variable has lower bound.
void | clearLowerBound (int sequence)
bool | lowerBound (int sequence) const
void | setUpperBound (int sequence)
| To say a variable has upper bound.
void | clearUpperBound (int sequence)
bool | upperBound (int sequence) const
void | setFakeLower (int sequence)
| To say a variable has fake lower bound.
void | clearFakeLower (int sequence)
bool | fakeLower (int sequence) const
void | setFakeUpper (int sequence)
| To say a variable has fake upper bound.
void | clearFakeUpper (int sequence)
bool | fakeUpper (int sequence) const
Public Member Functions inherited from ClpModel
| 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.
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
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)
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.
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`.
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
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.

## Protected Member Functions

protected methods
void | gutsOfDelete ()
| Does most of deletion.
void | gutsOfCopy (const ClpInterior &rhs)
| Does most of copying.
bool | createWorkingData ()
| Returns true if data looks okay, false if not.
void | deleteWorkingData ()
bool | sanityCheck ()
| Sanity check on input rim data.
int | housekeeping ()
| This does housekeeping.
Protected Member Functions inherited from ClpModel
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.

## Friends

void | ClpInteriorUnitTest (const std::string &mpsDir, const std::string &netlibDir)
| A function that tests the methods in the ClpInterior class.

## data. Many arrays have a row part and a column part.

There is a single array with both - columns then rows and then normally two arrays pointing to rows and columns. The single array is the owner of memory
CoinWorkDouble | largestPrimalError_
| Largest error on Ax-b.
CoinWorkDouble | largestDualError_
| Largest error on basic duals.
CoinWorkDouble | sumDualInfeasibilities_
| Sum of dual infeasibilities.
CoinWorkDouble | sumPrimalInfeasibilities_
| Sum of primal infeasibilities.
CoinWorkDouble | worstComplementarity_
| Worst complementarity.
CoinWorkDouble * | lower_
| Working copy of lower bounds (Owner of arrays below).
CoinWorkDouble * | rowLowerWork_
| Row lower bounds - working copy.
CoinWorkDouble * | columnLowerWork_
| Column lower bounds - working copy.
CoinWorkDouble * | upper_
| Working copy of upper bounds (Owner of arrays below).
CoinWorkDouble * | rowUpperWork_
| Row upper bounds - working copy.
CoinWorkDouble * | columnUpperWork_
| Column upper bounds - working copy.
CoinWorkDouble * | cost_
| Working copy of objective.
ClpLsqr * | lsqrObject_
| Pointer to Lsqr object.
ClpPdcoBase * | pdcoStuff_
| Pointer to stuff.
CoinWorkDouble | mu_
| Below here is standard barrier stuff mu.
CoinWorkDouble | objectiveNorm_
| objectiveNorm.
CoinWorkDouble | rhsNorm_
| rhsNorm.
CoinWorkDouble | solutionNorm_
| solutionNorm.
CoinWorkDouble | dualObjective_
| dualObjective.
CoinWorkDouble | primalObjective_
| primalObjective.
CoinWorkDouble | diagonalNorm_
| diagonalNorm.
CoinWorkDouble | stepLength_
| stepLength
CoinWorkDouble | linearPerturbation_
| linearPerturbation
CoinWorkDouble | diagonalPerturbation_
| diagonalPerturbation
CoinWorkDouble | gamma_
CoinWorkDouble | delta_
CoinWorkDouble | targetGap_
| targetGap
CoinWorkDouble | projectionTolerance_
| projectionTolerance
CoinWorkDouble | maximumRHSError_
| maximumRHSError. maximum Ax
CoinWorkDouble | maximumBoundInfeasibility_
| maximumBoundInfeasibility.
CoinWorkDouble | maximumDualError_
| maximumDualError.
CoinWorkDouble | diagonalScaleFactor_
| diagonalScaleFactor.
CoinWorkDouble | scaleFactor_
| scaleFactor. For scaling objective
CoinWorkDouble | actualPrimalStep_
| actualPrimalStep
CoinWorkDouble | actualDualStep_
| actualDualStep
CoinWorkDouble | smallestInfeasibility_
| smallestInfeasibility
CoinWorkDouble | historyInfeasibility_ [LENGTH_HISTORY]
CoinWorkDouble | complementarityGap_
| complementarityGap.
CoinWorkDouble | baseObjectiveNorm_
| baseObjectiveNorm
CoinWorkDouble | worstDirectionAccuracy_
| worstDirectionAccuracy
CoinWorkDouble | maximumRHSChange_
| maximumRHSChange
CoinWorkDouble * | errorRegion_
| errorRegion. i.e. Ax
CoinWorkDouble * | rhsFixRegion_
| rhsFixRegion.
CoinWorkDouble * | upperSlack_
| upperSlack
CoinWorkDouble * | lowerSlack_
| lowerSlack
CoinWorkDouble * | diagonal_
| diagonal
CoinWorkDouble * | solution_
| solution
CoinWorkDouble * | workArray_
| work array
CoinWorkDouble * | deltaX_
| delta X
CoinWorkDouble * | deltaY_
| delta Y
CoinWorkDouble * | deltaZ_
| deltaZ.
CoinWorkDouble * | deltaW_
| deltaW.
CoinWorkDouble * | deltaSU_
| deltaS.
CoinWorkDouble * | deltaSL_
CoinWorkDouble * | primalR_
| Primal regularization array.
CoinWorkDouble * | dualR_
| Dual regularization array.
CoinWorkDouble * | rhsB_
| rhs B
CoinWorkDouble * | rhsU_
| rhsU.
CoinWorkDouble * | rhsL_
| rhsL.
CoinWorkDouble * | rhsZ_
| rhsZ.
CoinWorkDouble * | rhsW_
| rhsW.
CoinWorkDouble * | rhsC_
| rhs C
CoinWorkDouble * | zVec_
| zVec
CoinWorkDouble * | wVec_
| wVec
ClpCholeskyBase * | cholesky_
| cholesky.
int | numberComplementarityPairs_
| numberComplementarityPairs i.e. ones with lower and/or upper bounds (not fixed)
int | numberComplementarityItems_
| numberComplementarityItems_ i.e. number of active bounds
int | maximumBarrierIterations_
| Maximum iterations.
bool | gonePrimalFeasible_
| gonePrimalFeasible.
bool | goneDualFeasible_
| goneDualFeasible.
int | algorithm_
| Which algorithm being used.
CoinWorkDouble | xsize_
CoinWorkDouble | zsize_
CoinWorkDouble * | rhs_
| Rhs.
CoinWorkDouble * | x_
CoinWorkDouble * | y_
CoinWorkDouble * | dj_

## Additional Inherited Members

Protected Attributes inherited from ClpModel
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.

## Detailed Description

This solves LPs using interior point methods.

It inherits from ClpModel and all its arrays are created at algorithm time.

Definition at line 72 of file ClpInterior.hpp.

## Constructor & Destructor Documentation

## ClpInterior() [1/4]

ClpInterior::ClpInterior | ( |  | ) |

Default constructor.

## ClpInterior() [2/4]

ClpInterior::ClpInterior | ( | const ClpInterior & |  | ) |

Copy constructor.

## ClpInterior() [3/4]

ClpInterior::ClpInterior | ( | const ClpModel & |  | ) |

Copy constructor from model.

## ClpInterior() [4/4]

ClpInterior::ClpInterior | ( | 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

## ~ClpInterior()

ClpInterior::~ClpInterior | ( |  | ) |

Destructor.

## Member Function Documentation

## operator=()

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

Assignment operator. This copies the data.

## loadProblem() [1/4]

void ClpInterior::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/4]

void ClpInterior::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/4]

void ClpInterior::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/4]

void ClpInterior::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.

## readMps()

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

Read an mps file from the given filename.

## borrowModel()

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

Borrow model.

This is so we dont 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. This is same as ClpModel one.

## returnModel()

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

Return model - updates any scalars.

## pdco() [1/2]

int ClpInterior::pdco | ( |  | ) |

Pdco algorithm - see ClpPdco.hpp for method.

## pdco() [2/2]

int ClpInterior::pdco | ( | ClpPdcoBase * | stuff,
|  | Options & | options,
|  | Info & | info,
|  | Outfo & | outfo )

## primalDual()

int ClpInterior::primalDual | ( |  | ) |

Primal-Dual Predictor-Corrector barrier.

## primalFeasible()

bool ClpInterior::primalFeasible | ( |  | ) | const

inline

If problem is primal feasible.

Definition at line 164 of file ClpInterior.hpp.

## dualFeasible()

bool ClpInterior::dualFeasible | ( |  | ) | const

inline

If problem is dual feasible.

Definition at line 169 of file ClpInterior.hpp.

## algorithm()

int ClpInterior::algorithm | ( |  | ) | const

inline

Current (or last) algorithm.

Definition at line 174 of file ClpInterior.hpp.

## setAlgorithm()

void ClpInterior::setAlgorithm | ( | int | value | ) |

inline

Set algorithm.

Definition at line 179 of file ClpInterior.hpp.

## sumDualInfeasibilities()

CoinWorkDouble ClpInterior::sumDualInfeasibilities | ( |  | ) | const

inline

Sum of dual infeasibilities.

Definition at line 184 of file ClpInterior.hpp.

## sumPrimalInfeasibilities()

CoinWorkDouble ClpInterior::sumPrimalInfeasibilities | ( |  | ) | const

inline

Sum of primal infeasibilities.

Definition at line 189 of file ClpInterior.hpp.

## dualObjective()

CoinWorkDouble ClpInterior::dualObjective | ( |  | ) | const

inline

dualObjective.

Definition at line 194 of file ClpInterior.hpp.

## primalObjective()

CoinWorkDouble ClpInterior::primalObjective | ( |  | ) | const

inline

primalObjective.

Definition at line 199 of file ClpInterior.hpp.

## diagonalNorm()

CoinWorkDouble ClpInterior::diagonalNorm | ( |  | ) | const

inline

diagonalNorm

Definition at line 204 of file ClpInterior.hpp.

## linearPerturbation()

CoinWorkDouble ClpInterior::linearPerturbation | ( |  | ) | const

inline

linearPerturbation

Definition at line 209 of file ClpInterior.hpp.

## setLinearPerturbation()

void ClpInterior::setLinearPerturbation | ( | CoinWorkDouble | value | ) |

inline

Definition at line 213 of file ClpInterior.hpp.

## projectionTolerance()

CoinWorkDouble ClpInterior::projectionTolerance | ( |  | ) | const

inline

projectionTolerance

Definition at line 218 of file ClpInterior.hpp.

## setProjectionTolerance()

void ClpInterior::setProjectionTolerance | ( | CoinWorkDouble | value | ) |

inline

Definition at line 222 of file ClpInterior.hpp.

## diagonalPerturbation()

CoinWorkDouble ClpInterior::diagonalPerturbation | ( |  | ) | const

inline

diagonalPerturbation

Definition at line 227 of file ClpInterior.hpp.

## setDiagonalPerturbation()

void ClpInterior::setDiagonalPerturbation | ( | CoinWorkDouble | value | ) |

inline

Definition at line 231 of file ClpInterior.hpp.

## gamma()

CoinWorkDouble ClpInterior::gamma | ( |  | ) | const

inline

gamma

Definition at line 236 of file ClpInterior.hpp.

## setGamma()

void ClpInterior::setGamma | ( | CoinWorkDouble | value | ) |

inline

Definition at line 240 of file ClpInterior.hpp.

## delta()

CoinWorkDouble ClpInterior::delta | ( |  | ) | const

inline

delta

Definition at line 245 of file ClpInterior.hpp.

## setDelta()

void ClpInterior::setDelta | ( | CoinWorkDouble | value | ) |

inline

Definition at line 249 of file ClpInterior.hpp.

## complementarityGap()

CoinWorkDouble ClpInterior::complementarityGap | ( |  | ) | const

inline

ComplementarityGap.

Definition at line 254 of file ClpInterior.hpp.

## largestPrimalError()

CoinWorkDouble ClpInterior::largestPrimalError | ( |  | ) | const

inline

Largest error on Ax-b.

Definition at line 263 of file ClpInterior.hpp.

## largestDualError()

CoinWorkDouble ClpInterior::largestDualError | ( |  | ) | const

inline

Largest error on basic duals.

Definition at line 268 of file ClpInterior.hpp.

## maximumBarrierIterations()

int ClpInterior::maximumBarrierIterations | ( |  | ) | const

inline

Maximum iterations.

Definition at line 273 of file ClpInterior.hpp.

## setMaximumBarrierIterations()

void ClpInterior::setMaximumBarrierIterations | ( | int | value | ) |

inline

Definition at line 277 of file ClpInterior.hpp.

## setCholesky()

void ClpInterior::setCholesky | ( | ClpCholeskyBase * | cholesky | ) |

Set cholesky (and delete present one).

## numberFixed()

int ClpInterior::numberFixed | ( |  | ) | const

Return number fixed to see if worth presolving.

## fixFixed()

void ClpInterior::fixFixed | ( | bool | reallyFix = true | ) |

fix variables interior says should be.

If reallyFix false then just set values to exact bounds

## primalR()

CoinWorkDouble * ClpInterior::primalR | ( |  | ) | const

inline

Primal erturbation vector.

Definition at line 289 of file ClpInterior.hpp.

## dualR()

CoinWorkDouble * ClpInterior::dualR | ( |  | ) | const

inline

Dual erturbation vector.

Definition at line 294 of file ClpInterior.hpp.

## gutsOfDelete()

void ClpInterior::gutsOfDelete | ( |  | ) |

protected

Does most of deletion.

## gutsOfCopy()

void ClpInterior::gutsOfCopy | ( | const ClpInterior & | rhs | ) |

protected

Does most of copying.

## createWorkingData()

bool ClpInterior::createWorkingData | ( |  | ) |

protected

Returns true if data looks okay, false if not.

## deleteWorkingData()

void ClpInterior::deleteWorkingData | ( |  | ) |

protected

## sanityCheck()

bool ClpInterior::sanityCheck | ( |  | ) |

protected

Sanity check on input rim data.

## housekeeping()

int ClpInterior::housekeeping | ( |  | ) |

protected

This does housekeeping.

## rawObjectiveValue()

CoinWorkDouble ClpInterior::rawObjectiveValue | ( |  | ) | const

inline

Raw objective value (so always minimize).

Definition at line 319 of file ClpInterior.hpp.

## isColumn()

int ClpInterior::isColumn | ( | int | sequence | ) | const

inline

Returns 1 if sequence indicates column.

Definition at line 324 of file ClpInterior.hpp.

## sequenceWithin()

int ClpInterior::sequenceWithin | ( | int | sequence | ) | const

inline

Returns sequence number within section.

Definition at line 329 of file ClpInterior.hpp.

## checkSolution()

void ClpInterior::checkSolution | ( |  | ) |

Checks solution.

## quadraticDjs()

CoinWorkDouble ClpInterior::quadraticDjs | ( | CoinWorkDouble * | djRegion,
|  | const CoinWorkDouble * | solution,
|  | CoinWorkDouble | scaleFactor )

Modifies djs to allow for quadratic.

returns quadratic offset

## setFixed()

void ClpInterior::setFixed | ( | int | sequence | ) |

inline

To say a variable is fixed.

Definition at line 341 of file ClpInterior.hpp.

## clearFixed()

void ClpInterior::clearFixed | ( | int | sequence | ) |

inline

Definition at line 345 of file ClpInterior.hpp.

## fixed()

bool ClpInterior::fixed | ( | int | sequence | ) | const

inline

Definition at line 349 of file ClpInterior.hpp.

## setFlagged()

void ClpInterior::setFlagged | ( | int | sequence | ) |

inline

To flag a variable.

Definition at line 355 of file ClpInterior.hpp.

## clearFlagged()

void ClpInterior::clearFlagged | ( | int | sequence | ) |

inline

Definition at line 359 of file ClpInterior.hpp.

## flagged()

bool ClpInterior::flagged | ( | int | sequence | ) | const

inline

Definition at line 363 of file ClpInterior.hpp.

## setFixedOrFree()

void ClpInterior::setFixedOrFree | ( | int | sequence | ) |

inline

To say a variable is fixed OR free.

Definition at line 369 of file ClpInterior.hpp.

## clearFixedOrFree()

void ClpInterior::clearFixedOrFree | ( | int | sequence | ) |

inline

Definition at line 373 of file ClpInterior.hpp.

## fixedOrFree()

bool ClpInterior::fixedOrFree | ( | int | sequence | ) | const

inline

Definition at line 377 of file ClpInterior.hpp.

## setLowerBound()

void ClpInterior::setLowerBound | ( | int | sequence | ) |

inline

To say a variable has lower bound.

Definition at line 383 of file ClpInterior.hpp.

## clearLowerBound()

void ClpInterior::clearLowerBound | ( | int | sequence | ) |

inline

Definition at line 387 of file ClpInterior.hpp.

## lowerBound()

bool ClpInterior::lowerBound | ( | int | sequence | ) | const

inline

Definition at line 391 of file ClpInterior.hpp.

## setUpperBound()

void ClpInterior::setUpperBound | ( | int | sequence | ) |

inline

To say a variable has upper bound.

Definition at line 397 of file ClpInterior.hpp.

## clearUpperBound()

void ClpInterior::clearUpperBound | ( | int | sequence | ) |

inline

Definition at line 401 of file ClpInterior.hpp.

## upperBound()

bool ClpInterior::upperBound | ( | int | sequence | ) | const

inline

Definition at line 405 of file ClpInterior.hpp.

## setFakeLower()

void ClpInterior::setFakeLower | ( | int | sequence | ) |

inline

To say a variable has fake lower bound.

Definition at line 411 of file ClpInterior.hpp.

## clearFakeLower()

void ClpInterior::clearFakeLower | ( | int | sequence | ) |

inline

Definition at line 415 of file ClpInterior.hpp.

## fakeLower()

bool ClpInterior::fakeLower | ( | int | sequence | ) | const

inline

Definition at line 419 of file ClpInterior.hpp.

## setFakeUpper()

void ClpInterior::setFakeUpper | ( | int | sequence | ) |

inline

To say a variable has fake upper bound.

Definition at line 425 of file ClpInterior.hpp.

## clearFakeUpper()

void ClpInterior::clearFakeUpper | ( | int | sequence | ) |

inline

Definition at line 429 of file ClpInterior.hpp.

## fakeUpper()

bool ClpInterior::fakeUpper | ( | int | sequence | ) | const

inline

Definition at line 433 of file ClpInterior.hpp.

## Friends And Related Symbol Documentation

## ClpInteriorUnitTest

void ClpInteriorUnitTest | ( | const std::string & | mpsDir,
|  | const std::string & | netlibDir )

friend

A function that tests the methods in the ClpInterior class.

The only reason for it not to be a member method is that this way it doesn't have to be compiled into the library. And that's a gain, because the library should be compiled with optimization on, but this method should be compiled with debugging.

It also does some testing of ClpFactorization class

## Member Data Documentation

## largestPrimalError_

CoinWorkDouble ClpInterior::largestPrimalError_

protected

Largest error on Ax-b.

Definition at line 448 of file ClpInterior.hpp.

## largestDualError_

CoinWorkDouble ClpInterior::largestDualError_

protected

Largest error on basic duals.

Definition at line 450 of file ClpInterior.hpp.

## sumDualInfeasibilities_

CoinWorkDouble ClpInterior::sumDualInfeasibilities_

protected

Sum of dual infeasibilities.

Definition at line 452 of file ClpInterior.hpp.

## sumPrimalInfeasibilities_

CoinWorkDouble ClpInterior::sumPrimalInfeasibilities_

protected

Sum of primal infeasibilities.

Definition at line 454 of file ClpInterior.hpp.

## worstComplementarity_

CoinWorkDouble ClpInterior::worstComplementarity_

protected

Worst complementarity.

Definition at line 456 of file ClpInterior.hpp.

## xsize_

CoinWorkDouble ClpInterior::xsize_

Definition at line 459 of file ClpInterior.hpp.

## zsize_

CoinWorkDouble ClpInterior::zsize_

Definition at line 460 of file ClpInterior.hpp.

## lower_

CoinWorkDouble* ClpInterior::lower_

protected

Working copy of lower bounds (Owner of arrays below).

Definition at line 464 of file ClpInterior.hpp.

## rowLowerWork_

CoinWorkDouble* ClpInterior::rowLowerWork_

protected

Row lower bounds - working copy.

Definition at line 466 of file ClpInterior.hpp.

## columnLowerWork_

CoinWorkDouble* ClpInterior::columnLowerWork_

protected

Column lower bounds - working copy.

Definition at line 468 of file ClpInterior.hpp.

## upper_

CoinWorkDouble* ClpInterior::upper_

protected

Working copy of upper bounds (Owner of arrays below).

Definition at line 470 of file ClpInterior.hpp.

## rowUpperWork_

CoinWorkDouble* ClpInterior::rowUpperWork_

protected

Row upper bounds - working copy.

Definition at line 472 of file ClpInterior.hpp.

## columnUpperWork_

CoinWorkDouble* ClpInterior::columnUpperWork_

protected

Column upper bounds - working copy.

Definition at line 474 of file ClpInterior.hpp.

## cost_

CoinWorkDouble* ClpInterior::cost_

protected

Working copy of objective.

Definition at line 476 of file ClpInterior.hpp.

## rhs_

CoinWorkDouble* ClpInterior::rhs_

Rhs.

Definition at line 480 of file ClpInterior.hpp.

## x_

CoinWorkDouble* ClpInterior::x_

Definition at line 481 of file ClpInterior.hpp.

## y_

CoinWorkDouble* ClpInterior::y_

Definition at line 482 of file ClpInterior.hpp.

## dj_

CoinWorkDouble* ClpInterior::dj_

Definition at line 483 of file ClpInterior.hpp.

## lsqrObject_

ClpLsqr* ClpInterior::lsqrObject_

protected

Pointer to Lsqr object.

Definition at line 487 of file ClpInterior.hpp.

## pdcoStuff_

ClpPdcoBase* ClpInterior::pdcoStuff_

protected

Pointer to stuff.

Definition at line 489 of file ClpInterior.hpp.

## mu_

CoinWorkDouble ClpInterior::mu_

protected

Below here is standard barrier stuff mu.

Definition at line 492 of file ClpInterior.hpp.

## objectiveNorm_

CoinWorkDouble ClpInterior::objectiveNorm_

protected

objectiveNorm.

Definition at line 494 of file ClpInterior.hpp.

## rhsNorm_

CoinWorkDouble ClpInterior::rhsNorm_

protected

rhsNorm.

Definition at line 496 of file ClpInterior.hpp.

## solutionNorm_

CoinWorkDouble ClpInterior::solutionNorm_

protected

solutionNorm.

Definition at line 498 of file ClpInterior.hpp.

## dualObjective_

CoinWorkDouble ClpInterior::dualObjective_

protected

dualObjective.

Definition at line 500 of file ClpInterior.hpp.

## primalObjective_

CoinWorkDouble ClpInterior::primalObjective_

protected

primalObjective.

Definition at line 502 of file ClpInterior.hpp.

## diagonalNorm_

CoinWorkDouble ClpInterior::diagonalNorm_

protected

diagonalNorm.

Definition at line 504 of file ClpInterior.hpp.

## stepLength_

CoinWorkDouble ClpInterior::stepLength_

protected

stepLength

Definition at line 506 of file ClpInterior.hpp.

## linearPerturbation_

CoinWorkDouble ClpInterior::linearPerturbation_

protected

linearPerturbation

Definition at line 508 of file ClpInterior.hpp.

## diagonalPerturbation_

CoinWorkDouble ClpInterior::diagonalPerturbation_

protected

diagonalPerturbation

Definition at line 510 of file ClpInterior.hpp.

## gamma_

CoinWorkDouble ClpInterior::gamma_

protected

Definition at line 512 of file ClpInterior.hpp.

## delta_

CoinWorkDouble ClpInterior::delta_

protected

Definition at line 514 of file ClpInterior.hpp.

## targetGap_

CoinWorkDouble ClpInterior::targetGap_

protected

targetGap

Definition at line 516 of file ClpInterior.hpp.

## projectionTolerance_

CoinWorkDouble ClpInterior::projectionTolerance_

protected

projectionTolerance

Definition at line 518 of file ClpInterior.hpp.

## maximumRHSError_

CoinWorkDouble ClpInterior::maximumRHSError_

protected

maximumRHSError. maximum Ax

Definition at line 520 of file ClpInterior.hpp.

## maximumBoundInfeasibility_

CoinWorkDouble ClpInterior::maximumBoundInfeasibility_

protected

maximumBoundInfeasibility.

Definition at line 522 of file ClpInterior.hpp.

## maximumDualError_

CoinWorkDouble ClpInterior::maximumDualError_

protected

maximumDualError.

Definition at line 524 of file ClpInterior.hpp.

## diagonalScaleFactor_

CoinWorkDouble ClpInterior::diagonalScaleFactor_

protected

diagonalScaleFactor.

Definition at line 526 of file ClpInterior.hpp.

## scaleFactor_

CoinWorkDouble ClpInterior::scaleFactor_

protected

scaleFactor. For scaling objective

Definition at line 528 of file ClpInterior.hpp.

## actualPrimalStep_

CoinWorkDouble ClpInterior::actualPrimalStep_

protected

actualPrimalStep

Definition at line 530 of file ClpInterior.hpp.

## actualDualStep_

CoinWorkDouble ClpInterior::actualDualStep_

protected

actualDualStep

Definition at line 532 of file ClpInterior.hpp.

## smallestInfeasibility_

CoinWorkDouble ClpInterior::smallestInfeasibility_

protected

smallestInfeasibility

Definition at line 534 of file ClpInterior.hpp.

## historyInfeasibility_

CoinWorkDouble ClpInterior::historyInfeasibility_[LENGTH_HISTORY]

protected

Definition at line 537 of file ClpInterior.hpp.

## complementarityGap_

CoinWorkDouble ClpInterior::complementarityGap_

protected

complementarityGap.

Definition at line 539 of file ClpInterior.hpp.

## baseObjectiveNorm_

CoinWorkDouble ClpInterior::baseObjectiveNorm_

protected

baseObjectiveNorm

Definition at line 541 of file ClpInterior.hpp.

## worstDirectionAccuracy_

CoinWorkDouble ClpInterior::worstDirectionAccuracy_

protected

worstDirectionAccuracy

Definition at line 543 of file ClpInterior.hpp.

## maximumRHSChange_

CoinWorkDouble ClpInterior::maximumRHSChange_

protected

maximumRHSChange

Definition at line 545 of file ClpInterior.hpp.

## errorRegion_

CoinWorkDouble* ClpInterior::errorRegion_

protected

errorRegion. i.e. Ax

Definition at line 547 of file ClpInterior.hpp.

## rhsFixRegion_

CoinWorkDouble* ClpInterior::rhsFixRegion_

protected

rhsFixRegion.

Definition at line 549 of file ClpInterior.hpp.

## upperSlack_

CoinWorkDouble* ClpInterior::upperSlack_

protected

upperSlack

Definition at line 551 of file ClpInterior.hpp.

## lowerSlack_

CoinWorkDouble* ClpInterior::lowerSlack_

protected

lowerSlack

Definition at line 553 of file ClpInterior.hpp.

## diagonal_

CoinWorkDouble* ClpInterior::diagonal_

protected

diagonal

Definition at line 555 of file ClpInterior.hpp.

## solution_

CoinWorkDouble* ClpInterior::solution_

protected

solution

Definition at line 557 of file ClpInterior.hpp.

## workArray_

CoinWorkDouble* ClpInterior::workArray_

protected

work array

Definition at line 559 of file ClpInterior.hpp.

## deltaX_

CoinWorkDouble* ClpInterior::deltaX_

protected

delta X

Definition at line 561 of file ClpInterior.hpp.

## deltaY_

CoinWorkDouble* ClpInterior::deltaY_

protected

delta Y

Definition at line 563 of file ClpInterior.hpp.

## deltaZ_

CoinWorkDouble* ClpInterior::deltaZ_

protected

deltaZ.

Definition at line 565 of file ClpInterior.hpp.

## deltaW_

CoinWorkDouble* ClpInterior::deltaW_

protected

deltaW.

Definition at line 567 of file ClpInterior.hpp.

## deltaSU_

CoinWorkDouble* ClpInterior::deltaSU_

protected

deltaS.

Definition at line 569 of file ClpInterior.hpp.

## deltaSL_

CoinWorkDouble* ClpInterior::deltaSL_

protected

Definition at line 570 of file ClpInterior.hpp.

## primalR_

CoinWorkDouble* ClpInterior::primalR_

protected

Primal regularization array.

Definition at line 572 of file ClpInterior.hpp.

## dualR_

CoinWorkDouble* ClpInterior::dualR_

protected

Dual regularization array.

Definition at line 574 of file ClpInterior.hpp.

## rhsB_

CoinWorkDouble* ClpInterior::rhsB_

protected

rhs B

Definition at line 576 of file ClpInterior.hpp.

## rhsU_

CoinWorkDouble* ClpInterior::rhsU_

protected

rhsU.

Definition at line 578 of file ClpInterior.hpp.

## rhsL_

CoinWorkDouble* ClpInterior::rhsL_

protected

rhsL.

Definition at line 580 of file ClpInterior.hpp.

## rhsZ_

CoinWorkDouble* ClpInterior::rhsZ_

protected

rhsZ.

Definition at line 582 of file ClpInterior.hpp.

## rhsW_

CoinWorkDouble* ClpInterior::rhsW_

protected

rhsW.

Definition at line 584 of file ClpInterior.hpp.

## rhsC_

CoinWorkDouble* ClpInterior::rhsC_

protected

rhs C

Definition at line 586 of file ClpInterior.hpp.

## zVec_

CoinWorkDouble* ClpInterior::zVec_

protected

zVec

Definition at line 588 of file ClpInterior.hpp.

## wVec_

CoinWorkDouble* ClpInterior::wVec_

protected

wVec

Definition at line 590 of file ClpInterior.hpp.

## cholesky_

ClpCholeskyBase* ClpInterior::cholesky_

protected

cholesky.

Definition at line 592 of file ClpInterior.hpp.

## numberComplementarityPairs_

int ClpInterior::numberComplementarityPairs_

protected

numberComplementarityPairs i.e. ones with lower and/or upper bounds (not fixed)

Definition at line 594 of file ClpInterior.hpp.

## numberComplementarityItems_

int ClpInterior::numberComplementarityItems_

protected

numberComplementarityItems_ i.e. number of active bounds

Definition at line 596 of file ClpInterior.hpp.

## maximumBarrierIterations_

int ClpInterior::maximumBarrierIterations_

protected

Maximum iterations.

Definition at line 598 of file ClpInterior.hpp.

## gonePrimalFeasible_

bool ClpInterior::gonePrimalFeasible_

protected

gonePrimalFeasible.

Definition at line 600 of file ClpInterior.hpp.

## goneDualFeasible_

bool ClpInterior::goneDualFeasible_

protected

goneDualFeasible.

Definition at line 602 of file ClpInterior.hpp.

## algorithm_

int ClpInterior::algorithm_

protected

Which algorithm being used.

Definition at line 604 of file ClpInterior.hpp.

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

- Clp/src/ClpInterior.hpp