- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Osi-0.98.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
    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