CoinUtils
2.9.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CoinUtils
src
CoinWarmStartPrimalDual.hpp
Go to the documentation of this file.
1
/* $Id: CoinWarmStartPrimalDual.hpp 1372 2011-01-03 23:31:00Z lou $ */
2
// Copyright (C) 2000, International Business Machines
3
// Corporation and others. All Rights Reserved.
4
// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6
#ifndef CoinWarmStartPrimalDual_H
7
#define CoinWarmStartPrimalDual_H
8
9
#include "
CoinHelperFunctions.hpp
"
10
#include "
CoinWarmStart.hpp
"
11
#include "
CoinWarmStartVector.hpp
"
12
13
14
//#############################################################################
15
18
class
CoinWarmStartPrimalDual
:
public
virtual
CoinWarmStart
{
19
public
:
21
inline
int
dualSize
()
const
{
return
dual_
.
size
(); }
23
inline
const
double
*
dual
()
const
{
return
dual_
.
values
(); }
24
26
inline
int
primalSize
()
const
{
return
primal_
.
size
(); }
28
inline
const
double
*
primal
()
const
{
return
primal_
.
values
(); }
29
39
void
assign
(
int
primalSize
,
int
dualSize
,
double
*&
primal
,
double
*&
dual
) {
40
primal_
.
assignVector
(primalSize, primal);
41
dual_
.
assignVector
(dualSize, dual);
42
}
43
44
CoinWarmStartPrimalDual
() :
primal_
(),
dual_
() {}
45
46
CoinWarmStartPrimalDual
(
int
primalSize
,
int
dualSize
,
47
const
double
*
primal
,
const
double
*
dual
) :
48
primal_
(primalSize, primal),
dual_
(dualSize, dual) {}
49
50
CoinWarmStartPrimalDual
(
const
CoinWarmStartPrimalDual
& rhs) :
51
primal_
(rhs.
primal_
),
dual_
(rhs.
dual_
) {}
52
53
CoinWarmStartPrimalDual
&
operator=
(
const
CoinWarmStartPrimalDual
& rhs) {
54
if
(
this
!= &rhs) {
55
primal_
= rhs.
primal_
;
56
dual_
= rhs.
dual_
;
57
}
58
return
*
this
;
59
}
60
66
inline
void
clear
() {
67
primal_
.
clear
();
68
dual_
.
clear
();
69
}
70
71
inline
void
swap
(
CoinWarmStartPrimalDual
& rhs) {
72
if
(
this
!= &rhs) {
73
primal_
.
swap
(rhs.
primal_
);
74
dual_
.
swap
(rhs.
dual_
);
75
}
76
}
77
79
virtual
CoinWarmStart
*
clone
()
const
{
80
return
new
CoinWarmStartPrimalDual
(*
this
);
81
}
82
83
virtual
~CoinWarmStartPrimalDual
() {}
84
87
95
virtual
CoinWarmStartDiff
*
96
generateDiff
(
const
CoinWarmStart
*
const
oldCWS)
const
;
97
104
virtual
void
applyDiff
(
const
CoinWarmStartDiff
*
const
cwsdDiff) ;
105
107
108
#if 0
109
protected
:
110
inline
const
CoinWarmStartVector<double>
& primalWarmStartVector()
const
111
{
return
primal_
; }
112
inline
const
CoinWarmStartVector<double>
& dualWarmStartVector()
const
113
{
return
dual_
; }
114
#endif
115
116
private
:
118
119
CoinWarmStartVector<double>
primal_
;
120
CoinWarmStartVector<double>
dual_
;
122
};
123
124
//#############################################################################
125
142
class
CoinWarmStartPrimalDualDiff
:
public
virtual
CoinWarmStartDiff
143
{
144
friend
CoinWarmStartDiff
*
145
CoinWarmStartPrimalDual::generateDiff
(
const
CoinWarmStart
*
const
oldCWS)
const
;
146
friend
void
147
CoinWarmStartPrimalDual::applyDiff
(
const
CoinWarmStartDiff
*
const
diff) ;
148
149
public
:
150
153
virtual
CoinWarmStartDiff
*
clone
()
const
154
{
155
return
new
CoinWarmStartPrimalDualDiff
(*
this
);
156
}
157
159
virtual
~CoinWarmStartPrimalDualDiff
() {}
160
161
protected
:
162
169
CoinWarmStartPrimalDualDiff
() :
primalDiff_
(),
dualDiff_
() {}
170
181
CoinWarmStartPrimalDualDiff
(
const
CoinWarmStartPrimalDualDiff
&rhs) :
182
primalDiff_
(rhs.
primalDiff_
),
dualDiff_
(rhs.
dualDiff_
) {}
183
189
inline
void
clear
() {
190
primalDiff_
.
clear
();
191
dualDiff_
.
clear
();
192
}
193
194
inline
void
swap
(
CoinWarmStartPrimalDualDiff
& rhs) {
195
if
(
this
!= &rhs) {
196
primalDiff_
.
swap
(rhs.
primalDiff_
);
197
dualDiff_
.
swap
(rhs.
dualDiff_
);
198
}
199
}
200
201
private
:
202
207
CoinWarmStartVectorDiff<double>
primalDiff_
;
208
CoinWarmStartVectorDiff<double>
dualDiff_
;
209
} ;
210
211
#endif
Generated by
1.8.3.1