Ipopt  3.11.8
 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 
14 #include "IpInexactData.hpp"
15 
16 namespace Ipopt
17 {
18 
23  {
24  public:
25 
29  InexactCq(IpoptNLP* ip_nlp,
30  IpoptData* ip_data,
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 
54 
57 
60 
63 
66 
69  Number slack_scaled_norm(const Vector& x, const Vector &s);
70 
74 
78 
82 
86 
89  Number curr_uWu();
90 
94 
98 
99  private:
109  InexactCq();
110 
112  InexactCq(const InexactCq&);
113 
115  void operator=(const InexactCq&);
117 
126 
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 
151 
154  };
155 
156 } // namespace Ipopt
157 
158 #endif