Source code for quantecon.util.timing

"""
Filename: timing.py
Authors: Pablo Winant
Date: 10/16/14
Provides Matlab-like tic, tac and toc functions.
"""


class __Timer__:
    '''Computes elapsed time, between tic, tac, and toc.

    Methods
    -------
    tic :
        Resets timer.
    toc :
        Returns and prints time elapsed since last tic().
    tac :
        Returns and prints time elapsed since last
             tic(), tac() or toc() whichever occured last.
    '''

    start = None
    last = None

    def tic(self):
        """Resets timer."""

        import time

        t = time.time()
        self.start = t
        self.last = t

    def tac(self):
        """Returns and prints time elapsed since last tic()"""

        import time

        if self.start is None:
            raise Exception("tac() without tic()")

        t = time.time()
        elapsed = t-self.last
        self.last = t

        print("TAC: Elapsed: {} seconds.".format(elapsed))
        return elapsed

    def toc(self):
        """Returns and prints time elapsed since last
        tic() or tac() whichever occured last"""

        import time

        if self.start is None:
            raise Exception("toc() without tic()")

        t = time.time()
        self.last = t
        elapsed = t-self.start

        print("TOC: Elapsed: {} seconds.".format(elapsed))
        return elapsed

__timer__ = __Timer__()


[docs]def tic(): """Saves time for future use with tac or toc.""" return __timer__.tic()
[docs]def tac(): """Prints and returns elapsed time since last tic, tac or toc.""" return __timer__.tac()
[docs]def toc(): """Prints and returns elapsed time since last tic, tac or toc.""" return __timer__.toc()