Bcp  1.4.4
BCP_warmstart_dual.hpp
Go to the documentation of this file.
1 // Copyright (C) 2000, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 #ifndef _BCP_WARMSTART_DUAL_H
4 #define _BCP_WARMSTART_DUAL_H
5 
6 #include "BCP_warmstart.hpp"
7 #include "BCP_vector_change.hpp"
8 
9 /* NOTE:
10  Doxygen gracefully generates description for all inherited methods if they
11  are not documented here. So the virtual methods are documented ONLY if they
12  have something additional to say.
13 */
14 
15 //#############################################################################
16 
21 private:
23  BCP_warmstart_dual& operator=(const BCP_warmstart_dual&);
24 
29 
30 private:
35 public:
39  BCP_warmstart_dual(BCP_buffer& buf) : _dual(buf) {}
42  BCP_warmstart_dual(const double* first, const double* last) :
43  _dual(first, last) {}
45  BCP_warmstart_dual(const BCP_warmstart_dual& ws) : _dual(ws._dual) {}
46 
47  virtual ~BCP_warmstart_dual() {}
50  // Inherited methods --------------------------------------------------------
51 
54  virtual CoinWarmStart* convert_to_CoinWarmStart() const;
55 
56  virtual BCP_storage_t storage() const { return _dual.storage(); }
57 
58  virtual BCP_warmstart* clone() const {
59  return new BCP_warmstart_dual(*this);
60  }
61 
62  virtual BCP_warmstart* empty_wrt_this() const {
63  // The default constructor creates an empty WrtParent warmstart info
64  // (i.e., no change wrt the parent)
65  return new BCP_warmstart_dual();
66  }
67 
68  virtual int storage_size() const {
69  return _dual.storage_size();
70  }
71 
72  virtual void update(const BCP_warmstart* const change);
73 
74  virtual BCP_warmstart* as_change(const BCP_warmstart* const old_ws,
75  const BCP_vec<int>& del_vars,
76  const BCP_vec<int>& del_cuts,
77  const double petol,
78  const double detol) const;
79 
80  // Not inherited methods ----------------------------------------------------
81 
83  void pack(BCP_buffer& buf) const {
84  _dual.pack(buf);
85  }
86 };
87 
88 #endif
BCP_warmstart_dual::BCP_warmstart_dual
BCP_warmstart_dual(BCP_buffer &buf)
Create the object by unpacking it from a buffer.
Definition: BCP_warmstart_dual.hpp:39
BCP_Storage_WrtParent
@ BCP_Storage_WrtParent
The data stored is with respect to the same kind of data in the parent of the search tree node.
Definition: BCP_enum.hpp:91
BCP_warmstart.hpp
BCP_warmstart_dual::clone
virtual BCP_warmstart * clone() const
Make a replica of the current warmstart information.
Definition: BCP_warmstart_dual.hpp:58
BCP_vec< int >
BCP_warmstart_dual::storage_size
virtual int storage_size() const
Return how much memory it'll take to pack this warmstart info.
Definition: BCP_warmstart_dual.hpp:68
BCP_vec_change::storage_size
int storage_size() const
Return how much memory it'll take to pack this info.
Definition: BCP_vector_change.hpp:161
BCP_warmstart_dual::as_change
virtual BCP_warmstart * as_change(const BCP_warmstart *const old_ws, const BCP_vec< int > &del_vars, const BCP_vec< int > &del_cuts, const double petol, const double detol) const
Return a pointer to a warmstart info describing the currently stored data as a change with respect to...
BCP_vec_change< double >
BCP_vector_change.hpp
BCP_warmstart_dual::convert_to_CoinWarmStart
virtual CoinWarmStart * convert_to_CoinWarmStart() const
Return an CoinWarmStart object that can be fed to the LP engine.
BCP_vec_change::pack
void pack(BCP_buffer &buf) const
Pack the data into a buffer.
Definition: BCP_vector_change.hpp:208
BCP_warmstart_dual::storage
virtual BCP_storage_t storage() const
Return how the warmstarting info is stored.
Definition: BCP_warmstart_dual.hpp:56
BCP_warmstart_dual::BCP_warmstart_dual
BCP_warmstart_dual(const BCP_warmstart_dual &ws)
Copy constructor.
Definition: BCP_warmstart_dual.hpp:45
BCP_warmstart_dual::empty_wrt_this
virtual BCP_warmstart * empty_wrt_this() const
Create a warmstart info describing that no change should be done.
Definition: BCP_warmstart_dual.hpp:62
BCP_warmstart_dual::~BCP_warmstart_dual
virtual ~BCP_warmstart_dual()
Definition: BCP_warmstart_dual.hpp:47
CoinWarmStart
BCP_warmstart_dual::update
virtual void update(const BCP_warmstart *const change)
Update the current data with the one in the argument.
BCP_warmstart_dual
This class describes a warmstart information that consists solely of the dual vector.
Definition: BCP_warmstart_dual.hpp:20
BCP_storage_t
BCP_storage_t
This enumerative constant describes how to store certain data for a search tree node.
Definition: BCP_enum.hpp:84
BCP_warmstart
Warmstarting information for the LP solver.
Definition: BCP_warmstart.hpp:24
BCP_buffer
This class describes the message buffer used for all processes of BCP.
Definition: BCP_buffer.hpp:39
BCP_warmstart_dual::pack
void pack(BCP_buffer &buf) const
Pack the warmstart info into a buffer.
Definition: BCP_warmstart_dual.hpp:83
BCP_warmstart_dual::BCP_warmstart_dual
BCP_warmstart_dual(const double *first, const double *last)
Create an explicitly stored warmstart info by considering the double array [first,...
Definition: BCP_warmstart_dual.hpp:42
BCP_vec_change::storage
BCP_storage_t storage() const
Return the storage type of the vector.
Definition: BCP_vector_change.hpp:148