CoinUtils 2.11.4
Loading...
Searching...
No Matches
CoinPresolveUseless.hpp
Go to the documentation of this file.
1/* $Id$ */
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
24 const action *actions,
26
27public:
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,
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*/
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
Abstract base class of all presolve routines.
const CoinPresolveAction * next
The next presolve transformation.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
const char * name() const
A name for debug printing.
virtual ~useless_constraint_action()
const CoinPresolveAction * testRedundant(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
Scan constraints looking for useless constraints.
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const int *useless_rows, int nuseless_rows, const CoinPresolveAction *next)
useless_constraint_action(int nactions, const action *actions, const CoinPresolveAction *next)