Clp  1.17.8
AbcSimplexFactorization.hpp
Go to the documentation of this file.
1 /* $Id$ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others, Copyright (C) 2012, FasterCoin. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef AbcSimplexFactorization_H
7 #define AbcSimplexFactorization_H
8 
9 #include "CoinPragma.hpp"
10 
11 #include "CoinAbcCommon.hpp"
12 #include "CoinAbcFactorization.hpp"
13 #include "AbcMatrix.hpp"
14 //#include "CoinAbcAnyFactorization.hpp"
15 #include "AbcSimplex.hpp"
16 #ifndef ABC_USE_COIN_FACTORIZATION
17 class ClpFactorization;
18 class CoinFactorization;
19 #else
20 #include "ClpFactorization.hpp"
21 #include "CoinFactorization.hpp"
22 #endif
23 
27 
28 public:
40  int factorize(AbcSimplex *model, int solveType, bool valuesPass);
41 #ifdef EARLY_FACTORIZE
42  inline int factorize(AbcSimplex *model, CoinIndexedVector &stuff)
44  {
45  return coinAbcFactorization_->factorize(model, stuff);
46  }
47 #endif
48 
49 
57 
61  AbcSimplexFactorization(const AbcSimplexFactorization &, int denseIfSmaller = 0);
66 
67  /* **** below here is so can use networkish basis */
70 
75  inline
76 #ifdef ABC_LONG_FACTORIZATION
77  long
78 #endif
79  double
80  checkReplacePart1(CoinIndexedVector *regionSparse,
81  int pivotRow)
82  {
83  return coinAbcFactorization_->checkReplacePart1(regionSparse, pivotRow);
84  }
89  inline
90 #ifdef ABC_LONG_FACTORIZATION
91  long
92 #endif
93  double
94  checkReplacePart1(CoinIndexedVector *regionSparse,
95  CoinIndexedVector *partialUpdate,
96  int pivotRow)
97  {
98  return coinAbcFactorization_->checkReplacePart1(regionSparse, partialUpdate, pivotRow);
99  }
100 #ifdef MOVE_REPLACE_PART1A
101 
105  inline void checkReplacePart1a(CoinIndexedVector *regionSparse,
106  int pivotRow)
107  {
108  coinAbcFactorization_->checkReplacePart1a(regionSparse, pivotRow);
109  }
110  inline double checkReplacePart1b(CoinIndexedVector *regionSparse,
111  int pivotRow)
112  {
113  return coinAbcFactorization_->checkReplacePart1b(regionSparse, pivotRow);
114  }
115 #endif
116 
118  inline int checkReplacePart2(int pivotRow,
119  double btranAlpha,
120  double ftranAlpha,
121 #ifdef ABC_LONG_FACTORIZATION
122  long
123 #endif
124  double ftAlpha)
125  {
126  return coinAbcFactorization_->checkReplacePart2(pivotRow, btranAlpha, ftranAlpha, ftAlpha);
127  }
128 #ifdef ABC_LONG_FACTORIZATION
129  inline void clearHiddenArrays()
131  {
132  coinAbcFactorization_->clearHiddenArrays();
133  }
134 #endif
135 
137  void replaceColumnPart3(const AbcSimplex *model,
138  CoinIndexedVector *regionSparse,
139  CoinIndexedVector *tableauColumn,
140  int pivotRow,
141 #ifdef ABC_LONG_FACTORIZATION
142  long
143 #endif
144  double alpha);
147  void replaceColumnPart3(const AbcSimplex *model,
148  CoinIndexedVector *regionSparse,
149  CoinIndexedVector *tableauColumn,
150  CoinIndexedVector *partialUpdate,
151  int pivotRow,
152 #ifdef ABC_LONG_FACTORIZATION
153  long
154 #endif
155  double alpha);
156 #ifdef EARLY_FACTORIZE
157  inline int replaceColumns(const AbcSimplex *model,
159  CoinIndexedVector &stuff,
160  int firstPivot, int lastPivot, bool cleanUp)
161  {
162  return coinAbcFactorization_->replaceColumns(model, stuff, firstPivot, lastPivot, cleanUp);
163  }
164 #endif
165 
166 
170 #if 0
171 
175  int updateColumnFT ( CoinIndexedVector * regionSparse,
176  CoinIndexedVector * regionSparse2);
179  int updateColumn ( CoinIndexedVector * regionSparse,
180  CoinIndexedVector * regionSparse2) const;
186  int updateTwoColumnsFT ( CoinIndexedVector * regionSparse1,
187  CoinIndexedVector * regionSparse2,
188  CoinIndexedVector * regionSparse3) ;
191  int updateColumnTranspose ( CoinIndexedVector * regionSparse,
192  CoinIndexedVector * regionSparse2) const;
193 #endif
194 
197  inline int updateColumnFT(CoinIndexedVector &regionSparseFT)
198  {
199  return coinAbcFactorization_->updateColumnFT(regionSparseFT);
200  }
201  inline int updateColumnFTPart1(CoinIndexedVector &regionSparseFT)
202  {
203  return coinAbcFactorization_->updateColumnFTPart1(regionSparseFT);
204  }
205  inline void updateColumnFTPart2(CoinIndexedVector &regionSparseFT)
206  {
208  }
212  inline void updateColumnFT(CoinIndexedVector &regionSparseFT,
213  CoinIndexedVector &partialUpdate,
214  int which)
215  {
216  coinAbcFactorization_->updateColumnFT(regionSparseFT, partialUpdate, which);
217  }
219  inline int updateColumn(CoinIndexedVector &regionSparse) const
220  {
221  return coinAbcFactorization_->updateColumn(regionSparse);
222  }
227  inline int updateTwoColumnsFT(CoinIndexedVector &regionSparseFT,
228  CoinIndexedVector &regionSparseOther)
229  {
230  return coinAbcFactorization_->updateTwoColumnsFT(regionSparseFT, regionSparseOther);
231  }
233  inline int updateColumnTranspose(CoinIndexedVector &regionSparse) const
234  {
235  return coinAbcFactorization_->updateColumnTranspose(regionSparse);
236  }
238  inline void updateColumnCpu(CoinIndexedVector &regionSparse, int whichCpu) const
239 #ifndef ABC_USE_COIN_FACTORIZATION
240  {
241  coinAbcFactorization_->updateColumnCpu(regionSparse, whichCpu);
242  }
243 #else
244  {
245  coinAbcFactorization_->updateColumn(regionSparse);
246  }
247 #endif
248 
249  inline void updateColumnTransposeCpu(CoinIndexedVector &regionSparse, int whichCpu) const
250 #ifndef ABC_USE_COIN_FACTORIZATION
251  {
252  coinAbcFactorization_->updateColumnTransposeCpu(regionSparse, whichCpu);
253  }
254 #else
255  {
257  }
258 #endif
259 
260  inline void updateFullColumn(CoinIndexedVector &regionSparse) const
261  {
263  }
265  inline void updateFullColumnTranspose(CoinIndexedVector &regionSparse) const
266  {
268  }
270  void updateWeights(CoinIndexedVector &regionSparse) const
271 #ifndef ABC_USE_COIN_FACTORIZATION
272  {
273  coinAbcFactorization_->updateWeights(regionSparse);
274  }
275 #else
276  {
277  coinAbcFactorization_->updateColumn(regionSparse);
278  }
279 #endif
280 
281 
283  inline int numberElements() const
285  {
287  }
289  inline int maximumPivots() const
290  {
292  }
294  inline void maximumPivots(int value)
295  {
297  }
299  inline bool usingFT() const
300  {
302  }
304  inline int pivots() const
305  {
306  return coinAbcFactorization_->pivots();
307  }
309  inline void setModel(AbcSimplex *model)
310  {
311  model_ = model;
312  }
314  inline void setPivots(int value) const
315  {
317  }
319  inline double areaFactor() const
320  {
322  }
324  inline void areaFactor(double value)
325  {
327  }
329  inline double zeroTolerance() const
330  {
332  }
334  inline void zeroTolerance(double value)
335  {
337  }
339  void saferTolerances(double zeroTolerance, double pivotTolerance);
341  inline int status() const
342  {
343  return coinAbcFactorization_->status();
344  }
346  inline void setStatus(int value)
347  {
349  }
350 #if ABC_PARALLEL == 2
351  inline void setParallelMode(int value)
353  {
354  coinAbcFactorization_->setParallelMode(value);
355  };
356 #endif
357  inline int numberDense() const
359  {
361  }
362  bool timeToRefactorize() const;
363 #if CLP_FACTORIZATION_NEW_TIMING > 1
364  void statsRefactor(char when) const;
365 #endif
366  inline void clearArrays()
368  {
370  }
372  inline int numberRows() const
373  {
375  }
377  inline int numberSlacks() const
378  {
379  return numberSlacks_;
380  }
382  inline double pivotTolerance() const
383  {
385  }
387  inline void pivotTolerance(double value)
388  {
390  }
392  inline double minimumPivotTolerance() const
393  {
395  }
397  inline void minimumPivotTolerance(double value)
398  {
400  }
402  inline double *pivotRegion() const
403  {
405  }
407  //inline void relaxAccuracyCheck(double /*value*/) {
408  //abort();
409  //}
411  inline void almostDestructor()
412  {
414  }
416  void setDenseThreshold(int number);
417  int getDenseThreshold() const;
419  void forceOtherFactorization(int which);
421  void goDenseOrSmall(int numberRows);
423  inline int goDenseThreshold() const
424  {
425  return goDenseThreshold_;
426  }
428  inline void setGoDenseThreshold(int value)
429  {
430  goDenseThreshold_ = value;
431  }
433  inline int goSmallThreshold() const
434  {
435  return goSmallThreshold_;
436  }
438  inline void setGoSmallThreshold(int value)
439  {
440  goSmallThreshold_ = value;
441  }
443  inline int goLongThreshold() const
444  {
445  return goLongThreshold_;
446  }
448  inline void setGoLongThreshold(int value)
449  {
450  goLongThreshold_ = value;
451  }
453  inline int typeOfFactorization() const
454  {
455  return forceB_;
456  }
458  void synchronize(const ClpFactorization *otherFactorization, const AbcSimplex *model);
460 
464  void goSparse();
465 #ifndef NDEBUG
466 #ifndef ABC_USE_COIN_FACTORIZATION
467  inline void checkMarkArrays() const
468  {
470  }
471 #else
472  inline void checkMarkArrays() const
473  {
474  }
475 #endif
476 #endif
477  inline bool needToReorder() const
479  {
480  abort();
481  return true;
482  }
484 #ifndef ABC_USE_COIN_FACTORIZATION
486  {
487  return coinAbcFactorization_;
488  }
489 #else
490  CoinFactorization *factorization() const
491  {
492  return coinAbcFactorization_;
493  }
494 #endif
495 
496 
498 private:
504 #ifndef ABC_USE_COIN_FACTORIZATION
506 #else
507  CoinFactorization *coinAbcFactorization_;
508 #endif
509 #ifdef CLP_FACTORIZATION_NEW_TIMING
510  mutable double shortestAverage_;
512  mutable double totalInR_;
513  mutable double totalInIncreasingU_;
514  mutable int endLengthU_;
515  mutable int lastNumberPivots_;
516  mutable int effectiveStartNumberU_;
517 #endif
518  int forceB_;
529 };
530 
531 #endif
532 
533 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
534 */
ClpFactorization
This just implements CoinFactorization when an ClpMatrixBase object is passed.
Definition: ClpFactorization.hpp:34
AbcSimplexFactorization::areaFactor
void areaFactor(double value)
Set whether larger areas needed.
Definition: AbcSimplexFactorization.hpp:324
AbcSimplexFactorization::updateColumnTranspose
int updateColumnTranspose(CoinIndexedVector &regionSparse) const
Updates one column (BTRAN)
Definition: AbcSimplexFactorization.hpp:233
AbcSimplexFactorization::~AbcSimplexFactorization
~AbcSimplexFactorization()
Destructor.
AbcSimplexFactorization::timeToRefactorize
bool timeToRefactorize() const
CoinAbcAnyFactorization::updateColumnTranspose
virtual int updateColumnTranspose(CoinIndexedVector &regionSparse) const =0
Updates one column (BTRAN) from unpacked regionSparse.
AbcSimplexFactorization::pivots
int pivots() const
Returns number of pivots since factorization.
Definition: AbcSimplexFactorization.hpp:304
CoinAbcAnyFactorization
Abstract base class which also has some scalars so can be used from Dense or Simp.
Definition: CoinAbcDenseFactorization.hpp:23
AbcSimplexFactorization::numberSlacks
int numberSlacks() const
Number of slacks at last factorization.
Definition: AbcSimplexFactorization.hpp:377
CoinAbcAnyFactorization::numberDense
CoinSimplexInt numberDense() const
Number of dense rows after factorization.
Definition: CoinAbcDenseFactorization.hpp:92
CoinAbcAnyFactorization::numberRows
int numberRows() const
Number of Rows after factorization.
Definition: CoinAbcDenseFactorization.hpp:87
AbcSimplexFactorization::factorize
int factorize(AbcSimplex *model, int solveType, bool valuesPass)
When part of LP - given by basic variables.
AbcSimplexFactorization::updateColumnFTPart2
void updateColumnFTPart2(CoinIndexedVector &regionSparseFT)
Definition: AbcSimplexFactorization.hpp:205
CoinAbcAnyFactorization::updateFullColumn
virtual void updateFullColumn(CoinIndexedVector &regionSparse) const =0
This version does FTRAN on array when indices not set up.
CoinAbcAnyFactorization::checkMarkArrays
virtual void checkMarkArrays() const
Definition: CoinAbcDenseFactorization.hpp:168
CoinAbcAnyFactorization::areaFactor
double areaFactor() const
Area factor.
Definition: CoinAbcDenseFactorization.hpp:135
AbcSimplexFactorization::numberElements
int numberElements() const
Total number of elements in factorization.
Definition: AbcSimplexFactorization.hpp:284
AbcSimplexFactorization::goLongThreshold_
int goLongThreshold_
Switch to long/ordered if number rows >= this.
Definition: AbcSimplexFactorization.hpp:525
CoinAbcAnyFactorization::updateColumnFT
virtual int updateColumnFT(CoinIndexedVector &regionSparse)=0
Updates one column (FTRAN) from unpacked regionSparse Tries to do FT update number returned is negati...
AbcSimplexFactorization::model_
AbcSimplex * model_
Pointer to model.
Definition: AbcSimplexFactorization.hpp:502
AbcSimplexFactorization::needToReorder
bool needToReorder() const
Says whether to redo pivot order.
Definition: AbcSimplexFactorization.hpp:478
CoinAbcAnyFactorization::pivotRegion
virtual CoinFactorizationDouble * pivotRegion() const
Definition: CoinAbcDenseFactorization.hpp:130
AbcSimplexFactorization::saferTolerances
void saferTolerances(double zeroTolerance, double pivotTolerance)
Set tolerances to safer of existing and given.
AbcSimplexFactorization::setStatus
void setStatus(int value)
Sets status.
Definition: AbcSimplexFactorization.hpp:346
AbcSimplexFactorization::usingFT
bool usingFT() const
Returns true if doing FT.
Definition: AbcSimplexFactorization.hpp:299
AbcSimplexFactorization::numberRows
int numberRows() const
Number of Rows after factorization.
Definition: AbcSimplexFactorization.hpp:372
CoinAbcAnyFactorization::clearArrays
virtual void clearArrays()
Get rid of all memory.
Definition: CoinAbcDenseFactorization.hpp:196
AbcSimplexFactorization::operator=
AbcSimplexFactorization & operator=(const AbcSimplexFactorization &)
AbcSimplexFactorization::typeOfFactorization
int typeOfFactorization() const
Returns type.
Definition: AbcSimplexFactorization.hpp:453
AbcSimplexFactorization::areaFactor
double areaFactor() const
Whether larger areas needed.
Definition: AbcSimplexFactorization.hpp:319
AbcSimplexFactorization::updateColumnFT
int updateColumnFT(CoinIndexedVector &regionSparseFT)
Updates one column (FTRAN) Tries to do FT update number returned is negative if no room.
Definition: AbcSimplexFactorization.hpp:197
AbcSimplexFactorization::updateColumnFT
void updateColumnFT(CoinIndexedVector &regionSparseFT, CoinIndexedVector &partialUpdate, int which)
Updates one column (FTRAN) Tries to do FT update puts partial update in vector.
Definition: AbcSimplexFactorization.hpp:212
AbcSimplexFactorization::setGoLongThreshold
void setGoLongThreshold(int value)
Set switch to long/ordered if number rows >= this.
Definition: AbcSimplexFactorization.hpp:448
AbcSimplexFactorization::zeroTolerance
void zeroTolerance(double value)
Set zero tolerance.
Definition: AbcSimplexFactorization.hpp:334
AbcSimplexFactorization::synchronize
void synchronize(const ClpFactorization *otherFactorization, const AbcSimplex *model)
Synchronize stuff.
CoinAbcAnyFactorization::status
int status() const
Returns status.
Definition: CoinAbcDenseFactorization.hpp:45
ClpFactorization.hpp
AbcSimplexFactorization::getDenseThreshold
int getDenseThreshold() const
AbcSimplexFactorization::updateColumnFTPart1
int updateColumnFTPart1(CoinIndexedVector &regionSparseFT)
Definition: AbcSimplexFactorization.hpp:201
AbcSimplexFactorization::checkReplacePart1
double checkReplacePart1(CoinIndexedVector *regionSparse, CoinIndexedVector *partialUpdate, int pivotRow)
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial...
Definition: AbcSimplexFactorization.hpp:94
AbcSimplexFactorization::updateFullColumn
void updateFullColumn(CoinIndexedVector &regionSparse) const
Updates one full column (FTRAN)
Definition: AbcSimplexFactorization.hpp:260
AbcSimplexFactorization::pivotTolerance
double pivotTolerance() const
Pivot tolerance.
Definition: AbcSimplexFactorization.hpp:382
AbcSimplexFactorization::updateTwoColumnsFT
int updateTwoColumnsFT(CoinIndexedVector &regionSparseFT, CoinIndexedVector &regionSparseOther)
Updates one column (FTRAN) from regionFT Tries to do FT update number returned is negative if no room...
Definition: AbcSimplexFactorization.hpp:227
AbcSimplexFactorization::pivotTolerance
void pivotTolerance(double value)
Set pivot tolerance.
Definition: AbcSimplexFactorization.hpp:387
AbcSimplexFactorization::goLongThreshold
int goLongThreshold() const
Get switch to long/ordered if number rows >= this.
Definition: AbcSimplexFactorization.hpp:443
CoinAbcAnyFactorization::updateFullColumnTranspose
virtual void updateFullColumnTranspose(CoinIndexedVector &regionSparse) const =0
Updates one column (BTRAN) from unpacked regionSparse.
AbcSimplexFactorization
This just implements AbcFactorization when an AbcMatrix object is passed.
Definition: AbcSimplexFactorization.hpp:26
AbcSimplexFactorization::checkReplacePart2
int checkReplacePart2(int pivotRow, double btranAlpha, double ftranAlpha, double ftAlpha)
Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular,...
Definition: AbcSimplexFactorization.hpp:118
AbcSimplexFactorization::goSparse
void goSparse()
makes a row copy of L for speed and to allow very sparse problems
CoinAbcAnyFactorization::updateTwoColumnsFT
virtual int updateTwoColumnsFT(CoinIndexedVector &regionFT, CoinIndexedVector &regionOther)=0
does FTRAN on two unpacked columns
CoinAbcAnyFactorization::updateColumnFTPart1
virtual int updateColumnFTPart1(CoinIndexedVector &regionSparse)=0
AbcSimplexFactorization::AbcSimplexFactorization
AbcSimplexFactorization(int numberRows=0)
Default constructor.
AbcMatrix.hpp
AbcSimplexFactorization::clearArrays
void clearArrays()
Get rid of all memory.
Definition: AbcSimplexFactorization.hpp:367
CoinAbcFactorization.hpp
CoinAbcAnyFactorization::zeroTolerance
double zeroTolerance() const
Zero tolerance.
Definition: CoinAbcDenseFactorization.hpp:144
AbcSimplexFactorization::forceB_
int forceB_
If nonzero force use of 1,dense 2,small 3,long.
Definition: AbcSimplexFactorization.hpp:519
AbcSimplexFactorization::forceOtherFactorization
void forceOtherFactorization(int which)
If nonzero force use of 1,dense 2,small 3,long.
AbcSimplexFactorization::replaceColumnPart3
void replaceColumnPart3(const AbcSimplex *model, CoinIndexedVector *regionSparse, CoinIndexedVector *tableauColumn, int pivotRow, double alpha)
Replaces one Column to basis, partial update already in U.
AbcSimplexFactorization::setModel
void setModel(AbcSimplex *model)
Sets model.
Definition: AbcSimplexFactorization.hpp:309
CoinAbcAnyFactorization::updateWeights
virtual void updateWeights(CoinIndexedVector &regionSparse) const =0
Updates one column for dual steepest edge weights (FTRAN)
AbcSimplex
Definition: AbcSimplex.hpp:62
CoinAbcAnyFactorization::pivots
int pivots() const
Returns number of pivots since factorization.
Definition: CoinAbcDenseFactorization.hpp:55
CoinAbcAnyFactorization::minimumPivotTolerance
double minimumPivotTolerance() const
Minimum pivot tolerance.
Definition: CoinAbcDenseFactorization.hpp:125
CoinAbcAnyFactorization::checkReplacePart2
virtual int checkReplacePart2(int pivotRow, double btranAlpha, double ftranAlpha, double ftAlpha, double acceptablePivot=1.0e-8)=0
Checks if can replace one Column to basis, returns 0=OK, 1=Probably OK, 2=singular,...
CoinAbcAnyFactorization::wantsTableauColumn
virtual bool wantsTableauColumn() const
Returns true if wants tableauColumn in replaceColumn.
AbcSimplexFactorization::setGoSmallThreshold
void setGoSmallThreshold(int value)
Set switch to small if number rows <= this.
Definition: AbcSimplexFactorization.hpp:438
AbcSimplexFactorization::updateFullColumnTranspose
void updateFullColumnTranspose(CoinIndexedVector &regionSparse) const
Updates one full column (BTRAN)
Definition: AbcSimplexFactorization.hpp:265
CoinAbcAnyFactorization::pivotTolerance
double pivotTolerance() const
Pivot tolerance.
Definition: CoinAbcDenseFactorization.hpp:119
AbcSimplexFactorization::checkMarkArrays
void checkMarkArrays() const
Definition: AbcSimplexFactorization.hpp:467
AbcSimplexFactorization::maximumPivots
void maximumPivots(int value)
Set maximum number of pivots between factorizations.
Definition: AbcSimplexFactorization.hpp:294
AbcSimplexFactorization::setFactorization
void setFactorization(AbcSimplexFactorization &rhs)
Sets factorization.
AbcSimplexFactorization::setPivots
void setPivots(int value) const
Sets number of pivots since factorization.
Definition: AbcSimplexFactorization.hpp:314
AbcSimplexFactorization::factorization
CoinAbcAnyFactorization * factorization() const
Pointer to factorization.
Definition: AbcSimplexFactorization.hpp:485
AbcSimplexFactorization::maximumPivots
int maximumPivots() const
Maximum number of pivots between factorizations.
Definition: AbcSimplexFactorization.hpp:289
AbcSimplexFactorization::minimumPivotTolerance
double minimumPivotTolerance() const
Minimum pivot tolerance.
Definition: AbcSimplexFactorization.hpp:392
AbcSimplexFactorization::status
int status() const
Returns status.
Definition: AbcSimplexFactorization.hpp:341
AbcSimplexFactorization::zeroTolerance
double zeroTolerance() const
Zero tolerance.
Definition: AbcSimplexFactorization.hpp:329
AbcSimplexFactorization::setGoDenseThreshold
void setGoDenseThreshold(int value)
Set switch to dense if number rows <= this.
Definition: AbcSimplexFactorization.hpp:428
AbcSimplex.hpp
CoinAbcAnyFactorization::updateColumnFTPart2
virtual void updateColumnFTPart2(CoinIndexedVector &regionSparse)=0
AbcSimplexFactorization::updateColumnCpu
void updateColumnCpu(CoinIndexedVector &regionSparse, int whichCpu) const
Updates one column (FTRAN)
Definition: AbcSimplexFactorization.hpp:238
CoinAbcAnyFactorization::updateColumnTransposeCpu
virtual void updateColumnTransposeCpu(CoinIndexedVector &regionSparse, int whichCpu) const
Updates one column (BTRAN)
AbcSimplexFactorization::updateColumnTransposeCpu
void updateColumnTransposeCpu(CoinIndexedVector &regionSparse, int whichCpu) const
Updates one column (BTRAN)
Definition: AbcSimplexFactorization.hpp:249
CoinAbcAnyFactorization::maximumPivots
int maximumPivots() const
Maximum number of pivots between factorizations.
Definition: CoinAbcDenseFactorization.hpp:111
AbcSimplexFactorization::goSmallThreshold_
int goSmallThreshold_
Switch to small if number rows <= this.
Definition: AbcSimplexFactorization.hpp:523
AbcSimplexFactorization::coinAbcFactorization_
CoinAbcAnyFactorization * coinAbcFactorization_
Pointer to factorization.
Definition: AbcSimplexFactorization.hpp:505
AbcSimplexFactorization::updateWeights
void updateWeights(CoinIndexedVector &regionSparse) const
Updates one column for dual steepest edge weights (FTRAN)
Definition: AbcSimplexFactorization.hpp:270
AbcSimplexFactorization::checkReplacePart1
double checkReplacePart1(CoinIndexedVector *regionSparse, int pivotRow)
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial...
Definition: AbcSimplexFactorization.hpp:80
AbcSimplexFactorization::numberDense
int numberDense() const
Returns number of dense rows.
Definition: AbcSimplexFactorization.hpp:358
CoinAbcAnyFactorization::setStatus
void setStatus(int value)
Sets status.
Definition: CoinAbcDenseFactorization.hpp:50
AbcSimplexFactorization::setDenseThreshold
void setDenseThreshold(int number)
So we can temporarily switch off dense.
AbcSimplexFactorization::updateColumn
int updateColumn(CoinIndexedVector &regionSparse) const
Updates one column (FTRAN)
Definition: AbcSimplexFactorization.hpp:219
AbcSimplexFactorization::goSmallThreshold
int goSmallThreshold() const
Get switch to small if number rows <= this.
Definition: AbcSimplexFactorization.hpp:433
CoinAbcAnyFactorization::updateColumn
virtual int updateColumn(CoinIndexedVector &regionSparse) const =0
This version has same effect as above with FTUpdate==false so number returned is always >=0.
CoinAbcCommon.hpp
AbcSimplexFactorization::almostDestructor
void almostDestructor()
Allows change of pivot accuracy check 1.0 == none >1.0 relaxed.
Definition: AbcSimplexFactorization.hpp:411
CoinAbcAnyFactorization::updateColumnCpu
virtual void updateColumnCpu(CoinIndexedVector &regionSparse, int whichCpu) const
Updates one column (FTRAN)
CoinAbcAnyFactorization::checkReplacePart1
virtual double checkReplacePart1(CoinIndexedVector *, int)
Checks if can replace one Column to basis, returns update alpha Fills in region for use later partial...
Definition: CoinAbcDenseFactorization.hpp:283
CoinAbcAnyFactorization::checkReplacePart1a
virtual void checkReplacePart1a(CoinIndexedVector *, int)
Definition: CoinAbcDenseFactorization.hpp:299
AbcSimplexFactorization::minimumPivotTolerance
void minimumPivotTolerance(double value)
Set minimum pivot tolerance.
Definition: AbcSimplexFactorization.hpp:397
CoinAbcAnyFactorization::numberElements
virtual int numberElements() const =0
Total number of elements in factorization.
AbcSimplexFactorization::goDenseOrSmall
void goDenseOrSmall(int numberRows)
Go over to dense code.
AbcSimplexFactorization::goDenseThreshold_
int goDenseThreshold_
Switch to dense if number rows <= this.
Definition: AbcSimplexFactorization.hpp:521
AbcSimplexFactorization::pivotRegion
double * pivotRegion() const
pivot region
Definition: AbcSimplexFactorization.hpp:402
CoinAbcAnyFactorization::setPivots
void setPivots(int value)
Sets number of pivots since factorization.
Definition: CoinAbcDenseFactorization.hpp:67
CoinAbcAnyFactorization::checkReplacePart1b
virtual double checkReplacePart1b(CoinIndexedVector *, int)
Definition: CoinAbcDenseFactorization.hpp:303
AbcSimplexFactorization::goDenseThreshold
int goDenseThreshold() const
Get switch to dense if number rows <= this.
Definition: AbcSimplexFactorization.hpp:423
AbcSimplexFactorization::numberSlacks_
int numberSlacks_
Number of slacks at last factorization.
Definition: AbcSimplexFactorization.hpp:527