code: def sine(w, A=1, phi=0, offset=0):
      ''' Return a driver function that can advance a sequence of sine values.
  
      .. code-block:: none
  
          value = A * sin(w*i + phi) + offset
  
      Args:
          w (float) : a frequency for the sine driver
          A (float) : an amplitude for the sine driver
          phi (float) : a phase offset to start the sine driver with
          offset (float) : a global offset to add to the driver values
  
      '''
      from math import sin
      def f(i):
          return A * sin(w*i + phi) + offset
      return partial(force, sequence=_advance(f)f sine(w, A=1, phi=0, offset=0):
      ''' Return a driver function that can advance a sequence of sine values.
  
      .. code-block:: none
  
          value = A * sin(w*i + phi) + offset
  
      Args:
          w (float) : a frequency for the sine driver
          A (float) : an amplitude for the sine driver
          phi (float) : a phase offset to start the sine driver with
          offset (float) : a global offset to add to the driver values
  
      '''
      from math import sin
      def f(i):
          return A * sin(w*i + phi) + offset
      return partial(force, sequence=_advance(f))
docs: Return a driver function that can advance a sequence of sine values.
  
      .. code-block:: none
  
          value = A * sin(w*i + phi) + offset
  
      Args:
          w (float) : a frequency for the sine driver
          A (float) : an amplitude for the sine driver
          phi (float) : a phase offset to start the sine driver with
          offset (float) : a global offset to add to the driver values