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

- File List
- File Members

# /home/coin/SVN-release/Alps-1.3.0/CoinUtils/src/CoinPresolveTighten.hpp

Go to the documentation of this file.

    00001 /* $Id: CoinPresolveTighten.hpp 1372 2011-01-03 23:31:00Z lou $ */
    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 CoinPresolveTighten_H
    00007 #define CoinPresolveTighten_H
    00008
    00009 #include "CoinPresolveMatrix.hpp"
    00010
    00011 // This action has no separate class;
    00012 // instead, it decides which columns can be made fixed
    00013 // and calls make_fixed_action::presolve.
    00014 const CoinPresolveAction *tighten_zero_cost(CoinPresolveMatrix *prob,
    00015                                          const CoinPresolveAction *next);
    00016
    00017 #define DO_TIGHTEN      30
    00018
    00019 class do_tighten_action : public CoinPresolveAction {
    00020   do_tighten_action();
    00021   do_tighten_action(const do_tighten_action& rhs);
    00022   do_tighten_action& operator=(const do_tighten_action& rhs);
    00023
    00024   struct action {
    00025     int *rows;
    00026     double *lbound;
    00027     double *ubound;
    00028     int col;
    00029     int nrows;
    00030     int direction;      // just for assertions
    00031   };
    00032
    00033   const int nactions_;
    00034   const action *const actions_;
    00035
    00036   do_tighten_action(int nactions,
    00037                       const action *actions,
    00038                       const CoinPresolveAction *next) :
    00039     CoinPresolveAction(next),
    00040     nactions_(nactions), actions_(actions) {}
    00041
    00042  public:
    00043   const char *name() const;
    00044
    00045   static const CoinPresolveAction *presolve(CoinPresolveMatrix *prob,
    00046                                          const CoinPresolveAction *next);
    00047
    00048   void postsolve(CoinPostsolveMatrix *prob) const;
    00049
    00050   ~do_tighten_action();
    00051
    00052 };
    00053 #endif
    00054
    00055