/home/coin/SVN-release/CoinAll-1.1.0/CoinUtils/src/CoinPresolveTighten.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2002, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 
00004 #ifndef CoinPresolveTighten_H
00005 #define CoinPresolveTighten_H
00006 
00007 #include "CoinPresolveMatrix.hpp"
00008 
00009 // This action has no separate class;
00010 // instead, it decides which columns can be made fixed
00011 // and calls make_fixed_action::presolve.
00012 const CoinPresolveAction *tighten_zero_cost(CoinPresolveMatrix *prob,
00013                                          const CoinPresolveAction *next);
00014 
00015 #define DO_TIGHTEN      30
00016 
00017 class do_tighten_action : public CoinPresolveAction {
00018   do_tighten_action();
00019   do_tighten_action(const do_tighten_action& rhs);
00020   do_tighten_action& operator=(const do_tighten_action& rhs);
00021 
00022   struct action {
00023     int *rows;
00024     double *lbound;
00025     double *ubound;
00026     int col;
00027     int nrows;
00028     int direction;      // just for assertions
00029   };
00030 
00031   const int nactions_;
00032   const action *const actions_;
00033 
00034   do_tighten_action(int nactions,
00035                       const action *actions,
00036                       const CoinPresolveAction *next) :
00037     CoinPresolveAction(next),
00038     nactions_(nactions), actions_(actions) {}
00039 
00040  public:
00041   const char *name() const;
00042 
00043   static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
00044                                          const CoinPresolveAction *next);
00045 
00046   void postsolve(CoinPostsolveMatrix *prob) const;
00047 
00048   ~do_tighten_action();
00049 
00050 };
00051 #endif
00052 
00053 

Generated on Sun Nov 14 14:06:32 2010 for Coin-All by  doxygen 1.4.7