• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/coinutils-2.6.4/CoinUtils/src/CoinPresolveTighten.hpp

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

Generated on Fri Oct 15 2010 18:21:02 by  doxygen 1.7.1