Ipopt  3.11.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpCGSearchDirCalc.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpCGSearchDirCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2005-10-13
8 //
9 // Lifeng Chen/Zaiwen Wen Columbia Univ
10 
11 #ifndef __IPCGSEARCHDIRCALC_HPP__
12 #define __IPCGSEARCHDIRCALC_HPP__
13 
15 #include "IpPDSystemSolver.hpp"
16 #include "IpCGPenaltyCq.hpp"
17 
18 namespace Ipopt
19 {
20 
26  {
27  public:
32 
34  virtual ~CGSearchDirCalculator();
36 
38  virtual bool InitializeImpl(const OptionsList& options,
39  const std::string& prefix);
40 
44  virtual bool ComputeSearchDirection();
45 
48  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
50 
51  private:
62 
65 
67  void operator=(const CGSearchDirCalculator&);
69 
72  {
73  CGPenaltyData& cg_pen_data =
74  static_cast<CGPenaltyData&>(IpData().AdditionalData());
75  DBG_ASSERT(dynamic_cast<CGPenaltyData*>(&IpData().AdditionalData()));
76  return cg_pen_data;
77  }
78 
81  {
82  CGPenaltyCq& cg_pen_cq =
83  static_cast<CGPenaltyCq&>(IpCq().AdditionalCq());
84  DBG_ASSERT(dynamic_cast<CGPenaltyCq*>(&IpCq().AdditionalCq()));
85  return cg_pen_cq;
86  }
87 
99 
100 
101 
105 
108 
117 
121 
125 
130  };
131 
132 } // namespace Ipopt
133 
134 #endif