Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CoinPresolveUseless.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveUseless.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 CoinPresolveUseless_H
7 #define CoinPresolveUseless_H
8 #define USELESS 20
9 
11  struct action {
12  double rlo;
13  double rup;
14  const int *rowcols;
15  const double *rowels;
16  int row;
17  int ninrow;
18  };
19 
20  const int nactions_;
21  const action *const actions_;
22 
23  useless_constraint_action(int nactions,
24  const action *actions,
25  const CoinPresolveAction *next);
26 
27 public:
28  const char *name() const;
29 
30  // These rows are asserted to be useless,
31  // that is, given a solution the row activity
32  // must be in range.
34  const int *useless_rows,
35  int nuseless_rows,
36  const CoinPresolveAction *next);
37 
38  void postsolve(CoinPostsolveMatrix *prob) const;
39 
41 };
42 
58  const CoinPresolveAction *next);
59 
60 #endif
61 
62 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
63 */
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
Abstract base class of all presolve routines.
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const int *useless_rows, int nuseless_rows, const CoinPresolveAction *next)
const char * name() const
A name for debug printing.
const CoinPresolveAction * testRedundant(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
Scan constraints looking for useless constraints.
useless_constraint_action(int nactions, const action *actions, const CoinPresolveAction *next)
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...
virtual ~useless_constraint_action()