Bonmin  1.8.8
BonBqpdWarmStart.hpp
Go to the documentation of this file.
1 // (C) Copyright International Business Machines Corporation 2007
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors :
6 // Andreas Waechter, International Business Machines Corporation
7 // based on BonFilterWarmStart.hpp
8 //
9 // Date : 2007-08-03
10 
11 
12 #ifndef BonBqpdWarmStart_H
13 #define BonBqpdWarmStart_H
14 
15 #include "CoinWarmStartBasis.hpp"
16 #include "CoinWarmStartPrimalDual.hpp"
17 #include "BonFilterSolver.hpp" /* for types */
18 
19 #include <vector>
20 
21 namespace Bonmin{
22 
30  class BqpdWarmStart :
31  public virtual CoinWarmStartPrimalDual, public virtual CoinWarmStartBasis,
32  public Coin::ReferencedObject
33  {
36 
37  public:
39  static fint def_istat[14];
41  BqpdWarmStart(const fint xSize = 0,
42  const real* xArray = NULL,
43  const fint lamSize = 0,
44  const real* lamArray = NULL,
45  const fint lwsSize = 0,
46  const fint *lwsArray = NULL,
47  const fint istat[14] = def_istat);
48 
50  BqpdWarmStart(const BqpdWarmStart & other);
51 
53  BqpdWarmStart(const CoinWarmStartPrimalDual& pdws);
54 
56  virtual CoinWarmStart * clone() const
57  { return new BqpdWarmStart(*this);}
58 
60  virtual ~BqpdWarmStart();
61 
63  virtual CoinWarmStartDiff* generateDiff(const CoinWarmStart * const other) const;
64 
66  virtual void applyDiff(const CoinWarmStartDiff * const cswDiff);
67 
69  const fint *lwsArray() const{
70  return lwsArray_;
71  }
72 
74  fint lwsSize() const {
75  return lwsSize_;}
76 
77  const fint* istat()const {
78  return istat_;}
79 
80  void flushPoint();
81 
83  bool empty() const
84  {
85  return empty_;
86  }
87  private:
90 
93 
95  fint istat_[14];
97  bool empty_;
98  };
99 
100 } /* end namespace Bonmin */
101 #endif
102 
virtual CoinWarmStartDiff * generateDiff(const CoinWarmStart *const other) const
Generate differences.
fint istat_[14]
Filter&#39;s istat (AW: I think we only need first entry)
fint lwsSize_
Size of fint lws array store.
BqpdWarmStart(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.
FilterSolver::fint fint
virtual ~BqpdWarmStart()
Destructor.
Warm start for filter interface.
virtual void applyDiff(const CoinWarmStartDiff *const cswDiff)
Apply differences.
virtual CoinWarmStart * clone() const
virtual copy
static fint def_istat[14]
Default values for istat.
const fint * istat() const
FilterTypes::real real
Fortran type for double.used in filter.
FilterSolver::real real
bool empty_
Say if warm start is empty.
const fint * lwsArray() const
Access to lws array.
fint * lwsArray_
fint lws array to store
fint lwsSize() const
Access to lws size.
bool empty() const
Is this an empty warm start?
FilterTypes::fint fint
Fortran type for integer used in filter.