CoinUtils
2.9.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CoinUtils
src
CoinPresolveDupcol.hpp
Go to the documentation of this file.
1
/* $Id: CoinPresolveDupcol.hpp 1550 2012-08-28 14:55:18Z forrest $ */
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 CoinPresolveDupcol_H
7
#define CoinPresolveDupcol_H
8
9
#include "
CoinPresolveMatrix.hpp
"
10
15
#define DUPCOL 10
16
32
class
dupcol_action
:
public
CoinPresolveAction
{
33
dupcol_action
();
34
dupcol_action
(
const
dupcol_action
& rhs);
35
dupcol_action
&
operator=
(
const
dupcol_action
& rhs);
36
37
struct
action
{
38
double
thislo
;
39
double
thisup
;
40
double
lastlo
;
41
double
lastup
;
42
int
ithis
;
43
int
ilast
;
44
45
double
*
colels
;
46
int
nincol
;
47
};
48
49
const
int
nactions_
;
50
// actions_ is owned by the class and must be deleted at destruction
51
const
action
*
const
actions_
;
52
53
dupcol_action
(
int
nactions,
const
action
*actions,
54
const
CoinPresolveAction
*
next
) :
55
CoinPresolveAction
(next),
56
nactions_
(nactions),
57
actions_
(actions) {}
58
59
public
:
60
const
char
*
name
()
const
;
61
62
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*prob,
63
const
CoinPresolveAction
*
next
);
64
65
void
postsolve
(
CoinPostsolveMatrix
*prob)
const
;
66
67
virtual
~dupcol_action
();
68
69
};
70
71
87
class
duprow_action
:
public
CoinPresolveAction
{
88
struct
action
{
89
int
row
;
90
double
lbound
;
91
double
ubound
;
92
};
93
94
const
int
nactions_
;
95
const
action
*
const
actions_
;
96
97
duprow_action
():
CoinPresolveAction
(NULL),
nactions_
(0),
actions_
(NULL) {}
98
duprow_action
(
int
nactions,
99
const
action
*actions,
100
const
CoinPresolveAction
*
next
) :
101
CoinPresolveAction
(next),
102
nactions_
(nactions),
actions_
(actions) {}
103
104
public
:
105
const
char
*
name
()
const
;
106
107
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*prob,
108
const
CoinPresolveAction
*
next
);
109
110
void
postsolve
(
CoinPostsolveMatrix
*prob)
const
;
111
112
//~duprow_action() { delete[]actions_; }
113
};
114
125
class
gubrow_action
:
public
CoinPresolveAction
{
126
struct
action
{
127
int
row
;
128
double
lbound
;
129
double
ubound
;
130
};
131
132
const
int
nactions_
;
133
const
action
*
const
actions_
;
134
135
gubrow_action
():
CoinPresolveAction
(NULL),
nactions_
(0),
actions_
(NULL) {}
136
gubrow_action
(
int
nactions,
137
const
action
*actions,
138
const
CoinPresolveAction
*
next
) :
139
CoinPresolveAction
(next),
140
nactions_
(nactions),
actions_
(actions) {}
141
142
public
:
143
const
char
*
name
()
const
;
144
145
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*prob,
146
const
CoinPresolveAction
*
next
);
147
148
void
postsolve
(
CoinPostsolveMatrix
*prob)
const
;
149
150
//~gubrow_action() { delete[]actions_; }
151
};
152
163
class
twoxtwo_action
:
public
CoinPresolveAction
{
164
struct
action
{
165
double
lbound_row
;
166
double
ubound_row
;
167
double
lbound_col
;
168
double
ubound_col
;
169
double
cost_col
;
170
double
cost_othercol
;
171
int
row
;
172
int
col
;
173
int
othercol
;
174
};
175
176
const
int
nactions_
;
177
const
action
*
const
actions_
;
178
179
twoxtwo_action
():
CoinPresolveAction
(NULL),
nactions_
(0),
actions_
(NULL) {}
180
twoxtwo_action
(
int
nactions,
181
const
action
*actions,
182
const
CoinPresolveAction
*
next
) :
183
CoinPresolveAction
(next),
184
nactions_
(nactions),
actions_
(actions) {}
185
186
public
:
187
const
char
*
name
()
const
;
188
189
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*prob,
190
const
CoinPresolveAction
*
next
);
191
192
void
postsolve
(
CoinPostsolveMatrix
*prob)
const
;
193
194
~twoxtwo_action
() {
delete
[]
actions_
; }
195
};
196
197
#endif
198
Generated by
1.8.3.1