Bonmin
1.8.9
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Interfaces
Filter
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
"
17
#include "
CoinWarmStartPrimalDual.hpp
"
18
#include "
BonFilterTypes.hpp
"
/* for types */
19
#include "
CoinSmartPtr.hpp
"
20
21
#include <vector>
22
23
namespace
Bonmin
24
{
25
33
class
FilterWarmStart
:
34
public
virtual
CoinWarmStartPrimalDual
,
public
virtual
CoinWarmStartBasis
,
35
public
Coin::ReferencedObject
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
109
class
FilterWarmStartDiff
:
public
CoinWarmStartPrimalDualDiff
110
{
111
typedef
FilterTypes::fint
fint;
112
typedef
FilterTypes::real
real;
113
114
friend
class
FilterWarmStart
;
115
116
public
:
117
FilterWarmStartDiff
(
CoinWarmStartPrimalDualDiff
* diff,
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
BonFilterTypes.hpp
CoinSmartPtr.hpp
CoinWarmStartBasis.hpp
CoinWarmStartPrimalDual.hpp
Bonmin::FilterWarmStartDiff::~FilterWarmStartDiff
virtual ~FilterWarmStartDiff()
Definition
BonFilterWarmStart.hpp:120
Bonmin::FilterWarmStartDiff::flushPoint
void flushPoint()
Bonmin::FilterWarmStartDiff::clone
virtual CoinWarmStartDiff * clone() const
Definition
BonFilterWarmStart.hpp:122
Bonmin::FilterWarmStartDiff::FilterWarmStartDiff
FilterWarmStartDiff(CoinWarmStartPrimalDualDiff *diff, fint capacity)
Bonmin::FilterWarmStartDiff::FilterWarmStart
friend class FilterWarmStart
Definition
BonFilterWarmStart.hpp:114
Bonmin::FilterWarmStart::flushPoint
void flushPoint()
flush the starting point
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.
Bonmin::FilterWarmStart::lwsSize
fint lwsSize() const
Access to lws size.
Definition
BonFilterWarmStart.hpp:77
Bonmin::FilterWarmStart::lwsArray
const fint * lwsArray() const
Access to lws array.
Definition
BonFilterWarmStart.hpp:71
Bonmin::FilterWarmStart::FilterWarmStart
FilterWarmStart(const FilterWarmStart &other)
Copy constructor.
Bonmin::FilterWarmStart::applyDiff
virtual void applyDiff(const CoinWarmStartDiff *const cswDiff)
Apply differences.
Bonmin::FilterWarmStart::~FilterWarmStart
virtual ~FilterWarmStart()
Destructor.
Bonmin::FilterWarmStart::empty
bool empty() const
Is this an empty warm start?
Definition
BonFilterWarmStart.hpp:91
Bonmin::FilterWarmStart::generateDiff
virtual CoinWarmStartDiff * generateDiff(const CoinWarmStart *const other) const
Generate differences.
Bonmin::FilterWarmStart::def_istat
static fint def_istat[14]
Default values for istat.
Definition
BonFilterWarmStart.hpp:42
Bonmin::FilterWarmStart::istat
const fint * istat() const
Definition
BonFilterWarmStart.hpp:82
Bonmin::FilterWarmStart::clone
virtual CoinWarmStart * clone() const
virtual copy
Definition
BonFilterWarmStart.hpp:56
CoinWarmStartBasis::CoinWarmStartBasis
CoinWarmStartBasis()
CoinWarmStartDiff
CoinWarmStartPrimalDualDiff::CoinWarmStartPrimalDualDiff
CoinWarmStartPrimalDualDiff()
CoinWarmStartPrimalDual::CoinWarmStartPrimalDual
CoinWarmStartPrimalDual()
CoinWarmStart
Coin::ReferencedObject
Bonmin
(C) Copyright International Business Machines Corporation 2007
Definition
BonAmplSetup.hpp:16
FilterTypes::real
double real
Fortran type for double.used in filter.
Definition
BonFilterTypes.hpp:8
FilterTypes::fint
FORTRAN_INTEGER_TYPE fint
Fortran type for integer used in filter.
Definition
BonFilterTypes.hpp:6
Generated by
1.17.0