Ipopt  3.11.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpProbingMuOracle.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: IpProbingMuOracle.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8 
9 #ifndef __IPPROBINGMUORACLE_HPP__
10 #define __IPPROBINGMUORACLE_HPP__
11 
12 #include "IpMuOracle.hpp"
13 #include "IpPDSystemSolver.hpp"
14 
15 namespace Ipopt
16 {
17 
21  class ProbingMuOracle : public MuOracle
22  {
23  public:
27  ProbingMuOracle(const SmartPtr<PDSystemSolver>& pd_solver);
29  virtual ~ProbingMuOracle();
31 
33  virtual bool InitializeImpl(const OptionsList& options,
34  const std::string& prefix);
35 
40  virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu);
41 
44  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
46 
47  private:
56 
61 
63  void operator=(const ProbingMuOracle&);
65 
70 
74  Number CalculateAffineMu(Number alpha_primal,
75  Number alpha_dual,
76  const IteratesVector& step);
77 
83  };
84 
85 } // namespace Ipopt
86 
87 #endif