Cbc  2.9.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AbcDualRowDantzig.hpp
Go to the documentation of this file.
1 /* $Id: AbcDualRowDantzig.hpp 1910 2013-01-27 02:00:13Z stefan $ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others, Copyright (C) 2012, FasterCoin. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef AbcDualRowDantzig_H
7 #define AbcDualRowDantzig_H
8 
9 #include "AbcDualRowPivot.hpp"
10 
11 //#############################################################################
12 
20 
21 public:
22 
24 
25 
27  virtual int pivotRow();
28 
31  virtual double updateWeights(CoinIndexedVector & input,CoinIndexedVector & updatedColumn);
32  virtual double updateWeights1(CoinIndexedVector & input,CoinIndexedVector & updateColumn);
33  virtual void updateWeightsOnly(CoinIndexedVector & /*input*/) {};
35  virtual void updateWeights2(CoinIndexedVector & input,CoinIndexedVector & /*updateColumn*/) {input.clear();};
40  virtual void updatePrimalSolution(CoinIndexedVector & input,
41  double theta);
52  virtual void saveWeights(AbcSimplex * model, int mode);
54  virtual void recomputeInfeasibilities();
56 
57 
59 
62 
65 
68 
70  virtual ~AbcDualRowDantzig ();
71 
73  virtual AbcDualRowPivot * clone(bool copyData = true) const;
74 
76 
77  //---------------------------------------------------------------------------
78 
79 private:
84 };
85 
86 #endif
virtual int pivotRow()
Returns pivot row, -1 if none.
CoinIndexedVector * infeasible_
virtual double updateWeights(CoinIndexedVector &input, CoinIndexedVector &updatedColumn)
Updates weights and returns pivot alpha.
virtual void updatePrimalSolution(CoinIndexedVector &input, double theta)
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes ch...
AbcDualRowDantzig()
Default Constructor.
virtual ~AbcDualRowDantzig()
Destructor.
virtual void updateWeightsOnly(CoinIndexedVector &)
Dual Row Pivot Abstract Base Class.
Indexed Vector.
virtual double updateWeights1(CoinIndexedVector &input, CoinIndexedVector &updateColumn)
Does most of work for weights and returns pivot alpha.
virtual AbcDualRowPivot * clone(bool copyData=true) const
Clone.
virtual void saveWeights(AbcSimplex *model, int mode)
Saves any weights round factorization as pivot rows may change Will be empty unless steepest edge (wi...
Dual Row Pivot Dantzig Algorithm Class.
AbcSimplex * model()
Returns model.
virtual void recomputeInfeasibilities()
Recompute infeasibilities.
virtual void updateWeights2(CoinIndexedVector &input, CoinIndexedVector &)
Actually updates weights.
void clear()
Reset the vector (as if were just created an empty vector). This leaves arrays!
AbcDualRowDantzig & operator=(const AbcDualRowDantzig &rhs)
Assignment operator.