CoinUtils 2.11.10
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
14const int DROP_ROW = 3;
15const int DROP_COL = 4;
16
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...
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...
Physically removes empty columns in presolve, and reinserts empty columns in postsolve.
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.
Physically removes empty rows in presolve, and reinserts empty rows in postsolve.
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_