- Main Page
- Classes
- Files

- File List
- File Members

# src/Algorithm/Inexact/IpInexactCq.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2008 International Business Machines and others.
    00002 // All Rights Reserved.
    00003 // This code is published under the Eclipse Public License.
    00004 //
    00005 // $Id: IpInexactCq.hpp 1861 2010-12-21 21:34:47Z andreasw $
    00006 //
    00007 // Authors:  Andreas Waechter           IBM    2008-08-31
    00008 //               derived from IpIpoptCalculatedQuantities.hpp
    00009
    00010 #ifndef __IPINEXACTCQ_HPP__
    00011 #define __IPINEXACTCQ_HPP__
    00012
    00013 #include "IpIpoptCalculatedQuantities.hpp"
    00014 #include "IpInexactData.hpp"
    00015
    00016 namespace Ipopt
    00017 {
    00018
    00022   class InexactCq : public IpoptAdditionalCq
    00023   {
    00024   public:
    00025
    00029     InexactCq(IpoptNLP* ip_nlp,
    00030               IpoptData* ip_data,
    00031               IpoptCalculatedQuantities* ip_cq);
    00032
    00034     virtual ~InexactCq();
    00036
    00040     bool Initialize(const Journalist& jnlst,
    00041                     const OptionsList& options,
    00042                     const std::string& prefix);
    00043
    00046     static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions);
    00048
    00053     SmartPtr<const Vector> curr_jac_cdT_times_curr_cdminuss();
    00054
    00056     SmartPtr<const Vector> curr_scaling_slacks();
    00057
    00059     SmartPtr<const Vector> curr_slack_scaled_d_minus_s();
    00060
    00062     Number curr_scaled_Ac_norm();
    00063
    00065     Number curr_scaled_A_norm2();
    00066
    00069     Number slack_scaled_norm(const Vector& x, const Vector &s);
    00070
    00073     SmartPtr<const Vector> curr_W_times_vec_x(const Vector& vec_x);
    00074
    00077     SmartPtr<const Vector> curr_W_times_vec_s(const Vector& vec_s);
    00078
    00081     SmartPtr<const Vector> curr_Wu_x();
    00082
    00085     SmartPtr<const Vector> curr_Wu_s();
    00086
    00089     Number curr_uWu();
    00090
    00093     SmartPtr<const Vector> curr_jac_times_normal_c();
    00094
    00097     SmartPtr<const Vector> curr_jac_times_normal_d();
    00098
    00099   private:
    00109     InexactCq();
    00110
    00112     InexactCq(const InexactCq&);
    00113
    00115     void operator=(const InexactCq&);
    00117
    00122     IpoptNLP* ip_nlp_;
    00123     IpoptData* ip_data_;
    00124     IpoptCalculatedQuantities* ip_cq_;
    00126
    00128     InexactData& InexData()
    00129     {
    00130       InexactData& inexact_data =
    00131         static_cast<InexactData&>(ip_data_->AdditionalData());
    00132       DBG_ASSERT(dynamic_cast<InexactData*>(&ip_data_->AdditionalData()));
    00133       return inexact_data;
    00134     }
    00135
    00138     CachedResults<SmartPtr<const Vector> > curr_jac_cdT_times_curr_cdminuss_cache_;
    00139     CachedResults<SmartPtr<const Vector> > curr_scaling_slacks_cache_;
    00140     CachedResults<SmartPtr<const Vector> > curr_slack_scaled_d_minus_s_cache_;
    00141     CachedResults<Number> curr_scaled_Ac_norm_cache_;
    00142     CachedResults<Number> slack_scaled_norm_cache_;
    00143     CachedResults<SmartPtr<const Vector> > curr_W_times_vec_x_cache_;
    00144     CachedResults<SmartPtr<const Vector> > curr_W_times_vec_s_cache_;
    00145     CachedResults<SmartPtr<const Vector> > curr_Wu_x_cache_;
    00146     CachedResults<SmartPtr<const Vector> > curr_Wu_s_cache_;
    00147     CachedResults<Number> curr_uWu_cache_;
    00148     CachedResults<SmartPtr<const Vector> > curr_jac_times_normal_c_cache_;
    00149     CachedResults<SmartPtr<const Vector> > curr_jac_times_normal_d_cache_;
    00151
    00153     Number slack_scale_max_;
    00154   };
    00155
    00156 } // namespace Ipopt
    00157
    00158 #endif

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines