AbcPrimalColumnPivot.hpp

Go to the documentation of this file.
00001 /* $Id: AbcPrimalColumnPivot.hpp 1910 2013-01-27 02:00:13Z stefan $ */
00002 // Copyright (C) 2002, International Business Machines
00003 // Corporation and others, Copyright (C) 2012, FasterCoin.  All Rights Reserved.
00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
00005 
00006 #ifndef AbcPrimalColumnPivot_H
00007 #define AbcPrimalColumnPivot_H
00008 #include "AbcCommon.hpp"
00009 
00010 class AbcSimplex;
00011 class CoinIndexedVector;
00012 
00013 //#############################################################################
00014 
00026 class AbcPrimalColumnPivot  {
00027 
00028 public:
00029 
00031 
00032 
00051      virtual int pivotColumn(CoinPartitionedVector * updates,
00052                              CoinPartitionedVector * spareRow2,
00053                              CoinPartitionedVector * spareColumn1) = 0;
00054 
00056      virtual void updateWeights(CoinIndexedVector * input);
00057 
00069      virtual void saveWeights(AbcSimplex * model, int mode) = 0;
00075      virtual int pivotRow(double & way) {
00076           way = 0;
00077           return -2;
00078      }
00080      virtual void clearArrays();
00082      virtual bool looksOptimal() const {
00083           return looksOptimal_;
00084      }
00086      virtual void setLooksOptimal(bool flag) {
00087           looksOptimal_ = flag;
00088      }
00090 
00091 
00093 
00094 
00095      AbcPrimalColumnPivot();
00096 
00098      AbcPrimalColumnPivot(const AbcPrimalColumnPivot &);
00099 
00101      AbcPrimalColumnPivot & operator=(const AbcPrimalColumnPivot& rhs);
00102 
00104      virtual ~AbcPrimalColumnPivot ();
00105 
00107      virtual AbcPrimalColumnPivot * clone(bool copyData = true) const = 0;
00108 
00110 
00112 
00113 
00114      inline AbcSimplex * model() {
00115           return model_;
00116      }
00118      inline void setModel(AbcSimplex * newmodel) {
00119           model_ = newmodel;
00120      }
00121 
00123      inline int type() {
00124           return type_;
00125      }
00126 
00130      virtual int numberSprintColumns(int & numberIterations) const;
00132      virtual void switchOffSprint();
00134      virtual void maximumPivotsChanged() {}
00135 
00137 
00138      //---------------------------------------------------------------------------
00139 
00140 protected:
00142 
00143 
00144      AbcSimplex * model_;
00146      int type_;
00148      bool looksOptimal_;
00150 };
00151 #ifndef CLP_PRIMAL_SLACK_MULTIPLIER
00152 #define CLP_PRIMAL_SLACK_MULTIPLIER 1.01
00153 #endif
00154 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Oct 2014 for Clp by  doxygen 1.6.1