code: def absolute_exponential(theta, d):
      """
      Absolute exponential autocorrelation model.
      (Ornstein-Uhlenbeck stochastic process)::
  
                                            n
          theta, d --> r(theta, d) = exp(  sum  - theta_i * |d_i| )
                                          i = 1
  
      Parameters
      ----------
      theta : array_like
          An array with shape 1 (isotropic) or n (anisotropic) giving the
          autocorrelation parameter(s).
  
      d : array_like
          An array with shape (n_eval, n_features) giving the componentwise
          distances between locations x and x' at which the correlation model
          should be evaluated.
  
      Returns
      -------
      r : array_like
          An array with shape (n_eval, ) containing the values of the
          autocorrelation model.
      """
      theta = np.asarray(theta, dtype=np.float64)
      d = np.abs(np.asarray(d, dtype=np.float64))
  
      if d.ndim > 1:
          n_features = d.shape[1]
      else:
          n_features = 1
  
      if theta.size == 1:
          return np.exp(-theta[0] * np.sum(d, axis=1))
      elif theta.size != n_features:
          raise ValueError(
              "Length of theta must be 1 or %s" % n_features
          )
      else:
          return np.exp(
              -np.sum(theta.reshape(1, n_features) * d, axis=1)
          )
  
imports: import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: absolute_exponential(theta, d) and returns: np, np