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"
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,
33  {
34  typedef FilterSolver::fint fint;
35  typedef FilterSolver::real real;
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 
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:
89  fint lwsSize_;
90 
92  fint* lwsArray_;
93 
95  fint istat_[14];
97  bool empty_;
98  };
99 
100 } /* end namespace Bonmin */
101 #endif
102 
Warm start for filter interface.
const fint * lwsArray() const
Access to lws array.
virtual ~BqpdWarmStart()
Destructor.
fint lwsSize() const
Access to lws size.
bool empty() const
Is this an empty warm start?
virtual CoinWarmStartDiff * generateDiff(const CoinWarmStart *const other) const
Generate differences.
static fint def_istat[14]
Default values for istat.
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.
BqpdWarmStart(const BqpdWarmStart &other)
Copy constructor.
virtual void applyDiff(const CoinWarmStartDiff *const cswDiff)
Apply differences.
const fint * istat() const
BqpdWarmStart(const CoinWarmStartPrimalDual &pdws)
constructor from a CoinWarmStartPrimalDual
virtual CoinWarmStart * clone() const
virtual copy
FilterTypes::real real
Fortran type for double.used in filter.
FilterTypes::fint fint
Fortran type for integer used in filter.
(C) Copyright International Business Machines Corporation 2007