Ipopt  3.11.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpPDPerturbationHandler.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, 2007 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpPDPerturbationHandler.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2005-08-04
8 
9 #ifndef __IPPDPERTURBATIONHANDLER_HPP__
10 #define __IPPDPERTURBATIONHANDLER_HPP__
11 
12 #include "IpAlgStrategy.hpp"
13 
14 namespace Ipopt
15 {
16 
25  {
26  public:
33  {}
35 
36  /* overloaded from AlgorithmStrategyObject */
37  virtual bool InitializeImpl(const OptionsList& options,
38  const std::string& prefix);
39 
46  virtual bool ConsiderNewSystem(Number& delta_x, Number& delta_s,
47  Number& delta_c, Number& delta_d);
48 
53  virtual bool PerturbForSingularity(Number& delta_x, Number& delta_s,
54  Number& delta_c, Number& delta_d);
55 
60  virtual bool PerturbForWrongInertia(Number& delta_x, Number& delta_s,
61  Number& delta_c, Number& delta_d);
62 
65  virtual void CurrentPerturbation(Number& delta_x, Number& delta_s,
66  Number& delta_c, Number& delta_d);
67 
70  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
72 
73  protected:
84 
86  void operator=(const PDPerturbationHandler&);
88 
100 
113 
117 
122  {
126  };
127 
131 
135 
140 
143  {
149  };
150 
154 
183 
189  bool get_deltas_for_wrong_inertia(Number& delta_x, Number& delta_s,
190  Number& delta_c, Number& delta_d);
191 
195  void finalize_test();
197  Number delta_cd();
199 
200  };
201 
202 } // namespace Ipopt
203 
204 #endif