IpInexactNewtonNormal.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008, 2011 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpInexactNewtonNormal.hpp 1886 2011-01-27 23:11:16Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2008-09-05
8 
9 #ifndef __IPINEXACTNEWTONNORMAL_HPP__
10 #define __IPINEXACTNEWTONNORMAL_HPP__
11 
12 #include "IpAlgStrategy.hpp"
13 #include "IpAugSystemSolver.hpp"
14 #include "IpInexactCq.hpp"
15 
16 namespace Ipopt
17 {
22  {
23  public:
28 
30  virtual ~InexactNewtonNormalStep();
32 
34  virtual bool InitializeImpl(const OptionsList& options,
35  const std::string& prefix);
36 
42  virtual bool ComputeNewtonNormalStep(Vector& newton_x, Vector& newton_s);
43 
46  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
48 
49  protected:
52  {
53  InexactData& inexact_data =
54  static_cast<InexactData&>(IpData().AdditionalData());
55  DBG_ASSERT(dynamic_cast<InexactData*>(&IpData().AdditionalData()));
56  return inexact_data;
57  }
58 
61  {
62  InexactCq& inexact_cq =
63  static_cast<InexactCq&>(IpCq().AdditionalCq());
64  DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
65  return inexact_cq;
66  }
67 
68  private:
79 
82 
86 
89  };
90 
91 } // namespace Ipopt
92 
93 #endif