Clp  1.17.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CoinPresolveTighten.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveTighten.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 CoinPresolveTighten_H
7 #define CoinPresolveTighten_H
8 
9 #include "CoinPresolveMatrix.hpp"
10 
11 // This action has no separate class;
12 // instead, it decides which columns can be made fixed
13 // and calls make_fixed_action::presolve.
15  const CoinPresolveAction *next);
16 
17 #define DO_TIGHTEN 30
18 
23 
24  struct action {
25  int *rows;
26  double *lbound;
27  double *ubound;
28  int col;
29  int nrows;
30  int direction; // just for assertions
31  };
32 
33  const int nactions_;
34  const action *const actions_;
35 
36  do_tighten_action(int nactions,
37  const action *actions,
38  const CoinPresolveAction *next)
39  : CoinPresolveAction(next)
40  , nactions_(nactions)
41  , actions_(actions)
42  {
43  }
44 
45 public:
46  const char *name() const;
47 
49  const CoinPresolveAction *next);
50 
51  void postsolve(CoinPostsolveMatrix *prob) const;
52 
53  virtual ~do_tighten_action();
54 };
55 #endif
56 
57 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
58 */
do_tighten_action(int nactions, const action *actions, const CoinPresolveAction *next)
do_tighten_action & operator=(const do_tighten_action &rhs)
Abstract base class of all presolve routines.
Declarations for CoinPresolveMatrix and CoinPostsolveMatrix and their common base class CoinPrePostso...
const CoinPresolveAction * tighten_zero_cost(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
virtual ~do_tighten_action()
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
const char * name() const
A name for debug printing.
const CoinPresolveAction * next
The next presolve transformation.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
const action *const actions_