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
ClpFactorization.hpp
Go to the documentation of this file.
1 /* $Id: ClpFactorization.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
2 // Copyright (C) 2002, 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 #ifndef ClpFactorization_H
7 #define ClpFactorization_H
8
9 #include "CoinPragma.hpp"
10
11 #include "CoinFactorization.hpp"
12 class ClpMatrixBase;
13 class ClpSimplex;
14 class ClpNetworkBasis;
15 class CoinOtherFactorization;
16 #ifndef CLP_MULTIPLE_FACTORIZATIONS
17 #define CLP_MULTIPLE_FACTORIZATIONS 4
18 #endif
19 #ifdef CLP_MULTIPLE_FACTORIZATIONS
20 #include "CoinDenseFactorization.hpp"
21 #include "ClpSimplex.hpp"
22 #endif
23 #ifndef COIN_FAST_CODE
24 #define COIN_FAST_CODE
25 #endif
26 #ifndef CLP_FACTORIZATION_NEW_TIMING
27 #define CLP_FACTORIZATION_NEW_TIMING 1
28 #endif
29
34 class ClpFactorization
35 #ifndef CLP_MULTIPLE_FACTORIZATIONS
36 : public CoinFactorization
37 #endif
38 {
39
40 //friend class CoinFactorization;
41
42 public:
54 int factorize(ClpSimplex *model, int solveType, bool valuesPass);
56
60 ClpFactorization();
62 ~ClpFactorization();
64
68 ClpFactorization(const CoinFactorization &);
70 ClpFactorization(const ClpFactorization &, int denseIfSmaller = 0);
71 #ifdef CLP_MULTIPLE_FACTORIZATIONS
72
73 ClpFactorization(const CoinOtherFactorization &);
74 #endif
75 ClpFactorization &operator=(const ClpFactorization &);
77
78 /* **** below here is so can use networkish basis */
81
89 int replaceColumn(const ClpSimplex *model,
90 CoinIndexedVector *regionSparse,
91 CoinIndexedVector *tableauColumn,
92 int pivotRow,
93 double pivotCheck,
94 bool checkBeforeModifying = false,
95 double acceptablePivot = 1.0e-8);
96 #if ABOCA_LITE_FACTORIZATION
97 void replaceColumn1(CoinIndexedVector *regionSparse, int pivotRow);
100 int replaceColumn2(CoinIndexedVector *regionSparse,
101 int pivotRow,
102 double pivotCheck);
103 #endif
104
105
113 int updateColumnFT(CoinIndexedVector *regionSparse,
114 CoinIndexedVector *regionSparse2);
117 int updateColumn(CoinIndexedVector *regionSparse,
118 CoinIndexedVector *regionSparse2,
119 bool noPermute = false) const;
125 int updateTwoColumnsFT(CoinIndexedVector *regionSparse1,
126 CoinIndexedVector *regionSparse2,
127 CoinIndexedVector *regionSparse3,
128 bool noPermuteRegion3 = false);
130 int updateColumnForDebug(CoinIndexedVector *regionSparse,
131 CoinIndexedVector *regionSparse2,
132 bool noPermute = false) const;
135 int updateColumnTranspose(CoinIndexedVector *regionSparse,
136 CoinIndexedVector *regionSparse2) const;
141 void updateTwoColumnsTranspose(CoinIndexedVector *regionSparse,
142 CoinIndexedVector *regionSparse2,
143 CoinIndexedVector *regionSparse3) const;
145 #ifdef CLP_MULTIPLE_FACTORIZATIONS
146
148 inline int numberElements() const
150 {
151 if (coinFactorizationA_)
152 return coinFactorizationA_->numberElements();
153 else
154 return coinFactorizationB_->numberElements();
155 }
157 inline int *permute() const
158 {
159 if (coinFactorizationA_)
160 return coinFactorizationA_->permute();
161 else
162 return coinFactorizationB_->permute();
163 }
165 inline int *pivotColumn() const
166 {
167 if (coinFactorizationA_)
168 return coinFactorizationA_->pivotColumn();
169 else
170 return coinFactorizationB_->permute();
171 }
173 inline int maximumPivots() const
174 {
175 if (coinFactorizationA_)
176 return coinFactorizationA_->maximumPivots();
177 else
178 return coinFactorizationB_->maximumPivots();
179 }
181 inline void maximumPivots(int value)
182 {
183 if (coinFactorizationA_)
184 coinFactorizationA_->maximumPivots(value);
185 else
186 coinFactorizationB_->maximumPivots(value);
187 }
189 inline int pivots() const
190 {
191 if (coinFactorizationA_)
192 return coinFactorizationA_->pivots();
193 else
194 return coinFactorizationB_->pivots();
195 }
197 inline double areaFactor() const
198 {
199 if (coinFactorizationA_)
200 return coinFactorizationA_->areaFactor();
201 else
202 return 0.0;
203 }
205 inline void areaFactor(double value)
206 {
207 if (coinFactorizationA_)
208 coinFactorizationA_->areaFactor(value);
209 }
211 inline double zeroTolerance() const
212 {
213 if (coinFactorizationA_)
214 return coinFactorizationA_->zeroTolerance();
215 else
216 return coinFactorizationB_->zeroTolerance();
217 }
219 inline void zeroTolerance(double value)
220 {
221 if (coinFactorizationA_)
222 coinFactorizationA_->zeroTolerance(value);
223 else
224 coinFactorizationB_->zeroTolerance(value);
225 }
227 void saferTolerances(double zeroTolerance, double pivotTolerance);
229 inline int sparseThreshold() const
230 {
231 if (coinFactorizationA_)
232 return coinFactorizationA_->sparseThreshold();
233 else
234 return 0;
235 }
237 inline void sparseThreshold(int value)
238 {
239 if (coinFactorizationA_)
240 coinFactorizationA_->sparseThreshold(value);
241 }
243 inline int status() const
244 {
245 if (coinFactorizationA_)
246 return coinFactorizationA_->status();
247 else
248 return coinFactorizationB_->status();
249 }
251 inline void setStatus(int value)
252 {
253 if (coinFactorizationA_)
254 coinFactorizationA_->setStatus(value);
255 else
256 coinFactorizationB_->setStatus(value);
257 }
259 inline int numberDense() const
260 {
261 if (coinFactorizationA_)
262 return coinFactorizationA_->numberDense();
263 else
264 return 0;
265 }
266 #if 1
267 inline CoinBigIndex numberElementsU() const
269 {
270 if (coinFactorizationA_)
271 return coinFactorizationA_->numberElementsU();
272 else
273 return -1;
274 }
276 inline CoinBigIndex numberElementsL() const
277 {
278 if (coinFactorizationA_)
279 return coinFactorizationA_->numberElementsL();
280 else
281 return -1;
282 }
284 inline CoinBigIndex numberElementsR() const
285 {
286 if (coinFactorizationA_)
287 return coinFactorizationA_->numberElementsR();
288 else
289 return 0;
290 }
291 #endif
292 bool timeToRefactorize() const;
293 #if CLP_FACTORIZATION_NEW_TIMING > 1
294 void statsRefactor(char when) const;
295 #endif
296 inline int messageLevel() const
298 {
299 if (coinFactorizationA_)
300 return coinFactorizationA_->messageLevel();
301 else
302 return 1;
303 }
305 inline void messageLevel(int value)
306 {
307 if (coinFactorizationA_)
308 coinFactorizationA_->messageLevel(value);
309 }
311 inline void clearArrays()
312 {
313 if (coinFactorizationA_)
314 coinFactorizationA_->clearArrays();
315 else if (coinFactorizationB_)
316 coinFactorizationB_->clearArrays();
317 }
319 inline int numberRows() const
320 {
321 if (coinFactorizationA_)
322 return coinFactorizationA_->numberRows();
323 else
324 return coinFactorizationB_->numberRows();
325 }
327 inline int denseThreshold() const
328 {
329 if (coinFactorizationA_)
330 return coinFactorizationA_->denseThreshold();
331 else
332 return 0;
333 }
335 inline void setDenseThreshold(int value)
336 {
337 if (coinFactorizationA_)
338 coinFactorizationA_->setDenseThreshold(value);
339 }
341 inline double pivotTolerance() const
342 {
343 if (coinFactorizationA_)
344 return coinFactorizationA_->pivotTolerance();
345 else if (coinFactorizationB_)
346 return coinFactorizationB_->pivotTolerance();
347 return 1.0e-8;
348 }
350 inline void pivotTolerance(double value)
351 {
352 if (coinFactorizationA_)
353 coinFactorizationA_->pivotTolerance(value);
354 else if (coinFactorizationB_)
355 coinFactorizationB_->pivotTolerance(value);
356 }
358 inline void relaxAccuracyCheck(double value)
359 {
360 if (coinFactorizationA_)
361 coinFactorizationA_->relaxAccuracyCheck(value);
362 }
368 inline int persistenceFlag() const
369 {
370 if (coinFactorizationA_)
371 return coinFactorizationA_->persistenceFlag();
372 else
373 return 0;
374 }
375 inline void setPersistenceFlag(int value)
376 {
377 if (coinFactorizationA_)
378 coinFactorizationA_->setPersistenceFlag(value);
379 }
381 inline void almostDestructor()
382 {
383 if (coinFactorizationA_)
384 coinFactorizationA_->almostDestructor();
385 else if (coinFactorizationB_)
386 coinFactorizationB_->clearArrays();
387 }
389 inline double adjustedAreaFactor() const
390 {
391 if (coinFactorizationA_)
392 return coinFactorizationA_->adjustedAreaFactor();
393 else
394 return 0.0;
395 }
396 inline void setBiasLU(int value)
397 {
398 if (coinFactorizationA_)
399 coinFactorizationA_->setBiasLU(value);
400 }
402 inline void setForrestTomlin(bool value)
403 {
404 if (coinFactorizationA_)
405 coinFactorizationA_->setForrestTomlin(value);
406 }
408 inline void setDefaultValues()
409 {
410 if (coinFactorizationA_) {
411 // row activities have negative sign
412 #ifndef COIN_FAST_CODE
413 coinFactorizationA_->slackValue(-1.0);
414 #endif
415 coinFactorizationA_->zeroTolerance(1.0e-13);
416 }
417 }
419 void forceOtherFactorization(int which);
421 inline int goOslThreshold() const
422 {
423 return goOslThreshold_;
424 }
426 inline void setGoOslThreshold(int value)
427 {
428 goOslThreshold_ = value;
429 }
431 inline int goDenseThreshold() const
432 {
433 return goDenseThreshold_;
434 }
436 inline void setGoDenseThreshold(int value)
437 {
438 goDenseThreshold_ = value;
439 }
441 inline int goSmallThreshold() const
442 {
443 return goSmallThreshold_;
444 }
446 inline void setGoSmallThreshold(int value)
447 {
448 goSmallThreshold_ = value;
449 }
451 void goDenseOrSmall(int numberRows);
453 void setFactorization(ClpFactorization &factorization);
455 inline int isDenseOrSmall() const
456 {
457 return coinFactorizationB_ ? 1 : 0;
458 }
460 inline CoinFactorization *coinFactorization() const
461 {
462 return coinFactorizationA_;
463 }
464 #else
465 inline bool timeToRefactorize() const
466 {
467 return (pivots() * 3 > maximumPivots() * 2 && numberElementsR() * 3 > (numberElementsL() + numberElementsU()) * 2 + 1000 && !numberDense());
468 }
470 inline void setDefaultValues()
471 {
472 // row activities have negative sign
473 #ifndef COIN_FAST_CODE
474 slackValue(-1.0);
475 #endif
476 zeroTolerance(1.0e-13);
477 }
479 inline void goDense() {}
480 #endif
481
482
486 void goSparse();
488 void cleanUp();
490 bool needToReorder() const;
492 inline void doStatistics(bool trueFalse) const
493 {
494 doStatistics_ = trueFalse;
495 }
496 #ifndef SLIM_CLP
497 inline bool networkBasis() const
499 {
500 return (networkBasis_ != NULL);
501 }
502 #else
503 inline bool networkBasis() const
505 {
506 return false;
507 }
508 #endif
509 void getWeights(int *weights) const;
512
514 private:
517 #ifndef SLIM_CLP
519 ClpNetworkBasis *networkBasis_;
520 #endif
521 #ifdef CLP_MULTIPLE_FACTORIZATIONS
522 CoinFactorization *coinFactorizationA_;
525 CoinOtherFactorization *coinFactorizationB_;
526 #ifdef CLP_REUSE_ETAS
527 ClpSimplex *model_;
529 #endif
530 int forceB_;
533 int goOslThreshold_;
535 int goSmallThreshold_;
537 int goDenseThreshold_;
538 #endif
539 #ifdef CLP_FACTORIZATION_NEW_TIMING
540 mutable double shortestAverage_;
542 mutable double totalInR_;
543 mutable double totalInIncreasingU_;
544 mutable int endLengthU_;
545 mutable int lastNumberPivots_;
546 mutable int effectiveStartNumberU_;
547 #endif
548 mutable bool doStatistics_;
551 };
552
553 #endif
554
555 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
556 */
ClpFactorization::pivots
int pivots() const
Returns number of pivots since factorization.
Definition: ClpFactorization.hpp:189
ClpFactorization::goOslThreshold_
int goOslThreshold_
Switch to osl if number rows &lt;= this.
Definition: ClpFactorization.hpp:533
ClpFactorization::updateColumn
int updateColumn(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const
Updates one column (FTRAN) from region2 region1 starts as zero and is zero at end.
ClpFactorization::setGoOslThreshold
void setGoOslThreshold(int value)
Set switch to osl if number rows &lt;= this.
Definition: ClpFactorization.hpp:426
ClpSimplex.hpp
ClpFactorization::setGoSmallThreshold
void setGoSmallThreshold(int value)
Set switch to small if number rows &lt;= this.
Definition: ClpFactorization.hpp:446
ClpFactorization::sparseThreshold
void sparseThreshold(int value)
Set sparse threshold.
Definition: ClpFactorization.hpp:237
CoinFactorization::areaFactor
double areaFactor() const
Whether larger areas needed.
Definition: CoinFactorization.hpp:269
CoinFactorization::numberDense
int numberDense() const
Returns number of dense rows.
Definition: CoinFactorization.hpp:355
CoinFactorization::status
int status() const
Returns status.
Definition: CoinFactorization.hpp:136
CoinFactorization::denseThreshold
int denseThreshold() const
Gets dense threshold.
Definition: CoinFactorization.hpp:302
ClpMatrixBase
Abstract base class for Clp Matrices.
Definition: ClpMatrixBase.hpp:38
ClpFactorization::updateTwoColumnsFT
int updateTwoColumnsFT(CoinIndexedVector *regionSparse1, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3, bool noPermuteRegion3=false)
Updates one column (FTRAN) from region2 Tries to do FT update number returned is negative if no room...
ClpFactorization::setStatus
void setStatus(int value)
Sets status.
Definition: ClpFactorization.hpp:251
CoinFactorization::numberElementsL
int numberElementsL() const
Returns number in L area.
Definition: CoinFactorization.hpp:376
CoinFactorization::pivotColumn
int * pivotColumn() const
Returns address of pivotColumn region (also used for permuting)
Definition: CoinFactorization.hpp:161
ClpFactorization::shortestAverage_
double shortestAverage_
For guessing when to re-factorize.
Definition: ClpFactorization.hpp:541
CoinOtherFactorization
Abstract base class which also has some scalars so can be used from Dense or Simp.
Definition: CoinDenseFactorization.hpp:26
CoinFactorization::setForrestTomlin
void setForrestTomlin(bool value)
Definition: CoinFactorization.hpp:338
ClpFactorization::goDenseThreshold
int goDenseThreshold() const
Get switch to dense if number rows &lt;= this.
Definition: ClpFactorization.hpp:431
ClpFactorization::factorize
int factorize(ClpSimplex *model, int solveType, bool valuesPass)
When part of LP - given by basic variables.
ClpFactorization::setDenseThreshold
void setDenseThreshold(int value)
Sets dense threshold.
Definition: ClpFactorization.hpp:335
ClpFactorization::pivotTolerance
double pivotTolerance() const
Pivot tolerance.
Definition: ClpFactorization.hpp:341
ClpFactorization::almostDestructor
void almostDestructor()
Delete all stuff (leaves as after CoinFactorization())
Definition: ClpFactorization.hpp:381
CoinFactorization::relaxAccuracyCheck
void relaxAccuracyCheck(double value)
Allows change of pivot accuracy check 1.0 == none &gt;1.0 relaxed.
Definition: CoinFactorization.hpp:280
ClpFactorization::forceOtherFactorization
void forceOtherFactorization(int which)
If nonzero force use of 1,dense 2,small 3,osl.
CoinFactorization::numberRows
int numberRows() const
Number of Rows after factorization.
Definition: CoinFactorization.hpp:228
CoinFactorization::permute
int * permute() const
Returns address of permute region.
Definition: CoinFactorization.hpp:156
ClpFactorization::setFactorization
void setFactorization(ClpFactorization &factorization)
Sets factorization.
ClpFactorization::areaFactor
double areaFactor() const
Whether larger areas needed.
Definition: ClpFactorization.hpp:197
ClpFactorization::numberElementsR
CoinBigIndex numberElementsR() const
Returns number in R area.
Definition: ClpFactorization.hpp:284
CoinFactorization::numberElements
int numberElements() const
Total number of elements in factorization.
Definition: CoinFactorization.hpp:254
ClpFactorization::networkBasis_
ClpNetworkBasis * networkBasis_
Pointer to network basis.
Definition: ClpFactorization.hpp:519
ClpFactorization::saferTolerances
void saferTolerances(double zeroTolerance, double pivotTolerance)
Set tolerances to safer of existing and given.
ClpFactorization::totalInR_
double totalInR_
Definition: ClpFactorization.hpp:542
CoinOtherFactorization::numberRows
int numberRows() const
Number of Rows after factorization.
Definition: CoinDenseFactorization.hpp:73
ClpFactorization::setGoDenseThreshold
void setGoDenseThreshold(int value)
Set switch to dense if number rows &lt;= this.
Definition: ClpFactorization.hpp:436
ClpFactorization::setDefaultValues
void setDefaultValues()
Sets default values.
Definition: ClpFactorization.hpp:408
ClpFactorization::adjustedAreaFactor
double adjustedAreaFactor() const
Returns areaFactor but adjusted for dense.
Definition: ClpFactorization.hpp:389
ClpFactorization::status
int status() const
Returns status.
Definition: ClpFactorization.hpp:243
ClpNetworkBasis
This deals with Factorization and Updates for network structures.
Definition: ClpNetworkBasis.hpp:25
ClpFactorization
This just implements CoinFactorization when an ClpMatrixBase object is passed.
Definition: ClpFactorization.hpp:34
ClpFactorization::setBiasLU
void setBiasLU(int value)
Definition: ClpFactorization.hpp:396
ClpFactorization::endLengthU_
int endLengthU_
Definition: ClpFactorization.hpp:544
ClpFactorization::numberElementsL
CoinBigIndex numberElementsL() const
Returns number in L area.
Definition: ClpFactorization.hpp:276
ClpFactorization::coinFactorization
CoinFactorization * coinFactorization() const
Return coinFactorizationA_.
Definition: ClpFactorization.hpp:460
CoinFactorization.hpp
CoinFactorization::zeroTolerance
double zeroTolerance() const
Zero tolerance.
Definition: CoinFactorization.hpp:318
ClpFactorization::setPersistenceFlag
void setPersistenceFlag(int value)
Definition: ClpFactorization.hpp:375
CLP_MULTIPLE_FACTORIZATIONS
#define CLP_MULTIPLE_FACTORIZATIONS
Definition: ClpFactorization.hpp:17
CoinOtherFactorization::clearArrays
virtual void clearArrays()
Get rid of all memory.
Definition: CoinDenseFactorization.hpp:164
ClpFactorization::networkBasis
bool networkBasis() const
Says if a network basis.
Definition: ClpFactorization.hpp:498
ClpFactorization::sparseThreshold
int sparseThreshold() const
get sparse threshold
Definition: ClpFactorization.hpp:229
ClpFactorization::numberElementsU
CoinBigIndex numberElementsU() const
Returns number in U area.
Definition: ClpFactorization.hpp:268
CoinFactorization::sparseThreshold
int sparseThreshold() const
get sparse threshold
Definition: CoinFactorization.hpp:633
ClpFactorization::doStatistics_
bool doStatistics_
To switch statistics on or off.
Definition: ClpFactorization.hpp:549
ClpFactorization::lastNumberPivots_
int lastNumberPivots_
Definition: ClpFactorization.hpp:545
ClpFactorization::maximumPivots
void maximumPivots(int value)
Set maximum number of pivots between factorizations.
Definition: ClpFactorization.hpp:181
CoinFactorization::setPersistenceFlag
void setPersistenceFlag(int value)
CoinOtherFactorization::maximumPivots
int maximumPivots() const
Maximum number of pivots between factorizations.
Definition: CoinDenseFactorization.hpp:97
ClpFactorization::~ClpFactorization
~ClpFactorization()
Destructor.
ClpFactorization::denseThreshold
int denseThreshold() const
Gets dense threshold.
Definition: ClpFactorization.hpp:327
CoinFactorization::messageLevel
int messageLevel() const
Level of detail of messages.
Definition: CoinFactorization.hpp:289
ClpFactorization::cleanUp
void cleanUp()
Cleans up i.e. gets rid of network basis.
CoinOtherFactorization::zeroTolerance
double zeroTolerance() const
Zero tolerance.
Definition: CoinDenseFactorization.hpp:111
CoinFactorization::setBiasLU
void setBiasLU(int value)
Definition: CoinFactorization.hpp:432
CoinFactorization::pivots
int pivots() const
Returns number of pivots since factorization.
Definition: CoinFactorization.hpp:146
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
ClpFactorization::updateColumnTranspose
int updateColumnTranspose(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2) const
Updates one column (BTRAN) from region2 region1 starts as zero and is zero at end.
CoinIndexedVector
Indexed Vector.
Definition: CoinIndexedVector.hpp:104
ClpFactorization::goDenseOrSmall
void goDenseOrSmall(int numberRows)
Go over to dense or small code if small enough.
CoinPragma.hpp
ClpFactorization::clearArrays
void clearArrays()
Get rid of all memory.
Definition: ClpFactorization.hpp:311
ClpFactorization::coinFactorizationA_
CoinFactorization * coinFactorizationA_
Pointer to CoinFactorization.
Definition: ClpFactorization.hpp:523
ClpFactorization::goSmallThreshold
int goSmallThreshold() const
Get switch to small if number rows &lt;= this.
Definition: ClpFactorization.hpp:441
ClpFactorization::updateTwoColumnsTranspose
void updateTwoColumnsTranspose(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, CoinIndexedVector *regionSparse3) const
Updates two columns (BTRAN) from regionSparse2 and 3 regionSparse starts as zero and is zero at end N...
CoinFactorization::almostDestructor
void almostDestructor()
Delete all stuff (leaves as after CoinFactorization())
ClpFactorization::ClpFactorization
ClpFactorization()
Default constructor.
ClpFactorization::numberRows
int numberRows() const
Number of Rows after factorization.
Definition: ClpFactorization.hpp:319
CoinFactorization::setStatus
void setStatus(int value)
Sets status.
Definition: CoinFactorization.hpp:141
ClpFactorization::zeroTolerance
void zeroTolerance(double value)
Set zero tolerance.
Definition: ClpFactorization.hpp:219
ClpFactorization::maximumPivots
int maximumPivots() const
Maximum number of pivots between factorizations.
Definition: ClpFactorization.hpp:173
ClpFactorization::operator=
ClpFactorization & operator=(const ClpFactorization &)
ClpFactorization::goSparse
void goSparse()
makes a row copy of L for speed and to allow very sparse problems
CoinFactorization::maximumPivots
int maximumPivots() const
Maximum number of pivots between factorizations.
Definition: CoinFactorization.hpp:295
ClpFactorization::zeroTolerance
double zeroTolerance() const
Zero tolerance.
Definition: ClpFactorization.hpp:211
CoinFactorization::adjustedAreaFactor
double adjustedAreaFactor() const
Returns areaFactor but adjusted for dense.
CoinOtherFactorization::setStatus
void setStatus(int value)
Sets status.
Definition: CoinDenseFactorization.hpp:53
CoinFactorization::numberElementsR
int numberElementsR() const
Returns number in R area.
Definition: CoinFactorization.hpp:386
ClpFactorization::effectiveStartNumberU_
int effectiveStartNumberU_
Definition: ClpFactorization.hpp:546
CoinOtherFactorization::status
int status() const
Returns status.
Definition: CoinDenseFactorization.hpp:48
ClpFactorization::replaceColumn
int replaceColumn(const ClpSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double pivotCheck, bool checkBeforeModifying=false, double acceptablePivot=1.0e-8)
Replaces one Column to basis, returns 0=OK, 1=Probably OK, 2=singular, 3=no room If checkBeforeModify...
ClpFactorization::goSmallThreshold_
int goSmallThreshold_
Switch to small if number rows &lt;= this.
Definition: ClpFactorization.hpp:535
CoinFactorization::slackValue
double slackValue() const
Whether slack value is +1 or -1.
Definition: CoinFactorization.hpp:325
CoinOtherFactorization::pivotTolerance
double pivotTolerance() const
Pivot tolerance.
Definition: CoinDenseFactorization.hpp:105
ClpFactorization::goOslThreshold
int goOslThreshold() const
Get switch to osl if number rows &lt;= this.
Definition: ClpFactorization.hpp:421
CoinFactorization::clearArrays
void clearArrays()
Get rid of all memory.
Definition: CoinFactorization.hpp:646
ClpFactorization::numberDense
int numberDense() const
Returns number of dense rows.
Definition: ClpFactorization.hpp:259
ClpFactorization::goDenseThreshold_
int goDenseThreshold_
Switch to dense if number rows &lt;= this.
Definition: ClpFactorization.hpp:537
ClpFactorization::permute
int * permute() const
Returns address of permute region.
Definition: ClpFactorization.hpp:157
CoinBigIndex
int CoinBigIndex
Definition: Coin_C_defines.h:136
ClpFactorization::messageLevel
void messageLevel(int value)
Set level of detail of messages.
Definition: ClpFactorization.hpp:305
CoinFactorization
This deals with Factorization and Updates.
Definition: CoinFactorization.hpp:50
ClpFactorization::pivotColumn
int * pivotColumn() const
Returns address of pivotColumn region (also used for permuting)
Definition: ClpFactorization.hpp:165
ClpFactorization::doStatistics
void doStatistics(bool trueFalse) const
To switch statistics on or off.
Definition: ClpFactorization.hpp:492
ClpFactorization::needToReorder
bool needToReorder() const
Says whether to redo pivot order.
ClpFactorization::isDenseOrSmall
int isDenseOrSmall() const
Return 1 if dense code.
Definition: ClpFactorization.hpp:455
ClpFactorization::numberElements
int numberElements() const
Total number of elements in factorization.
Definition: ClpFactorization.hpp:149
ClpFactorization::timeToRefactorize
bool timeToRefactorize() const
CoinFactorization::setDenseThreshold
void setDenseThreshold(int value)
Sets dense threshold.
Definition: CoinFactorization.hpp:307
CoinOtherFactorization::pivots
int pivots() const
Returns number of pivots since factorization.
Definition: CoinDenseFactorization.hpp:58
ClpFactorization::updateColumnFT
int updateColumnFT(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2)
Updates one column (FTRAN) from region2 Tries to do FT update number returned is negative if no room ...
CoinFactorization::numberElementsU
int numberElementsU() const
Returns number in U area.
Definition: CoinFactorization.hpp:361
ClpFactorization::totalInIncreasingU_
double totalInIncreasingU_
Definition: ClpFactorization.hpp:543
CoinFactorization::persistenceFlag
int persistenceFlag() const
Array persistence flag If 0 then as now (delete/new) 1 then only do arrays if bigger needed 2 as 1 bu...
Definition: CoinFactorization.hpp:441
CoinOtherFactorization::permute
virtual int * permute() const =0
Returns permute in.
ClpFactorization::getWeights
void getWeights(int *weights) const
Fills weighted row list.
ClpFactorization::messageLevel
int messageLevel() const
Level of detail of messages.
Definition: ClpFactorization.hpp:297
ClpFactorization::updateColumnForDebug
int updateColumnForDebug(CoinIndexedVector *regionSparse, CoinIndexedVector *regionSparse2, bool noPermute=false) const
For debug (no statistics update)
CoinFactorization::pivotTolerance
double pivotTolerance() const
Pivot tolerance.
Definition: CoinFactorization.hpp:312
ClpFactorization::persistenceFlag
int persistenceFlag() const
Array persistence flag If 0 then as now (delete/new) 1 then only do arrays if bigger needed 2 as 1 bu...
Definition: ClpFactorization.hpp:368
ClpFactorization::pivotTolerance
void pivotTolerance(double value)
Set pivot tolerance.
Definition: ClpFactorization.hpp:350
ClpFactorization::setForrestTomlin
void setForrestTomlin(bool value)
true if Forrest Tomlin update, false if PFI
Definition: ClpFactorization.hpp:402
CoinDenseFactorization.hpp
ClpFactorization::forceB_
int forceB_
If nonzero force use of 1,dense 2,small 3,osl.
Definition: ClpFactorization.hpp:531
ClpFactorization::areaFactor
void areaFactor(double value)
Set whether larger areas needed.
Definition: ClpFactorization.hpp:205
ClpFactorization::coinFactorizationB_
CoinOtherFactorization * coinFactorizationB_
Pointer to CoinOtherFactorization.
Definition: ClpFactorization.hpp:525
ClpFactorization::relaxAccuracyCheck
void relaxAccuracyCheck(double value)
Allows change of pivot accuracy check 1.0 == none &gt;1.0 relaxed.
Definition: ClpFactorization.hpp:358
CoinOtherFactorization::numberElements
virtual int numberElements() const =0
Total number of elements in factorization.