def glover_time_derivative(tr, oversampling=50, time_length=32., onset=0.):
    """Implementation of the Glover time derivative hrf (dhrf) model

    Parameters
    ----------
    tr: float
        scan repeat time, in seconds
    oversampling: int,
        temporal oversampling factor, optional
    time_length: float,
        hrf kernel length, in seconds
    onset: float,
        onset of the response

    Returns
    -------
    dhrf: array of shape(length / tr), dtype=float
          dhrf sampling on the provided grid
    """
    do = .1
    dhrf = 1. / do * (glover_hrf(tr, oversampling, time_length, onset) -
                      glover_hrf(tr, oversampling, time_length, onset + do))
    return dhrf