00001 /* $Id: AbcDualRowDantzig.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 AbcDualRowDantzig_H 00007 #define AbcDualRowDantzig_H 00008 00009 #include "AbcDualRowPivot.hpp" 00010 00011 //############################################################################# 00012 00019 class AbcDualRowDantzig : public AbcDualRowPivot { 00020 00021 public: 00022 00024 00025 00027 virtual int pivotRow(); 00028 00031 virtual double updateWeights(CoinIndexedVector & input,CoinIndexedVector & updatedColumn); 00032 virtual double updateWeights1(CoinIndexedVector & input,CoinIndexedVector & updateColumn); 00033 virtual void updateWeightsOnly(CoinIndexedVector & /*input*/) {}; 00035 virtual void updateWeights2(CoinIndexedVector & input,CoinIndexedVector & /*updateColumn*/) {input.clear();}; 00040 virtual void updatePrimalSolution(CoinIndexedVector & input, 00041 double theta); 00052 virtual void saveWeights(AbcSimplex * model, int mode); 00054 virtual void recomputeInfeasibilities(); 00056 00057 00059 00060 00061 AbcDualRowDantzig(); 00062 00064 AbcDualRowDantzig(const AbcDualRowDantzig &); 00065 00067 AbcDualRowDantzig & operator=(const AbcDualRowDantzig& rhs); 00068 00070 virtual ~AbcDualRowDantzig (); 00071 00073 virtual AbcDualRowPivot * clone(bool copyData = true) const; 00074 00076 00077 //--------------------------------------------------------------------------- 00078 00079 private: 00082 CoinIndexedVector * infeasible_; 00084 }; 00085 00086 #endif