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
|
|
|