source: trunk/Clp/src/ClpPEDualRowDantzig.hpp @ 2271

Last change on this file since 2271 was 2216, checked in by tkr, 4 years ago

Removing defines that break the MSVC++ build

File size: 2.2 KB
Line 
1// Copyright (C) 2002, International Business Machines
2// Corporation and others.  All Rights Reserved.
3/*
4   Authors
5
6   Jeremy Omer
7
8   Last update: april 10, 2015
9
10 */
11
12#ifndef ClpPEDualRowDantzig_H
13#define ClpPEDualRowDantzig_H
14
15#include "ClpDualRowPivot.hpp"
16#include "ClpDualRowDantzig.hpp"
17#include "ClpSimplex.hpp"
18#include "CoinIndexedVector.hpp"
19#include "ClpFactorization.hpp"
20#include "ClpNonLinearCost.hpp"
21#include "ClpSimplexDual.hpp"
22#include "ClpPackedMatrix.hpp"
23#include "ClpPESimplex.hpp"
24
25
26class ClpPEDualRowDantzig : public ClpDualRowDantzig{
27
28public:
29        /// Default Constructor
30        ClpPEDualRowDantzig(double psi=0.5);
31
32        /// Copy constructor
33        ClpPEDualRowDantzig(const ClpPEDualRowDantzig &);
34
35        /// Assignment operator
36        ClpPEDualRowDantzig & operator=(const ClpPEDualRowDantzig& rhs);
37
38        /// Destructor
39        virtual ~ClpPEDualRowDantzig ();
40
41        /// Clone
42        virtual ClpDualRowPivot * clone(bool copyData = true) const;
43
44 public:
45         ///@name Algorithmic methods
46     //@{
47
48     /// Returns pivot row, -1 if none
49     virtual int pivotRow();
50
51    /// Update the compatible variables and
52    /// call the base class method to update weights
53    virtual double updateWeights(CoinIndexedVector * input,
54                                 CoinIndexedVector * spare,
55                                 CoinIndexedVector * spare2,
56                                 CoinIndexedVector * updatedColumn);
57
58     /** Save weights - this may initialize weights as well
59         This is as parent but may initialize ClpPESimplex
60     */
61     virtual void saveWeights(ClpSimplex * model, int mode);
62     //@}
63
64
65
66     //---------------------------------------------------------------------------
67
68private:
69    /* this PESimplex object is used to identify the compatible variables */
70    ClpPESimplex *modelPE_;
71
72    /* psi is the factor used in the bi-dimensional pricing, it is < 1 and
73       1/psi grows with the priority given to compatible variables */
74    double psi_;
75
76    /* useful counters for the update of the set of compatible variables */
77    int iCurrent_;
78    int iInterval_;
79
80    /* record if previous iterations concluded that compatibles should not be checked */
81    bool updateCompatibles_;
82    int coDegenCompatibles_, coConsecutiveCompatibles_;
83};
84#endif
Note: See TracBrowser for help on using the repository browser.