ClpDualRowSteepest.hpp
Go to the documentation of this file.
1 /* $Id: ClpDualRowSteepest.hpp 1525 2010-02-26 17:27:59Z mjs $ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 #ifndef ClpDualRowSteepest_H
5 #define ClpDualRowSteepest_H
6 
7 #include "ClpDualRowPivot.hpp"
8 class CoinIndexedVector;
9 
10 
11 //#############################################################################
12 
20 
21 public:
22 
24 
25 
27  virtual int pivotRow();
28 
31  virtual double updateWeights(CoinIndexedVector * input,
32  CoinIndexedVector * spare,
33  CoinIndexedVector * spare2,
34  CoinIndexedVector * updatedColumn);
35 
40  virtual void updatePrimalSolution(CoinIndexedVector * input,
41  double theta,
42  double & changeInObjective);
43 
54  virtual void saveWeights(ClpSimplex * model, int mode);
56  virtual void unrollWeights();
58  virtual void clearArrays();
60  virtual bool looksOptimal() const;
62  virtual void maximumPivotsChanged();
64 
67  enum Persistence {
68  normal = 0x00, // create (if necessary) and destroy
69  keep = 0x01 // create (if necessary) and leave
70  };
71 
73 
74 
81  ClpDualRowSteepest(int mode = 3);
82 
85 
88 
90  void fill(const ClpDualRowSteepest& rhs);
91 
93  virtual ~ClpDualRowSteepest ();
94 
96  virtual ClpDualRowPivot * clone(bool copyData = true) const;
97 
99 
101 
102  inline int mode() const {
103  return mode_;
104  }
106  inline void setPersistence(Persistence life) {
107  persistence_ = life;
108  }
109  inline Persistence persistence() const {
110  return persistence_ ;
111  }
113 
114  //---------------------------------------------------------------------------
115 
116 private:
118 
123  int state_;
126  int mode_;
130  double * weights_;
132  CoinIndexedVector * infeasible_;
134  CoinIndexedVector * alternateWeights_;
136  CoinIndexedVector * savedWeights_;
140 };
141 
142 #endif