CoinUtils  2.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CoinPresolveFixed.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveFixed.hpp 1510 2011-12-08 23:56:01Z lou $ */
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 CoinPresolveFixed_H
7 #define CoinPresolveFixed_H
8 #define FIXED_VARIABLE 1
9 
26  public:
30  struct action {
31  int col;
32  int start;
33  double sol;
34  };
36  int *colrows_;
38  double *colels_;
40  int nactions_;
43 
44  private:
46  remove_fixed_action(int nactions,
47  action *actions,
48  double * colels,
49  int * colrows,
50  const CoinPresolveAction *next);
51 
52  public:
54  const char *name() const;
55 
64  int *fcols,
65  int nfcols,
66  const CoinPresolveAction *next);
67 
68  void postsolve(CoinPostsolveMatrix *prob) const;
69 
71  virtual ~remove_fixed_action();
72 };
73 
74 
83  const CoinPresolveAction *next);
84 
85 
96 
98  struct action {
99  double bound;
100  int col ;
101  };
102 
106  const action *actions_;
107 
112  const bool fix_to_lower_;
113 
118 
120  make_fixed_action(int nactions, const action *actions, bool fix_to_lower,
121  const remove_fixed_action *faction,
122  const CoinPresolveAction *next)
123  : CoinPresolveAction(next),
124  nactions_(nactions), actions_(actions),
125  fix_to_lower_(fix_to_lower),
126  faction_(faction)
127  {}
128 
129  public:
131  const char *name() const;
132 
140  static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
141  int *fcols,
142  int nfcols,
143  bool fix_to_lower,
144  const CoinPresolveAction *next);
145 
150  void postsolve(CoinPostsolveMatrix *prob) const;
151 
153  virtual ~make_fixed_action() {
155  delete faction_;
156  }
157 };
158 
167  const CoinPresolveAction *next) ;
168 
180 void transferCosts(CoinPresolveMatrix * prob);
181 #endif