Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CoinPresolveSingleton.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveSingleton.hpp 2083 2019-01-06 19:38:09Z unxusr $ */
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 CoinPresolveSingleton_H
7 #define CoinPresolveSingleton_H
8 #define SLACK_DOUBLETON 2
9 #define SLACK_SINGLETON 8
10 
15 //const int MAX_SLACK_DOUBLETONS = 1000;
16 
25  struct action {
26  double clo;
27  double cup;
28 
29  double rlo;
30  double rup;
31 
32  double coeff;
33 
34  int col;
35  int row;
36  };
37 
38  const int nactions_;
39  const action *const actions_;
40 
41  slack_doubleton_action(int nactions,
42  const action *actions,
43  const CoinPresolveAction *next)
44  : CoinPresolveAction(next)
45  , nactions_(nactions)
46  , actions_(actions)
47  {
48  }
49 
50 public:
51  const char *name() const { return ("slack_doubleton_action"); }
52 
60  const CoinPresolveAction *next,
61  bool &notFinished);
62 
63  void postsolve(CoinPostsolveMatrix *prob) const;
64 
66 };
76  struct action {
77  double clo;
78  double cup;
79 
80  double rlo;
81  double rup;
82 
83  double coeff;
84 
85  int col;
86  int row;
87  };
88 
89  const int nactions_;
90  const action *const actions_;
91 
92  slack_singleton_action(int nactions,
93  const action *actions,
94  const CoinPresolveAction *next)
95  : CoinPresolveAction(next)
96  , nactions_(nactions)
97  , actions_(actions)
98  {
99  }
100 
101 public:
102  const char *name() const { return ("slack_singleton_action"); }
103 
104  static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
105  const CoinPresolveAction *next,
106  double *rowObjective);
107 
108  void postsolve(CoinPostsolveMatrix *prob) const;
109 
111 };
112 #endif
113 
114 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
115 */
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next, bool &notFinished)
Convert explicit bound constraints to column bounds.
For variables with one entry.
Abstract base class of all presolve routines.
slack_doubleton_action(int nactions, const action *actions, const CoinPresolveAction *next)
#define deleteAction(array, type)
const action *const actions_
const CoinPresolveAction * next
The next presolve transformation.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
Convert an explicit bound constraint to a column bound.
const char * name() const
A name for debug printing.
const action *const actions_
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
const char * name() const
A name for debug printing.
slack_singleton_action(int nactions, const action *actions, const CoinPresolveAction *next)
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next, double *rowObjective)