Clp 1.16.9
Loading...
Searching...
No Matches
ClpInterior.hpp
Go to the documentation of this file.
1/* $Id: ClpInterior.hpp 1665 2011-01-04 17:55:54Z lou $ */
2// Copyright (C) 2003, International Business Machines
3// Corporation and others. All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5/*
6 Authors
7
8 John Tomlin (pdco)
9 John Forrest (standard predictor-corrector)
10
11 Note JJF has added arrays - this takes more memory but makes
12 flow easier to understand and hopefully easier to extend
13
14 */
15#ifndef ClpInterior_H
16#define ClpInterior_H
17
18#include <iostream>
19#include <cfloat>
20#include "ClpModel.hpp"
21#include "ClpMatrixBase.hpp"
22#include "ClpSolve.hpp"
23#include "CoinDenseVector.hpp"
24class ClpLsqr;
25class ClpPdcoBase;
27typedef struct {
28 double atolmin;
29 double r3norm;
30 double LSdamp;
31 double* deltay;
32} Info;
34
35typedef struct {
36 double atolold;
37 double atolnew;
38 double r3ratio;
39 int istop;
40 int itncg;
41} Outfo;
43
44typedef struct {
45 double gamma;
46 double delta;
48 double FeaTol;
49 double OptTol;
50 double StepTol;
51 double x0min;
52 double z0min;
53 double mu0;
54 int LSmethod; // 1=Cholesky 2=QR 3=LSQR
55 int LSproblem; // See below
57 double LSQRatol1; // Initial atol
58 double LSQRatol2; // Smallest atol (unless atol1 is smaller)
59 double LSQRconlim;
60 int wait;
61} Options;
62class Lsqr;
63class ClpCholeskyBase;
64// ***** END
72class ClpInterior : public ClpModel {
73 friend void ClpInteriorUnitTest(const std::string & mpsDir,
74 const std::string & netlibDir);
75
76public:
77
82
91 ClpInterior (const ClpModel * wholeModel,
92 int numberRows, const int * whichRows,
93 int numberColumns, const int * whichColumns,
94 bool dropNames = true, bool dropIntegers = true);
99 // Ones below are just ClpModel with some changes
112 const double* collb, const double* colub,
113 const double* obj,
114 const double* rowlb, const double* rowub,
115 const double * rowObjective = NULL);
116 void loadProblem ( const CoinPackedMatrix& matrix,
117 const double* collb, const double* colub,
118 const double* obj,
119 const double* rowlb, const double* rowub,
120 const double * rowObjective = NULL);
121
124 void loadProblem ( const int numcols, const int numrows,
125 const CoinBigIndex* start, const int* index,
126 const double* value,
127 const double* collb, const double* colub,
128 const double* obj,
129 const double* rowlb, const double* rowub,
130 const double * rowObjective = NULL);
132 void loadProblem ( const int numcols, const int numrows,
133 const CoinBigIndex* start, const int* index,
134 const double* value, const int * length,
135 const double* collb, const double* colub,
136 const double* obj,
137 const double* rowlb, const double* rowub,
138 const double * rowObjective = NULL);
140 int readMps(const char *filename,
141 bool keepNames = false,
142 bool ignoreErrors = false);
147 void borrowModel(ClpModel & otherModel);
149 void returnModel(ClpModel & otherModel);
151
155 int pdco();
156 // ** Temporary version
157 int pdco( ClpPdcoBase * stuff, Options &options, Info &info, Outfo &outfo);
161
165 inline bool primalFeasible() const {
166 return (sumPrimalInfeasibilities_ <= 1.0e-5);
167 }
169 inline bool dualFeasible() const {
170 return (sumDualInfeasibilities_ <= 1.0e-5);
171 }
173 inline int algorithm() const {
174 return algorithm_;
175 }
177 inline void setAlgorithm(int value) {
178 algorithm_ = value;
179 }
181 inline CoinWorkDouble sumDualInfeasibilities() const {
183 }
185 inline CoinWorkDouble sumPrimalInfeasibilities() const {
187 }
189 inline CoinWorkDouble dualObjective() const {
190 return dualObjective_;
191 }
193 inline CoinWorkDouble primalObjective() const {
194 return primalObjective_;
195 }
197 inline CoinWorkDouble diagonalNorm() const {
198 return diagonalNorm_;
199 }
201 inline CoinWorkDouble linearPerturbation() const {
202 return linearPerturbation_;
203 }
204 inline void setLinearPerturbation(CoinWorkDouble value) {
205 linearPerturbation_ = value;
206 }
208 inline CoinWorkDouble projectionTolerance() const {
210 }
211 inline void setProjectionTolerance(CoinWorkDouble value) {
212 projectionTolerance_ = value;
213 }
215 inline CoinWorkDouble diagonalPerturbation() const {
217 }
218 inline void setDiagonalPerturbation(CoinWorkDouble value) {
219 diagonalPerturbation_ = value;
220 }
222 inline CoinWorkDouble gamma() const {
223 return gamma_;
224 }
225 inline void setGamma(CoinWorkDouble value) {
226 gamma_ = value;
227 }
229 inline CoinWorkDouble delta() const {
230 return delta_;
231 }
232 inline void setDelta(CoinWorkDouble value) {
233 delta_ = value;
234 }
236 inline CoinWorkDouble complementarityGap() const {
237 return complementarityGap_;
238 }
240
244 inline CoinWorkDouble largestPrimalError() const {
245 return largestPrimalError_;
246 }
248 inline CoinWorkDouble largestDualError() const {
249 return largestDualError_;
250 }
252 inline int maximumBarrierIterations() const {
254 }
255 inline void setMaximumBarrierIterations(int value) {
257 }
259 void setCholesky(ClpCholeskyBase * cholesky);
261 int numberFixed() const;
264 void fixFixed(bool reallyFix = true);
266 inline CoinWorkDouble * primalR() const {
267 return primalR_;
268 }
270 inline CoinWorkDouble * dualR() const {
271 return dualR_;
272 }
274
275protected:
281 void gutsOfCopy(const ClpInterior & rhs);
290public:
294 inline CoinWorkDouble rawObjectiveValue() const {
295 return objectiveValue_;
296 }
298 inline int isColumn(int sequence) const {
299 return sequence < numberColumns_ ? 1 : 0;
300 }
302 inline int sequenceWithin(int sequence) const {
303 return sequence < numberColumns_ ? sequence : sequence - numberColumns_;
304 }
309 CoinWorkDouble quadraticDjs(CoinWorkDouble * djRegion, const CoinWorkDouble * solution,
310 CoinWorkDouble scaleFactor);
311
313 inline void setFixed( int sequence) {
314 status_[sequence] = static_cast<unsigned char>(status_[sequence] | 1) ;
315 }
316 inline void clearFixed( int sequence) {
317 status_[sequence] = static_cast<unsigned char>(status_[sequence] & ~1) ;
318 }
319 inline bool fixed(int sequence) const {
320 return ((status_[sequence] & 1) != 0);
321 }
322
324 inline void setFlagged( int sequence) {
325 status_[sequence] = static_cast<unsigned char>(status_[sequence] | 2) ;
326 }
327 inline void clearFlagged( int sequence) {
328 status_[sequence] = static_cast<unsigned char>(status_[sequence] & ~2) ;
329 }
330 inline bool flagged(int sequence) const {
331 return ((status_[sequence] & 2) != 0);
332 }
333
335 inline void setFixedOrFree( int sequence) {
336 status_[sequence] = static_cast<unsigned char>(status_[sequence] | 4) ;
337 }
338 inline void clearFixedOrFree( int sequence) {
339 status_[sequence] = static_cast<unsigned char>(status_[sequence] & ~4) ;
340 }
341 inline bool fixedOrFree(int sequence) const {
342 return ((status_[sequence] & 4) != 0);
343 }
344
346 inline void setLowerBound( int sequence) {
347 status_[sequence] = static_cast<unsigned char>(status_[sequence] | 8) ;
348 }
349 inline void clearLowerBound( int sequence) {
350 status_[sequence] = static_cast<unsigned char>(status_[sequence] & ~8) ;
351 }
352 inline bool lowerBound(int sequence) const {
353 return ((status_[sequence] & 8) != 0);
354 }
355
357 inline void setUpperBound( int sequence) {
358 status_[sequence] = static_cast<unsigned char>(status_[sequence] | 16) ;
359 }
360 inline void clearUpperBound( int sequence) {
361 status_[sequence] = static_cast<unsigned char>(status_[sequence] & ~16) ;
362 }
363 inline bool upperBound(int sequence) const {
364 return ((status_[sequence] & 16) != 0);
365 }
366
368 inline void setFakeLower( int sequence) {
369 status_[sequence] = static_cast<unsigned char>(status_[sequence] | 32) ;
370 }
371 inline void clearFakeLower( int sequence) {
372 status_[sequence] = static_cast<unsigned char>(status_[sequence] & ~32) ;
373 }
374 inline bool fakeLower(int sequence) const {
375 return ((status_[sequence] & 32) != 0);
376 }
377
379 inline void setFakeUpper( int sequence) {
380 status_[sequence] = static_cast<unsigned char>(status_[sequence] | 64) ;
381 }
382 inline void clearFakeUpper( int sequence) {
383 status_[sequence] = static_cast<unsigned char>(status_[sequence] & ~64) ;
384 }
385 inline bool fakeUpper(int sequence) const {
386 return ((status_[sequence] & 64) != 0);
387 }
389
391protected:
392
400 CoinWorkDouble largestPrimalError_;
402 CoinWorkDouble largestDualError_;
408 CoinWorkDouble worstComplementarity_;
410public:
411 CoinWorkDouble xsize_;
412 CoinWorkDouble zsize_;
413protected:
415 CoinWorkDouble * lower_;
417 CoinWorkDouble * rowLowerWork_;
419 CoinWorkDouble * columnLowerWork_;
421 CoinWorkDouble * upper_;
423 CoinWorkDouble * rowUpperWork_;
425 CoinWorkDouble * columnUpperWork_;
427 CoinWorkDouble * cost_;
428public:
430 CoinWorkDouble * rhs_;
431 CoinWorkDouble * x_;
432 CoinWorkDouble * y_;
433 CoinWorkDouble * dj_;
434protected:
441 CoinWorkDouble mu_;
443 CoinWorkDouble objectiveNorm_;
445 CoinWorkDouble rhsNorm_;
447 CoinWorkDouble solutionNorm_;
449 CoinWorkDouble dualObjective_;
451 CoinWorkDouble primalObjective_;
453 CoinWorkDouble diagonalNorm_;
455 CoinWorkDouble stepLength_;
457 CoinWorkDouble linearPerturbation_;
459 CoinWorkDouble diagonalPerturbation_;
460 // gamma from Saunders and Tomlin regularized
461 CoinWorkDouble gamma_;
462 // delta from Saunders and Tomlin regularized
463 CoinWorkDouble delta_;
465 CoinWorkDouble targetGap_;
467 CoinWorkDouble projectionTolerance_;
469 CoinWorkDouble maximumRHSError_;
473 CoinWorkDouble maximumDualError_;
475 CoinWorkDouble diagonalScaleFactor_;
477 CoinWorkDouble scaleFactor_;
479 CoinWorkDouble actualPrimalStep_;
481 CoinWorkDouble actualDualStep_;
485#define LENGTH_HISTORY 5
488 CoinWorkDouble complementarityGap_;
490 CoinWorkDouble baseObjectiveNorm_;
494 CoinWorkDouble maximumRHSChange_;
496 CoinWorkDouble * errorRegion_;
498 CoinWorkDouble * rhsFixRegion_;
500 CoinWorkDouble * upperSlack_;
502 CoinWorkDouble * lowerSlack_;
504 CoinWorkDouble * diagonal_;
506 CoinWorkDouble * solution_;
508 CoinWorkDouble * workArray_;
510 CoinWorkDouble * deltaX_;
512 CoinWorkDouble * deltaY_;
514 CoinWorkDouble * deltaZ_;
516 CoinWorkDouble * deltaW_;
518 CoinWorkDouble * deltaSU_;
519 CoinWorkDouble * deltaSL_;
521 CoinWorkDouble * primalR_;
523 CoinWorkDouble * dualR_;
525 CoinWorkDouble * rhsB_;
527 CoinWorkDouble * rhsU_;
529 CoinWorkDouble * rhsL_;
531 CoinWorkDouble * rhsZ_;
533 CoinWorkDouble * rhsW_;
535 CoinWorkDouble * rhsC_;
537 CoinWorkDouble * zVec_;
539 CoinWorkDouble * wVec_;
555};
556//#############################################################################
565void
566ClpInteriorUnitTest(const std::string & mpsDir,
567 const std::string & netlibDir);
568
569
570#endif
void ClpInteriorUnitTest(const std::string &mpsDir, const std::string &netlibDir)
A function that tests the methods in the ClpInterior class.
#define LENGTH_HISTORY
historyInfeasibility.
Base class for Clp Cholesky factorization Will do better factorization.
This solves LPs using interior point methods.
Definition: ClpInterior.hpp:72
CoinWorkDouble diagonalPerturbation_
diagonalPerturbation
CoinWorkDouble mu_
Below here is standard barrier stuff mu.
void setDiagonalPerturbation(CoinWorkDouble value)
friend void ClpInteriorUnitTest(const std::string &mpsDir, const std::string &netlibDir)
A function that tests the methods in the ClpInterior class.
CoinWorkDouble dualObjective() const
dualObjective.
bool goneDualFeasible_
goneDualFeasible.
int pdco()
Pdco algorithm - see ClpPdco.hpp for method.
void setGamma(CoinWorkDouble value)
CoinWorkDouble * deltaY_
delta Y
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 o...
int readMps(const char *filename, bool keepNames=false, bool ignoreErrors=false)
Read an mps file from the given filename.
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 borrowModel(ClpModel &otherModel)
Borrow model.
CoinWorkDouble * primalR_
Primal regularization array.
CoinWorkDouble * zVec_
zVec
CoinWorkDouble maximumRHSError_
maximumRHSError. maximum Ax
CoinWorkDouble projectionTolerance_
projectionTolerance
CoinWorkDouble largestDualError() const
Largest error on basic duals.
void setMaximumBarrierIterations(int value)
CoinWorkDouble primalObjective_
primalObjective.
void setFixedOrFree(int sequence)
To say a variable is fixed OR free.
CoinWorkDouble complementarityGap_
complementarityGap.
bool sanityCheck()
Sanity check on input rim data.
bool fixed(int sequence) const
CoinWorkDouble diagonalPerturbation() const
diagonalPerturbation
CoinWorkDouble * rowUpperWork_
Row upper bounds - working copy.
CoinWorkDouble diagonalScaleFactor_
diagonalScaleFactor.
CoinWorkDouble largestPrimalError() const
Largest error on Ax-b.
CoinWorkDouble targetGap_
targetGap
void clearFakeUpper(int sequence)
CoinWorkDouble * deltaX_
delta X
CoinWorkDouble * y_
CoinWorkDouble rawObjectiveValue() const
Raw objective value (so always minimize)
bool upperBound(int sequence) const
void clearFixedOrFree(int sequence)
CoinWorkDouble stepLength_
stepLength
CoinWorkDouble * columnLowerWork_
Column lower bounds - working copy.
int numberFixed() const
Return number fixed to see if worth presolving.
~ClpInterior()
Destructor.
void setFlagged(int sequence)
To flag a variable.
bool createWorkingData()
Returns true if data looks okay, false if not.
CoinWorkDouble * lower_
Working copy of lower bounds (Owner of arrays below)
bool flagged(int sequence) const
bool gonePrimalFeasible_
gonePrimalFeasible.
CoinWorkDouble * rhsB_
rhs B
bool fixedOrFree(int sequence) const
ClpCholeskyBase * cholesky_
cholesky.
CoinWorkDouble * primalR() const
Primal erturbation vector.
CoinWorkDouble xsize_
CoinWorkDouble sumDualInfeasibilities() const
Sum of dual infeasibilities.
CoinWorkDouble worstDirectionAccuracy_
worstDirectionAccuracy
void fixFixed(bool reallyFix=true)
fix variables interior says should be.
CoinWorkDouble * rhs_
Rhs.
int maximumBarrierIterations_
Maximum iterations.
CoinWorkDouble * x_
CoinWorkDouble * errorRegion_
errorRegion. i.e. Ax
CoinWorkDouble * rhsL_
rhsL.
CoinWorkDouble sumPrimalInfeasibilities_
Sum of primal infeasibilities.
CoinWorkDouble * rhsW_
rhsW.
CoinWorkDouble zsize_
CoinWorkDouble scaleFactor_
scaleFactor. For scaling objective
CoinWorkDouble * lowerSlack_
lowerSlack
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).
CoinWorkDouble * rhsFixRegion_
rhsFixRegion.
bool fakeLower(int sequence) const
CoinWorkDouble * dualR() const
Dual erturbation vector.
CoinWorkDouble * upper_
Working copy of upper bounds (Owner of arrays below)
CoinWorkDouble linearPerturbation_
linearPerturbation
CoinWorkDouble worstComplementarity_
Worst complementarity.
bool lowerBound(int sequence) const
void gutsOfDelete()
Does most of deletion.
ClpInterior(const ClpModel &)
Copy constructor from model.
void setDelta(CoinWorkDouble value)
CoinWorkDouble diagonalNorm_
diagonalNorm.
void gutsOfCopy(const ClpInterior &rhs)
Does most of copying.
void clearUpperBound(int sequence)
CoinWorkDouble actualDualStep_
actualDualStep
int maximumBarrierIterations() const
Maximum iterations.
CoinWorkDouble * cost_
Working copy of objective.
CoinWorkDouble sumDualInfeasibilities_
Sum of dual infeasibilities.
CoinWorkDouble * upperSlack_
upperSlack
CoinWorkDouble baseObjectiveNorm_
baseObjectiveNorm
bool primalFeasible() const
If problem is primal feasible.
void setUpperBound(int sequence)
To say a variable has upper bound.
CoinWorkDouble * solution_
solution
CoinWorkDouble * columnUpperWork_
Column upper bounds - working copy.
void deleteWorkingData()
int primalDual()
Primal-Dual Predictor-Corrector barrier.
ClpInterior & operator=(const ClpInterior &rhs)
Assignment operator. This copies the data.
CoinWorkDouble historyInfeasibility_[LENGTH_HISTORY]
ClpInterior(const ClpModel *wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns, bool dropNames=true, bool dropIntegers=true)
Subproblem constructor.
CoinWorkDouble * rhsZ_
rhsZ.
CoinWorkDouble diagonalNorm() const
diagonalNorm
CoinWorkDouble * dualR_
Dual regularization array.
void clearFlagged(int sequence)
void loadProblem(const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub, const double *rowObjective=NULL)
CoinWorkDouble smallestInfeasibility_
smallestInfeasibility
void setLinearPerturbation(CoinWorkDouble value)
void setProjectionTolerance(CoinWorkDouble value)
void clearFakeLower(int sequence)
CoinWorkDouble * deltaSU_
deltaS.
CoinWorkDouble * rowLowerWork_
Row lower bounds - working copy.
int algorithm() const
Current (or last) algorithm.
int numberComplementarityItems_
numberComplementarityItems_ i.e. number of active bounds
ClpLsqr * lsqrObject_
Pointer to Lsqr object.
CoinWorkDouble maximumDualError_
maximumDualError.
CoinWorkDouble projectionTolerance() const
projectionTolerance
CoinWorkDouble primalObjective() const
primalObjective.
CoinWorkDouble maximumBoundInfeasibility_
maximumBoundInfeasibility.
int isColumn(int sequence) const
Returns 1 if sequence indicates column.
void setCholesky(ClpCholeskyBase *cholesky)
Set cholesky (and delete present one)
CoinWorkDouble solutionNorm_
solutionNorm.
CoinWorkDouble * diagonal_
diagonal
void clearFixed(int sequence)
CoinWorkDouble * dj_
void setFakeLower(int sequence)
To say a variable has fake lower bound.
int housekeeping()
This does housekeeping.
CoinWorkDouble * workArray_
work array
CoinWorkDouble linearPerturbation() const
linearPerturbation
CoinWorkDouble rhsNorm_
rhsNorm.
int numberComplementarityPairs_
numberComplementarityPairs i.e. ones with lower and/or upper bounds (not fixed)
CoinWorkDouble gamma() const
gamma
CoinWorkDouble quadraticDjs(CoinWorkDouble *djRegion, const CoinWorkDouble *solution, CoinWorkDouble scaleFactor)
Modifies djs to allow for quadratic.
CoinWorkDouble largestDualError_
Largest error on basic duals.
CoinWorkDouble * deltaSL_
CoinWorkDouble objectiveNorm_
objectiveNorm.
CoinWorkDouble dualObjective_
dualObjective.
bool dualFeasible() const
If problem is dual feasible.
CoinWorkDouble * deltaZ_
deltaZ.
void returnModel(ClpModel &otherModel)
Return model - updates any scalars.
ClpInterior()
Default constructor.
int pdco(ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo)
CoinWorkDouble actualPrimalStep_
actualPrimalStep
CoinWorkDouble gamma_
CoinWorkDouble * rhsU_
rhsU.
void setAlgorithm(int value)
Set algorithm.
void setLowerBound(int sequence)
To say a variable has lower bound.
int algorithm_
Which algorithm being used.
int sequenceWithin(int sequence) const
Returns sequence number within section.
CoinWorkDouble * deltaW_
deltaW.
bool fakeUpper(int sequence) const
CoinWorkDouble * wVec_
wVec
void setFixed(int sequence)
To say a variable is fixed.
CoinWorkDouble delta() const
delta
CoinWorkDouble largestPrimalError_
Largest error on Ax-b.
CoinWorkDouble * rhsC_
rhs C
CoinWorkDouble sumPrimalInfeasibilities() const
Sum of primal infeasibilities.
CoinWorkDouble complementarityGap() const
ComplementarityGap.
void setFakeUpper(int sequence)
To say a variable has fake upper bound.
void checkSolution()
Checks solution.
ClpInterior(const ClpInterior &)
Copy constructor.
void clearLowerBound(int sequence)
ClpPdcoBase * pdcoStuff_
Pointer to stuff.
CoinWorkDouble maximumRHSChange_
maximumRHSChange
CoinWorkDouble delta_
This class implements LSQR.
Definition: ClpLsqr.hpp:76
Abstract base class for Clp Matrices.
int numberColumns_
Number of columns.
Definition: ClpModel.hpp:1126
unsigned char * status_
Status (i.e.
Definition: ClpModel.hpp:1173
double * rowObjective() const
Row Objective.
Definition: ClpModel.hpp:676
int numberColumns() const
Definition: ClpModel.hpp:325
int numberRows() const
Number of rows.
Definition: ClpModel.hpp:315
CoinPackedMatrix * matrix() const
Matrix (if not ClpPackedmatrix be careful about memory leak.
Definition: ClpModel.hpp:697
double objectiveValue_
Objective value.
Definition: ClpModel.hpp:1116
void dropNames()
Drops names - makes lengthnames 0 and names empty.
Abstract base class for tailoring everything for Pcdo.
Definition: ClpPdcoBase.hpp:25
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:27
double atolmin
Definition: ClpInterior.hpp:28
double r3norm
Definition: ClpInterior.hpp:29
double * deltay
Definition: ClpInterior.hpp:31
double LSdamp
Definition: ClpInterior.hpp:30
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:44
int MaxIter
Definition: ClpInterior.hpp:47
double z0min
Definition: ClpInterior.hpp:52
int LSmethod
Definition: ClpInterior.hpp:54
double LSQRatol2
Definition: ClpInterior.hpp:58
double FeaTol
Definition: ClpInterior.hpp:48
double x0min
Definition: ClpInterior.hpp:51
double mu0
Definition: ClpInterior.hpp:53
double OptTol
Definition: ClpInterior.hpp:49
double gamma
Definition: ClpInterior.hpp:45
double StepTol
Definition: ClpInterior.hpp:50
int LSproblem
Definition: ClpInterior.hpp:55
double LSQRconlim
Definition: ClpInterior.hpp:59
int LSQRMaxIter
Definition: ClpInterior.hpp:56
double delta
Definition: ClpInterior.hpp:46
double LSQRatol1
Definition: ClpInterior.hpp:57
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:35
int itncg
Definition: ClpInterior.hpp:40
double r3ratio
Definition: ClpInterior.hpp:38
int istop
Definition: ClpInterior.hpp:39
double atolold
Definition: ClpInterior.hpp:36
double atolnew
Definition: ClpInterior.hpp:37