/home/coin/SVN-release/Bcp-1.2.1/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   
00030   virtual double updateWeights(CoinIndexedVector * input,
00031                              CoinIndexedVector * spare,
00032                              CoinIndexedVector * spare2,
00033                              CoinIndexedVector * updatedColumn);
00034   
00039   virtual void updatePrimalSolution(CoinIndexedVector * input,
00040                                     double theta,
00041                                     double & changeInObjective);
00042 
00053   virtual void saveWeights(ClpSimplex * model, int mode);
00055   virtual void unrollWeights();
00057   virtual void clearArrays();
00059   virtual bool looksOptimal() const;
00061   virtual void maximumPivotsChanged();
00063   
00066   enum Persistence {
00067     normal = 0x00, // create (if necessary) and destroy
00068     keep = 0x01 // create (if necessary) and leave
00069   };
00070   
00072 
00073 
00080   ClpDualRowSteepest(int mode=3); 
00081   
00083   ClpDualRowSteepest(const ClpDualRowSteepest &);
00084   
00086   ClpDualRowSteepest & operator=(const ClpDualRowSteepest& rhs);
00087   
00089   void fill(const ClpDualRowSteepest& rhs);
00090   
00092   virtual ~ClpDualRowSteepest ();
00093 
00095   virtual ClpDualRowPivot * clone(bool copyData = true) const;
00096  
00098 
00100 
00101   inline int mode() const
00102     { return mode_;}
00104   inline void setPersistence(Persistence life)
00105   { persistence_ = life;}
00106   inline Persistence persistence() const
00107   { return persistence_ ;}
00109 
00110   //---------------------------------------------------------------------------
00111   
00112 private:
00114 
00119   int state_;
00122   int mode_;
00124   Persistence persistence_;
00126   double * weights_;
00128   CoinIndexedVector * infeasible_;
00130   CoinIndexedVector * alternateWeights_;
00132   CoinIndexedVector * savedWeights_;
00134   int * dubiousWeights_;
00136 };
00137 
00138 #endif

Generated on Thu Jan 15 03:01:00 2009 for coin-Bcp by  doxygen 1.4.7