Ipopt Documentation  
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 // Authors: Andreas Waechter IBM 2008-08-31
6 
7 #ifndef __IPINEXACTNORMALSTEPCALC_HPP__
8 #define __IPINEXACTNORMALSTEPCALC_HPP__
9 
10 #include "IpAlgStrategy.hpp"
11 #include "IpInexactCq.hpp"
12 
13 namespace Ipopt
14 {
19 {
20 public:
25  { }
26 
29  { }
31 
32  virtual bool InitializeImpl(
33  const OptionsList& options,
34  const std::string& prefix
35  ) = 0;
36 
44  virtual bool ComputeNormalStep(
45  SmartPtr<Vector>& normal_x,
46  SmartPtr<Vector>& normal_s
47  ) = 0;
48 
49 protected:
52  {
53  InexactData& inexact_data = static_cast<InexactData&>(IpData().AdditionalData());
54  DBG_ASSERT(dynamic_cast<InexactData*>(&IpData().AdditionalData()));
55  return inexact_data;
56  }
57 
60  {
61  InexactCq& inexact_cq = static_cast<InexactCq&>(IpCq().AdditionalCq());
62  DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
63  return inexact_cq;
64  }
65 
66 private:
80  );
81 
83  void operator=(
85  );
87 };
88 
89 } // namespace Ipopt
90 
91 #endif
Ipopt::InexactNormalStepCalculator::InexactNormalStepCalculator
InexactNormalStepCalculator(const InexactNormalStepCalculator &)
Copy Constructor.
Ipopt::InexactNormalStepCalculator::~InexactNormalStepCalculator
virtual ~InexactNormalStepCalculator()
Destructor.
Definition: IpInexactNormalStepCalc.hpp:28
Ipopt::AlgorithmStrategyObject::IpCq
IpoptCalculatedQuantities & IpCq() const
Definition: IpAlgStrategy.hpp:150
Ipopt::InexactNormalStepCalculator::ComputeNormalStep
virtual bool ComputeNormalStep(SmartPtr< Vector > &normal_x, SmartPtr< Vector > &normal_s)=0
Method for computing the normal step.
IpInexactCq.hpp
Ipopt::InexactData
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm.
Definition: IpInexactData.hpp:19
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:14
Ipopt::AlgorithmStrategyObject::IpData
IpoptData & IpData() const
Definition: IpAlgStrategy.hpp:144
Ipopt::InexactNormalStepCalculator
Base class for computing the normal step for the inexact step calculation algorithm.
Definition: IpInexactNormalStepCalc.hpp:19
Ipopt::InexactNormalStepCalculator::InexactNormalStepCalculator
InexactNormalStepCalculator()
Default Constructor.
Definition: IpInexactNormalStepCalc.hpp:24
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::IpoptData::AdditionalData
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
Definition: IpIpoptData.hpp:606
Ipopt::InexactNormalStepCalculator::InexData
InexactData & InexData()
Method to easily access Inexact data.
Definition: IpInexactNormalStepCalc.hpp:51
Ipopt::IpoptCalculatedQuantities::AdditionalCq
IpoptAdditionalCq & AdditionalCq()
Definition: IpIpoptCalculatedQuantities.hpp:574
Ipopt::AlgorithmStrategyObject
This is the base class for all algorithm strategy objects.
Definition: IpAlgStrategy.hpp:35
Ipopt::InexactNormalStepCalculator::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)=0
Implementation of the initialization method that has to be overloaded by for each derived class.
IpAlgStrategy.hpp
Ipopt::InexactNormalStepCalculator::operator=
void operator=(const InexactNormalStepCalculator &)
Overloaded Assignment Operator.
DBG_ASSERT
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:28
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:33
Ipopt::InexactNormalStepCalculator::InexCq
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
Definition: IpInexactNormalStepCalc.hpp:59
Ipopt::InexactCq
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Definition: IpInexactCq.hpp:21