00001
00002
00003
00004 #ifndef CoinPresolveDoubleton_H
00005 #define CoinPresolveDoubleton_H
00006
00007 #define DOUBLETON 5
00008
00009 class doubleton_action : public CoinPresolveAction {
00010 public:
00011 struct action {
00012
00013 double clox;
00014 double cupx;
00015 double costx;
00016
00017 double costy;
00018
00019 double rlo;
00020
00021 double coeffx;
00022 double coeffy;
00023
00024 double *colel;
00025
00026 int icolx;
00027 int icoly;
00028 int row;
00029 int ncolx;
00030 int ncoly;
00031 };
00032
00033 const int nactions_;
00034 const action *const actions_;
00035
00036 private:
00037 doubleton_action(int nactions,
00038 const action *actions,
00039 const CoinPresolveAction *next) :
00040 CoinPresolveAction(next),
00041 nactions_(nactions), actions_(actions)
00042 {}
00043
00044 public:
00045 const char *name() const { return ("doubleton_action"); }
00046
00047 static const CoinPresolveAction *presolve(CoinPresolveMatrix *,
00048 const CoinPresolveAction *next);
00049
00050 void postsolve(CoinPostsolveMatrix *prob) const;
00051
00052 ~doubleton_action();
00053 };
00054 #endif
00055
00056