Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpInexactCq.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: IpInexactCq.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2008-08-31
8 // derived from IpIpoptCalculatedQuantities.hpp
9
10 #ifndef __IPINEXACTCQ_HPP__
11 #define __IPINEXACTCQ_HPP__
12
13 #include "IpIpoptCalculatedQuantities.hpp"
14 #include "IpInexactData.hpp"
15
16 namespace Ipopt
17 {
18
22 class InexactCq : public IpoptAdditionalCq
23 {
24 public:
25
29 InexactCq(IpoptNLP* ip_nlp,
30 IpoptData* ip_data,
31 IpoptCalculatedQuantities* ip_cq);
32
34 virtual ~InexactCq();
36
40 bool Initialize(const Journalist& jnlst,
41 const OptionsList& options,
42 const std::string& prefix);
43
46 static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions);
48
53 SmartPtr<const Vector> curr_jac_cdT_times_curr_cdminuss();
54
56 SmartPtr<const Vector> curr_scaling_slacks();
57
59 SmartPtr<const Vector> curr_slack_scaled_d_minus_s();
60
62 Number curr_scaled_Ac_norm();
63
65 Number curr_scaled_A_norm2();
66
69 Number slack_scaled_norm(const Vector& x, const Vector &s);
70
73 SmartPtr<const Vector> curr_W_times_vec_x(const Vector& vec_x);
74
77 SmartPtr<const Vector> curr_W_times_vec_s(const Vector& vec_s);
78
81 SmartPtr<const Vector> curr_Wu_x();
82
85 SmartPtr<const Vector> curr_Wu_s();
86
89 Number curr_uWu();
90
93 SmartPtr<const Vector> curr_jac_times_normal_c();
94
97 SmartPtr<const Vector> curr_jac_times_normal_d();
98
99 private:
109 InexactCq();
110
112 InexactCq(const InexactCq&);
113
115 void operator=(const InexactCq&);
117
122 IpoptNLP* ip_nlp_;
123 IpoptData* ip_data_;
124 IpoptCalculatedQuantities* ip_cq_;
126
128 InexactData& InexData()
129 {
130 InexactData& inexact_data =
131 static_cast<InexactData&>(ip_data_->AdditionalData());
132 DBG_ASSERT(dynamic_cast<InexactData*>(&ip_data_->AdditionalData()));
133 return inexact_data;
134 }
135
138 CachedResults<SmartPtr<const Vector> > curr_jac_cdT_times_curr_cdminuss_cache_;
139 CachedResults<SmartPtr<const Vector> > curr_scaling_slacks_cache_;
140 CachedResults<SmartPtr<const Vector> > curr_slack_scaled_d_minus_s_cache_;
141 CachedResults<Number> curr_scaled_Ac_norm_cache_;
142 CachedResults<Number> slack_scaled_norm_cache_;
143 CachedResults<SmartPtr<const Vector> > curr_W_times_vec_x_cache_;
144 CachedResults<SmartPtr<const Vector> > curr_W_times_vec_s_cache_;
145 CachedResults<SmartPtr<const Vector> > curr_Wu_x_cache_;
146 CachedResults<SmartPtr<const Vector> > curr_Wu_s_cache_;
147 CachedResults<Number> curr_uWu_cache_;
148 CachedResults<SmartPtr<const Vector> > curr_jac_times_normal_c_cache_;
149 CachedResults<SmartPtr<const Vector> > curr_jac_times_normal_d_cache_;
151
153 Number slack_scale_max_;
154 };
155
156 } // namespace Ipopt
157
158 #endif
x
Number * x
Input: Starting point Output: Optimal solution.
Definition: IpStdCInterface.h:238
Ipopt::InexactCq::curr_scaled_A_norm2
Number curr_scaled_A_norm2()
Scaled, squared norm of A.
Ipopt::InexactCq::curr_jac_cdT_times_curr_cdminuss
SmartPtr< const Vector > curr_jac_cdT_times_curr_cdminuss()
Gradient of infeasibility w.r.t.
Ipopt::InexactCq::curr_Wu_s
SmartPtr< const Vector > curr_Wu_s()
Compute s component of the W*u product for the current values.
Ipopt::InexactCq::curr_jac_times_normal_d_cache_
CachedResults< SmartPtr< const Vector > > curr_jac_times_normal_d_cache_
Definition: IpInexactCq.hpp:149
Ipopt::InexactCq::Initialize
bool Initialize(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
This method must be called to initialize the global algorithmic parameters.
Ipopt::IpoptCalculatedQuantities
Class for all IPOPT specific calculated quantities.
Definition: IpIpoptCalculatedQuantities.hpp:81
Ipopt::InexactCq::curr_W_times_vec_s
SmartPtr< const Vector > curr_W_times_vec_s(const Vector &vec_s)
Compute s component of the W*vec product for the current Hessian and a vector.
Ipopt::InexactCq::curr_scaling_slacks_cache_
CachedResults< SmartPtr< const Vector > > curr_scaling_slacks_cache_
Definition: IpInexactCq.hpp:139
IpIpoptCalculatedQuantities.hpp
Ipopt::InexactCq::curr_slack_scaled_d_minus_s
SmartPtr< const Vector > curr_slack_scaled_d_minus_s()
Vector with the slack-scaled d minus s inequalities.
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::Vector
Vector Base Class.
Definition: IpVector.hpp:47
Ipopt::InexactCq::curr_scaled_Ac_norm
Number curr_scaled_Ac_norm()
Scaled norm of Ac.
Ipopt::InexactCq::curr_uWu_cache_
CachedResults< Number > curr_uWu_cache_
Definition: IpInexactCq.hpp:147
Ipopt::InexactCq::curr_jac_cdT_times_curr_cdminuss_cache_
CachedResults< SmartPtr< const Vector > > curr_jac_cdT_times_curr_cdminuss_cache_
Definition: IpInexactCq.hpp:138
Ipopt::InexactCq::~InexactCq
virtual ~InexactCq()
Default destructor.
Ipopt::InexactCq::InexData
InexactData & InexData()
Method to easily access Inexact data.
Definition: IpInexactCq.hpp:128
Ipopt::InexactCq::InexactCq
InexactCq()
Default Constructor.
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::InexactCq::curr_slack_scaled_d_minus_s_cache_
CachedResults< SmartPtr< const Vector > > curr_slack_scaled_d_minus_s_cache_
Definition: IpInexactCq.hpp:140
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::InexactCq::ip_cq_
IpoptCalculatedQuantities * ip_cq_
Definition: IpInexactCq.hpp:124
Ipopt::InexactCq::curr_W_times_vec_x
SmartPtr< const Vector > curr_W_times_vec_x(const Vector &vec_x)
Compute x component of the W*vec product for the current Hessian and a vector.
Ipopt::InexactCq::curr_Wu_x
SmartPtr< const Vector > curr_Wu_x()
Compute x component of the W*u product for the current values.
Ipopt::CachedResults
Cache Priority Enum.
Definition: IpCachedResults.hpp:70
Ipopt::InexactCq::ip_nlp_
IpoptNLP * ip_nlp_
Definition: IpInexactCq.hpp:122
Ipopt::InexactCq::curr_jac_times_normal_c
SmartPtr< const Vector > curr_jac_times_normal_c()
Compute the c-component of the product of the current constraint Jacobian with the current normal ste...
Ipopt::IpoptData::AdditionalData
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
Definition: IpIpoptData.hpp:502
IpInexactData.hpp
Ipopt::IpoptData
Class to organize all the data required by the algorithm.
Definition: IpIpoptData.hpp:83
Ipopt::InexactCq::operator=
void operator=(const InexactCq &)
Overloaded Equals Operator.
Ipopt::InexactCq::slack_scaled_norm_cache_
CachedResults< Number > slack_scaled_norm_cache_
Definition: IpInexactCq.hpp:142
Ipopt::InexactCq::curr_uWu
Number curr_uWu()
Compute the u^T*W*u product for the current values.
Ipopt::InexactCq::slack_scale_max_
Number slack_scale_max_
Upper bound on slack-based scaling factors.
Definition: IpInexactCq.hpp:153
DBG_ASSERT
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
Ipopt::InexactCq::curr_scaled_Ac_norm_cache_
CachedResults< Number > curr_scaled_Ac_norm_cache_
Definition: IpInexactCq.hpp:141
Ipopt::InexactCq::ip_data_
IpoptData * ip_data_
Definition: IpInexactCq.hpp:123
Ipopt::InexactCq
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Definition: IpInexactCq.hpp:22
Ipopt::InexactData
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm...
Definition: IpInexactData.hpp:19
Ipopt::InexactCq::curr_scaling_slacks
SmartPtr< const Vector > curr_scaling_slacks()
Vector of all inequality slacks for doing the slack-based scaling.
Ipopt::Journalist
Class responsible for all message output.
Definition: IpJournalist.hpp:134
Ipopt::InexactCq::curr_jac_times_normal_d
SmartPtr< const Vector > curr_jac_times_normal_d()
Compute the d-component of the product of the current constraint Jacobian with the current normal ste...
Ipopt::InexactCq::curr_jac_times_normal_c_cache_
CachedResults< SmartPtr< const Vector > > curr_jac_times_normal_c_cache_
Definition: IpInexactCq.hpp:148
Ipopt::InexactCq::curr_Wu_s_cache_
CachedResults< SmartPtr< const Vector > > curr_Wu_s_cache_
Definition: IpInexactCq.hpp:146
Ipopt::InexactCq::curr_Wu_x_cache_
CachedResults< SmartPtr< const Vector > > curr_Wu_x_cache_
Definition: IpInexactCq.hpp:145
Ipopt::IpoptNLP
This is the abstract base class for classes that map the traditional NLP into something that is more ...
Definition: IpIpoptNLP.hpp:28
Ipopt::InexactCq::RegisterOptions
static void RegisterOptions(const SmartPtr< RegisteredOptions > &roptions)
Methods for IpoptType.
Ipopt::InexactCq::slack_scaled_norm
Number slack_scaled_norm(const Vector &x, const Vector &s)
Compute the 2-norm of a slack-scaled vector with x and s component.
Ipopt::InexactCq::curr_W_times_vec_x_cache_
CachedResults< SmartPtr< const Vector > > curr_W_times_vec_x_cache_
Definition: IpInexactCq.hpp:143
Ipopt::IpoptAdditionalCq
Base class for additional calculated quantities that is special to a particular type of algorithm...
Definition: IpIpoptCalculatedQuantities.hpp:40
Ipopt::InexactCq::curr_W_times_vec_s_cache_
CachedResults< SmartPtr< const Vector > > curr_W_times_vec_s_cache_
Definition: IpInexactCq.hpp:144