• Main Page
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/clp-1.11.1/Clp/src/ClpDualRowSteepest.hpp

Go to the documentation of this file.
00001 /* $Id: ClpDualRowSteepest.hpp 1458 2009-11-05 12:34:07Z forrest $ */
00002 // Copyright (C) 2002, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 #ifndef ClpDualRowSteepest_H
00005 #define ClpDualRowSteepest_H
00006 
00007 #include "ClpDualRowPivot.hpp"
00008 class CoinIndexedVector;
00009 
00010 
00011 //#############################################################################
00012 
00019 class ClpDualRowSteepest : public ClpDualRowPivot {
00020   
00021 public:
00022   
00024 
00025   
00027   virtual int pivotRow();
00028   
00031   virtual double updateWeights(CoinIndexedVector * input,
00032                              CoinIndexedVector * spare,
00033                              CoinIndexedVector * spare2,
00034                              CoinIndexedVector * updatedColumn);
00035   
00040   virtual void updatePrimalSolution(CoinIndexedVector * input,
00041                                     double theta,
00042                                     double & changeInObjective);
00043 
00054   virtual void saveWeights(ClpSimplex * model, int mode);
00056   virtual void unrollWeights();
00058   virtual void clearArrays();
00060   virtual bool looksOptimal() const;
00062   virtual void maximumPivotsChanged();
00064   
00067   enum Persistence {
00068     normal = 0x00, // create (if necessary) and destroy
00069     keep = 0x01 // create (if necessary) and leave
00070   };
00071   
00073 
00074 
00081   ClpDualRowSteepest(int mode=3); 
00082   
00084   ClpDualRowSteepest(const ClpDualRowSteepest &);
00085   
00087   ClpDualRowSteepest & operator=(const ClpDualRowSteepest& rhs);
00088   
00090   void fill(const ClpDualRowSteepest& rhs);
00091   
00093   virtual ~ClpDualRowSteepest ();
00094 
00096   virtual ClpDualRowPivot * clone(bool copyData = true) const;
00097  
00099 
00101 
00102   inline int mode() const
00103     { return mode_;}
00105   inline void setPersistence(Persistence life)
00106   { persistence_ = life;}
00107   inline Persistence persistence() const
00108   { return persistence_ ;}
00110 
00111   //---------------------------------------------------------------------------
00112   
00113 private:
00115 
00120   int state_;
00123   int mode_;
00125   Persistence persistence_;
00127   double * weights_;
00129   CoinIndexedVector * infeasible_;
00131   CoinIndexedVector * alternateWeights_;
00133   CoinIndexedVector * savedWeights_;
00135   int * dubiousWeights_;
00137 };
00138 
00139 #endif

Generated on Fri Aug 20 2010 06:29:28 by  doxygen 1.7.1