- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Osi-0.98.1/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