00001 /* $Id: CoinPresolveImpliedFree.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 CoinPresolveImpliedFree_H 00006 #define CoinPresolveInpliedFree_H 00007 00012 #define IMPLIED_FREE 9 00013 00028 class implied_free_action : public CoinPresolveAction { 00029 struct action { 00030 int row, col; 00031 double clo, cup; 00032 double rlo, rup; 00033 const double *rowels; 00034 const double *costs; 00035 int ninrow; 00036 }; 00037 00038 const int nactions_; 00039 const action *const actions_; 00040 00041 implied_free_action(int nactions, 00042 const action *actions, 00043 const CoinPresolveAction *next) : 00044 CoinPresolveAction(next), 00045 nactions_(nactions), actions_(actions) {} 00046 00047 public: 00048 const char *name() const; 00049 00050 static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob, 00051 const CoinPresolveAction *next, 00052 int & fillLevel); 00053 00054 void postsolve(CoinPostsolveMatrix *prob) const; 00055 00056 ~implied_free_action(); 00057 }; 00058 00059 #endif