You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							213 lines
						
					
					
						
							4.9 KiB
						
					
					
				
			
		
		
	
	
							213 lines
						
					
					
						
							4.9 KiB
						
					
					
				// Copyright (C) 2005, 2008 International Business Machines and others.
 | 
						|
// All Rights Reserved.
 | 
						|
// This code is published under the Eclipse Public License.
 | 
						|
//
 | 
						|
// $Id: IpTimingStatistics.hpp 2005 2011-06-06 12:55:16Z stefan $
 | 
						|
//
 | 
						|
// Authors:  Andreas Waechter               IBM    2005-09-19
 | 
						|
 | 
						|
#ifndef __IPTIMINGSTATISTICS_HPP__
 | 
						|
#define __IPTIMINGSTATISTICS_HPP__
 | 
						|
 | 
						|
#include "IpReferenced.hpp"
 | 
						|
#include "IpJournalist.hpp"
 | 
						|
#include "IpTimedTask.hpp"
 | 
						|
 | 
						|
namespace Ipopt
 | 
						|
{
 | 
						|
  /** This class collects all timing statistics for Ipopt.
 | 
						|
   */
 | 
						|
  class TimingStatistics : public ReferencedObject
 | 
						|
  {
 | 
						|
  public:
 | 
						|
    /**@name Constructors/Destructors */
 | 
						|
    //@{
 | 
						|
    /** Default constructor. */
 | 
						|
    TimingStatistics()
 | 
						|
    {}
 | 
						|
 | 
						|
    /** Default destructor */
 | 
						|
    virtual ~TimingStatistics()
 | 
						|
    {}
 | 
						|
    //@}
 | 
						|
 | 
						|
    /** Method for resetting all times. */
 | 
						|
    void ResetTimes();
 | 
						|
 | 
						|
    /** Method for printing all timing information */
 | 
						|
    void PrintAllTimingStatistics(Journalist& jnlst,
 | 
						|
                                  EJournalLevel level,
 | 
						|
                                  EJournalCategory category) const;
 | 
						|
 | 
						|
    /**@name Accessor methods to all timed tasks. */
 | 
						|
    //@{
 | 
						|
    TimedTask& OverallAlgorithm()
 | 
						|
    {
 | 
						|
      return OverallAlgorithm_;
 | 
						|
    }
 | 
						|
    TimedTask& PrintProblemStatistics()
 | 
						|
    {
 | 
						|
      return PrintProblemStatistics_;
 | 
						|
    }
 | 
						|
    TimedTask& InitializeIterates()
 | 
						|
    {
 | 
						|
      return InitializeIterates_;
 | 
						|
    }
 | 
						|
    TimedTask& UpdateHessian()
 | 
						|
    {
 | 
						|
      return UpdateHessian_;
 | 
						|
    }
 | 
						|
    TimedTask& OutputIteration()
 | 
						|
    {
 | 
						|
      return OutputIteration_;
 | 
						|
    }
 | 
						|
    TimedTask& UpdateBarrierParameter()
 | 
						|
    {
 | 
						|
      return UpdateBarrierParameter_;
 | 
						|
    }
 | 
						|
    TimedTask& ComputeSearchDirection()
 | 
						|
    {
 | 
						|
      return ComputeSearchDirection_;
 | 
						|
    }
 | 
						|
    TimedTask& ComputeAcceptableTrialPoint()
 | 
						|
    {
 | 
						|
      return ComputeAcceptableTrialPoint_;
 | 
						|
    }
 | 
						|
    TimedTask& AcceptTrialPoint()
 | 
						|
    {
 | 
						|
      return AcceptTrialPoint_;
 | 
						|
    }
 | 
						|
    TimedTask& CheckConvergence()
 | 
						|
    {
 | 
						|
      return CheckConvergence_;
 | 
						|
    }
 | 
						|
 | 
						|
    TimedTask& PDSystemSolverTotal()
 | 
						|
    {
 | 
						|
      return PDSystemSolverTotal_;
 | 
						|
    }
 | 
						|
    TimedTask& PDSystemSolverSolveOnce()
 | 
						|
    {
 | 
						|
      return PDSystemSolverSolveOnce_;
 | 
						|
    }
 | 
						|
    TimedTask& ComputeResiduals()
 | 
						|
    {
 | 
						|
      return ComputeResiduals_;
 | 
						|
    }
 | 
						|
    TimedTask& StdAugSystemSolverMultiSolve()
 | 
						|
    {
 | 
						|
      return StdAugSystemSolverMultiSolve_;
 | 
						|
    }
 | 
						|
    TimedTask& LinearSystemScaling()
 | 
						|
    {
 | 
						|
      return LinearSystemScaling_;
 | 
						|
    }
 | 
						|
    TimedTask& LinearSystemSymbolicFactorization()
 | 
						|
    {
 | 
						|
      return LinearSystemSymbolicFactorization_;
 | 
						|
    }
 | 
						|
    TimedTask& LinearSystemFactorization()
 | 
						|
    {
 | 
						|
      return LinearSystemFactorization_;
 | 
						|
    }
 | 
						|
    TimedTask& LinearSystemBackSolve()
 | 
						|
    {
 | 
						|
      return LinearSystemBackSolve_;
 | 
						|
    }
 | 
						|
    TimedTask& LinearSystemStructureConverter()
 | 
						|
    {
 | 
						|
      return LinearSystemStructureConverter_;
 | 
						|
    }
 | 
						|
    TimedTask& LinearSystemStructureConverterInit()
 | 
						|
    {
 | 
						|
      return LinearSystemStructureConverterInit_;
 | 
						|
    }
 | 
						|
    TimedTask& QualityFunctionSearch()
 | 
						|
    {
 | 
						|
      return QualityFunctionSearch_;
 | 
						|
    }
 | 
						|
    TimedTask& TryCorrector()
 | 
						|
    {
 | 
						|
      return TryCorrector_;
 | 
						|
    }
 | 
						|
 | 
						|
    TimedTask& Task1()
 | 
						|
    {
 | 
						|
      return Task1_;
 | 
						|
    }
 | 
						|
    TimedTask& Task2()
 | 
						|
    {
 | 
						|
      return Task2_;
 | 
						|
    }
 | 
						|
    TimedTask& Task3()
 | 
						|
    {
 | 
						|
      return Task3_;
 | 
						|
    }
 | 
						|
    TimedTask& Task4()
 | 
						|
    {
 | 
						|
      return Task4_;
 | 
						|
    }
 | 
						|
    TimedTask& Task5()
 | 
						|
    {
 | 
						|
      return Task5_;
 | 
						|
    }
 | 
						|
    TimedTask& Task6()
 | 
						|
    {
 | 
						|
      return Task6_;
 | 
						|
    }
 | 
						|
    //@}
 | 
						|
 | 
						|
  private:
 | 
						|
    /**@name Default Compiler Generated Methods
 | 
						|
     * (Hidden to avoid implicit creation/calling).
 | 
						|
     * These methods are not implemented and 
 | 
						|
     * we do not want the compiler to implement
 | 
						|
     * them for us, so we declare them private
 | 
						|
     * and do not define them. This ensures that
 | 
						|
     * they will not be implicitly created/called. */
 | 
						|
    //@{
 | 
						|
    /** Copy Constructor */
 | 
						|
    TimingStatistics(const TimingStatistics&);
 | 
						|
 | 
						|
    /** Overloaded Equals Operator */
 | 
						|
    void operator=(const TimingStatistics&);
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**@name All timed tasks. */
 | 
						|
    //@{
 | 
						|
    TimedTask OverallAlgorithm_;
 | 
						|
    TimedTask PrintProblemStatistics_;
 | 
						|
    TimedTask InitializeIterates_;
 | 
						|
    TimedTask UpdateHessian_;
 | 
						|
    TimedTask OutputIteration_;
 | 
						|
    TimedTask UpdateBarrierParameter_;
 | 
						|
    TimedTask ComputeSearchDirection_;
 | 
						|
    TimedTask ComputeAcceptableTrialPoint_;
 | 
						|
    TimedTask AcceptTrialPoint_;
 | 
						|
    TimedTask CheckConvergence_;
 | 
						|
 | 
						|
    TimedTask PDSystemSolverTotal_;
 | 
						|
    TimedTask PDSystemSolverSolveOnce_;
 | 
						|
    TimedTask ComputeResiduals_;
 | 
						|
    TimedTask StdAugSystemSolverMultiSolve_;
 | 
						|
    TimedTask LinearSystemScaling_;
 | 
						|
    TimedTask LinearSystemSymbolicFactorization_;
 | 
						|
    TimedTask LinearSystemFactorization_;
 | 
						|
    TimedTask LinearSystemBackSolve_;
 | 
						|
    TimedTask LinearSystemStructureConverter_;
 | 
						|
    TimedTask LinearSystemStructureConverterInit_;
 | 
						|
    TimedTask QualityFunctionSearch_;
 | 
						|
    TimedTask TryCorrector_;
 | 
						|
 | 
						|
    TimedTask Task1_;
 | 
						|
    TimedTask Task2_;
 | 
						|
    TimedTask Task3_;
 | 
						|
    TimedTask Task4_;
 | 
						|
    TimedTask Task5_;
 | 
						|
    TimedTask Task6_;
 | 
						|
    //@}
 | 
						|
  };
 | 
						|
 | 
						|
} // namespace Ipopt
 | 
						|
 | 
						|
#endif
 | 
						|
 |