/home/coin/CoinUtils-1.0.2/CoinUtils/src/CoinPresolveSubst.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 CoinPresolveSubst_H
00005 #define CoinPresolveSubst_H
00006 #define SUBST_ROW       21
00007 
00008 
00009 class subst_constraint_action : public CoinPresolveAction {
00010 public:
00011   struct action {
00012     double *rlos;
00013     double *rups;
00014 
00015     double *coeffxs;
00016     int *rows;
00017     
00018     int *ninrowxs;
00019     /*const*/ int *rowcolsxs;
00020     /*const*/ double *rowelsxs;
00021 
00022     const double *costsx;
00023     int col;
00024     int rowy;
00025 
00026     int nincol;
00027   };
00028 
00029   const int nactions_;
00030   const action *const actions_;
00031 
00032   subst_constraint_action(int nactions,
00033                           action *actions,
00034                       const CoinPresolveAction *next) :
00035     CoinPresolveAction(next),
00036     nactions_(nactions), actions_(actions) {};
00037 
00038  public:
00039   const char *name() const;
00040 
00041   static const CoinPresolveAction *presolve(CoinPresolveMatrix * prob,
00042                                          int *implied_free,
00043                                          const CoinPresolveAction *next,
00044                                         int & fill_level);
00045   static const CoinPresolveAction *presolveX(CoinPresolveMatrix * prob,
00046                                   const CoinPresolveAction *next,
00047                                   int fillLevel);
00048 
00049   void postsolve(CoinPostsolveMatrix *prob) const;
00050 
00051   ~subst_constraint_action();
00052 };
00053 
00054 
00055 
00056 
00057 
00058 /*static*/ void implied_bounds(const double *els,
00059                            const double *clo, const double *cup,
00060                            const int *hcol,
00061                            CoinBigIndex krs, CoinBigIndex kre,
00062                            double *maxupp, double *maxdownp,
00063                            int jcol,
00064                            double rlo, double rup,
00065                            double *iclb, double *icub);
00066 #endif

Generated on Wed Aug 22 05:55:47 2007 by  doxygen 1.4.7