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

- File List
- File Members

# /home/coin/svn-release/Alps-1.4.5/CoinUtils/src/CoinPresolveSubst.hpp

Go to the documentation of this file.

    00001 /* $Id: CoinPresolveSubst.hpp 1562 2012-11-24 00:36:15Z 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 CoinPresolveSubst_H
    00007 #define CoinPresolveSubst_H
    00008
    00013 #define SUBST_ROW       21
    00014
    00015 #include "CoinPresolveMatrix.hpp"
    00016
    00037 class subst_constraint_action : public CoinPresolveAction {
    00038 private:
    00039   subst_constraint_action();
    00040   subst_constraint_action(const subst_constraint_action& rhs);
    00041   subst_constraint_action& operator=(const subst_constraint_action& rhs);
    00042
    00043   struct action {
    00044     double *rlos;
    00045     double *rups;
    00046
    00047     double *coeffxs;
    00048     int *rows;
    00049
    00050     int *ninrowxs;
    00051     int *rowcolsxs;
    00052     double *rowelsxs;
    00053
    00054     const double *costsx;
    00055     int col;
    00056     int rowy;
    00057
    00058     int nincol;
    00059   };
    00060
    00061   const int nactions_;
    00062   // actions_ is owned by the class and must be deleted at destruction
    00063   const action *const actions_;
    00064
    00065   subst_constraint_action(int nactions,
    00066                           action *actions,
    00067                           const CoinPresolveAction *next) :
    00068     CoinPresolveAction(next),
    00069     nactions_(nactions), actions_(actions) {}
    00070
    00071  public:
    00072   const char *name() const;
    00073
    00074   static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob,
    00075                                             const int *implied_free,
    00076                                             const int * which,
    00077                                             int numberFree,
    00078                                             const CoinPresolveAction *next,
    00079                                             int fill_level);
    00080   static const CoinPresolveAction *presolveX(CoinPresolveMatrix * prob,
    00081                                   const CoinPresolveAction *next,
    00082                                   int fillLevel);
    00083
    00084   void postsolve(CoinPostsolveMatrix *prob) const;
    00085
    00086   virtual ~subst_constraint_action();
    00087 };
    00088
    00089
    00090
    00091
    00092
    00093 /*static*/ void implied_bounds(const double *els,
    00094                            const double *clo, const double *cup,
    00095                            const int *hcol,
    00096                            CoinBigIndex krs, CoinBigIndex kre,
    00097                            double *maxupp, double *maxdownp,
    00098                            int jcol,
    00099                            double rlo, double rup,
    00100                            double *iclb, double *icub);
    00101 #endif