code: def spa_compression(htilde, fmin, fmax, min_seglen=0.02,
          sample_frequencies=None):
      
      if sample_frequencies is None:
          sample_frequencies = htilde.sample_frequencies.numpy()
      kmin = int(fmin/htilde.delta_f)
      kmax = int(fmax/htilde.delta_f)
      tf = abs(utils.time_from_frequencyseries(htilde,
              sample_frequencies=sample_frequencies).data[kmin:kmax])
      sample_frequencies = sample_frequencies[kmin:kmax]
      sample_points = []
      f = fmin
      while f < fmax:
          f = int(f/htilde.delta_f)*htilde.delta_f
          sample_points.append(f)
          jj = numpy.searchsorted(sample_frequencies, f)
          f += 1./(tf[jj:].max()+min_seglen)
      # add the last point
      if sample_points[-1] < fmax:
          sample_points.append(fmax)
      return numpy.array(sample_points)
docs: Returns the frequencies needed to compress the given frequency domain
      waveform. This is done by estimating t(f) of the waveform using the
      stationary phase approximation.
  
      Parameters
      ----------
      htilde : FrequencySeries
          The waveform to compress.
      fmin : float
          The starting frequency of the compressed waveform.
      fmax : float
          The ending frequency of the compressed waveform.
      min_seglen : float
          The inverse of this gives the maximum frequency step that is used.
      sample_frequencies : {None, array}
          The frequencies that the waveform is evaluated at. If None, will
          retrieve the frequencies from the waveform's sample_frequencies
          attribute.
  
      Returns
      -------
      array
          The frequencies at which to evaluate the compressed waveform.