00001
00002
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