def klGauss(x, y, sig2=0.25):
    """ Kullback-Leibler divergence for Gaussian distributions. https://en.wikipedia.org/wiki/Normal_distribution#Kullback.E2.80.93Leibler_divergence

    >>> klGauss(3, 3)
    0.0
    >>> klGauss(3, 6)
    18.0
    >>> klGauss(1, 2)
    2.0
    >>> klGauss(2, 1)  # And this KL is symetric
    2.0
    >>> klGauss(4, 2)
    8.0
    >>> klGauss(6, 8)
    8.0

    - x, y can be negative:

    >>> klGauss(-3, 2)
    50.0
    >>> klGauss(3, -2)
    50.0
    >>> klGauss(-3, -2)
    2.0
    >>> klGauss(3, 2)
    2.0

    - With other values for `sig2`:

    >>> klGauss(3, 3, sig2=10)
    0.0
    >>> klGauss(3, 6, sig2=10)
    0.45
    >>> klGauss(1, 2, sig2=10)
    0.05
    >>> klGauss(2, 1, sig2=10)  # And this KL is symetric
    0.05
    >>> klGauss(4, 2, sig2=10)
    0.2
    >>> klGauss(6, 8, sig2=10)
    0.2
    """
    return (x - y) ** 2 / (2 * sig2)