docs: def prox_lim12(x, step, j=None, Xs=None, boundary=None):
      # separable constraints
      if boundary == "line":
          if j == 0:
              return prox_xline(x, step)
          if j == 1:
              return prox_yline(x, step)
  
      # this is the "illegal" non-separable constraint: raise exception
      raise NotImplementedError
      """
      if boundary == "circle":
          if j == 0:
              xy = np.array([x[0], Xs[1][0]])
          if j == 1:
              xy = np.array([Xs[0][0], x[0]])
          return [prox_circle(xy, step)[j]]
      """