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

- File List
- File Members

# /home/coin/SVN-release/Cgl-0.53.1/Clp/src/ClpDualRowPivot.hpp

Go to the documentation of this file.

    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
    00031   virtual double updateWeights(CoinIndexedVector * input,
    00032                              CoinIndexedVector * spare,
    00033                              CoinIndexedVector * spare2,
    00034                              CoinIndexedVector * updatedColumn) = 0;
    00035
    00042    /* FIXME: this was pure virtul (=0). Why? */
    00043   virtual void updatePrimalSolution(CoinIndexedVector * input,
    00044                                     double theta,
    00045                                     double & changeInObjective) = 0;
    00056   virtual void saveWeights(ClpSimplex * model,int mode);
    00058   virtual void checkAccuracy();
    00060   virtual void unrollWeights();
    00062   virtual void clearArrays();
    00064   virtual bool looksOptimal() const
    00065   { return false;}
    00067   virtual void maximumPivotsChanged() {}
    00069
    00070
    00072
    00073
    00074   ClpDualRowPivot();
    00075
    00077   ClpDualRowPivot(const ClpDualRowPivot &);
    00078
    00080   ClpDualRowPivot & operator=(const ClpDualRowPivot& rhs);
    00081
    00083   virtual ~ClpDualRowPivot ();
    00084
    00086   virtual ClpDualRowPivot * clone(bool copyData = true) const = 0;
    00087
    00089
    00091
    00092
    00093   inline ClpSimplex * model()
    00094   { return model_;}
    00095
    00097   inline void setModel(ClpSimplex * model)
    00098   { model_=model;}
    00099
    00101   inline int type()
    00102   { return type_;}
    00103
    00105
    00106   //---------------------------------------------------------------------------
    00107
    00108 protected:
    00110
    00111
    00112   ClpSimplex * model_;
    00114   int type_;
    00116 };
    00117
    00118 #endif