• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/coinutils-2.6.4/CoinUtils/src/CoinPresolveSubst.hpp

Go to the documentation of this file.
00001 /* $Id: CoinPresolveSubst.hpp 1215 2009-11-05 11:03:04Z 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

Generated on Fri Oct 15 2010 18:21:02 by  doxygen 1.7.1