Loading...
Searching...
No Matches
ClpPdco Class Reference

This solves problems in Primal Dual Convex Optimization. More...

`#include <ClpPdco.hpp>`

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

## Public Member Functions

Description of algorithm
int | pdco ()
| Pdco algorithm.
int | pdco (ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo)
Functions used in pdco
void | lsqr ()
| LSQR.
void | matVecMult (int, double *, double *)
void | matVecMult (int, CoinDenseVector< double > &, double *)
void | matVecMult (int, CoinDenseVector< double > &, CoinDenseVector< double > &)
void | matVecMult (int, CoinDenseVector< double > *, CoinDenseVector< double > *)
void | getBoundTypes (int *, int *, int *, int **)
void | getGrad (CoinDenseVector< double > &x, CoinDenseVector< double > &grad)
void | getHessian (CoinDenseVector< double > &x, CoinDenseVector< double > &H)
double | getObj (CoinDenseVector< double > &x)
void | matPrecon (double, double *, double *)
void | matPrecon (double, CoinDenseVector< double > &, double *)
void | matPrecon (double, CoinDenseVector< double > &, CoinDenseVector< double > &)
void | matPrecon (double, CoinDenseVector< double > *, CoinDenseVector< double > *)
Public Member Functions inherited from ClpInterior
| 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.
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.
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.
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.

## Additional Inherited Members

CoinWorkDouble | xsize_
CoinWorkDouble | zsize_
CoinWorkDouble * | rhs_
| Rhs.
CoinWorkDouble * | x_
CoinWorkDouble * | y_
CoinWorkDouble * | dj_
Protected Member Functions inherited from ClpInterior
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.
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.
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 problems in Primal Dual Convex Optimization.

It inherits from ClpInterior. It has no data of its own and is never created - only cast from a ClpInterior object at algorithm time.

Definition at line 22 of file ClpPdco.hpp.

## Member Function Documentation

## pdco() [1/2]

int ClpPdco::pdco | ( |  | ) |

Pdco algorithm.

Method

## pdco() [2/2]

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

## lsqr()

void ClpPdco::lsqr | ( |  | ) |

LSQR.

## matVecMult() [1/4]

void ClpPdco::matVecMult | ( | int | ,
|  | double * | ,
|  | double * | )

## matVecMult() [2/4]

void ClpPdco::matVecMult | ( | int | ,
|  | CoinDenseVector< double > & | ,
|  | double * | )

## matVecMult() [3/4]

void ClpPdco::matVecMult | ( | int | ,
|  | CoinDenseVector< double > & | ,
|  | CoinDenseVector< double > & | )

## matVecMult() [4/4]

void ClpPdco::matVecMult | ( | int | ,
|  | CoinDenseVector< double > * | ,
|  | CoinDenseVector< double > * | )

## getBoundTypes()

void ClpPdco::getBoundTypes | ( | int * | ,
|  | int * | ,
|  | int * | ,
|  | int ** | )

## getGrad()

void ClpPdco::getGrad | ( | CoinDenseVector< double > & | x,
|  | CoinDenseVector< double > & | grad )

## getHessian()

void ClpPdco::getHessian | ( | CoinDenseVector< double > & | x,
|  | CoinDenseVector< double > & | H )

## getObj()

double ClpPdco::getObj | ( | CoinDenseVector< double > & | x | ) |

## matPrecon() [1/4]

void ClpPdco::matPrecon | ( | double | ,
|  | double * | ,
|  | double * | )

## matPrecon() [2/4]

void ClpPdco::matPrecon | ( | double | ,
|  | CoinDenseVector< double > & | ,
|  | double * | )

## matPrecon() [3/4]

void ClpPdco::matPrecon | ( | double | ,
|  | CoinDenseVector< double > & | ,
|  | CoinDenseVector< double > & | )

## matPrecon() [4/4]

void ClpPdco::matPrecon | ( | double | ,
|  | CoinDenseVector< double > * | ,
|  | CoinDenseVector< double > * | )

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

- Clp/src/ClpPdco.hpp