- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.5.1/Ipopt/src/Interfaces/IpSolveStatistics.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2005, 2006 International Business Machines and others.
    00002 // All Rights Reserved.
    00003 // This code is published under the Common Public License.
    00004 //
    00005 // $Id: IpSolveStatistics.hpp 735 2006-06-04 06:10:05Z andreasw $
    00006 //
    00007 // Authors:  Carl Laird, Andreas Waechter          IBM    2005-08-15
    00008
    00009 #ifndef __IPSOLVESTATISTICS_HPP__
    00010 #define __IPSOLVESTATISTICS_HPP__
    00011
    00012 #include "IpReferenced.hpp"
    00013 #include "IpSmartPtr.hpp"
    00014
    00015 namespace Ipopt
    00016 {
    00017   // forward declaration (to avoid inclusion of too many header files)
    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     /* Total CPU time */
    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 } // namespace Ipopt
    00135
    00136 #endif