1/* $Id: ClpPrimalColumnDantzig.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 ClpPrimalColumnDantzig_H
7#define ClpPrimalColumnDantzig_H
8
9#include "ClpPrimalColumnPivot.hpp"
10
11//#############################################################################
12
13/** Primal Column Pivot Dantzig Algorithm Class
14
15This is simplest choice - choose largest infeasibility
16
17*/
18
19class ClpPrimalColumnDantzig : public ClpPrimalColumnPivot {
20
21public:
22
23 ///@name Algorithmic methods
24 //@{
25
26 /** Returns pivot column, -1 if none.
27 Lumbers over all columns - slow
28 The Packed CoinIndexedVector updates has cost updates - for normal LP
29 that is just +-weight where a feasibility changed. It also has
30 reduced cost from last iteration in pivot row
31 Can just do full price if you really want to be slow
32 */
33 virtual int pivotColumn(CoinIndexedVector * updates,
34 CoinIndexedVector * spareRow1,
35 CoinIndexedVector * spareRow2,
36 CoinIndexedVector * spareColumn1,
37 CoinIndexedVector * spareColumn2) override;
38
39 /// Just sets model
40 virtual void saveWeights(ClpSimplex * model, int) override {
41 model_ = model;
42 }
43 //@}
44
45
46 ///@name Constructors and destructors
47 //@{
48 /// Default Constructor
49 ClpPrimalColumnDantzig();
50
51 /// Copy constructor
52 ClpPrimalColumnDantzig(const ClpPrimalColumnDantzig &);
53
54 /// Assignment operator
55 ClpPrimalColumnDantzig & operator=(const ClpPrimalColumnDantzig& rhs);
56
57 /// Destructor
58 virtual ~ClpPrimalColumnDantzig ();
59
60 /// Clone
61 virtual ClpPrimalColumnPivot * clone(bool copyData = true) const override;
62
63 //@}
64
65 //---------------------------------------------------------------------------
66
67private:
68 ///@name Private member data
69 //@}
70};
71
72#endif
73