Ipopt Documentation  
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 // Authors: Andreas Waechter IBM 2008-09-05
6 
7 #ifndef __IPINEXACTNEWTONNORMAL_HPP__
8 #define __IPINEXACTNEWTONNORMAL_HPP__
9 
10 #include "IpAlgStrategy.hpp"
11 #include "IpAugSystemSolver.hpp"
12 #include "IpInexactCq.hpp"
13 
14 namespace Ipopt
15 {
20 {
21 public:
26  SmartPtr<AugSystemSolver> aug_solver
27  );
28 
30  virtual ~InexactNewtonNormalStep();
32 
33  virtual bool InitializeImpl(
34  const OptionsList& options,
35  const std::string& prefix
36  );
37 
46  virtual bool ComputeNewtonNormalStep(
47  Vector& newton_x,
48  Vector& newton_s
49  );
50 
51  static void RegisterOptions(
53  );
54 
55 protected:
58  {
59  InexactData& inexact_data = static_cast<InexactData&>(IpData().AdditionalData());
60  DBG_ASSERT(dynamic_cast<InexactData*>(&IpData().AdditionalData()));
61  return inexact_data;
62  }
63 
66  {
67  InexactCq& inexact_cq = static_cast<InexactCq&>(IpCq().AdditionalCq());
68  DBG_ASSERT(dynamic_cast<InexactCq*>(&IpCq().AdditionalCq()));
69  return inexact_cq;
70  }
71 
72 private:
85 
89 
91  void operator=(
93  );
95 
98 };
99 
100 } // namespace Ipopt
101 
102 #endif
Ipopt::InexactNewtonNormalStep
Compute the "Newton" normal step from the (slack-scaled) augmented system.
Definition: IpInexactNewtonNormal.hpp:19
Ipopt::AlgorithmStrategyObject::IpCq
IpoptCalculatedQuantities & IpCq() const
Definition: IpAlgStrategy.hpp:150
Ipopt::InexactNewtonNormalStep::InexactNewtonNormalStep
InexactNewtonNormalStep()
Default Constructor.
Ipopt::InexactNewtonNormalStep::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
IpInexactCq.hpp
Ipopt::InexactData
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm.
Definition: IpInexactData.hpp:18
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:13
Ipopt::AlgorithmStrategyObject::IpData
IpoptData & IpData() const
Definition: IpAlgStrategy.hpp:144
Ipopt::InexactNewtonNormalStep::operator=
void operator=(const InexactNewtonNormalStep &)
Overloaded Assignment Operator.
IpAugSystemSolver.hpp
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
Ipopt::IpoptData::AdditionalData
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
Definition: IpIpoptData.hpp:606
Ipopt::InexactNewtonNormalStep::InexCq
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
Definition: IpInexactNewtonNormal.hpp:65
Ipopt::InexactNewtonNormalStep::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
Ipopt::InexactNewtonNormalStep::aug_solver_
SmartPtr< AugSystemSolver > aug_solver_
Object to be used to solve the augmented system.
Definition: IpInexactNewtonNormal.hpp:97
Ipopt::IpoptCalculatedQuantities::AdditionalCq
IpoptAdditionalCq & AdditionalCq()
Definition: IpIpoptCalculatedQuantities.hpp:574
Ipopt::AlgorithmStrategyObject
This is the base class for all algorithm strategy objects.
Definition: IpAlgStrategy.hpp:34
IpAlgStrategy.hpp
DBG_ASSERT
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:28
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::InexactNewtonNormalStep::~InexactNewtonNormalStep
virtual ~InexactNewtonNormalStep()
Destructor.
Ipopt::InexactNewtonNormalStep::ComputeNewtonNormalStep
virtual bool ComputeNewtonNormalStep(Vector &newton_x, Vector &newton_s)
Method for computing the normal step.
Ipopt::Vector
Vector Base Class.
Definition: IpVector.hpp:47
Ipopt::InexactCq
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Definition: IpInexactCq.hpp:20
Ipopt::InexactNewtonNormalStep::InexData
InexactData & InexData()
Method to easily access Inexact data.
Definition: IpInexactNewtonNormal.hpp:57