CoinPresolveUseless.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveUseless.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 CoinPresolveUseless_H
6 #define CoinPresolveUseless_H
7 #define USELESS 20
8 
10  struct action {
11  double rlo;
12  double rup;
13  const int *rowcols;
14  const double *rowels;
15  int row;
16  int ninrow;
17  };
18 
19  const int nactions_;
20  const action *const actions_;
21 
22  useless_constraint_action(int nactions,
23  const action *actions,
24  const CoinPresolveAction *next);
25 
26  public:
27  const char *name() const;
28 
29  // These rows are asserted to be useless,
30  // that is, given a solution the row activity
31  // must be in range.
32  static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob,
33  const int *useless_rows,
34  int nuseless_rows,
35  const CoinPresolveAction *next);
36 
37  void postsolve(CoinPostsolveMatrix *prob) const;
38 
40 
41 };
42 
43 
44 #endif
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 postsol...
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
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.
useless_constraint_action(int nactions, const action *actions, const CoinPresolveAction *next)
Abstract base class of all presolve routines.
const CoinPresolveAction * next
The next presolve transformation.