00001 // Copyright (C) 2002, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 00004 #ifndef CoinPresolveImpliedFree_H 00005 #define CoinPresolveInpliedFree_H 00006 00011 #define IMPLIED_FREE 9 00012 00027 class implied_free_action : public CoinPresolveAction { 00028 struct action { 00029 int row, col; 00030 double clo, cup; 00031 double rlo, rup; 00032 const double *rowels; 00033 const double *costs; 00034 int ninrow; 00035 }; 00036 00037 const int nactions_; 00038 const action *const actions_; 00039 00040 implied_free_action(int nactions, 00041 const action *actions, 00042 const CoinPresolveAction *next) : 00043 CoinPresolveAction(next), 00044 nactions_(nactions), actions_(actions) {} 00045 00046 public: 00047 const char *name() const; 00048 00049 static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob, 00050 const CoinPresolveAction *next, 00051 int & fillLevel); 00052 00053 void postsolve(CoinPostsolveMatrix *prob) const; 00054 00055 ~implied_free_action(); 00056 }; 00057 00058 #endif