code: def spherical_gaussian_energy_grad(x, y):  # pragma: no cover
      mu_1 = x[0] - y[0]
      mu_2 = x[1] - y[1]
  
      sigma = np.abs(x[2]) + np.abs(y[2])
      sign_sigma = np.sign(x[2])
  
      dist = (
          (mu_1**2 + mu_2**2) / (2 * sigma)
          + np.log(sigma)
          + np.log(2 * np.pi)
      )
      grad = np.empty(3, np.float32)
  
      grad[0] = mu_1 / sigma
      grad[1] = mu_2 / sigma
      grad[2] = sign_sigma * (
          1.0 / sigma - (mu_1**2 + mu_2**2) / (2 * sigma**2)
      )
  
      return dist, grad
  
imports: import numba
  import numpy
  import scipy.stats
  from sklearn.metrics import pairwise_distances
label_desc: Use image node_id 47 for calling a global function with example usage: spherical_gaussian_energy_grad(x, y) and returns: dist,  grad