CoinUtils  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
CoinPresolveForcing.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 CoinPresolveForcing_H
00007 #define CoinPresolveForcing_H
00008 
00009 #include "CoinPresolveMatrix.hpp"
00010 
00015 #define IMPLIED_BOUND   7
00016 
00027 class forcing_constraint_action : public CoinPresolveAction {
00028   forcing_constraint_action();
00029   forcing_constraint_action(const forcing_constraint_action& rhs);
00030   forcing_constraint_action& operator=(const forcing_constraint_action& rhs);
00031 public:
00032   struct action {
00033     const int *rowcols;
00034     const double *bounds;
00035     int row;
00036     int nlo;
00037     int nup;
00038   };
00039 private:
00040   const int nactions_;
00041   // actions_ is owned by the class and must be deleted at destruction
00042   const action *const actions_;
00043 
00044 public:
00045   forcing_constraint_action(int nactions,
00046                       const action *actions,
00047                       const CoinPresolveAction *next) :
00048     CoinPresolveAction(next),
00049     nactions_(nactions), actions_(actions) {}
00050 
00051   const char *name() const;
00052 
00053   static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob,
00054                                          const CoinPresolveAction *next);
00055 
00056   void postsolve(CoinPostsolveMatrix *prob) const;
00057 
00058   virtual ~forcing_constraint_action();
00059 };
00060 
00061 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines