Clp 1.17.6

- 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
CoinPresolveSubst.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveSubst.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 CoinPresolveSubst_H
7 #define CoinPresolveSubst_H
8
13 #define SUBST_ROW 21
14
15 #include "CoinPresolveMatrix.hpp"
16
37 class subst_constraint_action : public CoinPresolveAction {
38 private:
39 subst_constraint_action();
40 subst_constraint_action(const subst_constraint_action &rhs);
41 subst_constraint_action &operator=(const subst_constraint_action &rhs);
42
43 struct action {
44 double *rlos;
45 double *rups;
46
47 double *coeffxs;
48 int *rows;
49
50 int *ninrowxs;
51 int *rowcolsxs;
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
65 subst_constraint_action(int nactions,
66 action *actions,
67 const CoinPresolveAction *next)
68 : CoinPresolveAction(next)
69 , nactions_(nactions)
70 , actions_(actions)
71 {
72 }
73
74 public:
75 const char *name() const;
76
77 static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
78 const int *implied_free,
79 const int *which,
80 int numberFree,
81 const CoinPresolveAction *next,
82 int fill_level);
83 static const CoinPresolveAction *presolveX(CoinPresolveMatrix *prob,
84 const CoinPresolveAction *next,
85 int fillLevel);
86
87 void postsolve(CoinPostsolveMatrix *prob) const;
88
89 virtual ~subst_constraint_action();
90 };
91
92 /*static*/ void implied_bounds(const double *els,
93 const double *clo, const double *cup,
94 const int *hcol,
95 CoinBigIndex krs, CoinBigIndex kre,
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 */
subst_constraint_action::actions_
const action *const actions_
Definition: CoinPresolveSubst.hpp:63
subst_constraint_action::presolveX
static const CoinPresolveAction * presolveX(CoinPresolveMatrix *prob, const CoinPresolveAction *next, int fillLevel)
subst_constraint_action::action::coeffxs
double * coeffxs
Definition: CoinPresolveSubst.hpp:47
subst_constraint_action::operator=
subst_constraint_action & operator=(const subst_constraint_action &rhs)
CoinPresolveAction
Abstract base class of all presolve routines.
Definition: CoinPresolveMatrix.hpp:163
subst_constraint_action::action::rowcolsxs
int * rowcolsxs
Definition: CoinPresolveSubst.hpp:51
subst_constraint_action
Detect and process implied free variables.
Definition: CoinPresolveSubst.hpp:37
subst_constraint_action::action::rowelsxs
double * rowelsxs
Definition: CoinPresolveSubst.hpp:52
subst_constraint_action::action::rups
double * rups
Definition: CoinPresolveSubst.hpp:45
CoinPresolveMatrix.hpp
Declarations for CoinPresolveMatrix and CoinPostsolveMatrix and their common base class CoinPrePostso...
subst_constraint_action::action::rlos
double * rlos
Definition: CoinPresolveSubst.hpp:44
subst_constraint_action::action::rowy
int rowy
Definition: CoinPresolveSubst.hpp:56
subst_constraint_action::action::ninrowxs
int * ninrowxs
Definition: CoinPresolveSubst.hpp:50
subst_constraint_action::action::col
int col
Definition: CoinPresolveSubst.hpp:55
subst_constraint_action::action::nincol
int nincol
Definition: CoinPresolveSubst.hpp:58
subst_constraint_action::presolve
static const CoinPresolveAction * presolve(CoinPresolveMatrix *prob, const int *implied_free, const int *which, int numberFree, const CoinPresolveAction *next, int fill_level)
subst_constraint_action::name
const char * name() const
A name for debug printing.
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:1552
subst_constraint_action::subst_constraint_action
subst_constraint_action(int nactions, action *actions, const CoinPresolveAction *next)
Definition: CoinPresolveSubst.hpp:65
subst_constraint_action::subst_constraint_action
subst_constraint_action()
subst_constraint_action::action::rows
int * rows
Definition: CoinPresolveSubst.hpp:48
CoinPresolveMatrix
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
Definition: CoinPresolveMatrix.hpp:905
CoinBigIndex
int CoinBigIndex
Definition: Coin_C_defines.h:136
implied_bounds
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)
subst_constraint_action::action::costsx
const double * costsx
Definition: CoinPresolveSubst.hpp:54
subst_constraint_action::postsolve
void postsolve(CoinPostsolveMatrix *prob) const
Apply the postsolve transformation for this particular presolve action.
subst_constraint_action::~subst_constraint_action
virtual ~subst_constraint_action()
subst_constraint_action::action
Definition: CoinPresolveSubst.hpp:43
subst_constraint_action::nactions_
const int nactions_
Definition: CoinPresolveSubst.hpp:61