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

- File List
- File Members

# /home/coin/SVN-release/Alps-1.2.1/CoinUtils/src/CoinPresolveSubst.hpp

Go to the documentation of this file.

    00001 /* $Id: CoinPresolveSubst.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 CoinPresolveSubst_H
    00006 #define CoinPresolveSubst_H
    00007 #define SUBST_ROW       21
    00008
    00009 #include "CoinPresolveMatrix.hpp"
    00010
    00011 class subst_constraint_action : public CoinPresolveAction {
    00012 private:
    00013   subst_constraint_action();
    00014   subst_constraint_action(const subst_constraint_action& rhs);
    00015   subst_constraint_action& operator=(const subst_constraint_action& rhs);
    00016
    00017   struct action {
    00018     double *rlos;
    00019     double *rups;
    00020
    00021     double *coeffxs;
    00022     int *rows;
    00023
    00024     int *ninrowxs;
    00025     /*const*/ int *rowcolsxs;
    00026     /*const*/ double *rowelsxs;
    00027
    00028     const double *costsx;
    00029     int col;
    00030     int rowy;
    00031
    00032     int nincol;
    00033   };
    00034
    00035   const int nactions_;
    00036   // actions_ is owned by the class and must be deleted at destruction
    00037   const action *const actions_;
    00038
    00039   subst_constraint_action(int nactions,
    00040                           action *actions,
    00041                           const CoinPresolveAction *next) :
    00042     CoinPresolveAction(next),
    00043     nactions_(nactions), actions_(actions) {}
    00044
    00045  public:
    00046   const char *name() const;
    00047
    00048   static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob,
    00049                                             const int *implied_free,
    00050                                             const int * which,
    00051                                             int numberFree,
    00052                                             const CoinPresolveAction *next,
    00053                                             int & fill_level);
    00054   static const CoinPresolveAction *presolveX(CoinPresolveMatrix * prob,
    00055                                   const CoinPresolveAction *next,
    00056                                   int fillLevel);
    00057
    00058   void postsolve(CoinPostsolveMatrix *prob) const;
    00059
    00060   ~subst_constraint_action();
    00061 };
    00062
    00063
    00064
    00065
    00066
    00067 /*static*/ void implied_bounds(const double *els,
    00068                            const double *clo, const double *cup,
    00069                            const int *hcol,
    00070                            CoinBigIndex krs, CoinBigIndex kre,
    00071                            double *maxupp, double *maxdownp,
    00072                            int jcol,
    00073                            double rlo, double rup,
    00074                            double *iclb, double *icub);
    00075 #endif