00001 /* $Id: CoinPresolveDoubleton.hpp 1498 2011-11-02 15:25:35Z mjs $ */ 00002 // Copyright (C) 2002, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 00006 #ifndef CoinPresolveDoubleton_H 00007 #define CoinPresolveDoubleton_H 00008 00009 #define DOUBLETON 5 00010 00026 class doubleton_action : public CoinPresolveAction { 00027 public: 00028 struct action { 00029 00030 double clox; 00031 double cupx; 00032 double costx; 00033 00034 double costy; 00035 00036 double rlo; 00037 00038 double coeffx; 00039 double coeffy; 00040 00041 double *colel; 00042 00043 int icolx; 00044 int icoly; 00045 int row; 00046 int ncolx; 00047 int ncoly; 00048 }; 00049 00050 const int nactions_; 00051 const action *const actions_; 00052 00053 private: 00054 doubleton_action(int nactions, 00055 const action *actions, 00056 const CoinPresolveAction *next) : 00057 CoinPresolveAction(next), 00058 nactions_(nactions), actions_(actions) 00059 {} 00060 00061 public: 00062 const char *name() const { return ("doubleton_action"); } 00063 00064 static const CoinPresolveAction *presolve(CoinPresolveMatrix *, 00065 const CoinPresolveAction *next); 00066 00067 void postsolve(CoinPostsolveMatrix *prob) const; 00068 00069 virtual ~doubleton_action(); 00070 }; 00071 #endif 00072 00073