def METHOD_NAME(image,
                           theta,
                           projection,
                           projection_shift=0.):
    """
    Compute update to a reconstruction estimate from a single projection
    using bilinear interpolation.
    Parameters
    ----------
    image : 2D array, dtype=float
        Current reconstruction estimate
    theta : float
        Angle of the projection
    projection : 1D array, dtype=float
        Projected values, taken from the sinogram
    projection_shift : float
        Shift the position of the projection by this many pixels before
        using it to compute an update to the reconstruction estimate
    Returns
    -------
    image_update : 2D array, dtype=float
        Array of same shape as ``image`` containing updates that should be
        added to ``image`` to improve the reconstruction estimate
    """
    image_update = np.zeros_like(image)
    for i in range(projection.shape[0]):
        ray_position = i + projection_shift
        bilinear_ray_update(image, image_update, theta, ray_position,
                            projection[i])
    return image_update