docs: def peak_interval(data, alpha=_alpha, npoints=_npoints):
      """
      Identify interval using Gaussian kernel density estimator.
      """
      peak = kde_peak(data,npoints)
      x = np.sort(data.flat); n = len(x)
      # The number of entries in the interval
      window = int(np.rint((1.0-alpha)*n))
      # The start, stop, and width of all possible intervals
      starts = x[:n-window]; ends = x[window:]
      widths = ends - starts
      # Just the intervals containing the peak
      select = (peak >= starts) & (peak <= ends)
      widths = widths[select]
      if len(widths) == 0:
          raise ValueError('Too few elements for interval calculation')
      min_idx = np.argmin(widths)
      lo = x[min_idx]
      hi = x[min_idx+window]
      return interval(peak,lo,hi)