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