def bilinear_interpolation_01(x, y, values):
    """Interpolate values given at the corners of
    [0,1]x[0,1] square.

    Parameters:
        x : float
        y : float
        points : ((v00, v01), (v10, v11))
            input grid with 4 values from which to interpolate.
            Inner dimension = x, thus v01 = value at (x=1,y=0).

    Returns:
        float
            interpolated value
    """
    return (values[0][0] * (1 - x) * (1 - y) +
            values[0][1] * x * (1 - y) +
            values[1][0] * (1 - x) * y +
            values[1][1] * x * y)