/home/coin/SVN-release/CoinAll-1.1.0/Clp/src/ClpDualRowSteepest.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2002, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef ClpDualRowSteepest_H
00004 #define ClpDualRowSteepest_H
00005 
00006 #include "ClpDualRowPivot.hpp"
00007 class CoinIndexedVector;
00008 
00009 
00010 //#############################################################################
00011 
00018 class ClpDualRowSteepest : public ClpDualRowPivot {
00019   
00020 public:
00021   
00023 
00024   
00026   virtual int pivotRow();
00027   
00029   virtual double updateWeights(CoinIndexedVector * input,
00030                              CoinIndexedVector * spare,
00031                              CoinIndexedVector * updatedColumn);
00032   
00037   virtual void updatePrimalSolution(CoinIndexedVector * input,
00038                                     double theta,
00039                                     double & changeInObjective);
00040 
00051   virtual void saveWeights(ClpSimplex * model, int mode);
00053   virtual void unrollWeights();
00055   virtual void clearArrays();
00057   virtual bool looksOptimal() const;
00059   virtual void maximumPivotsChanged();
00061   
00064   enum Persistence {
00065     normal = 0x00, // create (if necessary) and destroy
00066     keep = 0x01 // create (if necessary) and leave
00067   };
00068   
00070 
00071 
00078   ClpDualRowSteepest(int mode=3); 
00079   
00081   ClpDualRowSteepest(const ClpDualRowSteepest &);
00082   
00084   ClpDualRowSteepest & operator=(const ClpDualRowSteepest& rhs);
00085   
00087   virtual ~ClpDualRowSteepest ();
00088 
00090   virtual ClpDualRowPivot * clone(bool copyData = true) const;
00091  
00093 
00095 
00096   inline int mode() const
00097     { return mode_;}
00099   inline void setPersistence(Persistence life)
00100   { persistence_ = life;}
00101   inline Persistence persistence() const
00102   { return persistence_ ;}
00104 
00105   //---------------------------------------------------------------------------
00106   
00107 private:
00109 
00114   int state_;
00117   int mode_;
00119   Persistence persistence_;
00121   double * weights_;
00123   CoinIndexedVector * infeasible_;
00125   CoinIndexedVector * alternateWeights_;
00127   CoinIndexedVector * savedWeights_;
00129   int * dubiousWeights_;
00131 };
00132 
00133 #endif

Generated on Sun Nov 14 14:06:31 2010 for Coin-All by  doxygen 1.4.7