Clp  1.17.8
Friends | List of all members
ClpInterior Class Reference

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

#include <ClpInterior.hpp>

+ Inheritance diagram for ClpInterior:
+ Collaboration diagram for ClpInterior:

Public Member Functions

Constructors and destructor and copy
 ClpInterior ()
 Default constructor. More...
 
 ClpInterior (const ClpInterior &)
 Copy constructor. More...
 
 ClpInterior (const ClpModel &)
 Copy constructor from model. More...
 
 ClpInterior (const ClpModel *wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns, bool dropNames=true, bool dropIntegers=true)
 Subproblem constructor. More...
 
ClpInterioroperator= (const ClpInterior &rhs)
 Assignment operator. This copies the data. More...
 
 ~ClpInterior ()
 Destructor. More...
 
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). More...
 
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). More...
 
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. More...
 
int readMps (const char *filename, bool keepNames=false, bool ignoreErrors=false)
 Read an mps file from the given filename. More...
 
void borrowModel (ClpModel &otherModel)
 Borrow model. More...
 
void returnModel (ClpModel &otherModel)
 Return model - updates any scalars. More...
 
Functions most useful to user
int pdco ()
 Pdco algorithm - see ClpPdco.hpp for method. More...
 
int pdco (ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo)
 
int primalDual ()
 Primal-Dual Predictor-Corrector barrier. More...
 
most useful gets and sets
bool primalFeasible () const
 If problem is primal feasible. More...
 
bool dualFeasible () const
 If problem is dual feasible. More...
 
int algorithm () const
 Current (or last) algorithm. More...
 
void setAlgorithm (int value)
 Set algorithm. More...
 
CoinWorkDouble sumDualInfeasibilities () const
 Sum of dual infeasibilities. More...
 
CoinWorkDouble sumPrimalInfeasibilities () const
 Sum of primal infeasibilities. More...
 
CoinWorkDouble dualObjective () const
 dualObjective. More...
 
CoinWorkDouble primalObjective () const
 primalObjective. More...
 
CoinWorkDouble diagonalNorm () const
 diagonalNorm More...
 
CoinWorkDouble linearPerturbation () const
 linearPerturbation More...
 
void setLinearPerturbation (CoinWorkDouble value)
 
CoinWorkDouble projectionTolerance () const
 projectionTolerance More...
 
void setProjectionTolerance (CoinWorkDouble value)
 
CoinWorkDouble diagonalPerturbation () const
 diagonalPerturbation More...
 
void setDiagonalPerturbation (CoinWorkDouble value)
 
CoinWorkDouble gamma () const
 gamma More...
 
void setGamma (CoinWorkDouble value)
 
CoinWorkDouble delta () const
 delta More...
 
void setDelta (CoinWorkDouble value)
 
CoinWorkDouble complementarityGap () const
 ComplementarityGap. More...
 
CoinWorkDouble largestPrimalError () const
 Largest error on Ax-b. More...
 
CoinWorkDouble largestDualError () const
 Largest error on basic duals. More...
 
int maximumBarrierIterations () const
 Maximum iterations. More...
 
void setMaximumBarrierIterations (int value)
 
void setCholesky (ClpCholeskyBase *cholesky)
 Set cholesky (and delete present one) More...
 
int numberFixed () const
 Return number fixed to see if worth presolving. More...
 
void fixFixed (bool reallyFix=true)
 fix variables interior says should be. More...
 
CoinWorkDouble * primalR () const
 Primal erturbation vector. More...
 
CoinWorkDouble * dualR () const
 Dual erturbation vector. More...
 
public methods
CoinWorkDouble rawObjectiveValue () const
 Raw objective value (so always minimize) More...
 
int isColumn (int sequence) const
 Returns 1 if sequence indicates column. More...
 
int sequenceWithin (int sequence) const
 Returns sequence number within section. More...
 
void checkSolution ()
 Checks solution. More...
 
CoinWorkDouble quadraticDjs (CoinWorkDouble *djRegion, const CoinWorkDouble *solution, CoinWorkDouble scaleFactor)
 Modifies djs to allow for quadratic. More...
 
void setFixed (int sequence)
 To say a variable is fixed. More...
 
void clearFixed (int sequence)
 
bool fixed (int sequence) const
 
void setFlagged (int sequence)
 To flag a variable. More...
 
void clearFlagged (int sequence)
 
bool flagged (int sequence) const
 
void setFixedOrFree (int sequence)
 To say a variable is fixed OR free. More...
 
void clearFixedOrFree (int sequence)
 
bool fixedOrFree (int sequence) const
 
void setLowerBound (int sequence)
 To say a variable has lower bound. More...
 
void clearLowerBound (int sequence)
 
bool lowerBound (int sequence) const
 
void setUpperBound (int sequence)
 To say a variable has upper bound. More...
 
void clearUpperBound (int sequence)
 
bool upperBound (int sequence) const
 
void setFakeLower (int sequence)
 To say a variable has fake lower bound. More...
 
void clearFakeLower (int sequence)
 
bool fakeLower (int sequence) const
 
void setFakeUpper (int sequence)
 To say a variable has fake upper bound. More...
 
void clearFakeUpper (int sequence)
 
bool fakeUpper (int sequence) const
 
- Public Member Functions inherited from ClpModel
 ClpModel (bool emptyMessages=false)
 Default constructor. More...
 
 ClpModel (const ClpModel &rhs, int scalingMode=-1)
 Copy constructor. More...
 
ClpModeloperator= (const ClpModel &rhs)
 Assignment operator. This copies the data. More...
 
 ClpModel (const ClpModel *wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns, bool dropNames=true, bool dropIntegers=true)
 Subproblem constructor. More...
 
 ~ClpModel ()
 Destructor. More...
 
int numberRows () const
 Number of rows. More...
 
int getNumRows () const
 
int getNumCols () const
 Number of columns. More...
 
int numberColumns () const
 
double primalTolerance () const
 Primal tolerance to use. More...
 
void setPrimalTolerance (double value)
 
double dualTolerance () const
 Dual tolerance to use. More...
 
void setDualTolerance (double value)
 
double primalObjectiveLimit () const
 Primal objective limit. More...
 
void setPrimalObjectiveLimit (double value)
 
double dualObjectiveLimit () const
 Dual objective limit. More...
 
void setDualObjectiveLimit (double value)
 
double objectiveOffset () const
 Objective offset. More...
 
void setObjectiveOffset (double value)
 
double presolveTolerance () const
 Presolve tolerance to use. More...
 
const std::string & problemName () const
 
int numberIterations () const
 Number of iterations. More...
 
int getIterationCount () const
 
void setNumberIterations (int numberIterationsNew)
 
int solveType () const
 Solve type - 1 simplex, 2 simplex interface, 3 Interior. More...
 
void setSolveType (int type)
 
int maximumIterations () const
 Maximum number of iterations. More...
 
void setMaximumIterations (int value)
 
double maximumSeconds () const
 Maximum time in seconds (from when set called) More...
 
void setMaximumSeconds (double value)
 
void setMaximumWallSeconds (double value)
 
bool hitMaximumIterations () const
 Returns true if hit maximum iterations (or time) More...
 
int status () const
 Status of problem: -1 - unknown e.g. More...
 
int problemStatus () const
 
void setProblemStatus (int problemStatusNew)
 Set problem status. More...
 
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. More...
 
void setSecondaryStatus (int newstatus)
 
bool isAbandoned () const
 Are there a numerical difficulties? More...
 
bool isProvenOptimal () const
 Is optimality proven? More...
 
bool isProvenPrimalInfeasible () const
 Is primal infeasiblity proven? More...
 
bool isProvenDualInfeasible () const
 Is dual infeasiblity proven? More...
 
bool isPrimalObjectiveLimitReached () const
 Is the given primal objective limit reached? More...
 
bool isDualObjectiveLimitReached () const
 Is the given dual objective limit reached? More...
 
bool isIterationLimitReached () const
 Iteration limit reached? More...
 
double optimizationDirection () const
 Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore. More...
 
double getObjSense () const
 
void setOptimizationDirection (double value)
 
double * primalRowSolution () const
 Primal row solution. More...
 
const double * getRowActivity () const
 
double * primalColumnSolution () const
 Primal column solution. More...
 
const double * getColSolution () const
 
void setColSolution (const double *input)
 
double * dualRowSolution () const
 Dual row solution. More...
 
const double * getRowPrice () const
 
double * dualColumnSolution () const
 Reduced costs. More...
 
const double * getReducedCost () const
 
double * rowLower () const
 Row lower. More...
 
const double * getRowLower () const
 
double * rowUpper () const
 Row upper. More...
 
const double * getRowUpper () const
 
void setObjectiveCoefficient (int elementIndex, double elementValue)
 Set an objective function coefficient. More...
 
void setObjCoeff (int elementIndex, double elementValue)
 Set an objective function coefficient. More...
 
void setColumnLower (int elementIndex, double elementValue)
 Set a single column lower bound
Use -DBL_MAX for -infinity. More...
 
void setColumnUpper (int elementIndex, double elementValue)
 Set a single column upper bound
Use DBL_MAX for infinity. More...
 
void setColumnBounds (int elementIndex, double lower, double upper)
 Set a single column lower and upper bound. More...
 
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. More...
 
void setColLower (int elementIndex, double elementValue)
 Set a single column lower bound
Use -DBL_MAX for -infinity. More...
 
void setColUpper (int elementIndex, double elementValue)
 Set a single column upper bound
Use DBL_MAX for infinity. More...
 
void setColBounds (int elementIndex, double lower, double upper)
 Set a single column lower and upper bound. More...
 
void setColSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
 Set the bounds on a number of columns simultaneously
More...
 
void setRowLower (int elementIndex, double elementValue)
 Set a single row lower bound
Use -DBL_MAX for -infinity. More...
 
void setRowUpper (int elementIndex, double elementValue)
 Set a single row upper bound
Use DBL_MAX for infinity. More...
 
void setRowBounds (int elementIndex, double lower, double upper)
 Set a single row lower and upper bound. More...
 
void setRowSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
 Set the bounds on a number of rows simultaneously
More...
 
const double * rowScale () const
 Scaling. More...
 
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. More...
 
void setObjectiveScale (double value)
 
double rhsScale () const
 Scaling of rhs and bounds. More...
 
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. More...
 
void unscale ()
 If we constructed a "really" scaled model then this reverses the operation. More...
 
int scalingFlag () const
 Gets scalingFlag. More...
 
double * objective () const
 Objective. More...
 
double * objective (const double *solution, double &offset, bool refresh=true) const
 
const double * getObjCoefficients () const
 
double * rowObjective () const
 Row Objective. More...
 
const double * getRowObjCoefficients () const
 
double * columnLower () const
 Column Lower. More...
 
const double * getColLower () const
 
double * columnUpper () const
 Column Upper. More...
 
const double * getColUpper () const
 
CoinPackedMatrix * matrix () const
 Matrix (if not ClpPackedmatrix be careful about memory leak. More...
 
CoinBigIndex getNumElements () const
 Number of elements in matrix. More...
 
double getSmallElementValue () const
 Small element value - elements less than this set to zero, default is 1.0e-20. More...
 
void setSmallElementValue (double value)
 
ClpMatrixBaserowCopy () const
 Row Matrix. More...
 
void setNewRowCopy (ClpMatrixBase *newCopy)
 Set new row matrix. More...
 
ClpMatrixBaseclpMatrix () const
 Clp Matrix. More...
 
ClpPackedMatrixclpScaledMatrix () const
 Scaled ClpPackedMatrix. More...
 
void setClpScaledMatrix (ClpPackedMatrix *scaledMatrix)
 Sets pointer to scaled ClpPackedMatrix. More...
 
ClpPackedMatrixswapScaledMatrix (ClpPackedMatrix *scaledMatrix)
 Swaps pointer to scaled ClpPackedMatrix. More...
 
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. More...
 
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. More...
 
double objectiveValue () const
 Objective value. More...
 
void setObjectiveValue (double value)
 
double getObjValue () const
 
char * integerInformation () const
 Integer information. More...
 
double * infeasibilityRay (bool fullRay=false) const
 Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays. More...
 
double * unboundedRay () const
 
double * ray () const
 For advanced users - no need to delete - sign not changed. More...
 
bool rayExists () const
 just test if infeasibility or unbounded Ray exists More...
 
void deleteRay ()
 just delete ray if exists More...
 
const double * internalRay () const
 Access internal ray storage. Users should call infeasibilityRay() or unboundedRay() instead. More...
 
bool statusExists () const
 See if status (i.e. basis) array exists (partly for OsiClp) More...
 
unsigned char * statusArray () const
 Return address of status (i.e. basis) array (char[numberRows+numberColumns]) More...
 
unsigned char * statusCopy () const
 Return copy of status (i.e. More...
 
void copyinStatus (const unsigned char *statusArray)
 Copy in status (basis) vector. More...
 
void setUserPointer (void *pointer)
 User pointer for whatever reason. More...
 
void * getUserPointer () const
 
void setTrustedUserPointer (ClpTrustedData *pointer)
 Trusted user pointer. More...
 
ClpTrustedDatagetTrustedUserPointer () const
 
int whatsChanged () const
 What has changed in model (only for masochistic users) More...
 
void setWhatsChanged (int value)
 
int numberThreads () const
 Number of threads (not really being used) More...
 
void setNumberThreads (int value)
 
void passInMessageHandler (CoinMessageHandler *handler)
 Pass in Message handler (not deleted at end) More...
 
CoinMessageHandler * pushMessageHandler (CoinMessageHandler *handler, bool &oldDefault)
 Pass in Message handler (not deleted at end) and return current. More...
 
void popMessageHandler (CoinMessageHandler *oldHandler, bool oldDefault)
 back to previous message handler More...
 
void newLanguage (CoinMessages::Language language)
 Set language. More...
 
void setLanguage (CoinMessages::Language language)
 
void setDefaultMessageHandler ()
 Overrides message handler with a default one. More...
 
CoinMessageHandler * messageHandler () const
 Return handler. More...
 
CoinMessages messages () const
 Return messages. More...
 
CoinMessages * messagesPointer ()
 Return pointer to messages. More...
 
CoinMessages coinMessages () const
 Return Coin messages. More...
 
CoinMessages * coinMessagesPointer ()
 Return pointer to Coin messages. More...
 
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. More...
 
int logLevel () const
 
bool defaultHandler () const
 Return true if default handler. More...
 
void passInEventHandler (const ClpEventHandler *eventHandler)
 Pass in Event handler (cloned and deleted at end) More...
 
ClpEventHandlereventHandler () const
 Event handler. More...
 
CoinThreadRandom * randomNumberGenerator ()
 Thread specific random number generator. More...
 
CoinThreadRandom & mutableRandomNumberGenerator ()
 Thread specific random number generator. More...
 
void setRandomSeed (int value)
 Set seed for thread specific random number generator. More...
 
int lengthNames () const
 length of names (0 means no names0 More...
 
void setLengthNames (int value)
 length of names (0 means no names0 More...
 
const std::vector< std::string > * rowNames () const
 Row names. More...
 
const std::string & rowName (int iRow) const
 
std::string getRowName (int iRow) const
 Return name or Rnnnnnnn. More...
 
const std::vector< std::string > * columnNames () const
 Column names. More...
 
const std::string & columnName (int iColumn) const
 
std::string getColumnName (int iColumn) const
 Return name or Cnnnnnnn. More...
 
ClpObjectiveobjectiveAsObject () const
 Objective methods. More...
 
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. More...
 
void times (double scalar, const double *x, double *y) const
 Return y + A * x * scalar in y. More...
 
void transposeTimes (double scalar, const double *x, double *y) const
 Return y + x * scalar * A in y. More...
 
bool setIntParam (ClpIntParam key, int value)
 Set an integer parameter. More...
 
bool setDblParam (ClpDblParam key, double value)
 Set an double parameter. More...
 
bool setStrParam (ClpStrParam key, const std::string &value)
 Set an string parameter. More...
 
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. More...
 
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. More...
 
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). More...
 
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). More...
 
int loadProblem (CoinModel &modelObject, bool tryPlusMinusOne=false)
 This loads a model from a coinModel object - returns number of errors. More...
 
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. More...
 
void loadQuadraticObjective (const int numberColumns, const CoinBigIndex *start, const int *column, const double *element)
 Load up quadratic objective. More...
 
void loadQuadraticObjective (const CoinPackedMatrix &matrix)
 
void deleteQuadraticObjective ()
 Get rid of quadratic objective. More...
 
void setRowObjective (const double *rowObjective)
 This just loads up a row objective. More...
 
int readMps (const char *filename, bool keepNames=false, bool ignoreErrors=false)
 Read an mps file from the given filename. More...
 
int readGMPL (const char *filename, const char *dataName, bool keepNames=false)
 Read GMPL files from the given filenames. More...
 
void copyInIntegerInformation (const char *information)
 Copy in integer informations. More...
 
void deleteIntegerInformation ()
 Drop integer informations. More...
 
void setContinuous (int index)
 Set the index-th variable to be a continuous variable. More...
 
void setInteger (int index)
 Set the index-th variable to be an integer variable. More...
 
bool isInteger (int index) const
 Return true if the index-th variable is an integer variable. More...
 
void resize (int newNumberRows, int newNumberColumns)
 Resizes rim part of model. More...
 
void deleteRows (int number, const int *which)
 Deletes rows. More...
 
void addRow (int numberInRow, const int *columns, const double *elements, double rowLower=-COIN_DBL_MAX, double rowUpper=COIN_DBL_MAX)
 Add one row. More...
 
void addRows (int number, const double *rowLower, const double *rowUpper, const CoinBigIndex *rowStarts, const int *columns, const double *elements)
 Add rows. More...
 
void addRows (int number, const double *rowLower, const double *rowUpper, const CoinBigIndex *rowStarts, const int *rowLengths, const int *columns, const double *elements)
 Add rows. More...
 
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. More...
 
int addRows (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
 Add rows from a model object. More...
 
void deleteColumns (int number, const int *which)
 Deletes columns. More...
 
void deleteRowsAndColumns (int numberRows, const int *whichRows, int numberColumns, const int *whichColumns)
 Deletes rows AND columns (keeps old sizes) More...
 
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. More...
 
void addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinBigIndex *columnStarts, const int *rows, const double *elements)
 Add columns. More...
 
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. More...
 
int addColumns (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
 Add columns from a model object. More...
 
void modifyCoefficient (int row, int column, double newElement, bool keepZero=false)
 Modify one element of a matrix. More...
 
void chgRowLower (const double *rowLower)
 Change row lower bounds. More...
 
void chgRowUpper (const double *rowUpper)
 Change row upper bounds. More...
 
void chgColumnLower (const double *columnLower)
 Change column lower bounds. More...
 
void chgColumnUpper (const double *columnUpper)
 Change column upper bounds. More...
 
void chgObjCoefficients (const double *objIn)
 Change objective coefficients. More...
 
void borrowModel (ClpModel &otherModel)
 Borrow model. More...
 
void returnModel (ClpModel &otherModel)
 Return model - nulls all arrays so can be deleted safely also updates any scalars. More...
 
void createEmptyMatrix ()
 Create empty ClpPackedMatrix. More...
 
CoinBigIndex cleanMatrix (double threshold=1.0e-20)
 Really clean up matrix (if ClpPackedMatrix). More...
 
void copy (const ClpMatrixBase *from, ClpMatrixBase *&to)
 Copy contents - resizing if necessary - otherwise re-use memory. More...
 
void dropNames ()
 Drops names - makes lengthnames 0 and names empty. More...
 
void copyNames (const std::vector< std::string > &rowNames, const std::vector< std::string > &columnNames)
 Copies in names. More...
 
void copyRowNames (const std::vector< std::string > &rowNames, int first, int last)
 Copies in Row names - modifies names first .. last-1. More...
 
void copyColumnNames (const std::vector< std::string > &columnNames, int first, int last)
 Copies in Column names - modifies names first .. last-1. More...
 
void copyRowNames (const char *const *rowNames, int first, int last)
 Copies in Row names - modifies names first .. last-1. More...
 
void copyColumnNames (const char *const *columnNames, int first, int last)
 Copies in Column names - modifies names first .. last-1. More...
 
void setRowName (int rowIndex, std::string &name)
 Set name of row. More...
 
void setColumnName (int colIndex, std::string &name)
 Set name of col. More...
 
int findNetwork (char *rotate, double fractionNeeded=0.75)
 Find a network subset. More...
 
CoinModel * createCoinModel () const
 This creates a coinModel object. More...
 
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. More...
 

Protected Member Functions

protected methods
void gutsOfDelete ()
 Does most of deletion. More...
 
void gutsOfCopy (const ClpInterior &rhs)
 Does most of copying. More...
 
bool createWorkingData ()
 Returns true if data looks okay, false if not. More...
 
void deleteWorkingData ()
 
bool sanityCheck ()
 Sanity check on input rim data. More...
 
int housekeeping ()
 This does housekeeping. More...
 
- Protected Member Functions inherited from ClpModel
void gutsOfDelete (int type)
 Does most of deletion (0 = all, 1 = most) More...
 
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. More...
 
void getRowBound (int iRow, double &lower, double &upper) const
 gets lower and upper bounds on rows More...
 
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 More...
 
void gutsOfScaling ()
 Does much of scaling. More...
 
double rawObjectiveValue () const
 Objective value - always minimize. More...
 
bool permanentArrays () const
 If we are using maximumRows_ and Columns_. More...
 
void startPermanentArrays ()
 Start using maximumRows_ and Columns_. More...
 
void stopPermanentArrays ()
 Stop using maximumRows_ and Columns_. More...
 
const char *const * rowNamesAsChar () const
 Create row names as char **. More...
 
const char *const * columnNamesAsChar () const
 Create column names as char **. More...
 
void deleteNamesAsChar (const char *const *names, int number) const
 Delete char * version of names. More...
 
void onStopped ()
 On stopped - sets secondary status. More...
 

Friends

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

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. More...
 
CoinWorkDouble largestDualError_
 Largest error on basic duals. More...
 
CoinWorkDouble sumDualInfeasibilities_
 Sum of dual infeasibilities. More...
 
CoinWorkDouble sumPrimalInfeasibilities_
 Sum of primal infeasibilities. More...
 
CoinWorkDouble worstComplementarity_
 Worst complementarity. More...
 
CoinWorkDouble * lower_
 Working copy of lower bounds (Owner of arrays below) More...
 
CoinWorkDouble * rowLowerWork_
 Row lower bounds - working copy. More...
 
CoinWorkDouble * columnLowerWork_
 Column lower bounds - working copy. More...
 
CoinWorkDouble * upper_
 Working copy of upper bounds (Owner of arrays below) More...
 
CoinWorkDouble * rowUpperWork_
 Row upper bounds - working copy. More...
 
CoinWorkDouble * columnUpperWork_
 Column upper bounds - working copy. More...
 
CoinWorkDouble * cost_
 Working copy of objective. More...
 
ClpLsqrlsqrObject_
 Pointer to Lsqr object. More...
 
ClpPdcoBasepdcoStuff_
 Pointer to stuff. More...
 
CoinWorkDouble mu_
 Below here is standard barrier stuff mu. More...
 
CoinWorkDouble objectiveNorm_
 objectiveNorm. More...
 
CoinWorkDouble rhsNorm_
 rhsNorm. More...
 
CoinWorkDouble solutionNorm_
 solutionNorm. More...
 
CoinWorkDouble dualObjective_
 dualObjective. More...
 
CoinWorkDouble primalObjective_
 primalObjective. More...
 
CoinWorkDouble diagonalNorm_
 diagonalNorm. More...
 
CoinWorkDouble stepLength_
 stepLength More...
 
CoinWorkDouble linearPerturbation_
 linearPerturbation More...
 
CoinWorkDouble diagonalPerturbation_
 diagonalPerturbation More...
 
CoinWorkDouble gamma_
 
CoinWorkDouble delta_
 
CoinWorkDouble targetGap_
 targetGap More...
 
CoinWorkDouble projectionTolerance_
 projectionTolerance More...
 
CoinWorkDouble maximumRHSError_
 maximumRHSError. maximum Ax More...
 
CoinWorkDouble maximumBoundInfeasibility_
 maximumBoundInfeasibility. More...
 
CoinWorkDouble maximumDualError_
 maximumDualError. More...
 
CoinWorkDouble diagonalScaleFactor_
 diagonalScaleFactor. More...
 
CoinWorkDouble scaleFactor_
 scaleFactor. For scaling objective More...
 
CoinWorkDouble actualPrimalStep_
 actualPrimalStep More...
 
CoinWorkDouble actualDualStep_
 actualDualStep More...
 
CoinWorkDouble smallestInfeasibility_
 smallestInfeasibility More...
 
CoinWorkDouble historyInfeasibility_ [LENGTH_HISTORY]
 
CoinWorkDouble complementarityGap_
 complementarityGap. More...
 
CoinWorkDouble baseObjectiveNorm_
 baseObjectiveNorm More...
 
CoinWorkDouble worstDirectionAccuracy_
 worstDirectionAccuracy More...
 
CoinWorkDouble maximumRHSChange_
 maximumRHSChange More...
 
CoinWorkDouble * errorRegion_
 errorRegion. i.e. Ax More...
 
CoinWorkDouble * rhsFixRegion_
 rhsFixRegion. More...
 
CoinWorkDouble * upperSlack_
 upperSlack More...
 
CoinWorkDouble * lowerSlack_
 lowerSlack More...
 
CoinWorkDouble * diagonal_
 diagonal More...
 
CoinWorkDouble * solution_
 solution More...
 
CoinWorkDouble * workArray_
 work array More...
 
CoinWorkDouble * deltaX_
 delta X More...
 
CoinWorkDouble * deltaY_
 delta Y More...
 
CoinWorkDouble * deltaZ_
 deltaZ. More...
 
CoinWorkDouble * deltaW_
 deltaW. More...
 
CoinWorkDouble * deltaSU_
 deltaS. More...
 
CoinWorkDouble * deltaSL_
 
CoinWorkDouble * primalR_
 Primal regularization array. More...
 
CoinWorkDouble * dualR_
 Dual regularization array. More...
 
CoinWorkDouble * rhsB_
 rhs B More...
 
CoinWorkDouble * rhsU_
 rhsU. More...
 
CoinWorkDouble * rhsL_
 rhsL. More...
 
CoinWorkDouble * rhsZ_
 rhsZ. More...
 
CoinWorkDouble * rhsW_
 rhsW. More...
 
CoinWorkDouble * rhsC_
 rhs C More...
 
CoinWorkDouble * zVec_
 zVec More...
 
CoinWorkDouble * wVec_
 wVec More...
 
ClpCholeskyBasecholesky_
 cholesky. More...
 
int numberComplementarityPairs_
 numberComplementarityPairs i.e. ones with lower and/or upper bounds (not fixed) More...
 
int numberComplementarityItems_
 numberComplementarityItems_ i.e. number of active bounds More...
 
int maximumBarrierIterations_
 Maximum iterations. More...
 
bool gonePrimalFeasible_
 gonePrimalFeasible. More...
 
bool goneDualFeasible_
 goneDualFeasible. More...
 
int algorithm_
 Which algorithm being used. More...
 
CoinWorkDouble xsize_
 
CoinWorkDouble zsize_
 
CoinWorkDouble * rhs_
 Rhs. More...
 
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. More...
 
double dblParam_ [ClpLastDblParam]
 Array of double parameters. More...
 
double objectiveValue_
 Objective value. More...
 
double smallElement_
 Small element value. More...
 
double objectiveScale_
 Scaling of objective. More...
 
double rhsScale_
 Scaling of rhs and bounds. More...
 
int numberRows_
 Number of rows. More...
 
int numberColumns_
 Number of columns. More...
 
double * rowActivity_
 Row activities. More...
 
double * columnActivity_
 Column activities. More...
 
double * dual_
 Duals. More...
 
double * reducedCost_
 Reduced costs. More...
 
double * rowLower_
 Row lower. More...
 
double * rowUpper_
 Row upper. More...
 
ClpObjectiveobjective_
 Objective. More...
 
double * rowObjective_
 Row Objective (? sign) - may be NULL. More...
 
double * columnLower_
 Column Lower. More...
 
double * columnUpper_
 Column Upper. More...
 
ClpMatrixBasematrix_
 Packed matrix. More...
 
ClpMatrixBaserowCopy_
 Row copy if wanted. More...
 
ClpPackedMatrixscaledMatrix_
 Scaled packed matrix. More...
 
double * ray_
 Infeasible/unbounded ray. More...
 
double * rowScale_
 Row scale factors for matrix. More...
 
double * columnScale_
 Column scale factors. More...
 
double * inverseRowScale_
 Inverse row scale factors for matrix (end of rowScale_) More...
 
double * inverseColumnScale_
 Inverse column scale factors for matrix (end of columnScale_) More...
 
int scalingFlag_
 Scale flag, 0 none, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic, 5 geometric on rows. More...
 
unsigned char * status_
 Status (i.e. More...
 
char * integerType_
 Integer information. More...
 
void * userPointer_
 User pointer for whatever reason. More...
 
ClpTrustedDatatrustedUserPointer_
 Trusted user pointer e.g. for heuristics. More...
 
int intParam_ [ClpLastIntParam]
 Array of integer parameters. More...
 
int numberIterations_
 Number of iterations. More...
 
int solveType_
 Solve type - 1 simplex, 2 simplex interface, 3 Interior. More...
 
unsigned int whatsChanged_
 
int problemStatus_
 Status of problem. More...
 
int secondaryStatus_
 Secondary status of problem. More...
 
int lengthNames_
 length of names (0 means no names) More...
 
int numberThreads_
 Number of threads (not very operational) More...
 
unsigned int specialOptions_
 For advanced options See get and set for meaning. More...
 
CoinMessageHandler * handler_
 Message handler. More...
 
bool defaultHandler_
 Flag to say if default handler (so delete) More...
 
CoinThreadRandom randomNumberGenerator_
 Thread specific random number generator. More...
 
ClpEventHandlereventHandler_
 Event handler. More...
 
std::vector< std::string > rowNames_
 Row names. More...
 
std::vector< std::string > columnNames_
 Column names. More...
 
CoinMessages messages_
 Messages. More...
 
CoinMessages coinMessages_
 Coin messages. More...
 
int maximumColumns_
 Maximum number of columns in model. More...
 
int maximumRows_
 Maximum number of rows in model. More...
 
int maximumInternalColumns_
 Maximum number of columns (internal arrays) in model. More...
 
int maximumInternalRows_
 Maximum number of rows (internal arrays) in model. More...
 
CoinPackedMatrix baseMatrix_
 Base packed matrix. More...
 
CoinPackedMatrix baseRowCopy_
 Base row copy. More...
 
double * savedRowScale_
 Saved row scale factors for matrix. More...
 
double * savedColumnScale_
 Saved column scale factors. More...
 
std::string strParam_ [ClpLastStrParam]
 Array of string parameters. More...
 

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 Function 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: