00001 /* $Id: CoinPresolveDoubleton.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 CoinPresolveDoubleton_H 00006 #define CoinPresolveDoubleton_H 00007 00008 #define DOUBLETON 5 00009 00025 class doubleton_action : public CoinPresolveAction { 00026 public: 00027 struct action { 00028 00029 double clox; 00030 double cupx; 00031 double costx; 00032 00033 double costy; 00034 00035 double rlo; 00036 00037 double coeffx; 00038 double coeffy; 00039 00040 double *colel; 00041 00042 int icolx; 00043 int icoly; 00044 int row; 00045 int ncolx; 00046 int ncoly; 00047 }; 00048 00049 const int nactions_; 00050 const action *const actions_; 00051 00052 private: 00053 doubleton_action(int nactions, 00054 const action *actions, 00055 const CoinPresolveAction *next) : 00056 CoinPresolveAction(next), 00057 nactions_(nactions), actions_(actions) 00058 {} 00059 00060 public: 00061 const char *name() const { return ("doubleton_action"); } 00062 00063 static const CoinPresolveAction *presolve(CoinPresolveMatrix *, 00064 const CoinPresolveAction *next); 00065 00066 void postsolve(CoinPostsolveMatrix *prob) const; 00067 00068 ~doubleton_action(); 00069 }; 00070 #endif 00071 00072