Ipopt  3.12.12
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpInexactNormalStepCalc.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: IpInexactNormalStepCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2008-08-31
8 
9 #ifndef __IPINEXACTNORMALSTEPCALC_HPP__
10 #define __IPINEXACTNORMALSTEPCALC_HPP__
11 
12 #include "IpAlgStrategy.hpp"
13 #include "IpInexactCq.hpp"
14 
15 namespace Ipopt
16 {
21  {
22  public:
27  {}
28 
31  {}
33 
35  virtual bool InitializeImpl(const OptionsList& options,
36  const std::string& prefix) = 0;
37 
42  virtual bool ComputeNormalStep(SmartPtr<Vector>& normal_x,
43  SmartPtr<Vector>& normal_s) = 0;
44 
45  protected:
48  {
49  InexactData& inexact_data =
50  static_cast<InexactData&>(IpData().AdditionalData());
51  DBG_ASSERT(dynamic_cast<InexactData*>(&IpData().AdditionalData()));
52  return inexact_data;
53  }
54 
57  {
58  InexactCq& inexact_cq =
59  static_cast<InexactCq&>(IpCq().AdditionalCq());
60  DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
61  return inexact_cq;
62  }
63 
64  private:
75 
79  };
80 
81 } // namespace Ipopt
82 
83 #endif
void operator=(const InexactNormalStepCalculator &)
Overloaded Equals Operator.
virtual ~InexactNormalStepCalculator()
Default destructor.
This is the base class for all algorithm strategy objects.
virtual bool ComputeNormalStep(SmartPtr< Vector > &normal_x, SmartPtr< Vector > &normal_s)=0
Method for computing the normal step.
Base class for computing the normal step for the inexact step calculation algorithm.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
This class stores a list of user set options.
InexactData & InexData()
Method to easily access Inexact data.
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Definition: IpInexactCq.hpp:22
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm...
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)=0
overloaded from AlgorithmStrategyObject
IpoptCalculatedQuantities & IpCq() const