docs: def sumlogs(x, axis=None, out=None):
      """Sum of vector where numbers are represented by their logarithms.
  
      Calculates ``np.log(np.sum(np.exp(x), axis=axis))`` in such a fashion that
      it works even when elements have large magnitude.
  
      """
      maxx = x.max(axis=axis, keepdims=True)
      xnorm = x - maxx
      np.exp(xnorm, out=xnorm)
      out = np.sum(xnorm, axis=axis, out=out)
      if isinstance(out, np.ndarray):
          np.log(out, out=out)
      else:
          out = np.log(out)
      out += np.squeeze(maxx)
      return out