Clp trunk
ClpPrimalColumnPivot.hpp
Go to the documentation of this file.
00001 /* $Id$ */
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 ClpPrimalcolumnPivot_H
00007 #define ClpPrimalcolumnPivot_H
00008 
00009 class ClpSimplex;
00010 class CoinIndexedVector;
00011 
00012 //#############################################################################
00013 
00025 class ClpPrimalColumnPivot  {
00026 
00027 public:
00028 
00030 
00031 
00050      virtual int pivotColumn(CoinIndexedVector * updates,
00051                              CoinIndexedVector * spareRow1,
00052                              CoinIndexedVector * spareRow2,
00053                              CoinIndexedVector * spareColumn1,
00054                              CoinIndexedVector * spareColumn2) = 0;
00055 
00057      virtual void updateWeights(CoinIndexedVector * input);
00058 
00070      virtual void saveWeights(ClpSimplex * model, int mode) = 0;
00076      virtual int pivotRow(double & way) {
00077           way = 0;
00078           return -2;
00079      }
00081      virtual void clearArrays();
00083      virtual bool looksOptimal() const {
00084           return looksOptimal_;
00085      }
00087      virtual void setLooksOptimal(bool flag) {
00088           looksOptimal_ = flag;
00089      }
00091 
00092 
00094 
00095 
00096      ClpPrimalColumnPivot();
00097 
00099      ClpPrimalColumnPivot(const ClpPrimalColumnPivot &);
00100 
00102      ClpPrimalColumnPivot & operator=(const ClpPrimalColumnPivot& rhs);
00103 
00105      virtual ~ClpPrimalColumnPivot ();
00106 
00108      virtual ClpPrimalColumnPivot * clone(bool copyData = true) const = 0;
00109 
00111 
00113 
00114 
00115      inline ClpSimplex * model() {
00116           return model_;
00117      }
00119      inline void setModel(ClpSimplex * newmodel) {
00120           model_ = newmodel;
00121      }
00122 
00124      inline int type() {
00125           return type_;
00126      }
00127 
00131      virtual int numberSprintColumns(int & numberIterations) const;
00133      virtual void switchOffSprint();
00135      virtual void maximumPivotsChanged() {}
00136 
00138 
00139      //---------------------------------------------------------------------------
00140 
00141 protected:
00143 
00144 
00145      ClpSimplex * model_;
00147      int type_;
00149      bool looksOptimal_;
00151 };
00152 
00153 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines