CoinPresolveSingleton.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveSingleton.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 CoinPresolveSingleton_H
6 #define CoinPresolveSingleton_H
7 #define SLACK_DOUBLETON 2
8 #define SLACK_SINGLETON 8
9 
14 const int MAX_SLACK_DOUBLETONS = 1000;
15 
24  struct action {
25  double clo;
26  double cup;
27 
28  double rlo;
29  double rup;
30 
31  double coeff;
32 
33  int col;
34  int row;
35  };
36 
37  const int nactions_;
38  const action *const actions_;
39 
40  slack_doubleton_action(int nactions,
41  const action *actions,
42  const CoinPresolveAction *next) :
43  CoinPresolveAction(next),
44  nactions_(nactions),
45  actions_(actions)
46 {}
47 
48  public:
49  const char *name() const { return ("slack_doubleton_action"); }
50 
58  const CoinPresolveAction *next,
59  bool &notFinished);
60 
61  void postsolve(CoinPostsolveMatrix *prob) const;
62 
63 
65 };
75  struct action {
76  double clo;
77  double cup;
78 
79  double rlo;
80  double rup;
81 
82  double coeff;
83 
84  int col;
85  int row;
86  };
87 
88  const int nactions_;
89  const action *const actions_;
90 
91  slack_singleton_action(int nactions,
92  const action *actions,
93  const CoinPresolveAction *next) :
94  CoinPresolveAction(next),
95  nactions_(nactions),
96  actions_(actions)
97 {}
98 
99  public:
100  const char *name() const { return ("slack_singleton_action"); }
101 
102  static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
103  const CoinPresolveAction *next,
104  double * rowObjective);
105 
106  void postsolve(CoinPostsolveMatrix *prob) const;
107 
108 
110 };
111 #endif