source: trunk/Clp/src/ClpPEPrimalColumnDantzig.hpp @ 2216

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

Removing defines that break the MSVC++ build

File size: 1.9 KB
Line 
1/*
2   Authors
3
4   Jeremy Omer, Mehdi Towhidi
5
6   Last update: april 10, 2015
7
8 */
9
10#ifndef ClpPEPrimalColumnDantzig_H
11#define ClpPEPrimalColumnDantzig_H
12
13#include "ClpPrimalColumnDantzig.hpp"
14#include "ClpPrimalColumnPivot.hpp"
15#include "ClpSimplex.hpp"
16#include "CoinIndexedVector.hpp"
17#include "ClpFactorization.hpp"
18#include "ClpNonLinearCost.hpp"
19#include "ClpSimplexPrimal.hpp"
20#include "ClpPackedMatrix.hpp"
21#include "ClpPESimplex.hpp"
22
23
24class ClpPEPrimalColumnDantzig : public ClpPrimalColumnDantzig{
25
26public:
27        /** constructors */ 
28        ClpPEPrimalColumnDantzig(double psi = 0.5);
29        ClpPEPrimalColumnDantzig(const ClpPEPrimalColumnDantzig &); //copy constructor
30
31        /** destructor */
32        ~ClpPEPrimalColumnDantzig();
33
34        /** assignment operator */
35  ClpPEPrimalColumnDantzig & operator=(const ClpPEPrimalColumnDantzig& rhs);
36       
37        /** clone */
38  ClpPrimalColumnPivot * clone(bool copyData = true) const;
39       
40        virtual int pivotColumn(CoinIndexedVector * updates,
41                                                                        CoinIndexedVector * spareRow1,
42                                                                        CoinIndexedVector * spareRow2,
43                                                                        CoinIndexedVector * spareColumn1,
44                                                                        CoinIndexedVector * spareColumn2);
45       
46     //@}
47     /** Save weights - this may initialize weights as well
48         This is as parent but may initialize ClpPESimplex
49     */
50     virtual void saveWeights(ClpSimplex * model, int mode);
51     //---------------------------------------------------------------------------
52private:
53    /* this PESimplex object is used to identify the compatible variables */
54    ClpPESimplex *modelPE_;
55
56    /* psi is the factor used in the bi-dimensional pricing, it is < 1 and
57       1/psi grows with the priority given to compatible variables */
58    double psi_;
59
60    /* useful counters for the update of the set of compatible variables */
61    int iCurrent_;
62    int iInterval_;
63
64    /* record if previous iterations concluded that compatibles should not be checked */
65    int coDegenCompatibles_;
66    int coConsecutiveCompatibles_;
67    bool updateCompatibles_;
68
69};
70#endif
Note: See TracBrowser for help on using the repository browser.