def frange(start, end, step=1):
    """Generalization of the built-in :func:`range` function that supports fractional step
    sizes.
    """
    current = start
    while current < end:
        yield current
        current += step
