def METHOD_NAME(v, z, w):
    from pykeops.torch import LazyTensor
    v_l = LazyTensor(rearrange(v, "b N -> b 1 N 1"))
    z_l = LazyTensor(rearrange(z, "L -> 1 L 1 1"))
    w_l = LazyTensor(rearrange(w, "b N -> b 1 N 1"))
    sub = z_l - w_l  # (b N L 1), for some reason it doesn't display the last dimension
    div = v_l / sub
    s = div.sum(dim=2, backend="GPU")
    return s.squeeze(-1)