docs: def toy_example():
      """
      Make a toy example where x is uniformly distributed with N bits and y
      follows x but with symbol dependent noise.
      x=0 -> y=0
      x=1 -> y=1 + e
      x=2 -> y=2 + 2*e
      ...
      x=n -> y=n + n*e
      where by n*e I am saying that the noise grows
      """
      #pdb.set_trace()
      N=4
      m = 100
      x = np.zeros(m*(2**N))
      y = np.zeros(m*(2**N))
  
      for i in range(1, 2**N):
          x[i*m:(i+1)*m] = i
          y[i*m:(i+1)*m] = i + np.random.randint(0, 2*i, m)
  
      diff = differentiate_mi(x,y)
      return x, y, diff