Logo Search packages:      
Sourcecode: rsymphony version File versions  Download package

ClpPdco Class Reference

#include <ClpPdco.hpp>

Inheritance diagram for ClpPdco:

ClpInterior

List of all members.


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.


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

Public Member Functions

ClpMatrixBaseclpMatrix () const
 Clp Matrix.
ClpPackedMatrix * clpScaledMatrix () const
 Scaled ClpPackedMatrix.
double * columnLower () const
 Column Lower.
const double * columnScale () const
double * columnUpper () const
 Column Upper.
void copyinStatus (const unsigned char *statusArray)
 Copy in status (basis) vector.
const double * getColLower () const
const double * getColUpper () const
int getNumElements () const
 Number of elements in matrix.
const double * getObjCoefficients () const
double getObjValue () const
const double * getRowObjCoefficients () const
double getSmallElementValue () const
ClpTrustedDatagetTrustedUserPointer () const
void * getUserPointer () const
double * infeasibilityRay () const
char * integerInformation () const
 Integer information.
const double * inverseColumnScale () const
const double * inverseRowScale () const
CoinPackedMatrixmatrix () const
 Matrix (if not ClpPackedmatrix be careful about memory leak.
double * mutableColumnScale () const
double * mutableInverseColumnScale () const
double * mutableInverseRowScale () const
double * mutableRowScale () const
int numberThreads () const
 Number of threads (not really being used).
double * objective (const double *solution, double &offset, bool refresh=true) const
double * objective () const
 Objective.
double objectiveScale () const
 Scaling of objective.
double objectiveValue () const
 Objective value.
void replaceMatrix (CoinPackedMatrix *newmatrix, bool deleteCurrent=false)
void replaceMatrix (ClpMatrixBase *matrix, bool deleteCurrent=false)
double rhsScale () const
 Scaling of rhs and bounds.
ClpMatrixBaserowCopy () const
 Row Matrix.
double * rowObjective () const
 Row Objective.
const double * rowScale () const
 Scaling.
void scaling (int mode=1)
 Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3 auto, 4 auto-but-as-initialSolve-in-bab.
int scalingFlag () const
 Gets scalingFlag.
void setClpScaledMatrix (ClpPackedMatrix *scaledMatrix)
 Sets pointer to scaled ClpPackedMatrix.
void setColumnScale (double *scale)
void setNewRowCopy (ClpMatrixBase *newCopy)
 Set new row matrix.
void setNumberThreads (int value)
void setObjectiveScale (double value)
void setObjectiveValue (double value)
void setRhsScale (double value)
void setRowScale (double *scale)
void setSmallElementValue (double value)
void setTrustedUserPointer (ClpTrustedData *pointer)
 Trusted user pointer.
void setUserPointer (void *pointer)
 User pointer for whatever reason.
void setWhatsChanged (int value)
unsigned char * statusArray () const
 Return address of status (i.e. basis) array (char[numberRows+numberColumns]).
unsigned char * statusCopy () const
bool statusExists () const
 See if status (i.e. basis) array exists (partly for OsiClp).
double * unboundedRay () const
void unscale ()
int whatsChanged () const
 What has changed in model (only for masochistic users).
Load model - loads some stuff and initializes others
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.
int addColumns (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
int addColumns (const CoinBuild &buildObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
void addColumns (int number, const double *columnLower, const double *columnUpper, const double *objective, const CoinPackedVectorBase *const *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 CoinBigIndex *columnStarts, const int *rows, const double *elements)
 Add columns.
void addRow (int numberInRow, const int *columns, const double *elements, double rowLower=-COIN_DBL_MAX, double rowUpper=COIN_DBL_MAX)
 Add one row.
int addRows (CoinModel &modelObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
int addRows (const CoinBuild &buildObject, bool tryPlusMinusOne=false, bool checkDuplicates=true)
void addRows (int number, const double *rowLower, const double *rowUpper, const CoinPackedVectorBase *const *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 CoinBigIndex *rowStarts, const int *columns, const double *elements)
 Add rows.
void chgColumnLower (const double *columnLower)
void chgColumnUpper (const double *columnUpper)
void chgObjCoefficients (const double *objIn)
void chgRowLower (const double *rowLower)
void chgRowUpper (const double *rowUpper)
int cleanMatrix (double threshold=1.0e-20)
void copy (const ClpMatrixBase *from, ClpMatrixBase *&to)
 Copy contents - resizing if necessary - otherwise re-use memory.
void copyColumnNames (const char *const *columnNames, int first, int last)
 Copies in Column 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 copyInIntegerInformation (const char *information)
 Copy in integer informations.
void copyNames (std::vector< std::string > &rowNames, std::vector< std::string > &columnNames)
 Copies in names.
void copyRowNames (const char *const *rowNames, int first, int last)
 Copies in Row names - modifies names first .. last-1.
void copyRowNames (const std::vector< std::string > &rowNames, int first, int last)
 Copies in Row names - modifies names first .. last-1.
CoinModelcreateCoinModel () const
void createEmptyMatrix ()
 Create empty ClpPackedMatrix.
void deleteColumns (int number, const int *which)
 Deletes columns.
void deleteIntegerInformation ()
 Drop integer informations.
void deleteQuadraticObjective ()
 Get rid of quadratic objective.
void deleteRows (int number, const int *which)
 Deletes rows.
void dropNames ()
 Drops names - makes lengthnames 0 and names empty.
int findNetwork (char *rotate, double fractionNeeded=0.75)
bool isInteger (int index) const
int loadProblem (CoinModel &modelObject, bool tryPlusMinusOne=false)
void loadQuadraticObjective (const CoinPackedMatrix &matrix)
void loadQuadraticObjective (const int numberColumns, const CoinBigIndex *start, const int *column, const double *element)
void modifyCoefficient (int row, int column, double newElement, bool keepZero=false)
 Modify one element of a matrix.
int readGMPL (const char *filename, const char *dataName, bool keepNames=false)
 Read GMPL files from the given filenames.
void resize (int newNumberRows, int newNumberColumns)
 Resizes rim part of model.
void setColumnName (int colIndex, std::string &name)
 Set name of col.
void setContinuous (int index)
void setInteger (int index)
void setRowName (int rowIndex, std::string &name)
 Set name of row.
void setRowObjective (const double *rowObjective)
 This just loads up a row objective.
int writeMps (const char *filename, int formatType=0, int numberAcross=2, double objSense=0.0) const
most useful gets and sets
int algorithm () const
 Current (or last) algorithm.
CoinWorkDouble complementarityGap () const
 ComplementarityGap.
CoinWorkDouble delta () const
 delta
CoinWorkDouble diagonalNorm () const
 diagonalNorm
CoinWorkDouble diagonalPerturbation () const
 diagonalPerturbation
bool dualFeasible () const
 If problem is dual feasible.
CoinWorkDouble dualObjective () const
 dualObjective.
CoinWorkDouble gamma () const
 gamma
CoinWorkDouble linearPerturbation () const
 linearPerturbation
bool primalFeasible () const
 If problem is primal feasible.
CoinWorkDouble primalObjective () const
 primalObjective.
CoinWorkDouble projectionTolerance () const
 projectionTolerance
void setAlgorithm (int value)
 Set algorithm.
void setDelta (CoinWorkDouble value)
void setDiagonalPerturbation (CoinWorkDouble value)
void setGamma (CoinWorkDouble value)
void setLinearPerturbation (CoinWorkDouble value)
void setProjectionTolerance (CoinWorkDouble value)
CoinWorkDouble sumDualInfeasibilities () const
 Sum of dual infeasibilities.
CoinWorkDouble sumPrimalInfeasibilities () const
 Sum of primal infeasibilities.
Constructors and destructor and copy
void borrowModel (ClpModel &otherModel)
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 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)
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 ClpMatrixBase &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL)
int readMps (const char *filename, bool keepNames=false, bool ignoreErrors=false)
 Read an mps file from the given filename.
void returnModel (ClpModel &otherModel)
public methods
void checkSolution ()
 Checks solution.
void clearFakeLower (int sequence)
void clearFakeUpper (int sequence)
void clearFixed (int sequence)
void clearFixedOrFree (int sequence)
void clearFlagged (int sequence)
void clearLowerBound (int sequence)
void clearUpperBound (int sequence)
bool fakeLower (int sequence) const
bool fakeUpper (int sequence) const
bool fixed (int sequence) const
bool fixedOrFree (int sequence) const
bool flagged (int sequence) const
int isColumn (int sequence) const
 Returns 1 if sequence indicates column.
bool lowerBound (int sequence) const
CoinWorkDouble quadraticDjs (CoinWorkDouble *djRegion, const CoinWorkDouble *solution, CoinWorkDouble scaleFactor)
CoinWorkDouble rawObjectiveValue () const
 Raw objective value (so always minimize).
int sequenceWithin (int sequence) const
 Returns sequence number within section.
void setFakeLower (int sequence)
 To say a variable has fake lower bound.
void setFakeUpper (int sequence)
 To say a variable has fake upper bound.
void setFixed (int sequence)
 To say a variable is fixed.
void setFixedOrFree (int sequence)
 To say a variable is fixed OR free.
void setFlagged (int sequence)
 To flag a variable.
void setLowerBound (int sequence)
 To say a variable has lower bound.
void setUpperBound (int sequence)
 To say a variable has upper bound.
bool upperBound (int sequence) const
Message handling
CoinMessages coinMessages () const
 Return Coin messages.
CoinMessagescoinMessagesPointer ()
 Return pointer to Coin messages.
const std::string & columnName (int iColumn) const
const std::vector< std::string > * columnNames () const
 Column names.
bool defaultHandler () const
 Return true if default handler.
int emptyProblem (int *infeasNumber=NULL, double *infeasSum=NULL, bool printMessage=true)
ClpEventHandlereventHandler () const
 Event handler.
std::string getColumnName (int iColumn) const
 Return name or Cnnnnnnn.
std::string getRowName (int iRow) const
 Return name or Rnnnnnnn.
int lengthNames () const
 length of names (0 means no names0
int logLevel () const
CoinMessageHandlermessageHandler () const
 Return handler.
CoinMessages messages () const
 Return messages.
CoinMessagesmessagesPointer ()
 Return pointer to messages.
CoinThreadRandommutableRandomNumberGenerator ()
 Thread specific random number generator.
void newLanguage (CoinMessages::Language language)
 Set language.
ClpObjectiveobjectiveAsObject () const
 Objective methods.
void passInEventHandler (const ClpEventHandler *eventHandler)
 Pass in Event handler (cloned and deleted at end).
void passInMessageHandler (CoinMessageHandler *handler)
 Pass in Message handler (not deleted at end).
void popMessageHandler (CoinMessageHandler *oldHandler, bool oldDefault)
 back to previous message handler
CoinMessageHandlerpushMessageHandler (CoinMessageHandler *handler, bool &oldDefault)
 Pass in Message handler (not deleted at end) and return current.
CoinThreadRandomrandomNumberGenerator ()
 Thread specific random number generator.
const std::string & rowName (int iRow) const
const std::vector< std::string > * rowNames () const
 Row names.
void setLanguage (CoinMessages::Language language)
void setLengthNames (int value)
 length of names (0 means no names0
void setLogLevel (int value)
void setObjective (ClpObjective *objective)
void setObjectivePointer (ClpObjective *newobjective)
void setRandomSeed (int value)
 Set seed for thread specific random number generator.
gets and sets
double * dualColumnSolution () const
 Reduced costs.
double dualObjectiveLimit () const
 Dual objective limit.
double * dualRowSolution () const
 Dual row solution.
double dualTolerance () const
 Dual tolerance to use.
const double * getColSolution () const
int getIterationCount () const
int getNumCols () const
 Number of columns.
int getNumRows () const
double getObjSense () const
const double * getReducedCost () const
const double * getRowActivity () const
const double * getRowLower () const
const double * getRowPrice () const
const double * getRowUpper () const
bool hitMaximumIterations () const
 Returns true if hit maximum iterations (or time).
bool isAbandoned () const
 Are there a numerical difficulties?
bool isDualObjectiveLimitReached () const
 Is the given dual objective limit reached?
bool isIterationLimitReached () const
 Iteration limit reached?
bool isPrimalObjectiveLimitReached () const
 Is the given primal objective limit reached?
bool isProvenDualInfeasible () const
 Is dual infeasiblity proven?
bool isProvenOptimal () const
 Is optimality proven?
bool isProvenPrimalInfeasible () const
 Is primal infeasiblity proven?
int maximumIterations () const
 Maximum number of iterations.
double maximumSeconds () const
 Maximum time in seconds (from when set called).
int numberColumns () const
int numberIterations () const
 Number of iterations.
int numberRows () const
 Number of rows.
double objectiveOffset () const
 Objective offset.
double optimizationDirection () const
 Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
double presolveTolerance () const
 Presolve tolerance to use.
double * primalColumnSolution () const
 Primal column solution.
double primalObjectiveLimit () const
 Primal objective limit.
double * primalRowSolution () const
 Primal row solution.
double primalTolerance () const
 Primal tolerance to use.
std::string problemName () const
int problemStatus () const
double * rowLower () const
 Row lower.
double * rowUpper () const
 Row upper.
int secondaryStatus () const
void setColSolution (const double *input)
void setDualObjectiveLimit (double value)
void setDualTolerance (double value)
void setMaximumIterations (int value)
void setMaximumSeconds (double value)
void setNumberIterations (int numberIterationsNew)
void setObjectiveOffset (double value)
void setOptimizationDirection (double value)
void setPrimalObjectiveLimit (double value)
void setPrimalTolerance (double value)
void setProblemStatus (int problemStatusNew)
 Set problem status.
void setSecondaryStatus (int newstatus)
void setSolveType (int type)
int solveType () const
int status () const
most useful gets and sets
CoinWorkDouble * dualR () const
 Dual erturbation vector.
void fixFixed (bool reallyFix=true)
CoinWorkDouble largestDualError () const
 Largest error on basic duals.
CoinWorkDouble largestPrimalError () const
 Largest error on Ax-b.
int maximumBarrierIterations () const
 Maximum iterations.
int numberFixed () const
 Return number fixed to see if worth presolving.
CoinWorkDouble * primalR () const
 Primal erturbation vector.
void setCholesky (ClpCholeskyBase *cholesky)
 Set cholesky (and delete present one).
void setMaximumBarrierIterations (int value)
Parameter set/get methods
The set methods return true if the parameter was set to the given value, false otherwise. There can be various reasons for failure: the given parameter is not applicable for the solver (e.g., refactorization frequency for the volume algorithm), the parameter is not yet implemented for the solver or simply the value of the parameter is out of the range the solver accepts. If a parameter setting call returns false check the details of your solver.

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

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

void generateCpp (FILE *fp)
 Create C++ lines to get to current state.
bool getDblParam (ClpDblParam key, double &value) const
bool getIntParam (ClpIntParam key, int &value) const
bool getStrParam (ClpStrParam key, std::string &value) const
bool inCbcBranchAndBound () const
bool setDblParam (ClpDblParam key, double value)
 Set an double parameter.
bool setIntParam (ClpIntParam key, int value)
 Set an integer parameter.
void setSpecialOptions (unsigned int value)
bool setStrParam (ClpStrParam key, const std::string &value)
 Set an string parameter.
unsigned int specialOptions () const
Functions used in pdco
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 lsqr ()
 LSQR.
void matPrecon (double, CoinDenseVector< double > *, CoinDenseVector< double > *)
void matPrecon (double, CoinDenseVector< double > &, CoinDenseVector< double > &)
void matPrecon (double, CoinDenseVector< double > &, double *)
void matPrecon (double, double *, double *)
void matVecMult (int, CoinDenseVector< double > *, CoinDenseVector< double > *)
void matVecMult (int, CoinDenseVector< double > &, CoinDenseVector< double > &)
void matVecMult (int, CoinDenseVector< double > &, double *)
void matVecMult (int, double *, double *)
Description of algorithm
int pdco (ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo)
int pdco ()
Functions most useful to user
int primalDual ()
 Primal-Dual Predictor-Corrector barrier.
Changing bounds on variables and constraints
void setColBounds (int elementIndex, double lower, double upper)
void setColLower (int elementIndex, double elementValue)
void setColSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
void setColumnBounds (int elementIndex, double lower, double upper)
void setColumnLower (int elementIndex, double elementValue)
void setColumnSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
void setColumnUpper (int elementIndex, double elementValue)
void setColUpper (int elementIndex, double elementValue)
void setObjCoeff (int elementIndex, double elementValue)
void setObjectiveCoefficient (int elementIndex, double elementValue)
void setRowBounds (int elementIndex, double lower, double upper)
void setRowLower (int elementIndex, double elementValue)
void setRowSetBounds (const int *indexFirst, const int *indexLast, const double *boundList)
void setRowUpper (int elementIndex, double elementValue)
Matrix times vector methods
They can be faster if scalar is +- 1 These are covers so user need not worry about scaling Also for simplex I am not using basic/non-basic split

void times (double scalar, const double *x, double *y) const
void transposeTimes (double scalar, const double *x, double *y) const

Protected Member Functions

private or protected methods
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 getRowBound (int iRow, double &lower, double &upper) const
 gets lower and upper bounds on rows
void gutsOfCopy (const ClpModel &rhs, int trueCopy=1)
void gutsOfDelete (int type)
 Does most of deletion (0 = all, 1 = most).
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.
void onStopped ()
 On stopped - sets secondary status.
bool permanentArrays () const
 If we are using maximumRows_ and Columns_.
const char *const * rowNamesAsChar () const
 Create row names as char **.
void startPermanentArrays ()
 Start using maximumRows_ and Columns_.
void stopPermanentArrays ()
 Stop using maximumRows_ and Columns_.
protected methods
bool createWorkingData ()
 Returns true if data looks okay, false if not.
void deleteWorkingData ()
void gutsOfCopy (const ClpInterior &rhs)
 Does most of copying.
void gutsOfDelete ()
 Does most of deletion.
int housekeeping ()
 This does housekeeping.
bool sanityCheck ()
 Sanity check on input rim data.

Protected Attributes

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

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

Generated by  Doxygen 1.6.0   Back to index