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

- File List
- File Members

# /home/coin/SVN-release/Vol-1.2.0/CoinUtils/src/CoinPresolveTighten.hpp

Go to the documentation of this file.

    00001 /* $Id: CoinPresolveTighten.hpp 1191 2009-07-25 08:38:12Z 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