import numpy as np
import time

def my_unit_circle(r):
    d = 2*r + 1
    rx, ry = d/2, d/2
    x, y = np.indices((d, d))
    return (np.abs(np.hypot(rx - x, ry - y)-r) < 0.5).astype(int)
   
def unit_circle_vectorized(r):
    A = np.arange(-r,r+1)**2
    dists = np.sqrt(A[:,None] + A)
    return (np.abs(dists-r)<0.5).astype(int)
 
t0 = time.time()
out1 = my_unit_circle(100)
elapsed_time1  = (time.time() - t0 )

t0 = time.time()
out1 = unit_circle_vectorized(100)
elapsed_time2  = (time.time() - t0 )

print elapsed_time1
print elapsed_time2
