It uses `functools.partial` to create a partial function with the fixed arguments at the initialization step. Timing ``X**2`` is still possible using something like below but I don't know how accurate it is. I won't say this is good for absolute timing, but it is useful for relative timing of the same function.

    >>> from astropy.utils import timer
    >>> p = timer.SimpleRunTimePredictor(lambda x: x**2)
    >>> p.time_func([2,3,5])
    >>> p.results
    {2: 4, 3: 9, 5: 25}