00001 /* $Id: CoinPresolveTripleton.hpp 1215 2009-11-05 11:03:04Z forrest $ */ 00002 // Copyright (C) 2003, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 00005 #ifndef CoinPresolveTripleton_H 00006 #define CoinPresolveTripleton_H 00007 #define TRIPLETON 11 00008 00013 class tripleton_action : public CoinPresolveAction { 00014 public: 00015 struct action { 00016 int icolx; 00017 int icolz; 00018 int row; 00019 00020 int icoly; 00021 double cloy; 00022 double cupy; 00023 double costy; 00024 double clox; 00025 double cupx; 00026 double costx; 00027 00028 double rlo; 00029 double rup; 00030 00031 double coeffx; 00032 double coeffy; 00033 double coeffz; 00034 00035 double *colel; 00036 00037 int ncolx; 00038 int ncoly; 00039 }; 00040 00041 const int nactions_; 00042 const action *const actions_; 00043 00044 private: 00045 tripleton_action(int nactions, 00046 const action *actions, 00047 const CoinPresolveAction *next) : 00048 CoinPresolveAction(next), 00049 nactions_(nactions), actions_(actions) 00050 {} 00051 00052 public: 00053 const char *name() const { return ("tripleton_action"); } 00054 00055 static const CoinPresolveAction *presolve(CoinPresolveMatrix *, 00056 const CoinPresolveAction *next); 00057 00058 void postsolve(CoinPostsolveMatrix *prob) const; 00059 00060 ~tripleton_action(); 00061 }; 00062 #endif 00063 00064