docs: def _logsum(a_n):
      """Compute the log of a sum of exponentiated terms exp(a_n) in a numerically-stable manner.
      NOTE: this function has been deprecated in favor of logsumexp.
  
      Parameters
      ----------
      a_n : np.ndarray, shape=(n_samples)
          a_n[n] is the nth exponential argument
  
      Returns
      -------
      a_n : np.ndarray, shape=(n_samples)
          a_n[n] is the nth exponential argument
  
      Notes
      -----
  
      _logsum a_n = max_arg + \log \sum_{n=1}^N \exp[a_n - max_arg]
  
      where max_arg = max_n a_n.  This is mathematically (but not numerically) equivalent to
  
      _logsum a_n = \log \sum_{n=1}^N \exp[a_n]
  
  
      Example
      -------
      >>> a_n = np.array([0.0, 1.0, 1.2], np.float64)
      >>> print('%.3e' % _logsum(a_n))
      1.951e+00
      """
  
      # Compute the maximum argument.
      max_log_term = np.max(a_n)
  
      # Compute the reduced terms.
      terms = np.exp(a_n - max_log_term)
  
      # Compute the log sum.
      log_sum = np.log(np.sum(terms)) + max_log_term
  
      return log_sum