# 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