Main Page
Namespaces
Classes
Files
File List
File Members
tmp
buildd
coinor-ipopt-3.10.2
Ipopt
src
Algorithm
IpPDFullSpaceSolver.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2007 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpPDFullSpaceSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPPDFULLSPACESOLVER_HPP__
10
#define __IPPDFULLSPACESOLVER_HPP__
11
12
#include "
IpPDSystemSolver.hpp
"
13
#include "
IpAugSystemSolver.hpp
"
14
#include "
IpPDPerturbationHandler.hpp
"
15
16
namespace
Ipopt
17
{
18
32
class
PDFullSpaceSolver
:
public
PDSystemSolver
33
{
34
public
:
40
PDFullSpaceSolver
(
AugSystemSolver
& augSysSolver,
41
PDPerturbationHandler
& perturbHandler);
42
44
virtual
~PDFullSpaceSolver
();
46
47
/* overloaded from AlgorithmStrategyObject */
48
bool
InitializeImpl
(
const
OptionsList
& options,
49
const
std::string& prefix);
50
53
virtual
bool
Solve
(
Number
alpha,
54
Number
beta,
55
const
IteratesVector
& rhs,
56
IteratesVector
& res,
57
bool
allow_inexact=
false
,
58
bool
improve_solution=
false
);
59
62
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
64
65
private
:
75
PDFullSpaceSolver
();
77
PDFullSpaceSolver
&
operator=
(
const
PDFullSpaceSolver
&);
79
83
SmartPtr<AugSystemSolver>
augSysSolver_
;
85
SmartPtr<PDPerturbationHandler>
perturbHandler_
;
87
91
CachedResults<void*>
dummy_cache_
;
94
bool
augsys_improved_
;
96
100
Index
min_refinement_steps_
;
102
Index
max_refinement_steps_
;
105
Number
residual_ratio_max_
;
109
Number
residual_ratio_singular_
;
112
Number
residual_improvement_factor_
;
114
Number
neg_curv_test_tol_
;
116
123
bool
SolveOnce
(
bool
resolve_unmodified,
124
bool
pretend_singular,
125
const
SymMatrix
& W,
126
const
Matrix
& J_c,
127
const
Matrix
& J_d,
128
const
Matrix
& Px_L,
129
const
Matrix
& Px_U,
130
const
Matrix
& Pd_L,
131
const
Matrix
& Pd_U,
132
const
Vector
& z_L,
133
const
Vector
& z_U,
134
const
Vector
& v_L,
135
const
Vector
& v_U,
136
const
Vector
& slack_x_L,
137
const
Vector
& slack_x_U,
138
const
Vector
& slack_s_L,
139
const
Vector
& slack_s_U,
140
const
Vector
& sigma_x,
141
const
Vector
& sigma_s,
142
Number
alpha,
143
Number
beta,
144
const
IteratesVector
& rhs,
145
IteratesVector
& res);
146
150
void
ComputeResiduals
(
const
SymMatrix
& W,
151
const
Matrix
& J_c,
152
const
Matrix
& J_d,
153
const
Matrix
& Px_L,
154
const
Matrix
& Px_U,
155
const
Matrix
& Pd_L,
156
const
Matrix
& Pd_U,
157
const
Vector
& z_L,
158
const
Vector
& z_U,
159
const
Vector
& v_L,
160
const
Vector
& v_U,
161
const
Vector
& slack_x_L,
162
const
Vector
& slack_x_U,
163
const
Vector
& slack_s_L,
164
const
Vector
& slack_s_U,
165
const
Vector
& sigma_x,
166
const
Vector
& sigma_s,
167
Number
alpha,
168
Number
beta,
169
const
IteratesVector
& rhs,
170
const
IteratesVector
& res,
171
IteratesVector
& resid);
172
176
Number
ComputeResidualRatio
(
const
IteratesVector
& rhs,
177
const
IteratesVector
& res,
178
const
IteratesVector
& resid);
179
183
void
SinvBlrmZPTdBr
(
Number
alpha,
const
Vector
& S,
184
const
Vector
& R,
const
Vector
& Z,
185
const
Matrix
& P,
const
Vector
&
g
,
Vector
& X);
187
};
188
189
}
// namespace Ipopt
190
191
#endif
Generated on Tue Jun 26 2012 17:01:43 by
1.8.1.1