Clp  1.17.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CoinPresolveForcing.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveForcing.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 CoinPresolveForcing_H
7 #define CoinPresolveForcing_H
8 
9 #include "CoinPresolveMatrix.hpp"
10 
15 #define IMPLIED_BOUND 7
16 
31 
32 public:
33  struct action {
34  const int *rowcols;
35  const double *bounds;
36  int row;
37  int nlo;
38  int nup;
39  };
40 
41 private:
42  const int nactions_;
43  // actions_ is owned by the class and must be deleted at destruction
44  const action *const actions_;
45 
46 public:
48  const action *actions,
49  const CoinPresolveAction *next)
50  : CoinPresolveAction(next)
51  , nactions_(nactions)
52  , actions_(actions)
53  {
54  }
55 
56  const char *name() const;
57 
59  const CoinPresolveAction *next);
60 
61  void postsolve(CoinPostsolveMatrix *prob) const;
62 
64 };
65 
66 #endif
67 
68 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
69 */
Abstract base class of all presolve routines.
const char * name() const
A name for debug printing.
forcing_constraint_action(int nactions, const action *actions, const CoinPresolveAction *next)
Declarations for CoinPresolveMatrix and CoinPostsolveMatrix and their common base class CoinPrePostso...
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
const CoinPresolveAction * next
The next presolve transformation.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
virtual ~forcing_constraint_action()
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
forcing_constraint_action & operator=(const forcing_constraint_action &rhs)
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
Detect and process forcing constraints and useless constraints.