docs: def spm_dispersion_derivative(tr, oversampling=50, time_length=32., onset=0.):
      """Implementation of the SPM dispersion derivative hrf model
  
      Parameters
      ----------
      tr: float
          scan repeat time, in seconds
  
      oversampling: int, optional
          temporal oversampling factor in seconds
  
      time_length: float, optional
          hrf kernel length, in seconds
  
      onset : float, optional
          onset of the response in seconds
  
      Returns
      -------
      dhrf: array of shape(length / tr * oversampling), dtype=float
            dhrf sampling on the oversampled time grid
      """
      dd = .01
      dhrf = 1. / dd * (
          - _gamma_difference_hrf(tr, oversampling, time_length,
                                  onset, dispersion=1. + dd)
          + _gamma_difference_hrf(tr, oversampling, time_length, onset))
      return dhrf