Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
opt
build
coinutils-2.6.4
CoinUtils
src
CoinPresolveEmpty.hpp
Go to the documentation of this file.
1
/* $Id: CoinPresolveEmpty.hpp 1215 2009-11-05 11:03:04Z forrest $ */
2
// Copyright (C) 2002, International Business Machines
3
// Corporation and others. All Rights Reserved.
4
5
#ifndef CoinPresolveEmpty_H
6
#define CoinPresolveEmpty_H
7
13
const
int
DROP_ROW
= 3;
14
const
int
DROP_COL
= 4;
15
33
class
drop_empty_cols_action
:
public
CoinPresolveAction
{
34
private
:
35
const
int
nactions_
;
36
37
struct
action
{
38
double
clo
;
39
double
cup
;
40
double
cost
;
41
double
sol
;
42
int
jcol
;
43
};
44
const
action
*
const
actions_
;
45
46
drop_empty_cols_action
(
int
nactions,
47
const
action
*
const
actions,
48
const
CoinPresolveAction
*
next
) :
49
CoinPresolveAction
(next),
50
nactions_
(nactions),
51
actions_
(actions)
52
{}
53
54
public
:
55
const
char
*
name
()
const
{
return
(
"drop_empty_cols_action"
); }
56
57
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*,
58
int
*ecols,
59
int
necols,
60
const
CoinPresolveAction
*);
61
62
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*prob,
63
const
CoinPresolveAction
*
next
);
64
65
void
postsolve
(
CoinPostsolveMatrix
*prob)
const
;
66
67
~drop_empty_cols_action
() {
deleteAction
(
actions_
,
action
*); }
68
};
69
70
85
class
drop_empty_rows_action
:
public
CoinPresolveAction
{
86
private
:
87
struct
action
{
88
double
rlo
;
89
double
rup
;
90
int
row
;
91
int
fill_row
;
// which row was moved into position row to fill it
92
};
93
94
const
int
nactions_
;
95
const
action
*
const
actions_
;
96
97
drop_empty_rows_action
(
int
nactions,
98
const
action
*actions,
99
const
CoinPresolveAction
*
next
) :
100
CoinPresolveAction
(next),
101
nactions_
(nactions),
actions_
(actions)
102
{}
103
104
public
:
105
const
char
*
name
()
const
{
return
(
"drop_empty_rows_action"
); }
106
107
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*prob,
108
const
CoinPresolveAction
*
next
);
109
110
void
postsolve
(
CoinPostsolveMatrix
*prob)
const
;
111
112
~drop_empty_rows_action
() {
deleteAction
(
actions_
,
action
*); }
113
};
114
#endif
115
drop_empty_rows_action::action::row
int row
Definition:
CoinPresolveEmpty.hpp:90
drop_empty_cols_action::postsolve
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
drop_empty_cols_action::action::jcol
int jcol
Definition:
CoinPresolveEmpty.hpp:42
drop_empty_cols_action::presolve
static const CoinPresolveAction * presolve(CoinPresolveMatrix *, int *ecols, int necols, const CoinPresolveAction *)
drop_empty_cols_action::actions_
const action *const actions_
Definition:
CoinPresolveEmpty.hpp:44
CoinPostsolveMatrix
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
Definition:
CoinPresolveMatrix.hpp:1307
CoinPresolveMatrix
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
Definition:
CoinPresolveMatrix.hpp:773
drop_empty_cols_action::nactions_
const int nactions_
Definition:
CoinPresolveEmpty.hpp:35
drop_empty_rows_action::action::rlo
double rlo
Definition:
CoinPresolveEmpty.hpp:88
deleteAction
#define deleteAction(array, type)
Definition:
CoinPresolveMatrix.hpp:30
drop_empty_cols_action::drop_empty_cols_action
drop_empty_cols_action(int nactions, const action *const actions, const CoinPresolveAction *next)
Definition:
CoinPresolveEmpty.hpp:46
DROP_ROW
const int DROP_ROW
Definition:
CoinPresolveEmpty.hpp:13
drop_empty_rows_action::action::fill_row
int fill_row
Definition:
CoinPresolveEmpty.hpp:91
drop_empty_cols_action::action::cost
double cost
Definition:
CoinPresolveEmpty.hpp:40
drop_empty_cols_action::~drop_empty_cols_action
~drop_empty_cols_action()
Definition:
CoinPresolveEmpty.hpp:67
CoinPresolveAction
Abstract base class of all presolve routines.
Definition:
CoinPresolveMatrix.hpp:133
DROP_COL
const int DROP_COL
Definition:
CoinPresolveEmpty.hpp:14
drop_empty_cols_action
Physically removes empty columns in presolve, and reinserts empty columns in postsolve.
Definition:
CoinPresolveEmpty.hpp:33
drop_empty_rows_action::action::rup
double rup
Definition:
CoinPresolveEmpty.hpp:89
drop_empty_cols_action::action::cup
double cup
Definition:
CoinPresolveEmpty.hpp:39
drop_empty_rows_action::name
const char * name() const
A name for debug printing.
Definition:
CoinPresolveEmpty.hpp:105
drop_empty_rows_action::presolve
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
drop_empty_cols_action::action::clo
double clo
Definition:
CoinPresolveEmpty.hpp:38
drop_empty_rows_action::drop_empty_rows_action
drop_empty_rows_action(int nactions, const action *actions, const CoinPresolveAction *next)
Definition:
CoinPresolveEmpty.hpp:97
drop_empty_rows_action::nactions_
const int nactions_
Definition:
CoinPresolveEmpty.hpp:94
drop_empty_cols_action::action
Definition:
CoinPresolveEmpty.hpp:37
drop_empty_rows_action::action
Definition:
CoinPresolveEmpty.hpp:87
drop_empty_rows_action::~drop_empty_rows_action
~drop_empty_rows_action()
Definition:
CoinPresolveEmpty.hpp:112
drop_empty_rows_action::postsolve
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
drop_empty_cols_action::name
const char * name() const
A name for debug printing.
Definition:
CoinPresolveEmpty.hpp:55
drop_empty_cols_action::action::sol
double sol
Definition:
CoinPresolveEmpty.hpp:41
drop_empty_rows_action
Physically removes empty rows in presolve, and reinserts empty rows in postsolve. ...
Definition:
CoinPresolveEmpty.hpp:85
drop_empty_rows_action::actions_
const action *const actions_
Definition:
CoinPresolveEmpty.hpp:95
CoinPresolveAction::next
const CoinPresolveAction * next
The next presolve transformation.
Definition:
CoinPresolveMatrix.hpp:150
Generated on Sun Feb 21 2016 03:15:09 by
1.8.7