Ipopt Documentation  
 
Loading...
Searching...
No Matches
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
13namespace Ipopt
14{
19{
20public:
23
26
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
49protected:
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
66private:
77
80 );
81
85 );
87};
88
89} // namespace Ipopt
90
91#endif
#define DBG_ASSERT(test)
Definition IpDebug.hpp:27
This is the base class for all algorithm strategy objects.
IpoptCalculatedQuantities & IpCq() const
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm.
Base class for computing the normal step for the inexact step calculation algorithm.
InexactCq & InexCq()
Method to easily access Inexact calculated quantities.
void operator=(const InexactNormalStepCalculator &)
Overloaded Assignment Operator.
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.
InexactNormalStepCalculator(const InexactNormalStepCalculator &)
Copy Constructor.
InexactData & InexData()
Method to easily access Inexact data.
virtual bool ComputeNormalStep(SmartPtr< Vector > &normal_x, SmartPtr< Vector > &normal_s)=0
Method for computing the normal step.
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
This class stores a list of user set options.
Template class for Smart Pointers.
This file contains a base class for all exceptions and a set of macros to help with exceptions.