Cgl 0.60.2

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClpInterior.hpp
Go to the documentation of this file.
1 /* $Id: ClpInterior.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
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"
24 class ClpLsqr;
25 class ClpPdcoBase;
27 typedef struct {
28 double atolmin;
29 double r3norm;
30 double LSdamp;
31 double *deltay;
32 } Info;
34
35 typedef struct {
36 double atolold;
37 double atolnew;
38 double r3ratio;
39 int istop;
40 int itncg;
41 } Outfo;
43
44 typedef struct {
45 double gamma;
46 double delta;
47 int MaxIter;
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
56 int LSQRMaxIter;
57 double LSQRatol1; // Initial atol
58 double LSQRatol2; // Smallest atol (unless atol1 is smaller)
59 double LSQRconlim;
60 int wait;
61 } Options;
62 class Lsqr;
63 class ClpCholeskyBase;
64 // ***** END
72 class ClpInterior : public ClpModel {
73 friend void ClpInteriorUnitTest(const std::string &mpsDir,
74 const std::string &netlibDir);
75
76 public:
79 ClpInterior();
81
83 ClpInterior(const ClpInterior &);
85 ClpInterior(const ClpModel &);
90 ClpInterior(const ClpModel *wholeModel,
91 int numberRows, const int *whichRows,
92 int numberColumns, const int *whichColumns,
93 bool dropNames = true, bool dropIntegers = true);
95 ClpInterior &operator=(const ClpInterior &rhs);
97 ~ClpInterior();
98 // Ones below are just ClpModel with some changes
110 void loadProblem(const ClpMatrixBase &matrix,
111 const double *collb, const double *colub,
112 const double *obj,
113 const double *rowlb, const double *rowub,
114 const double *rowObjective = NULL);
115 void loadProblem(const CoinPackedMatrix &matrix,
116 const double *collb, const double *colub,
117 const double *obj,
118 const double *rowlb, const double *rowub,
119 const double *rowObjective = NULL);
120
123 void loadProblem(const int numcols, const int numrows,
124 const CoinBigIndex *start, const int *index,
125 const double *value,
126 const double *collb, const double *colub,
127 const double *obj,
128 const double *rowlb, const double *rowub,
129 const double *rowObjective = NULL);
131 void loadProblem(const int numcols, const int numrows,
132 const CoinBigIndex *start, const int *index,
133 const double *value, const int *length,
134 const double *collb, const double *colub,
135 const double *obj,
136 const double *rowlb, const double *rowub,
137 const double *rowObjective = NULL);
139 int readMps(const char *filename,
140 bool keepNames = false,
141 bool ignoreErrors = false);
146 void borrowModel(ClpModel &otherModel);
148 void returnModel(ClpModel &otherModel);
150
154 int pdco();
155 // ** Temporary version
156 int pdco(ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo);
158 int primalDual();
160
163 inline bool primalFeasible() const
165 {
166 return (sumPrimalInfeasibilities_ <= 1.0e-5);
167 }
169 inline bool dualFeasible() const
170 {
171 return (sumDualInfeasibilities_ <= 1.0e-5);
172 }
174 inline int algorithm() const
175 {
176 return algorithm_;
177 }
179 inline void setAlgorithm(int value)
180 {
181 algorithm_ = value;
182 }
184 inline CoinWorkDouble sumDualInfeasibilities() const
185 {
186 return sumDualInfeasibilities_;
187 }
189 inline CoinWorkDouble sumPrimalInfeasibilities() const
190 {
191 return sumPrimalInfeasibilities_;
192 }
194 inline CoinWorkDouble dualObjective() const
195 {
196 return dualObjective_;
197 }
199 inline CoinWorkDouble primalObjective() const
200 {
201 return primalObjective_;
202 }
204 inline CoinWorkDouble diagonalNorm() const
205 {
206 return diagonalNorm_;
207 }
209 inline CoinWorkDouble linearPerturbation() const
210 {
211 return linearPerturbation_;
212 }
213 inline void setLinearPerturbation(CoinWorkDouble value)
214 {
215 linearPerturbation_ = value;
216 }
218 inline CoinWorkDouble projectionTolerance() const
219 {
220 return projectionTolerance_;
221 }
222 inline void setProjectionTolerance(CoinWorkDouble value)
223 {
224 projectionTolerance_ = value;
225 }
227 inline CoinWorkDouble diagonalPerturbation() const
228 {
229 return diagonalPerturbation_;
230 }
231 inline void setDiagonalPerturbation(CoinWorkDouble value)
232 {
233 diagonalPerturbation_ = value;
234 }
236 inline CoinWorkDouble gamma() const
237 {
238 return gamma_;
239 }
240 inline void setGamma(CoinWorkDouble value)
241 {
242 gamma_ = value;
243 }
245 inline CoinWorkDouble delta() const
246 {
247 return delta_;
248 }
249 inline void setDelta(CoinWorkDouble value)
250 {
251 delta_ = value;
252 }
254 inline CoinWorkDouble complementarityGap() const
255 {
256 return complementarityGap_;
257 }
259
262 inline CoinWorkDouble largestPrimalError() const
264 {
265 return largestPrimalError_;
266 }
268 inline CoinWorkDouble largestDualError() const
269 {
270 return largestDualError_;
271 }
273 inline int maximumBarrierIterations() const
274 {
275 return maximumBarrierIterations_;
276 }
277 inline void setMaximumBarrierIterations(int value)
278 {
279 maximumBarrierIterations_ = value;
280 }
282 void setCholesky(ClpCholeskyBase *cholesky);
284 int numberFixed() const;
287 void fixFixed(bool reallyFix = true);
289 inline CoinWorkDouble *primalR() const
290 {
291 return primalR_;
292 }
294 inline CoinWorkDouble *dualR() const
295 {
296 return dualR_;
297 }
299
300 protected:
303 void gutsOfDelete();
306 void gutsOfCopy(const ClpInterior &rhs);
308 bool createWorkingData();
309 void deleteWorkingData();
311 bool sanityCheck();
313 int housekeeping();
315 public:
318 inline CoinWorkDouble rawObjectiveValue() const
320 {
321 return objectiveValue_;
322 }
324 inline int isColumn(int sequence) const
325 {
326 return sequence < numberColumns_ ? 1 : 0;
327 }
329 inline int sequenceWithin(int sequence) const
330 {
331 return sequence < numberColumns_ ? sequence : sequence - numberColumns_;
332 }
334 void checkSolution();
337 CoinWorkDouble quadraticDjs(CoinWorkDouble *djRegion, const CoinWorkDouble *solution,
338 CoinWorkDouble scaleFactor);
339
341 inline void setFixed(int sequence)
342 {
343 status_[sequence] = static_cast< unsigned char >(status_[sequence] | 1);
344 }
345 inline void clearFixed(int sequence)
346 {
347 status_[sequence] = static_cast< unsigned char >(status_[sequence] & ~1);
348 }
349 inline bool fixed(int sequence) const
350 {
351 return ((status_[sequence] & 1) != 0);
352 }
353
355 inline void setFlagged(int sequence)
356 {
357 status_[sequence] = static_cast< unsigned char >(status_[sequence] | 2);
358 }
359 inline void clearFlagged(int sequence)
360 {
361 status_[sequence] = static_cast< unsigned char >(status_[sequence] & ~2);
362 }
363 inline bool flagged(int sequence) const
364 {
365 return ((status_[sequence] & 2) != 0);
366 }
367
369 inline void setFixedOrFree(int sequence)
370 {
371 status_[sequence] = static_cast< unsigned char >(status_[sequence] | 4);
372 }
373 inline void clearFixedOrFree(int sequence)
374 {
375 status_[sequence] = static_cast< unsigned char >(status_[sequence] & ~4);
376 }
377 inline bool fixedOrFree(int sequence) const
378 {
379 return ((status_[sequence] & 4) != 0);
380 }
381
383 inline void setLowerBound(int sequence)
384 {
385 status_[sequence] = static_cast< unsigned char >(status_[sequence] | 8);
386 }
387 inline void clearLowerBound(int sequence)
388 {
389 status_[sequence] = static_cast< unsigned char >(status_[sequence] & ~8);
390 }
391 inline bool lowerBound(int sequence) const
392 {
393 return ((status_[sequence] & 8) != 0);
394 }
395
397 inline void setUpperBound(int sequence)
398 {
399 status_[sequence] = static_cast< unsigned char >(status_[sequence] | 16);
400 }
401 inline void clearUpperBound(int sequence)
402 {
403 status_[sequence] = static_cast< unsigned char >(status_[sequence] & ~16);
404 }
405 inline bool upperBound(int sequence) const
406 {
407 return ((status_[sequence] & 16) != 0);
408 }
409
411 inline void setFakeLower(int sequence)
412 {
413 status_[sequence] = static_cast< unsigned char >(status_[sequence] | 32);
414 }
415 inline void clearFakeLower(int sequence)
416 {
417 status_[sequence] = static_cast< unsigned char >(status_[sequence] & ~32);
418 }
419 inline bool fakeLower(int sequence) const
420 {
421 return ((status_[sequence] & 32) != 0);
422 }
423
425 inline void setFakeUpper(int sequence)
426 {
427 status_[sequence] = static_cast< unsigned char >(status_[sequence] | 64);
428 }
429 inline void clearFakeUpper(int sequence)
430 {
431 status_[sequence] = static_cast< unsigned char >(status_[sequence] & ~64);
432 }
433 inline bool fakeUpper(int sequence) const
434 {
435 return ((status_[sequence] & 64) != 0);
436 }
438
440 protected:
447 CoinWorkDouble largestPrimalError_;
450 CoinWorkDouble largestDualError_;
452 CoinWorkDouble sumDualInfeasibilities_;
454 CoinWorkDouble sumPrimalInfeasibilities_;
456 CoinWorkDouble worstComplementarity_;
458 public:
459 CoinWorkDouble xsize_;
460 CoinWorkDouble zsize_;
461
462 protected:
464 CoinWorkDouble *lower_;
466 CoinWorkDouble *rowLowerWork_;
468 CoinWorkDouble *columnLowerWork_;
470 CoinWorkDouble *upper_;
472 CoinWorkDouble *rowUpperWork_;
474 CoinWorkDouble *columnUpperWork_;
476 CoinWorkDouble *cost_;
477
478 public:
480 CoinWorkDouble *rhs_;
481 CoinWorkDouble *x_;
482 CoinWorkDouble *y_;
483 CoinWorkDouble *dj_;
484
485 protected:
487 ClpLsqr *lsqrObject_;
489 ClpPdcoBase *pdcoStuff_;
492 CoinWorkDouble mu_;
494 CoinWorkDouble objectiveNorm_;
496 CoinWorkDouble rhsNorm_;
498 CoinWorkDouble solutionNorm_;
500 CoinWorkDouble dualObjective_;
502 CoinWorkDouble primalObjective_;
504 CoinWorkDouble diagonalNorm_;
506 CoinWorkDouble stepLength_;
508 CoinWorkDouble linearPerturbation_;
510 CoinWorkDouble diagonalPerturbation_;
511 // gamma from Saunders and Tomlin regularized
512 CoinWorkDouble gamma_;
513 // delta from Saunders and Tomlin regularized
514 CoinWorkDouble delta_;
516 CoinWorkDouble targetGap_;
518 CoinWorkDouble projectionTolerance_;
520 CoinWorkDouble maximumRHSError_;
522 CoinWorkDouble maximumBoundInfeasibility_;
524 CoinWorkDouble maximumDualError_;
526 CoinWorkDouble diagonalScaleFactor_;
528 CoinWorkDouble scaleFactor_;
530 CoinWorkDouble actualPrimalStep_;
532 CoinWorkDouble actualDualStep_;
534 CoinWorkDouble smallestInfeasibility_;
536 #define LENGTH_HISTORY 5
537 CoinWorkDouble historyInfeasibility_[LENGTH_HISTORY];
539 CoinWorkDouble complementarityGap_;
541 CoinWorkDouble baseObjectiveNorm_;
543 CoinWorkDouble worstDirectionAccuracy_;
545 CoinWorkDouble maximumRHSChange_;
547 CoinWorkDouble *errorRegion_;
549 CoinWorkDouble *rhsFixRegion_;
551 CoinWorkDouble *upperSlack_;
553 CoinWorkDouble *lowerSlack_;
555 CoinWorkDouble *diagonal_;
557 CoinWorkDouble *solution_;
559 CoinWorkDouble *workArray_;
561 CoinWorkDouble *deltaX_;
563 CoinWorkDouble *deltaY_;
565 CoinWorkDouble *deltaZ_;
567 CoinWorkDouble *deltaW_;
569 CoinWorkDouble *deltaSU_;
570 CoinWorkDouble *deltaSL_;
572 CoinWorkDouble *primalR_;
574 CoinWorkDouble *dualR_;
576 CoinWorkDouble *rhsB_;
578 CoinWorkDouble *rhsU_;
580 CoinWorkDouble *rhsL_;
582 CoinWorkDouble *rhsZ_;
584 CoinWorkDouble *rhsW_;
586 CoinWorkDouble *rhsC_;
588 CoinWorkDouble *zVec_;
590 CoinWorkDouble *wVec_;
592 ClpCholeskyBase *cholesky_;
594 int numberComplementarityPairs_;
596 int numberComplementarityItems_;
598 int maximumBarrierIterations_;
600 bool gonePrimalFeasible_;
602 bool goneDualFeasible_;
604 int algorithm_;
606 };
607 //#############################################################################
616 void ClpInteriorUnitTest(const std::string &mpsDir,
617 const std::string &netlibDir);
618
619 #endif
620
621 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
622 */
ClpInterior::zsize_
CoinWorkDouble zsize_
Definition: ClpInterior.hpp:460
ClpInterior::algorithm
int algorithm() const
Current (or last) algorithm.
Definition: ClpInterior.hpp:174
ClpInterior::goneDualFeasible_
bool goneDualFeasible_
goneDualFeasible.
Definition: ClpInterior.hpp:602
ClpInterior::clearUpperBound
void clearUpperBound(int sequence)
Definition: ClpInterior.hpp:401
ClpInterior::flagged
bool flagged(int sequence) const
Definition: ClpInterior.hpp:363
ClpInterior::diagonalNorm_
CoinWorkDouble diagonalNorm_
diagonalNorm.
Definition: ClpInterior.hpp:504
ClpInterior::maximumBoundInfeasibility_
CoinWorkDouble maximumBoundInfeasibility_
maximumBoundInfeasibility.
Definition: ClpInterior.hpp:522
ClpInterior::ClpInteriorUnitTest
friend void ClpInteriorUnitTest(const std::string &mpsDir, const std::string &netlibDir)
A function that tests the methods in the ClpInterior class.
ClpInterior::complementarityGap
CoinWorkDouble complementarityGap() const
ComplementarityGap.
Definition: ClpInterior.hpp:254
Info::atolmin
double atolmin
Definition: ClpInterior.hpp:28
ClpInterior::gamma
CoinWorkDouble gamma() const
gamma
Definition: ClpInterior.hpp:236
ClpSolve.hpp
ClpInterior::smallestInfeasibility_
CoinWorkDouble smallestInfeasibility_
smallestInfeasibility
Definition: ClpInterior.hpp:534
Outfo::itncg
int itncg
Definition: ClpInterior.hpp:40
ClpInteriorUnitTest
void ClpInteriorUnitTest(const std::string &mpsDir, const std::string &netlibDir)
A function that tests the methods in the ClpInterior class.
ClpInterior::setDelta
void setDelta(CoinWorkDouble value)
Definition: ClpInterior.hpp:249
ClpInterior::columnLowerWork_
CoinWorkDouble * columnLowerWork_
Column lower bounds - working copy.
Definition: ClpInterior.hpp:468
ClpInterior::worstComplementarity_
CoinWorkDouble worstComplementarity_
Worst complementarity.
Definition: ClpInterior.hpp:456
ClpInterior::setFixedOrFree
void setFixedOrFree(int sequence)
To say a variable is fixed OR free.
Definition: ClpInterior.hpp:369
ClpInterior::numberComplementarityItems_
int numberComplementarityItems_
numberComplementarityItems_ i.e. number of active bounds
Definition: ClpInterior.hpp:596
ClpMatrixBase
Abstract base class for Clp Matrices.
Definition: ClpMatrixBase.hpp:38
ClpModel
Definition: ClpModel.hpp:38
ClpInterior::rhsL_
CoinWorkDouble * rhsL_
rhsL.
Definition: ClpInterior.hpp:580
ClpInterior::solution_
CoinWorkDouble * solution_
solution
Definition: ClpInterior.hpp:557
ClpInterior
This solves LPs using interior point methods.
Definition: ClpInterior.hpp:72
ClpInterior::rawObjectiveValue
CoinWorkDouble rawObjectiveValue() const
Raw objective value (so always minimize)
Definition: ClpInterior.hpp:319
ClpInterior::setUpperBound
void setUpperBound(int sequence)
To say a variable has upper bound.
Definition: ClpInterior.hpp:397
CoinDenseVector.hpp
ClpInterior::primalObjective
CoinWorkDouble primalObjective() const
primalObjective.
Definition: ClpInterior.hpp:199
ClpInterior::historyInfeasibility_
CoinWorkDouble historyInfeasibility_[LENGTH_HISTORY]
Definition: ClpInterior.hpp:537
ClpInterior::lower_
CoinWorkDouble * lower_
Working copy of lower bounds (Owner of arrays below)
Definition: ClpInterior.hpp:464
ClpInterior::solutionNorm_
CoinWorkDouble solutionNorm_
solutionNorm.
Definition: ClpInterior.hpp:498
ClpInterior::fakeLower
bool fakeLower(int sequence) const
Definition: ClpInterior.hpp:419
ClpInterior::deleteWorkingData
void deleteWorkingData()
ClpLsqr
This class implements LSQR.
Definition: ClpLsqr.hpp:75
Info::LSdamp
double LSdamp
Definition: ClpInterior.hpp:30
ClpInterior::linearPerturbation
CoinWorkDouble linearPerturbation() const
linearPerturbation
Definition: ClpInterior.hpp:209
ClpInterior::primalR
CoinWorkDouble * primalR() const
Primal erturbation vector.
Definition: ClpInterior.hpp:289
ClpInterior::diagonalPerturbation_
CoinWorkDouble diagonalPerturbation_
diagonalPerturbation
Definition: ClpInterior.hpp:510
Info::r3norm
double r3norm
Definition: ClpInterior.hpp:29
ClpInterior::clearFixedOrFree
void clearFixedOrFree(int sequence)
Definition: ClpInterior.hpp:373
ClpInterior::deltaSU_
CoinWorkDouble * deltaSU_
deltaS.
Definition: ClpInterior.hpp:569
ClpInterior::sumPrimalInfeasibilities
CoinWorkDouble sumPrimalInfeasibilities() const
Sum of primal infeasibilities.
Definition: ClpInterior.hpp:189
ClpInterior::lowerBound
bool lowerBound(int sequence) const
Definition: ClpInterior.hpp:391
Outfo
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:35
ClpInterior::rhsC_
CoinWorkDouble * rhsC_
rhs C
Definition: ClpInterior.hpp:586
ClpInterior::largestPrimalError
CoinWorkDouble largestPrimalError() const
Largest error on Ax-b.
Definition: ClpInterior.hpp:263
ClpInterior::gonePrimalFeasible_
bool gonePrimalFeasible_
gonePrimalFeasible.
Definition: ClpInterior.hpp:600
ClpInterior::~ClpInterior
~ClpInterior()
Destructor.
Info::deltay
double * deltay
Definition: ClpInterior.hpp:31
ClpInterior::targetGap_
CoinWorkDouble targetGap_
targetGap
Definition: ClpInterior.hpp:516
ClpInterior::setFixed
void setFixed(int sequence)
To say a variable is fixed.
Definition: ClpInterior.hpp:341
ClpInterior::errorRegion_
CoinWorkDouble * errorRegion_
errorRegion. i.e. Ax
Definition: ClpInterior.hpp:547
ClpInterior::objectiveNorm_
CoinWorkDouble objectiveNorm_
objectiveNorm.
Definition: ClpInterior.hpp:494
ClpInterior::delta_
CoinWorkDouble delta_
Definition: ClpInterior.hpp:514
ClpInterior::algorithm_
int algorithm_
Which algorithm being used.
Definition: ClpInterior.hpp:604
ClpMatrixBase.hpp
ClpInterior::fakeUpper
bool fakeUpper(int sequence) const
Definition: ClpInterior.hpp:433
ClpInterior::xsize_
CoinWorkDouble xsize_
Definition: ClpInterior.hpp:459
ClpInterior::deltaY_
CoinWorkDouble * deltaY_
delta Y
Definition: ClpInterior.hpp:563
Options::wait
int wait
Definition: ClpInterior.hpp:60
ClpInterior::maximumBarrierIterations_
int maximumBarrierIterations_
Maximum iterations.
Definition: ClpInterior.hpp:598
Options::LSQRconlim
double LSQRconlim
Definition: ClpInterior.hpp:59
ClpInterior::setGamma
void setGamma(CoinWorkDouble value)
Definition: ClpInterior.hpp:240
ClpInterior::upperSlack_
CoinWorkDouble * upperSlack_
upperSlack
Definition: ClpInterior.hpp:551
ClpInterior::isColumn
int isColumn(int sequence) const
Returns 1 if sequence indicates column.
Definition: ClpInterior.hpp:324
ClpModel::numberColumns
int numberColumns() const
Definition: ClpModel.hpp:328
ClpInterior::clearFakeUpper
void clearFakeUpper(int sequence)
Definition: ClpInterior.hpp:429
ClpCholeskyBase
Base class for Clp Cholesky factorization Will do better factorization.
Definition: ClpCholeskyBase.hpp:53
ClpInterior::baseObjectiveNorm_
CoinWorkDouble baseObjectiveNorm_
baseObjectiveNorm
Definition: ClpInterior.hpp:541
Options::mu0
double mu0
Definition: ClpInterior.hpp:53
ClpInterior::rhsFixRegion_
CoinWorkDouble * rhsFixRegion_
rhsFixRegion.
Definition: ClpInterior.hpp:549
ClpInterior::clearLowerBound
void clearLowerBound(int sequence)
Definition: ClpInterior.hpp:387
ClpInterior::rhsZ_
CoinWorkDouble * rhsZ_
rhsZ.
Definition: ClpInterior.hpp:582
LENGTH_HISTORY
#define LENGTH_HISTORY
historyInfeasibility.
Definition: ClpInterior.hpp:536
ClpInterior::delta
CoinWorkDouble delta() const
delta
Definition: ClpInterior.hpp:245
ClpInterior::setFakeLower
void setFakeLower(int sequence)
To say a variable has fake lower bound.
Definition: ClpInterior.hpp:411
ClpInterior::clearFixed
void clearFixed(int sequence)
Definition: ClpInterior.hpp:345
Options::LSQRMaxIter
int LSQRMaxIter
Definition: ClpInterior.hpp:56
ClpInterior::setLinearPerturbation
void setLinearPerturbation(CoinWorkDouble value)
Definition: ClpInterior.hpp:213
Info
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:27
ClpInterior::rhsW_
CoinWorkDouble * rhsW_
rhsW.
Definition: ClpInterior.hpp:584
ClpInterior::projectionTolerance_
CoinWorkDouble projectionTolerance_
projectionTolerance
Definition: ClpInterior.hpp:518
ClpInterior::zVec_
CoinWorkDouble * zVec_
zVec
Definition: ClpInterior.hpp:588
ClpInterior::numberComplementarityPairs_
int numberComplementarityPairs_
numberComplementarityPairs i.e. ones with lower and/or upper bounds (not fixed)
Definition: ClpInterior.hpp:594
ClpInterior::sequenceWithin
int sequenceWithin(int sequence) const
Returns sequence number within section.
Definition: ClpInterior.hpp:329
ClpInterior::primalDual
int primalDual()
Primal-Dual Predictor-Corrector barrier.
ClpInterior::deltaSL_
CoinWorkDouble * deltaSL_
Definition: ClpInterior.hpp:570
ClpInterior::workArray_
CoinWorkDouble * workArray_
work array
Definition: ClpInterior.hpp:559
ClpInterior::x_
CoinWorkDouble * x_
Definition: ClpInterior.hpp:481
ClpInterior::sumPrimalInfeasibilities_
CoinWorkDouble sumPrimalInfeasibilities_
Sum of primal infeasibilities.
Definition: ClpInterior.hpp:454
ClpInterior::diagonalNorm
CoinWorkDouble diagonalNorm() const
diagonalNorm
Definition: ClpInterior.hpp:204
ClpInterior::gutsOfCopy
void gutsOfCopy(const ClpInterior &rhs)
Does most of copying.
ClpInterior::ClpInterior
ClpInterior()
Default constructor.
Options::z0min
double z0min
Definition: ClpInterior.hpp:52
ClpInterior::complementarityGap_
CoinWorkDouble complementarityGap_
complementarityGap.
Definition: ClpInterior.hpp:539
ClpInterior::setFakeUpper
void setFakeUpper(int sequence)
To say a variable has fake upper bound.
Definition: ClpInterior.hpp:425
Outfo::istop
int istop
Definition: ClpInterior.hpp:39
ClpInterior::maximumRHSError_
CoinWorkDouble maximumRHSError_
maximumRHSError. maximum Ax
Definition: ClpInterior.hpp:520
ClpInterior::maximumDualError_
CoinWorkDouble maximumDualError_
maximumDualError.
Definition: ClpInterior.hpp:524
ClpInterior::diagonal_
CoinWorkDouble * diagonal_
diagonal
Definition: ClpInterior.hpp:555
Options::gamma
double gamma
Definition: ClpInterior.hpp:45
ClpInterior::primalObjective_
CoinWorkDouble primalObjective_
primalObjective.
Definition: ClpInterior.hpp:502
ClpPdcoBase
Abstract base class for tailoring everything for Pcdo.
Definition: ClpPdcoBase.hpp:25
ClpInterior::dualR
CoinWorkDouble * dualR() const
Dual erturbation vector.
Definition: ClpInterior.hpp:294
ClpModel::numberColumns_
int numberColumns_
Number of columns.
Definition: ClpModel.hpp:1254
ClpInterior::operator=
ClpInterior & operator=(const ClpInterior &rhs)
Assignment operator. This copies the data.
ClpInterior::setAlgorithm
void setAlgorithm(int value)
Set algorithm.
Definition: ClpInterior.hpp:179
ClpInterior::checkSolution
void checkSolution()
Checks solution.
Options::LSQRatol2
double LSQRatol2
Definition: ClpInterior.hpp:58
ClpInterior::columnUpperWork_
CoinWorkDouble * columnUpperWork_
Column upper bounds - working copy.
Definition: ClpInterior.hpp:474
ClpInterior::quadraticDjs
CoinWorkDouble quadraticDjs(CoinWorkDouble *djRegion, const CoinWorkDouble *solution, CoinWorkDouble scaleFactor)
Modifies djs to allow for quadratic.
Outfo::atolnew
double atolnew
Definition: ClpInterior.hpp:37
ClpInterior::readMps
int readMps(const char *filename, bool keepNames=false, bool ignoreErrors=false)
Read an mps file from the given filename.
ClpModel::rowObjective
double * rowObjective() const
Row Objective.
Definition: ClpModel.hpp:741
ClpInterior::largestDualError
CoinWorkDouble largestDualError() const
Largest error on basic duals.
Definition: ClpInterior.hpp:268
ClpInterior::upper_
CoinWorkDouble * upper_
Working copy of upper bounds (Owner of arrays below)
Definition: ClpInterior.hpp:470
ClpInterior::setMaximumBarrierIterations
void setMaximumBarrierIterations(int value)
Definition: ClpInterior.hpp:277
ClpInterior::setProjectionTolerance
void setProjectionTolerance(CoinWorkDouble value)
Definition: ClpInterior.hpp:222
ClpInterior::rowUpperWork_
CoinWorkDouble * rowUpperWork_
Row upper bounds - working copy.
Definition: ClpInterior.hpp:472
ClpInterior::deltaW_
CoinWorkDouble * deltaW_
deltaW.
Definition: ClpInterior.hpp:567
Options::delta
double delta
Definition: ClpInterior.hpp:46
ClpInterior::clearFlagged
void clearFlagged(int sequence)
Definition: ClpInterior.hpp:359
ClpInterior::actualPrimalStep_
CoinWorkDouble actualPrimalStep_
actualPrimalStep
Definition: ClpInterior.hpp:530
ClpInterior::sumDualInfeasibilities
CoinWorkDouble sumDualInfeasibilities() const
Sum of dual infeasibilities.
Definition: ClpInterior.hpp:184
ClpInterior::lsqrObject_
ClpLsqr * lsqrObject_
Pointer to Lsqr object.
Definition: ClpInterior.hpp:487
ClpInterior::pdco
int pdco()
Pdco algorithm - see ClpPdco.hpp for method.
Options::MaxIter
int MaxIter
Definition: ClpInterior.hpp:47
CoinPackedMatrix
Sparse Matrix Base Class.
Definition: CoinPackedMatrix.hpp:79
ClpInterior::dualR_
CoinWorkDouble * dualR_
Dual regularization array.
Definition: ClpInterior.hpp:574
ClpInterior::dualObjective
CoinWorkDouble dualObjective() const
dualObjective.
Definition: ClpInterior.hpp:194
Outfo::r3ratio
double r3ratio
Definition: ClpInterior.hpp:38
ClpInterior::pdcoStuff_
ClpPdcoBase * pdcoStuff_
Pointer to stuff.
Definition: ClpInterior.hpp:489
ClpInterior::dualFeasible
bool dualFeasible() const
If problem is dual feasible.
Definition: ClpInterior.hpp:169
ClpInterior::maximumRHSChange_
CoinWorkDouble maximumRHSChange_
maximumRHSChange
Definition: ClpInterior.hpp:545
ClpInterior::rhsNorm_
CoinWorkDouble rhsNorm_
rhsNorm.
Definition: ClpInterior.hpp:496
ClpInterior::sumDualInfeasibilities_
CoinWorkDouble sumDualInfeasibilities_
Sum of dual infeasibilities.
Definition: ClpInterior.hpp:452
ClpInterior::fixed
bool fixed(int sequence) const
Definition: ClpInterior.hpp:349
ClpInterior::fixedOrFree
bool fixedOrFree(int sequence) const
Definition: ClpInterior.hpp:377
ClpModel::numberRows
int numberRows() const
Number of rows.
Definition: ClpModel.hpp:315
ClpInterior::setLowerBound
void setLowerBound(int sequence)
To say a variable has lower bound.
Definition: ClpInterior.hpp:383
ClpInterior::housekeeping
int housekeeping()
This does housekeeping.
ClpInterior::y_
CoinWorkDouble * y_
Definition: ClpInterior.hpp:482
ClpInterior::upperBound
bool upperBound(int sequence) const
Definition: ClpInterior.hpp:405
ClpInterior::scaleFactor_
CoinWorkDouble scaleFactor_
scaleFactor. For scaling objective
Definition: ClpInterior.hpp:528
ClpInterior::deltaX_
CoinWorkDouble * deltaX_
delta X
Definition: ClpInterior.hpp:561
CoinBigIndex
int CoinBigIndex
Definition: Coin_C_defines.h:136
ClpInterior::stepLength_
CoinWorkDouble stepLength_
stepLength
Definition: ClpInterior.hpp:506
Options::StepTol
double StepTol
Definition: ClpInterior.hpp:50
Options::LSQRatol1
double LSQRatol1
Definition: ClpInterior.hpp:57
ClpInterior::sanityCheck
bool sanityCheck()
Sanity check on input rim data.
Options::FeaTol
double FeaTol
Definition: ClpInterior.hpp:48
ClpInterior::lowerSlack_
CoinWorkDouble * lowerSlack_
lowerSlack
Definition: ClpInterior.hpp:553
ClpModel::status_
unsigned char * status_
Status (i.e.
Definition: ClpModel.hpp:1301
Options::x0min
double x0min
Definition: ClpInterior.hpp:51
Outfo::atolold
double atolold
Definition: ClpInterior.hpp:36
ClpInterior::primalFeasible
bool primalFeasible() const
If problem is primal feasible.
Definition: ClpInterior.hpp:164
ClpInterior::fixFixed
void fixFixed(bool reallyFix=true)
fix variables interior says should be.
ClpInterior::diagonalPerturbation
CoinWorkDouble diagonalPerturbation() const
diagonalPerturbation
Definition: ClpInterior.hpp:227
ClpInterior::setCholesky
void setCholesky(ClpCholeskyBase *cholesky)
Set cholesky (and delete present one)
Options::LSmethod
int LSmethod
Definition: ClpInterior.hpp:54
ClpInterior::cost_
CoinWorkDouble * cost_
Working copy of objective.
Definition: ClpInterior.hpp:476
ClpInterior::wVec_
CoinWorkDouble * wVec_
wVec
Definition: ClpInterior.hpp:590
ClpInterior::returnModel
void returnModel(ClpModel &otherModel)
Return model - updates any scalars.
ClpInterior::maximumBarrierIterations
int maximumBarrierIterations() const
Maximum iterations.
Definition: ClpInterior.hpp:273
ClpInterior::largestPrimalError_
CoinWorkDouble largestPrimalError_
Largest error on Ax-b.
Definition: ClpInterior.hpp:448
ClpInterior::numberFixed
int numberFixed() const
Return number fixed to see if worth presolving.
ClpInterior::rhs_
CoinWorkDouble * rhs_
Rhs.
Definition: ClpInterior.hpp:480
ClpInterior::createWorkingData
bool createWorkingData()
Returns true if data looks okay, false if not.
ClpModel.hpp
CoinWorkDouble
double CoinWorkDouble
Definition: CoinTypes.hpp:53
ClpInterior::rowLowerWork_
CoinWorkDouble * rowLowerWork_
Row lower bounds - working copy.
Definition: ClpInterior.hpp:466
ClpInterior::dj_
CoinWorkDouble * dj_
Definition: ClpInterior.hpp:483
ClpInterior::actualDualStep_
CoinWorkDouble actualDualStep_
actualDualStep
Definition: ClpInterior.hpp:532
ClpInterior::rhsU_
CoinWorkDouble * rhsU_
rhsU.
Definition: ClpInterior.hpp:578
ClpInterior::borrowModel
void borrowModel(ClpModel &otherModel)
Borrow model.
ClpInterior::linearPerturbation_
CoinWorkDouble linearPerturbation_
linearPerturbation
Definition: ClpInterior.hpp:508
ClpInterior::worstDirectionAccuracy_
CoinWorkDouble worstDirectionAccuracy_
worstDirectionAccuracy
Definition: ClpInterior.hpp:543
ClpInterior::cholesky_
ClpCholeskyBase * cholesky_
cholesky.
Definition: ClpInterior.hpp:592
Options::OptTol
double OptTol
Definition: ClpInterior.hpp:49
ClpInterior::dualObjective_
CoinWorkDouble dualObjective_
dualObjective.
Definition: ClpInterior.hpp:500
ClpModel::dropNames
void dropNames()
Drops names - makes lengthnames 0 and names empty.
ClpInterior::primalR_
CoinWorkDouble * primalR_
Primal regularization array.
Definition: ClpInterior.hpp:572
ClpModel::objectiveValue_
double objectiveValue_
Objective value.
Definition: ClpModel.hpp:1244
ClpInterior::projectionTolerance
CoinWorkDouble projectionTolerance() const
projectionTolerance
Definition: ClpInterior.hpp:218
ClpInterior::rhsB_
CoinWorkDouble * rhsB_
rhs B
Definition: ClpInterior.hpp:576
ClpInterior::setFlagged
void setFlagged(int sequence)
To flag a variable.
Definition: ClpInterior.hpp:355
ClpInterior::deltaZ_
CoinWorkDouble * deltaZ_
deltaZ.
Definition: ClpInterior.hpp:565
ClpModel::matrix
CoinPackedMatrix * matrix() const
Matrix (if not ClpPackedmatrix be careful about memory leak.
Definition: ClpModel.hpp:768
ClpInterior::diagonalScaleFactor_
CoinWorkDouble diagonalScaleFactor_
diagonalScaleFactor.
Definition: ClpInterior.hpp:526
ClpInterior::gamma_
CoinWorkDouble gamma_
Definition: ClpInterior.hpp:512
ClpInterior::loadProblem
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).
Options
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:44
Options::LSproblem
int LSproblem
Definition: ClpInterior.hpp:55
ClpInterior::mu_
CoinWorkDouble mu_
Below here is standard barrier stuff mu.
Definition: ClpInterior.hpp:492
ClpInterior::gutsOfDelete
void gutsOfDelete()
Does most of deletion.
ClpInterior::largestDualError_
CoinWorkDouble largestDualError_
Largest error on basic duals.
Definition: ClpInterior.hpp:450
ClpInterior::clearFakeLower
void clearFakeLower(int sequence)
Definition: ClpInterior.hpp:415
ClpInterior::setDiagonalPerturbation
void setDiagonalPerturbation(CoinWorkDouble value)
Definition: ClpInterior.hpp:231