00001 // Copyright (C) 2002, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 00004 #ifndef CoinPresolveDoubleton_H 00005 #define CoinPresolveDoubleton_H 00006 00007 #define DOUBLETON 5 00008 00024 class doubleton_action : public CoinPresolveAction { 00025 public: 00026 struct action { 00027 00028 double clox; 00029 double cupx; 00030 double costx; 00031 00032 double costy; 00033 00034 double rlo; 00035 00036 double coeffx; 00037 double coeffy; 00038 00039 double *colel; 00040 00041 int icolx; 00042 int icoly; 00043 int row; 00044 int ncolx; 00045 int ncoly; 00046 }; 00047 00048 const int nactions_; 00049 const action *const actions_; 00050 00051 private: 00052 doubleton_action(int nactions, 00053 const action *actions, 00054 const CoinPresolveAction *next) : 00055 CoinPresolveAction(next), 00056 nactions_(nactions), actions_(actions) 00057 {} 00058 00059 public: 00060 const char *name() const { return ("doubleton_action"); } 00061 00062 static const CoinPresolveAction *presolve(CoinPresolveMatrix *, 00063 const CoinPresolveAction *next); 00064 00065 void postsolve(CoinPostsolveMatrix *prob) const; 00066 00067 ~doubleton_action(); 00068 }; 00069 #endif 00070 00071