IpPenaltyLSAcceptor.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpPenaltyLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2008-04-04
8 // derived file from IpFilterLSAcceptor.hpp
9 
10 #ifndef __IPPENALTYLSACCEPTOR_HPP__
11 #define __IPPENALTYLSACCEPTOR_HPP__
12 
14 #include "IpPDSystemSolver.hpp"
15 
16 namespace Ipopt
17 {
18 
24  {
25  public:
32 
34  virtual ~PenaltyLSAcceptor();
36 
38  virtual bool InitializeImpl(const OptionsList& options,
39  const std::string& prefix);
40 
47  virtual void Reset();
48 
52  virtual void InitThisLineSearch(bool in_watchdog);
53 
57  virtual void PrepareRestoPhaseStart();
58 
60  virtual Number CalculateAlphaMin();
61 
67  virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal);
68 
81  virtual bool TrySecondOrderCorrection(Number alpha_primal_test,
82  Number& alpha_primal,
83  SmartPtr<IteratesVector>& actual_delta);
84 
91  virtual bool TryCorrector(Number alpha_primal_test,
92  Number& alpha_primal,
93  SmartPtr<IteratesVector>& actual_delta);
94 
99  virtual char UpdateForNextIteration(Number alpha_primal_test);
100 
103  virtual void StartWatchDog();
104 
107  virtual void StopWatchDog();
108 
115  bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta,
116  bool called_from_restoration=false) const;
118 
121  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
123 
124  private:
135 
137  void operator=(const PenaltyLSAcceptor&);
139 
141  Number CalcPred(Number alpha);
142 
161 
189 
197 
201 
206  };
207 
208 } // namespace Ipopt
209 
210 #endif