00001 // Copyright (C) 2007 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // $Id: IpIpoptCalculatedQuantities.hpp 988 2007-06-01 21:57:27Z andreasw $ 00006 // 00007 // Authors: Andreas Waechter IBM 2007-06-04 00008 // derived from IpIpoptCalculatedQuantities.hpp 00009 00010 #ifndef __IPCGPENALTYCQ_HPP__ 00011 #define __IPCGPENALTYCQ_HPP__ 00012 00013 #include "IpIpoptCalculatedQuantities.hpp" 00014 00015 namespace Ipopt 00016 { 00017 00021 class CGPenaltyCq : public ReferencedObject 00022 { 00023 public: 00024 00028 CGPenaltyCq(IpoptNLP* ip_nlp, 00029 IpoptData* ip_data, 00030 IpoptCalculatedQuantities* ip_cg); 00031 00033 virtual ~CGPenaltyCq(); 00035 00039 bool Initialize(const Journalist& jnlst, 00040 const OptionsList& options, 00041 const std::string& prefix); 00042 00045 00047 Number curr_jac_cd_norm(Index nrm_type); 00049 Number curr_scaled_y_Amax(); 00051 Number curr_added_y_nrm2(); 00052 00054 Number curr_penalty_function(); 00056 Number trial_penalty_function(); 00059 Number curr_direct_deriv_penalty_function(); 00062 Number curr_fast_direct_deriv_penalty_function(); 00063 00065 Number dT_times_barH_times_d(); 00066 00067 00071 Number curr_cg_pert_fact(); 00072 00074 Number compute_curr_cg_penalty(const Number ); 00075 00077 Number compute_curr_cg_penalty_scale(); 00079 00082 static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions); 00084 00085 private: 00095 CGPenaltyCq(); 00096 00098 CGPenaltyCq(const CGPenaltyCq&); 00099 00101 void operator=(const CGPenaltyCq&); 00103 00108 IpoptNLP* ip_nlp_; 00109 IpoptData* ip_data_; 00110 IpoptCalculatedQuantities* ip_cq_; 00112 00115 CachedResults<Number> curr_fast_direct_deriv_penalty_function_cache_; 00116 CachedResults<Number> curr_jac_cd_norm_cache_; 00117 CachedResults<Number> curr_scaled_y_Amax_cache_; 00118 CachedResults<Number> curr_added_y_nrm2_cache_; 00120 CachedResults<Number> curr_penalty_function_cache_; 00122 CachedResults<Number> trial_penalty_function_cache_; 00125 CachedResults<Number> curr_direct_deriv_penalty_function_cache_; 00127 CachedResults<Number> curr_cg_pert_fact_cache_; 00129 00132 Number reference_infeasibility_; 00134 00137 bool initialize_called_; 00138 }; 00139 00140 } // namespace Ipopt 00141 00142 #endif