Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

ClpDualRowPivot.hpp

00001 // Copyright (C) 2002, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef ClpDualRowPivot_H
00004 #define ClpDualRowPivot_H
00005 
00006 class ClpSimplex;
00007 class CoinIndexedVector;
00008 
00009 //#############################################################################
00010 
00019 class ClpDualRowPivot  {
00020   
00021 public:
00022   
00024 
00025   
00027   virtual int pivotRow() = 0;
00028   
00030   virtual double updateWeights(CoinIndexedVector * input,
00031                              CoinIndexedVector * spare,
00032                              CoinIndexedVector * updatedColumn) = 0;
00033   
00040    /* FIXME: this was pure virtul (=0). Why? */
00041   virtual void updatePrimalSolution(CoinIndexedVector * input,
00042                                     double theta,
00043                                     double & changeInObjective) = 0;
00054   virtual void saveWeights(ClpSimplex * model,int mode);
00056   virtual void checkAccuracy();
00058   virtual void unrollWeights();
00060   virtual void clearArrays();
00062   virtual bool looksOptimal() const
00063   { return false;};
00065   
00066   
00068 
00069 
00070   ClpDualRowPivot(); 
00071   
00073   ClpDualRowPivot(const ClpDualRowPivot &);
00074   
00076   ClpDualRowPivot & operator=(const ClpDualRowPivot& rhs);
00077   
00079   virtual ~ClpDualRowPivot ();
00080 
00082   virtual ClpDualRowPivot * clone(bool copyData = true) const = 0;
00083  
00085 
00087 
00088 
00089   inline ClpSimplex * model()
00090   { return model_;};
00091   
00093   inline int type()
00094   { return type_;};
00095   
00097 
00098   //---------------------------------------------------------------------------
00099   
00100 protected:
00102 
00103 
00104   ClpSimplex * model_;
00106   int type_;
00108 };
00109 
00110 #endif

Generated on Wed Dec 3 14:37:25 2003 for CLP by doxygen 1.3.5