CoinUtils 2.11.12
Loading...
Searching...
No Matches
CoinPresolveEmpty.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 CoinPresolveEmpty_H
7#define CoinPresolveEmpty_H
8
13
14const int DROP_ROW = 3;
15const int DROP_COL = 4;
16
33
35private:
36 const int nactions_;
37
38 struct action {
39 double clo;
40 double cup;
41 double cost;
42 double sol;
43 int jcol;
44 };
45 const action *const actions_;
46
48 const action *const actions,
51 , nactions_(nactions)
52 , actions_(actions)
53 {
54 }
55
56public:
57 const char *name() const { return ("drop_empty_cols_action"); }
58
60 const int *ecols,
61 int necols,
62 const CoinPresolveAction *);
63
66
67 void postsolve(CoinPostsolveMatrix *prob) const;
68
70};
71
87private:
88 struct action {
89 double rlo;
90 double rup;
91 int row;
92 int fill_row; // which row was moved into position row to fill it
93 };
94
95 const int nactions_;
96 const action *const actions_;
97
99 const action *actions,
102 , nactions_(nactions)
103 , actions_(actions)
104 {
105 }
106
107public:
108 const char *name() const { return ("drop_empty_rows_action"); }
109
111 const CoinPresolveAction *next);
112
114
116};
117#endif
118
119/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
120*/
const int DROP_ROW
const int DROP_COL
#define deleteAction(array, type)
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
const CoinPresolveAction * next
The next presolve transformation.
CoinPresolveAction(const CoinPresolveAction *next)
Construct a postsolve object and add it to the transformation list.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
const action *const actions_
static const CoinPresolveAction * presolve(CoinPresolveMatrix *, const int *ecols, int necols, const CoinPresolveAction *)
const char * name() const
A name for debug printing.
drop_empty_cols_action(int nactions, const action *const actions, const CoinPresolveAction *next)
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
const char * name() const
A name for debug printing.
drop_empty_rows_action(int nactions, const action *actions, const CoinPresolveAction *next)
const action *const actions_