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

- File List
- File Members

# /home/coin/svn-release/Alps-1.5.2/Clp/src/ClpDualRowPivot.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpDualRowPivot.hpp 2070 2014-11-18 11:12:54Z forrest $ */
    00002 // Copyright (C) 2002, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
    00005
    00006 #ifndef ClpDualRowPivot_H
    00007 #define ClpDualRowPivot_H
    00008
    00009 class ClpSimplex;
    00010 class CoinIndexedVector;
    00011
    00012 //#############################################################################
    00013
    00022 class ClpDualRowPivot  {
    00023
    00024 public:
    00025
    00027
    00028
    00030      virtual int pivotRow() = 0;
    00031
    00034      virtual double updateWeights(CoinIndexedVector * input,
    00035                                   CoinIndexedVector * spare,
    00036                                   CoinIndexedVector * spare2,
    00037                                   CoinIndexedVector * updatedColumn) = 0;
    00038
    00045      /* FIXME: this was pure virtul (=0). Why? */
    00046      virtual void updatePrimalSolution(CoinIndexedVector * input,
    00047                                        double theta,
    00048                                        double & changeInObjective) = 0;
    00061      virtual void saveWeights(ClpSimplex * model, int mode);
    00063      virtual void checkAccuracy();
    00065      virtual void unrollWeights();
    00067      virtual void clearArrays();
    00069      virtual bool looksOptimal() const {
    00070           return false;
    00071      }
    00073      virtual void maximumPivotsChanged() {}
    00075
    00076
    00078
    00079
    00080      ClpDualRowPivot();
    00081
    00083      ClpDualRowPivot(const ClpDualRowPivot &);
    00084
    00086      ClpDualRowPivot & operator=(const ClpDualRowPivot& rhs);
    00087
    00089      virtual ~ClpDualRowPivot ();
    00090
    00092      virtual ClpDualRowPivot * clone(bool copyData = true) const = 0;
    00093
    00095
    00097
    00098
    00099      inline ClpSimplex * model() {
    00100           return model_;
    00101      }
    00102
    00104      inline void setModel(ClpSimplex * newmodel) {
    00105           model_ = newmodel;
    00106      }
    00107
    00109      inline int type() {
    00110           return type_;
    00111      }
    00112
    00114
    00115      //---------------------------------------------------------------------------
    00116
    00117 protected:
    00119
    00120
    00121      ClpSimplex * model_;
    00123      int type_;
    00125 };
    00126 #ifndef CLP_DUAL_COLUMN_MULTIPLIER
    00127 //#define CLP_DUAL_COLUMN_MULTIPLIER 0.99999
    00128 #endif
    00129 #endif