def frange(a, b, n):
    """
    kind of like a floating point range function

    :param a: the start point
    :param b: the end point
    :param n: the number of intervals you want.

    :returns: a sequence of floating point nubers, evenly spaced between
    a and b

    result[0] == a
    result[-1] == b
    len(result) == n+1

    n specifies the number of intervals, so you get a nice delta. i.e.
    frange(1,10,100) == [1.0, 1.1, 1.2, ..., 9.8, 9.9, 10.0]

    """
    delta = (float(b) - a) / n
    return [a + i*delta for i in range(n+1)]