Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
opt
build
coinutils
coinutils-2.6.4
CoinUtils
src
CoinWarmStartPrimalDual.hpp
Go to the documentation of this file.
1
/* $Id: CoinWarmStartPrimalDual.hpp 1191 2009-07-25 08:38:12Z forrest $ */
2
// Copyright (C) 2000, International Business Machines
3
// Corporation and others. All Rights Reserved.
4
5
#ifndef CoinWarmStartPrimalDual_H
6
#define CoinWarmStartPrimalDual_H
7
8
#include "
CoinHelperFunctions.hpp
"
9
#include "
CoinWarmStart.hpp
"
10
#include "
CoinWarmStartVector.hpp
"
11
12
13
//#############################################################################
14
17
class
CoinWarmStartPrimalDual
:
public
virtual
CoinWarmStart
{
18
public
:
20
inline
int
dualSize
()
const
{
return
dual_
.
size
(); }
22
inline
const
double
*
dual
()
const
{
return
dual_
.
values
(); }
23
25
inline
int
primalSize
()
const
{
return
primal_
.
size
(); }
27
inline
const
double
*
primal
()
const
{
return
primal_
.
values
(); }
28
38
void
assign
(
int
primalSize
,
int
dualSize
,
double
*&
primal
,
double
*&
dual
) {
39
primal_
.
assignVector
(primalSize, primal);
40
dual_
.
assignVector
(dualSize, dual);
41
}
42
43
CoinWarmStartPrimalDual
() :
primal_
(),
dual_
() {}
44
45
CoinWarmStartPrimalDual
(
int
primalSize
,
int
dualSize
,
46
const
double
*
primal
,
const
double
*
dual
) :
47
primal_
(primalSize, primal),
dual_
(dualSize, dual) {}
48
49
CoinWarmStartPrimalDual
(
const
CoinWarmStartPrimalDual
& rhs) :
50
primal_
(rhs.
primal_
),
dual_
(rhs.
dual_
) {}
51
52
CoinWarmStartPrimalDual
&
operator=
(
const
CoinWarmStartPrimalDual
& rhs) {
53
if
(
this
!= &rhs) {
54
primal_
= rhs.
primal_
;
55
dual_
= rhs.
dual_
;
56
}
57
return
*
this
;
58
}
59
65
inline
void
clear
() {
66
primal_
.
clear
();
67
dual_
.
clear
();
68
}
69
70
inline
void
swap
(
CoinWarmStartPrimalDual
& rhs) {
71
if
(
this
!= &rhs) {
72
primal_
.
swap
(rhs.
primal_
);
73
dual_
.
swap
(rhs.
dual_
);
74
}
75
}
76
78
virtual
CoinWarmStart
*
clone
()
const
{
79
return
new
CoinWarmStartPrimalDual
(*
this
);
80
}
81
82
virtual
~CoinWarmStartPrimalDual
() {}
83
86
94
virtual
CoinWarmStartDiff
*
95
generateDiff
(
const
CoinWarmStart
*
const
oldCWS)
const
;
96
103
virtual
void
applyDiff
(
const
CoinWarmStartDiff
*
const
cwsdDiff) ;
104
106
107
#if 0
108
protected
:
109
inline
const
CoinWarmStartVector<double>
& primalWarmStartVector()
const
110
{
return
primal_
; }
111
inline
const
CoinWarmStartVector<double>
& dualWarmStartVector()
const
112
{
return
dual_
; }
113
#endif
114
115
private
:
117
118
CoinWarmStartVector<double>
primal_
;
119
CoinWarmStartVector<double>
dual_
;
121
};
122
123
//#############################################################################
124
141
class
CoinWarmStartPrimalDualDiff
:
public
virtual
CoinWarmStartDiff
142
{
143
friend
CoinWarmStartDiff
*
144
CoinWarmStartPrimalDual::generateDiff
(
const
CoinWarmStart
*
const
oldCWS)
const
;
145
friend
void
146
CoinWarmStartPrimalDual::applyDiff
(
const
CoinWarmStartDiff
*
const
diff) ;
147
148
public
:
149
152
virtual
CoinWarmStartDiff
*
clone
()
const
153
{
154
return
new
CoinWarmStartPrimalDualDiff
(*
this
);
155
}
156
158
virtual
~CoinWarmStartPrimalDualDiff
() {}
159
160
protected
:
161
168
CoinWarmStartPrimalDualDiff
() :
primalDiff_
(),
dualDiff_
() {}
169
180
CoinWarmStartPrimalDualDiff
(
const
CoinWarmStartPrimalDualDiff
&rhs) :
181
primalDiff_
(rhs.
primalDiff_
),
dualDiff_
(rhs.
dualDiff_
) {}
182
188
inline
void
clear
() {
189
primalDiff_
.
clear
();
190
dualDiff_
.
clear
();
191
}
192
193
inline
void
swap
(
CoinWarmStartPrimalDualDiff
& rhs) {
194
if
(
this
!= &rhs) {
195
primalDiff_
.
swap
(rhs.
primalDiff_
);
196
dualDiff_
.
swap
(rhs.
dualDiff_
);
197
}
198
}
199
200
private
:
201
206
CoinWarmStartVectorDiff<double>
primalDiff_
;
207
CoinWarmStartVectorDiff<double>
dualDiff_
;
208
} ;
209
210
#endif
Generated on Tue Mar 1 2016 22:31:57 by
1.8.4