Ipopt  3.11.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpQualityFunctionMuOracle.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: IpQualityFunctionMuOracle.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2004-11-12
8 
9 #ifndef __IPQUALITYFUNCTIONMUORACLE_HPP__
10 #define __IPQUALITYFUNCTIONMUORACLE_HPP__
11 
12 #include "IpMuOracle.hpp"
13 #include "IpPDSystemSolver.hpp"
15 
16 namespace Ipopt
17 {
18 
23  {
24  public:
30  virtual ~QualityFunctionMuOracle();
32 
34  virtual bool InitializeImpl(const OptionsList& options,
35  const std::string& prefix);
36 
40  virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu);
41 
44  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
46 
51  enum NormEnum
52  {
57  };
60  {
65  };
68  {
71  };
73 
74  private:
83 
88 
92 
97 
101  // ToDo Replace pointers by references
103  const Vector& step_aff_x_L,
104  const Vector& step_aff_x_U,
105  const Vector& step_aff_s_L,
106  const Vector& step_aff_s_U,
107  const Vector& step_aff_y_c,
108  const Vector& step_aff_y_d,
109  const Vector& step_aff_z_L,
110  const Vector& step_aff_z_U,
111  const Vector& step_aff_v_L,
112  const Vector& step_aff_v_U,
113  const Vector& step_cen_x_L,
114  const Vector& step_cen_x_U,
115  const Vector& step_cen_s_L,
116  const Vector& step_cen_s_U,
117  const Vector& step_cen_y_c,
118  const Vector& step_cen_y_d,
119  const Vector& step_cen_z_L,
120  const Vector& step_cen_z_U,
121  const Vector& step_cen_v_L,
122  const Vector& step_cen_v_U);
123 
126  Number q_up,
127  Number sigma_lo,
128  Number q_lo,
129  Number sigma_tol,
130  Number qf_tol,
131  const Vector& step_aff_x_L,
132  const Vector& step_aff_x_U,
133  const Vector& step_aff_s_L,
134  const Vector& step_aff_s_U,
135  const Vector& step_aff_y_c,
136  const Vector& step_aff_y_d,
137  const Vector& step_aff_z_L,
138  const Vector& step_aff_z_U,
139  const Vector& step_aff_v_L,
140  const Vector& step_aff_v_U,
141  const Vector& step_cen_x_L,
142  const Vector& step_cen_x_U,
143  const Vector& step_cen_s_L,
144  const Vector& step_cen_s_U,
145  const Vector& step_cen_y_c,
146  const Vector& step_cen_y_d,
147  const Vector& step_cen_z_L,
148  const Vector& step_cen_z_U,
149  const Vector& step_cen_v_L,
150  const Vector& step_cen_v_U);
151 
155  Number ScaleSigma(Number sigma);
156  Number UnscaleSigma(Number scaled_sigma);
158 
161  /* This doesn't seem to work well, so I took it out for now (AW)
162  Number PerformGoldenSectionLog(Number sigma_up,
163  Number sigma_lo,
164  Number tol,
165  const Vector& step_aff_x_L,
166  const Vector& step_aff_x_U,
167  const Vector& step_aff_s_L,
168  const Vector& step_aff_s_U,
169  const Vector& step_aff_y_c,
170  const Vector& step_aff_y_d,
171  const Vector& step_aff_z_L,
172  const Vector& step_aff_z_U,
173  const Vector& step_aff_v_L,
174  const Vector& step_aff_v_U,
175  const Vector& step_cen_x_L,
176  const Vector& step_cen_x_U,
177  const Vector& step_cen_s_L,
178  const Vector& step_cen_s_U,
179  const Vector& step_cen_y_c,
180  const Vector& step_cen_y_d,
181  const Vector& step_cen_z_L,
182  const Vector& step_cen_z_U,
183  const Vector& step_cen_v_L,
184  const Vector& step_cen_v_U);
185  */
186 
212 
224 
234 
235  /* Counter for the qualify function evaluations */
237 
247 
252 
257 
262 
267 
273  };
274 
275 } // namespace Ipopt
276 
277 #endif