CoinUtils 2.11.10
Loading...
Searching...
No Matches
CoinPresolveSingleton.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 CoinPresolveSingleton_H
7#define CoinPresolveSingleton_H
8#define SLACK_DOUBLETON 2
9#define SLACK_SINGLETON 8
10
15//const int MAX_SLACK_DOUBLETONS = 1000;
16
25 struct action {
26 double clo;
27 double cup;
28
29 double rlo;
30 double rup;
31
32 double coeff;
33
34 int col;
35 int row;
36 };
37
38 const int nactions_;
39 const action *const actions_;
40
42 const action *actions,
45 , nactions_(nactions)
46 , actions_(actions)
47 {
48 }
49
50public:
51 const char *name() const { return ("slack_doubleton_action"); }
52
61 bool &notFinished);
62
63 void postsolve(CoinPostsolveMatrix *prob) const;
64
66};
76 struct action {
77 double clo;
78 double cup;
79
80 double rlo;
81 double rup;
82
83 double coeff;
84
85 int col;
86 int row;
87 };
88
89 const int nactions_;
90 const action *const actions_;
91
93 const action *actions,
96 , nactions_(nactions)
97 , actions_(actions)
98 {
99 }
100
101public:
102 const char *name() const { return ("slack_singleton_action"); }
103
106 double *rowObjective);
107
109
111};
112#endif
113
114/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
115*/
#define deleteAction(array, type)
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...
Convert an explicit bound constraint to a column bound.
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next, bool &notFinished)
Convert explicit bound constraints to column bounds.
const char * name() const
A name for debug printing.
slack_doubleton_action(int nactions, const action *actions, const CoinPresolveAction *next)
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
For variables with one entry.
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
const char * name() const
A name for debug printing.
slack_singleton_action(int nactions, const action *actions, const CoinPresolveAction *next)
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next, double *rowObjective)