CoinPresolveSubst.hpp
Go to the documentation of this file.
1 /* $Id: CoinPresolveSubst.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 CoinPresolveSubst_H
6 #define CoinPresolveSubst_H
7 #define SUBST_ROW 21
8 
9 #include "CoinPresolveMatrix.hpp"
10 
12 private:
16 
17  struct action {
18  double *rlos;
19  double *rups;
20 
21  double *coeffxs;
22  int *rows;
23 
24  int *ninrowxs;
25  /*const*/ int *rowcolsxs;
26  /*const*/ double *rowelsxs;
27 
28  const double *costsx;
29  int col;
30  int rowy;
31 
32  int nincol;
33  };
34 
35  const int nactions_;
36  // actions_ is owned by the class and must be deleted at destruction
37  const action *const actions_;
38 
40  action *actions,
41  const CoinPresolveAction *next) :
42  CoinPresolveAction(next),
43  nactions_(nactions), actions_(actions) {}
44 
45  public:
46  const char *name() const;
47 
48  static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob,
49  const int *implied_free,
50  const int * which,
51  int numberFree,
52  const CoinPresolveAction *next,
53  int & fill_level);
54  static const CoinPresolveAction *presolveX(CoinPresolveMatrix * prob,
55  const CoinPresolveAction *next,
56  int fillLevel);
57 
58  void postsolve(CoinPostsolveMatrix *prob) const;
59 
61 };
62 
63 
64 
65 
66 
67 /*static*/ void implied_bounds(const double *els,
68  const double *clo, const double *cup,
69  const int *hcol,
70  CoinBigIndex krs, CoinBigIndex kre,
71  double *maxupp, double *maxdownp,
72  int jcol,
73  double rlo, double rup,
74  double *iclb, double *icub);
75 #endif