00001
00002
00003
00004 #ifndef CoinPresolveUseless_H
00005 #define CoinPresolveUseless_H
00006 #define USELESS 20
00007
00008 class useless_constraint_action : public CoinPresolveAction {
00009 struct action {
00010 double rlo;
00011 double rup;
00012 const int *rowcols;
00013 const double *rowels;
00014 int row;
00015 int ninrow;
00016 };
00017
00018 const int nactions_;
00019 const action *const actions_;
00020
00021 useless_constraint_action(int nactions,
00022 const action *actions,
00023 const CoinPresolveAction *next) :
00024 CoinPresolveAction(next),
00025 nactions_(nactions), actions_(actions) {};
00026
00027 public:
00028 const char *name() const;
00029
00030
00031
00032
00033 static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob,
00034 const int *useless_rows,
00035 int nuseless_rows,
00036 const CoinPresolveAction *next);
00037
00038 void postsolve(CoinPostsolveMatrix *prob) const;
00039 };
00040
00041
00042 #endif