Bonmin  1.8.8
BonFilterWarmStart.hpp
Go to the documentation of this file.
1 // (C) Copyright International Business Machines Corporation, 2006
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors :
6 // Pierre Bonami, International Business Machines Corporation
7 //
8 // Date : 11/21/2006
9 
10 
11 
12 
13 #ifndef BonFilterWarmStart_H
14 #define BonFilterWarmStart_H
15 
16 #include "CoinWarmStartBasis.hpp"
18 #include "BonFilterTypes.hpp" /* for types */
19 #include "CoinSmartPtr.hpp"
20 
21 #include <vector>
22 
23 namespace Bonmin
24 {
25 
34  public virtual CoinWarmStartPrimalDual, public virtual CoinWarmStartBasis,
36  {
37  typedef FilterTypes::fint fint;
38  typedef FilterTypes::real real;
39 
40  public:
42  static fint def_istat[14];
44  FilterWarmStart(const fint xSize = 0,
45  const real* xArray = NULL,
46  const fint lamSize = 0,
47  const real* lamArray = NULL,
48  const fint lwsSize = 0,
49  const fint *lwsArray = NULL,
50  const fint istat[14] = def_istat);
51 
53  FilterWarmStart(const FilterWarmStart & other);
54 
56  virtual CoinWarmStart * clone() const
57  {
58  return new FilterWarmStart(*this);
59  }
60 
62  virtual ~FilterWarmStart();
63 
65  virtual CoinWarmStartDiff* generateDiff(const CoinWarmStart * const other) const;
66 
68  virtual void applyDiff(const CoinWarmStartDiff * const cswDiff);
69 
71  const fint *lwsArray() const
72  {
73  return lwsArray_;
74  }
75 
77  fint lwsSize() const
78  {
79  return lwsSize_;
80  }
81 
82  const fint* istat()const
83  {
84  return istat_;
85  }
86 
88  void flushPoint();
89 
91  bool empty() const
92  {
93  return empty_;
94  }
95  private:
97  fint lwsSize_;
98 
100  fint* lwsArray_;
101 
103  fint istat_[14];
104 
106  bool empty_;
107  };
108 
110  {
111  typedef FilterTypes::fint fint;
112  typedef FilterTypes::real real;
113 
114  friend class FilterWarmStart;
115 
116  public:
118  fint capacity);
119 
120  virtual ~FilterWarmStartDiff() {}
121 
122  virtual CoinWarmStartDiff * clone() const
123  {
124  return new FilterWarmStartDiff(*this);
125  }
126 
127  void flushPoint();
128  private:
130  typedef std::pair<fint, fint> OneDiff;
132  std::vector<OneDiff> differences;
134  fint istat_[14];
135  };
136 
137 } /* end namespace Bonmin */
138 #endif
139 
Bonmin::FilterWarmStart::empty
bool empty() const
Is this an empty warm start?
Definition: BonFilterWarmStart.hpp:91
Bonmin::FilterWarmStart::clone
virtual CoinWarmStart * clone() const
virtual copy
Definition: BonFilterWarmStart.hpp:56
CoinSmartPtr.hpp
CoinWarmStartPrimalDual
Bonmin::FilterWarmStart::generateDiff
virtual CoinWarmStartDiff * generateDiff(const CoinWarmStart *const other) const
Generate differences.
CoinWarmStartBasis.hpp
Bonmin::FilterWarmStart::lwsArray
const fint * lwsArray() const
Access to lws array.
Definition: BonFilterWarmStart.hpp:71
FilterTypes::fint
FORTRAN_INTEGER_TYPE fint
Fortran type for integer used in filter.
Definition: BonFilterTypes.hpp:6
Bonmin
(C) Copyright International Business Machines Corporation 2007
Definition: BonAmplSetup.hpp:15
Bonmin::FilterWarmStartDiff::~FilterWarmStartDiff
virtual ~FilterWarmStartDiff()
Definition: BonFilterWarmStart.hpp:120
Bonmin::FilterWarmStart::~FilterWarmStart
virtual ~FilterWarmStart()
Destructor.
FilterTypes::real
double real
Fortran type for double.used in filter.
Definition: BonFilterTypes.hpp:8
Bonmin::FilterWarmStart::flushPoint
void flushPoint()
flush the starting point
CoinWarmStartDiff
Bonmin::FilterWarmStartDiff::clone
virtual CoinWarmStartDiff * clone() const
Definition: BonFilterWarmStart.hpp:122
CoinWarmStartBasis
Bonmin::FilterWarmStart::def_istat
static fint def_istat[14]
Default values for istat.
Definition: BonFilterWarmStart.hpp:42
BonFilterTypes.hpp
CoinWarmStartPrimalDualDiff
Bonmin::FilterWarmStart::lwsSize
fint lwsSize() const
Access to lws size.
Definition: BonFilterWarmStart.hpp:77
CoinWarmStartPrimalDual.hpp
Bonmin::FilterWarmStartDiff::flushPoint
void flushPoint()
Bonmin::FilterWarmStart
Warm start for filter interface.
Definition: BonFilterWarmStart.hpp:33
Bonmin::FilterWarmStart::istat
const fint * istat() const
Definition: BonFilterWarmStart.hpp:82
Bonmin::FilterWarmStartDiff::FilterWarmStartDiff
FilterWarmStartDiff(CoinWarmStartPrimalDualDiff *diff, fint capacity)
CoinWarmStart
Bonmin::FilterWarmStartDiff
Definition: BonFilterWarmStart.hpp:109
Bonmin::FilterWarmStart::applyDiff
virtual void applyDiff(const CoinWarmStartDiff *const cswDiff)
Apply differences.
Coin::ReferencedObject
Bonmin::FilterWarmStart::FilterWarmStart
FilterWarmStart(const fint xSize=0, const real *xArray=NULL, const fint lamSize=0, const real *lamArray=NULL, const fint lwsSize=0, const fint *lwsArray=NULL, const fint istat[14]=def_istat)
Constructor.