00001 // Copyright (C) 2000, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef _BCP_WARMSTART_H 00004 #define _BCP_WARMSTART_H 00005 00006 // This file is fully docified. 00007 00008 #include "BCP_error.hpp" 00009 #include "BCP_enum.hpp" 00010 #include "BCP_vector.hpp" 00011 00012 //############################################################################# 00013 00014 class CoinWarmStart; 00015 00016 //############################################################################# 00017 00024 class BCP_warmstart { 00025 public: 00027 virtual ~BCP_warmstart() {} 00028 00030 virtual CoinWarmStart* convert_to_CoinWarmStart() const = 0; 00031 00033 virtual BCP_storage_t storage() const = 0; 00034 00039 virtual void update(const BCP_warmstart* const change) = 0; 00040 00055 virtual BCP_warmstart* as_change(const BCP_warmstart* const old_ws, 00056 const BCP_vec<int>& del_vars, 00057 const BCP_vec<int>& del_cuts, 00058 const double petol, 00059 const double detol) const = 0; 00060 00062 virtual BCP_warmstart* clone() const = 0; 00063 00068 virtual BCP_warmstart* empty_wrt_this() const = 0; 00069 00072 virtual int storage_size() const = 0; 00073 }; 00074 00075 #endif