Ipopt  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
IpTimingStatistics.hpp
Go to the documentation of this file.
00001 // Copyright (C) 2005, 2008 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Eclipse Public License.
00004 //
00005 // $Id$
00006 //
00007 // Authors:  Andreas Waechter               IBM    2005-09-19
00008 
00009 #ifndef __IPTIMINGSTATISTICS_HPP__
00010 #define __IPTIMINGSTATISTICS_HPP__
00011 
00012 #include "IpReferenced.hpp"
00013 #include "IpJournalist.hpp"
00014 #include "IpTimedTask.hpp"
00015 
00016 namespace Ipopt
00017 {
00020   class TimingStatistics : public ReferencedObject
00021   {
00022   public:
00026     TimingStatistics()
00027     {}
00028 
00030     virtual ~TimingStatistics()
00031     {}
00033 
00035     void ResetTimes();
00036 
00038     void PrintAllTimingStatistics(Journalist& jnlst,
00039                                   EJournalLevel level,
00040                                   EJournalCategory category) const;
00041 
00044     TimedTask& OverallAlgorithm()
00045     {
00046       return OverallAlgorithm_;
00047     }
00048     TimedTask& PrintProblemStatistics()
00049     {
00050       return PrintProblemStatistics_;
00051     }
00052     TimedTask& InitializeIterates()
00053     {
00054       return InitializeIterates_;
00055     }
00056     TimedTask& UpdateHessian()
00057     {
00058       return UpdateHessian_;
00059     }
00060     TimedTask& OutputIteration()
00061     {
00062       return OutputIteration_;
00063     }
00064     TimedTask& UpdateBarrierParameter()
00065     {
00066       return UpdateBarrierParameter_;
00067     }
00068     TimedTask& ComputeSearchDirection()
00069     {
00070       return ComputeSearchDirection_;
00071     }
00072     TimedTask& ComputeAcceptableTrialPoint()
00073     {
00074       return ComputeAcceptableTrialPoint_;
00075     }
00076     TimedTask& AcceptTrialPoint()
00077     {
00078       return AcceptTrialPoint_;
00079     }
00080     TimedTask& CheckConvergence()
00081     {
00082       return CheckConvergence_;
00083     }
00084 
00085     TimedTask& PDSystemSolverTotal()
00086     {
00087       return PDSystemSolverTotal_;
00088     }
00089     TimedTask& PDSystemSolverSolveOnce()
00090     {
00091       return PDSystemSolverSolveOnce_;
00092     }
00093     TimedTask& ComputeResiduals()
00094     {
00095       return ComputeResiduals_;
00096     }
00097     TimedTask& StdAugSystemSolverMultiSolve()
00098     {
00099       return StdAugSystemSolverMultiSolve_;
00100     }
00101     TimedTask& LinearSystemScaling()
00102     {
00103       return LinearSystemScaling_;
00104     }
00105     TimedTask& LinearSystemSymbolicFactorization()
00106     {
00107       return LinearSystemSymbolicFactorization_;
00108     }
00109     TimedTask& LinearSystemFactorization()
00110     {
00111       return LinearSystemFactorization_;
00112     }
00113     TimedTask& LinearSystemBackSolve()
00114     {
00115       return LinearSystemBackSolve_;
00116     }
00117     TimedTask& LinearSystemStructureConverter()
00118     {
00119       return LinearSystemStructureConverter_;
00120     }
00121     TimedTask& LinearSystemStructureConverterInit()
00122     {
00123       return LinearSystemStructureConverterInit_;
00124     }
00125     TimedTask& QualityFunctionSearch()
00126     {
00127       return QualityFunctionSearch_;
00128     }
00129     TimedTask& TryCorrector()
00130     {
00131       return TryCorrector_;
00132     }
00133 
00134     TimedTask& Task1()
00135     {
00136       return Task1_;
00137     }
00138     TimedTask& Task2()
00139     {
00140       return Task2_;
00141     }
00142     TimedTask& Task3()
00143     {
00144       return Task3_;
00145     }
00146     TimedTask& Task4()
00147     {
00148       return Task4_;
00149     }
00150     TimedTask& Task5()
00151     {
00152       return Task5_;
00153     }
00154     TimedTask& Task6()
00155     {
00156       return Task6_;
00157     }
00159 
00160   private:
00170     TimingStatistics(const TimingStatistics&);
00171 
00173     void operator=(const TimingStatistics&);
00175 
00178     TimedTask OverallAlgorithm_;
00179     TimedTask PrintProblemStatistics_;
00180     TimedTask InitializeIterates_;
00181     TimedTask UpdateHessian_;
00182     TimedTask OutputIteration_;
00183     TimedTask UpdateBarrierParameter_;
00184     TimedTask ComputeSearchDirection_;
00185     TimedTask ComputeAcceptableTrialPoint_;
00186     TimedTask AcceptTrialPoint_;
00187     TimedTask CheckConvergence_;
00188 
00189     TimedTask PDSystemSolverTotal_;
00190     TimedTask PDSystemSolverSolveOnce_;
00191     TimedTask ComputeResiduals_;
00192     TimedTask StdAugSystemSolverMultiSolve_;
00193     TimedTask LinearSystemScaling_;
00194     TimedTask LinearSystemSymbolicFactorization_;
00195     TimedTask LinearSystemFactorization_;
00196     TimedTask LinearSystemBackSolve_;
00197     TimedTask LinearSystemStructureConverter_;
00198     TimedTask LinearSystemStructureConverterInit_;
00199     TimedTask QualityFunctionSearch_;
00200     TimedTask TryCorrector_;
00201 
00202     TimedTask Task1_;
00203     TimedTask Task2_;
00204     TimedTask Task3_;
00205     TimedTask Task4_;
00206     TimedTask Task5_;
00207     TimedTask Task6_;
00209   };
00210 
00211 } // namespace Ipopt
00212 
00213 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines