10#include "Teuchos_CTimeMonitor.h"
12#include "Teuchos_implicit_cast.hpp"
13#include "Teuchos_StandardCatchMacros.hpp"
14#include "Teuchos_VerboseObject.hpp"
15#include "Teuchos_CompilerCodeTweakMacros.hpp"
22TimerArray_t timerArray;
28int Teuchos_startTimer(
char timerName[],
int timerID )
36 timerArray.back()->start();
37 return timerArray.size()-1;
41 timerID >= implicit_cast<int>(timerArray.size()), std::logic_error,
42 "Teuchos_startTimer(...): Error, timerID="<<timerID
43 <<
" is >= timerArray.size()="<<timerArray.size()
44 <<
" for timerName=\""<<timerName<<
"\"!"
48 timer->isRunning(), std::logic_error,
49 "Teuchos_startTimer(...): Error, timerID="<<timerID
50 <<
", timerName=\""<<timerName<<
"\" is already running!"
63void Teuchos_stopTimer(
int timerID )
69 timerID < 0 || timerID >= implicit_cast<int>(timerArray.size()),
71 "Teuchos_stopTimer(...): Error, timerID="<<timerID<<
" is invalid!"
76 timer->incrementNumCalls();
Scope guard for Teuchos::Time, with MPI collective timer reporting.
Smart reference counting pointer class for automatic garbage collection.
static RCP< FancyOStream > getDefaultOStream()
Get the default output stream object.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Macro for throwing an exception with breakpointing to ease debugging.
TypeTo implicit_cast(const TypeFrom &t)
Perform an implicit cast of concrete types with the casted object returned by value.
#define TEUCHOS_STANDARD_CATCH_STATEMENTS(VERBOSE, ERR_STREAM, SUCCESS_FLAG)
Simple macro that catches and reports standard exceptions and other exceptions.