docs: def interpolate(dq0, dq1, t):
          """Return the interpolation of two DualQuaternions.
  
          This uses the Dual Quaternion Linear Blending Method as described by Matthew Smith's
          'Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation'
          https://www.cosc.canterbury.ac.nz/research/reports/HonsReps/2013/hons_1305.pdf
  
          Parameters
          ----------
          dq0 : :obj:`DualQuaternion`
              The first DualQuaternion.
  
          dq1 : :obj:`DualQuaternion`
              The second DualQuaternion.
  
          t : float
              The interpolation step in [0,1]. When t=0, this returns dq0, and
              when t=1, this returns dq1.
  
          Returns
          -------
          :obj:`DualQuaternion`
              The interpolated DualQuaternion.
  
          Raises
          ------
          ValueError
              If t isn't in [0,1].
          """
          if not 0 <= t <= 1:
              raise ValueError("Interpolation step must be between 0 and 1! Got {0}".format(t))
  
          dqt = dq0 * (1-t) + dq1 * t
          return dqt.normalized