IpAdaptiveMuUpdate.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2010 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpAdaptiveMuUpdate.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8 
9 #ifndef __IPADAPTIVEMUUPDATE_HPP__
10 #define __IPADAPTIVEMUUPDATE_HPP__
11 
12 #include "IpMuUpdate.hpp"
13 #include "IpLineSearch.hpp"
14 #include "IpMuOracle.hpp"
15 #include "IpFilter.hpp"
17 
18 namespace Ipopt
19 {
20 
23  class AdaptiveMuUpdate : public MuUpdate
24  {
25  public:
29  AdaptiveMuUpdate(const SmartPtr<LineSearch>& linesearch,
30  const SmartPtr<MuOracle>& free_mu_oracle,
31  const SmartPtr<MuOracle>& fix_mu_oracle=NULL);
33  virtual ~AdaptiveMuUpdate();
35 
37  virtual bool InitializeImpl(const OptionsList& options,
38  const std::string& prefix);
39 
45  virtual bool UpdateBarrierParameter();
46 
49  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
51 
52  private:
61 
64 
67 
69  void operator=(const AdaptiveMuUpdate&);
71 
80  Number adaptive_mu_safeguard_factor_; //ToDo don't need that?
90  {
94  };
104 
119 
126 
141  Number NewFixedMu();
145 
152 
157 
160 
163 
168  std::list<Number> refs_vals_;
171 
178 
183 
190 
191  };
192 
193 } // namespace Ipopt
194 
195 #endif