IpSolveStatistics.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __IPSOLVESTATISTICS_HPP__
00010 #define __IPSOLVESTATISTICS_HPP__
00011
00012 #include "IpReferenced.hpp"
00013 #include "IpSmartPtr.hpp"
00014
00015 namespace Ipopt
00016 {
00017
00018 class IpoptNLP;
00019 class IpoptData;
00020 class IpoptCalculatedQuantities;
00021
00027 class SolveStatistics : public ReferencedObject
00028 {
00029 public:
00036 SolveStatistics(const SmartPtr<IpoptNLP>& ip_nlp,
00037 const SmartPtr<IpoptData>& ip_data,
00038 const SmartPtr<IpoptCalculatedQuantities>& ip_cq);
00039
00041 virtual ~SolveStatistics()
00042 {}
00044
00049 Index IterationCount() const;
00051 Number TotalCPUTime() const;
00053 void NumberOfEvaluations(Index& num_obj_evals,
00054 Index& num_constr_evals,
00055 Index& num_obj_grad_evals,
00056 Index& num_constr_jac_evals,
00057 Index& num_hess_evals) const;
00059 void Infeasibilities(Number& dual_inf,
00060 Number& constr_viol,
00061 Number& complementarity,
00062 Number& kkt_error) const;
00064 void ScaledInfeasibilities(Number& scaled_dual_inf,
00065 Number& scaled_constr_viol,
00066 Number& scaled_complementarity,
00067 Number& scaled_kkt_error) const;
00069 Number FinalObjective() const;
00071 Number FinalScaledObjective() const;
00073
00074 private:
00084 SolveStatistics();
00085
00087 SolveStatistics(const SolveStatistics&);
00088
00090 void operator=(const SolveStatistics&);
00092
00096 Index num_iters_;
00097
00098 Number total_cpu_time_;
00100 Index num_obj_evals_;
00103 Index num_constr_evals_;
00105 Index num_obj_grad_evals_;
00107 Index num_constr_jac_evals_;
00109 Index num_hess_evals_;
00110
00112 Number scaled_obj_val_;
00114 Number obj_val_;
00116 Number scaled_dual_inf_;
00118 Number dual_inf_;
00120 Number scaled_constr_viol_;
00122 Number constr_viol_;
00124 Number scaled_compl_;
00126 Number compl_;
00128 Number scaled_kkt_error_;
00130 Number kkt_error_;
00132 };
00133
00134 }
00135
00136 #endif