1/* $Id: ClpDualRowDantzig.hpp 1665 2011-01-04 17:55:54Z lou $ */
2// Copyright (C) 2002, International Business Machines
3// Corporation and others. All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6#ifndef ClpDualRowDantzig_H
7#define ClpDualRowDantzig_H
8
9#include "ClpDualRowPivot.hpp"
10
11//#############################################################################
12
13/** Dual Row Pivot Dantzig Algorithm Class
14
15This is simplest choice - choose largest infeasibility
16
17*/
18
19class ClpDualRowDantzig : public ClpDualRowPivot {
20
21public:
22
23 ///@name Algorithmic methods
24 //@{
25
26 /// Returns pivot row, -1 if none
27 virtual int pivotRow() override;
28
29 /** Updates weights and returns pivot alpha.
30 Also does FT update */
31 virtual double updateWeights(CoinIndexedVector * input,
32 CoinIndexedVector * spare,
33 CoinIndexedVector * spare2,
34 CoinIndexedVector * updatedColumn) override;
35 /** Updates primal solution (and maybe list of candidates)
36 Uses input vector which it deletes
37 Computes change in objective function
38 */
39 virtual void updatePrimalSolution(CoinIndexedVector * input,
40 double theta,
41 double & changeInObjective) override;
42 //@}
43
44
45 ///@name Constructors and destructors
46 //@{
47 /// Default Constructor
48 ClpDualRowDantzig();
49
50 /// Copy constructor
51 ClpDualRowDantzig(const ClpDualRowDantzig &);
52
53 /// Assignment operator
54 ClpDualRowDantzig & operator=(const ClpDualRowDantzig& rhs);
55
56 /// Destructor
57 virtual ~ClpDualRowDantzig ();
58
59 /// Clone
60 virtual ClpDualRowPivot * clone(bool copyData = true) const override;
61
62 //@}
63
64 //---------------------------------------------------------------------------
65
66private:
67 ///@name Private member data
68 //@}
69};
70
71#endif
72