00001 /* $Id: CoinPresolveUseless.hpp 1215 2009-11-05 11:03:04Z forrest $ */ 00002 // Copyright (C) 2002, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 00005 #ifndef CoinPresolveUseless_H 00006 #define CoinPresolveUseless_H 00007 #define USELESS 20 00008 00009 class useless_constraint_action : public CoinPresolveAction { 00010 struct action { 00011 double rlo; 00012 double rup; 00013 const int *rowcols; 00014 const double *rowels; 00015 int row; 00016 int ninrow; 00017 }; 00018 00019 const int nactions_; 00020 const action *const actions_; 00021 00022 useless_constraint_action(int nactions, 00023 const action *actions, 00024 const CoinPresolveAction *next); 00025 00026 public: 00027 const char *name() const; 00028 00029 // These rows are asserted to be useless, 00030 // that is, given a solution the row activity 00031 // must be in range. 00032 static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob, 00033 const int *useless_rows, 00034 int nuseless_rows, 00035 const CoinPresolveAction *next); 00036 00037 void postsolve(CoinPostsolveMatrix *prob) const; 00038 00039 ~useless_constraint_action(); 00040 00041 }; 00042 00043 00044 #endif