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

- File List
- File Members

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