CoinPresolveDupcol.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveDupcol.hpp 1215 2009-11-05 11:03:04Z forrest $ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 
5 #ifndef CoinPresolveDupcol_H
6 #define CoinPresolveDupcol_H
7 
8 #include "CoinPresolveMatrix.hpp"
9 
14 #define DUPCOL 10
15 
32  dupcol_action();
33  dupcol_action(const dupcol_action& rhs);
35 
36  struct action {
37  double thislo;
38  double thisup;
39  double lastlo;
40  double lastup;
41  int ithis;
42  int ilast;
43 
44  double *colels;
45  int nincol;
46  };
47 
48  const int nactions_;
49  // actions_ is owned by the class and must be deleted at destruction
50  const action *const actions_;
51 
52  dupcol_action(int nactions, const action *actions,
53  const CoinPresolveAction *next) :
54  CoinPresolveAction(next),
55  nactions_(nactions),
56  actions_(actions) {}
57 
58  public:
59  const char *name() const;
60 
62  const CoinPresolveAction *next);
63 
64  void postsolve(CoinPostsolveMatrix *prob) const;
65 
67 
68 };
69 
70 
87  struct action {
88  int row;
89  double lbound;
90  double ubound;
91  };
92 
93  const int nactions_;
94  const action *const actions_;
95 
97  duprow_action(int nactions,
98  const action *actions,
99  const CoinPresolveAction *next) :
100  CoinPresolveAction(next),
101  nactions_(nactions), actions_(actions) {}
102 
103  public:
104  const char *name() const;
105 
106  static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
107  const CoinPresolveAction *next);
108 
109  void postsolve(CoinPostsolveMatrix *prob) const;
110 
111  //~duprow_action() { delete[]actions_; }
112 };
113 
125  struct action {
126  int row;
127  double lbound;
128  double ubound;
129  };
130 
131  const int nactions_;
132  const action *const actions_;
133 
135  gubrow_action(int nactions,
136  const action *actions,
137  const CoinPresolveAction *next) :
138  CoinPresolveAction(next),
139  nactions_(nactions), actions_(actions) {}
140 
141  public:
142  const char *name() const;
143 
144  static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
145  const CoinPresolveAction *next);
146 
147  void postsolve(CoinPostsolveMatrix *prob) const;
148 
149  //~gubrow_action() { delete[]actions_; }
150 };
151 
152 #endif
153