CoinUtils 2.11.4
CoinPresolveSubst.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 CoinPresolveSubst_H
7#define CoinPresolveSubst_H
8
13#define SUBST_ROW 21
14
16
38private:
42
43 struct action {
44 double *rlos;
45 double *rups;
46
47 double *coeffxs;
48 int *rows;
49
52 double *rowelsxs;
53
54 const double *costsx;
55 int col;
56 int rowy;
57
58 int nincol;
59 };
60
61 const int nactions_;
62 // actions_ is owned by the class and must be deleted at destruction
63 const action *const actions_;
64
66 action *actions,
69 , nactions_(nactions)
70 , actions_(actions)
71 {
72 }
73
74public:
75 const char *name() const;
76
78 const int *implied_free,
79 const int *which,
80 int numberFree,
82 int fill_level);
85 int fillLevel);
86
87 void postsolve(CoinPostsolveMatrix *prob) const;
88
90};
91
92/*static*/ void implied_bounds(const double *els,
93 const double *clo, const double *cup,
94 const int *hcol,
96 double *maxupp, double *maxdownp,
97 int jcol,
98 double rlo, double rup,
99 double *iclb, double *icub);
100#endif
101
102/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
103*/
Declarations for CoinPresolveMatrix and CoinPostsolveMatrix and their common base class CoinPrePostso...
void implied_bounds(const double *els, const double *clo, const double *cup, const int *hcol, CoinBigIndex krs, CoinBigIndex kre, double *maxupp, double *maxdownp, int jcol, double rlo, double rup, double *iclb, double *icub)
int CoinBigIndex
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...
Detect and process implied free variables.
subst_constraint_action(int nactions, action *actions, const CoinPresolveAction *next)
const action *const actions_
subst_constraint_action(const subst_constraint_action &rhs)
static const CoinPresolveAction * presolveX(CoinPresolveMatrix *prob, const CoinPresolveAction *next, int fillLevel)
const char * name() const
A name for debug printing.
virtual ~subst_constraint_action()
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const int *implied_free, const int *which, int numberFree, const CoinPresolveAction *next, int fill_level)
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
subst_constraint_action & operator=(const subst_constraint_action &rhs)