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

- File List
- File Members

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

Go to the documentation of this file.

    00001 /* $Id: ClpDualRowPivot.hpp 1461 2009-11-06 19:06:43Z stefan $ */
    00002 // Copyright (C) 2002, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004 #ifndef ClpDualRowPivot_H
    00005 #define ClpDualRowPivot_H
    00006
    00007 class ClpSimplex;
    00008 class CoinIndexedVector;
    00009
    00010 //#############################################################################
    00011
    00020 class ClpDualRowPivot  {
    00021
    00022 public:
    00023
    00025
    00026
    00028   virtual int pivotRow() = 0;
    00029
    00032   virtual double updateWeights(CoinIndexedVector * input,
    00033                              CoinIndexedVector * spare,
    00034                              CoinIndexedVector * spare2,
    00035                              CoinIndexedVector * updatedColumn) = 0;
    00036
    00043    /* FIXME: this was pure virtul (=0). Why? */
    00044   virtual void updatePrimalSolution(CoinIndexedVector * input,
    00045                                     double theta,
    00046                                     double & changeInObjective) = 0;
    00057   virtual void saveWeights(ClpSimplex * model,int mode);
    00059   virtual void checkAccuracy();
    00061   virtual void unrollWeights();
    00063   virtual void clearArrays();
    00065   virtual bool looksOptimal() const
    00066   { return false;}
    00068   virtual void maximumPivotsChanged() {}
    00070
    00071
    00073
    00074
    00075   ClpDualRowPivot();
    00076
    00078   ClpDualRowPivot(const ClpDualRowPivot &);
    00079
    00081   ClpDualRowPivot & operator=(const ClpDualRowPivot& rhs);
    00082
    00084   virtual ~ClpDualRowPivot ();
    00085
    00087   virtual ClpDualRowPivot * clone(bool copyData = true) const = 0;
    00088
    00090
    00092
    00093
    00094   inline ClpSimplex * model()
    00095   { return model_;}
    00096
    00098   inline void setModel(ClpSimplex * newmodel)
    00099   { model_=newmodel;}
    00100
    00102   inline int type()
    00103   { return type_;}
    00104
    00106
    00107   //---------------------------------------------------------------------------
    00108
    00109 protected:
    00111
    00112
    00113   ClpSimplex * model_;
    00115   int type_;
    00117 };
    00118
    00119 #endif