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

- File List
- File Members

# /home/coin/SVN-release/Blis-0.91.2/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