In [ ]:
import matplotlib.pyplot as plt 
import cv2

# def log(s):
#     half_ker_sz = 3*s # should be bigger than sqrt(2)*s
#     X,Y = np.meshgrid(np.arange(-half_ker_sz,half_ker_sz),np.arange(-half_ker_sz,half_ker_sz))
    
#     coeff = 1/(np.pi*s**4)
#     alpha =(X**2+Y**2)/(2*s**2)
#     brackets = alpha -1
#     exp = np.exp(-alpha)

#     log = coeff*brackets*exp

#     return log

# def step(r):
#     # step = np.concatenate((np.zeros((2*sz,)),np.ones((sz,)),np.zeros((2*sz,))))
#     im_sz = 200
#     im = np.zeros((im_sz+1,im_sz+1,3))
#     im = cv2.circle(im, (int(im_sz/2), int(im_sz/2)), r, (255, 255, 255), -1)
#     return im

# plt.imshow(step(30))
# plt.show()
    
# plt.imshow(log(30))
# plt.show()

def log(s,x):
    # half_ker_sz = 3*s # should be bigger than sqrt(2)*s
    
    coeff = 1/(np.sqrt(2*np.pi)*s**3)
    alpha =(x**2)/(s**2)
    brackets = alpha -1
    exp = np.exp(-0.5*alpha)

    log = coeff*brackets*exp

    return log

sz = 100
step = np.concatenate((np.zeros((2*sz,)),np.ones((sz,)),np.zeros((2*sz,))))

# dx = 0.1
# x = np.arange(-half_ker_sz,half_ker_sz)

x = np.linspace(-100,100,)
#http://www.cim.mcgill.ca/~langer/558/2009/lecture11.pdf