Main Page
Namespaces
Classes
Files
File List
File Members
var
build
temp
tmp.niCloInx4p
4.0-0-0
coinor-ipopt
coinor-ipopt-3.10.2
Ipopt
src
Algorithm
IpAugRestoSystemSolver.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2006 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpAugRestoSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IP_AUGRESTOSYSTEMSOLVER_HPP__
10
#define __IP_AUGRESTOSYSTEMSOLVER_HPP__
11
12
#include "
IpAugSystemSolver.hpp
"
13
14
namespace
Ipopt
15
{
16
23
class
AugRestoSystemSolver
:
public
AugSystemSolver
24
{
25
public
:
34
AugRestoSystemSolver
(
AugSystemSolver
& orig_aug_solver,
35
bool
skip_orig_aug_solver_init=
true
);
36
38
virtual
~AugRestoSystemSolver
();
40
42
bool
InitializeImpl
(
const
OptionsList
& options,
43
const
std::string& prefix);
44
49
virtual
ESymSolverStatus
Solve
(
50
const
SymMatrix
* W,
51
double
W_factor,
52
const
Vector
* D_x,
53
double
delta_x,
54
const
Vector
* D_s,
55
double
delta_s,
56
const
Matrix
* J_c,
57
const
Vector
* D_c,
58
double
delta_c,
59
const
Matrix
* J_d,
60
const
Vector
* D_d,
61
double
delta_d,
62
const
Vector
& rhs_x,
63
const
Vector
& rhs_s,
64
const
Vector
& rhs_c,
65
const
Vector
& rhs_d,
66
Vector
& sol_x,
67
Vector
& sol_s,
68
Vector
& sol_c,
69
Vector
& sol_d,
70
bool
check_NegEVals,
71
Index
numberOfNegEVals);
72
76
virtual
Index
NumberOfNegEVals
()
const
77
{
78
return
orig_aug_solver_
->
NumberOfNegEVals
();
79
}
80
84
virtual
bool
ProvidesInertia
()
const
85
{
86
return
orig_aug_solver_
->
ProvidesInertia
();
87
}
88
95
virtual
bool
IncreaseQuality
()
96
{
97
return
orig_aug_solver_
->
IncreaseQuality
();
98
}
99
100
private
:
110
AugRestoSystemSolver
();
111
113
AugRestoSystemSolver
(
const
AugRestoSystemSolver
&);
114
116
void
operator=
(
const
AugRestoSystemSolver
&);
118
121
CachedResults< SmartPtr<Vector>
>
neg_omega_c_plus_D_c_cache_
;
122
CachedResults< SmartPtr<Vector>
>
neg_omega_d_plus_D_d_cache_
;
123
CachedResults< SmartPtr<Vector>
>
sigma_tilde_n_c_inv_cache_
;
124
CachedResults< SmartPtr<Vector>
>
sigma_tilde_p_c_inv_cache_
;
125
CachedResults< SmartPtr<Vector>
>
sigma_tilde_n_d_inv_cache_
;
126
CachedResults< SmartPtr<Vector>
>
sigma_tilde_p_d_inv_cache_
;
127
CachedResults< SmartPtr<Vector>
>
d_x_plus_wr_d_cache_
;
128
CachedResults< SmartPtr<Vector>
>
rhs_cR_cache_
;
129
CachedResults< SmartPtr<Vector>
>
rhs_dR_cache_
;
131
134
SmartPtr<const Vector>
Neg_Omega_c_plus_D_c
(
135
const
SmartPtr<const Vector>
& sigma_tilde_n_c_inv,
136
const
SmartPtr<const Vector>
& sigma_tilde_p_c_inv,
137
const
Vector
* D_c,
138
const
Vector
& any_vec_in_c);
139
140
SmartPtr<const Vector>
Neg_Omega_d_plus_D_d
(
141
const
Matrix
& Pd_L,
142
const
SmartPtr<const Vector>
& sigma_tilde_n_d_inv,
143
const
Matrix
& neg_Pd_U,
144
const
SmartPtr<const Vector>
& sigma_tilde_p_d_inv,
145
const
Vector
* D_d,
146
const
Vector
& any_vec_in_d);
147
149
SmartPtr<const Vector>
Sigma_tilde_n_c_inv
(
150
const
SmartPtr<const Vector>
& sigma_tilde_n_c,
151
Number
delta_x,
152
const
Vector
& any_vec_in_n_c);
153
154
SmartPtr<const Vector>
Sigma_tilde_p_c_inv
(
155
const
SmartPtr<const Vector>
& sigma_tilde_p_c,
156
Number
delta_x,
157
const
Vector
& any_vec_in_p_c);
158
159
SmartPtr<const Vector>
Sigma_tilde_n_d_inv
(
160
const
SmartPtr<const Vector>
& sigma_tilde_n_d,
161
Number
delta_x,
162
const
Vector
& any_vec_in_n_d);
163
164
SmartPtr<const Vector>
Sigma_tilde_p_d_inv
(
165
const
SmartPtr<const Vector>
& sigma_tilde_p_d,
166
Number
delta_x,
167
const
Vector
& any_vec_in_p_d);
168
169
SmartPtr<const Vector>
D_x_plus_wr_d
(
170
const
SmartPtr<const Vector>
& CD_x0,
171
Number
factor,
172
const
Vector
& wr_d);
173
174
SmartPtr<const Vector>
Rhs_cR
(
175
const
Vector
& rhs_c,
176
const
SmartPtr<const Vector>
& sigma_tilde_n_c_inv,
177
const
Vector
& rhs_n_c,
178
const
SmartPtr<const Vector>
& sigma_tilde_p_c_inv,
179
const
Vector
& rhs_p_c);
180
181
SmartPtr<const Vector>
Rhs_dR
(
182
const
Vector
& rhs_d,
183
const
SmartPtr<const Vector>
& sigma_tilde_n_d_inv,
184
const
Vector
& rhs_n_d,
185
const
Matrix
& pd_L,
186
const
SmartPtr<const Vector>
& sigma_tilde_p_d_inv,
187
const
Vector
& rhs_p_d,
188
const
Matrix
& pd_U);
190
191
SmartPtr<AugSystemSolver>
orig_aug_solver_
;
192
bool
skip_orig_aug_solver_init_
;
193
};
194
195
}
// namespace Ipopt
196
197
#endif
Generated on Mon Mar 17 2014 19:49:12 by
1.8.1.2