CoinUtils
2.11.2
src
CoinPresolveTighten.hpp
Go to the documentation of this file.
1
/* $Id: CoinPresolveTighten.hpp 2083 2019-01-06 19:38:09Z unxusr $ */
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 CoinPresolveTighten_H
7
#define CoinPresolveTighten_H
8
9
#include "
CoinPresolveMatrix.hpp
"
10
11
// This action has no separate class;
12
// instead, it decides which columns can be made fixed
13
// and calls make_fixed_action::presolve.
14
const
CoinPresolveAction
*
tighten_zero_cost
(
CoinPresolveMatrix
*prob,
15
const
CoinPresolveAction
*next);
16
17
#define DO_TIGHTEN 30
18
19
class
do_tighten_action
:
public
CoinPresolveAction
{
20
do_tighten_action
();
21
do_tighten_action
(
const
do_tighten_action
&rhs);
22
do_tighten_action
&operator=(
const
do_tighten_action
&rhs);
23
24
struct
action {
25
int
*rows;
26
double
*lbound;
27
double
*ubound;
28
int
col;
29
int
nrows;
30
int
direction;
// just for assertions
31
};
32
33
const
int
nactions_;
34
const
action *
const
actions_;
35
36
do_tighten_action
(
int
nactions,
37
const
action *actions,
38
const
CoinPresolveAction
*
next
)
39
:
CoinPresolveAction
(
next
)
40
, nactions_(nactions)
41
, actions_(actions)
42
{
43
}
44
45
public
:
46
const
char
*
name
()
const
;
47
48
static
const
CoinPresolveAction
*
presolve
(
CoinPresolveMatrix
*prob,
49
const
CoinPresolveAction
*
next
);
50
51
void
postsolve
(
CoinPostsolveMatrix
*prob)
const
;
52
53
virtual
~do_tighten_action
();
54
};
55
#endif
56
57
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
58
*/
do_tighten_action::postsolve
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
CoinPresolveAction
Abstract base class of all presolve routines.
Definition:
CoinPresolveMatrix.hpp:163
CoinPresolveMatrix.hpp
Declarations for CoinPresolveMatrix and CoinPostsolveMatrix and their common base class CoinPrePostso...
tighten_zero_cost
const CoinPresolveAction * tighten_zero_cost(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
do_tighten_action::~do_tighten_action
virtual ~do_tighten_action()
CoinPresolveAction::CoinPresolveAction
CoinPresolveAction(const CoinPresolveAction *next)
Construct a postsolve object and add it to the transformation list.
Definition:
CoinPresolveMatrix.hpp:187
CoinPresolveAction::next
const CoinPresolveAction * next
The next presolve transformation.
Definition:
CoinPresolveMatrix.hpp:180
CoinPostsolveMatrix
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
Definition:
CoinPresolveMatrix.hpp:1554
CoinPresolveMatrix
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
Definition:
CoinPresolveMatrix.hpp:907
do_tighten_action::name
const char * name() const
A name for debug printing.
do_tighten_action::presolve
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const CoinPresolveAction *next)
do_tighten_action
Definition:
CoinPresolveTighten.hpp:19
Generated by
1.8.14