/home/coin/SVN-release/CoinAll-1.1.0/Bcp/src/include/BCP_warmstart_dual.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef _BCP_WARMSTART_DUAL_H
00004 #define _BCP_WARMSTART_DUAL_H
00005 
00006 #include "BCP_warmstart.hpp"
00007 #include "BCP_vector_change.hpp"
00008 
00009 /* NOTE:
00010    Doxygen gracefully generates description for all inherited methods if they
00011    are not documented here. So the virtual methods are documented ONLY if they
00012    have something additional to say.
00013 */
00014 
00015 //#############################################################################
00016 
00020 class BCP_warmstart_dual : public BCP_warmstart {
00021 private:
00023   BCP_warmstart_dual& operator=(const BCP_warmstart_dual&);
00024 
00028   BCP_warmstart_dual() : _dual(BCP_Storage_WrtParent) {}
00029 
00030 private:
00032   BCP_vec_change<double> _dual;
00035 public:
00039     BCP_warmstart_dual(BCP_buffer& buf) : _dual(buf) {}
00042     BCP_warmstart_dual(const double* first, const double* last) :
00043        _dual(first, last) {}
00045     BCP_warmstart_dual(const BCP_warmstart_dual& ws) : _dual(ws._dual) {}
00046 
00047     virtual ~BCP_warmstart_dual() {}
00050   // Inherited methods --------------------------------------------------------
00051 
00054   virtual CoinWarmStart* convert_to_CoinWarmStart() const;
00055 
00056   virtual BCP_storage_t storage() const { return _dual.storage(); }
00057 
00058   virtual BCP_warmstart* clone() const {
00059     return new BCP_warmstart_dual(*this);
00060   }
00061 
00062   virtual BCP_warmstart* empty_wrt_this() const {
00063     // The default constructor creates an empty WrtParent warmstart info
00064     // (i.e., no change wrt the parent)
00065     return new BCP_warmstart_dual();
00066   }
00067 
00068   virtual int storage_size() const {
00069     return _dual.storage_size();
00070   }
00071 
00072   virtual void update(const BCP_warmstart* const change);
00073 
00074   virtual BCP_warmstart* as_change(const BCP_warmstart* const old_ws,
00075                                    const BCP_vec<int>& del_vars,
00076                                    const BCP_vec<int>& del_cuts,
00077                                    const double petol,
00078                                    const double detol) const; 
00079 
00080   // Not inherited methods ----------------------------------------------------
00081 
00083   void pack(BCP_buffer& buf) const {
00084     _dual.pack(buf);
00085   }
00086 };
00087 
00088 #endif

Generated on Sun Nov 14 14:06:30 2010 for Coin-All by  doxygen 1.4.7