CoinUtils  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
CoinPresolveDoubleton.hpp
Go to the documentation of this file.
00001 /* $Id$ */
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines