Ipopt
3.11.4
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
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 Oct 21 2013 19:08:15 for Ipopt by
1.8.4