code: def frange(start, stop, step=1.0):
      
      i = 0.0
      x = float(start)  # Prevent yielding integers.
      x0 = x
      epsilon = step / 2.0
      yield x  # always yield first value
      while x + epsilon < stop:
          i += 1.0
          x = x0 + i * step
          yield x
      if stop > x:
          yield stop
docs: Implementation of Python's ``range()`` function which works with floats.
  
      Reference to this implementation: https://stackoverflow.com/a/36091634
  
      :param start: start value
      :type start: float
      :param stop: end value
      :type stop: float
      :param step: increment
      :type step: float
      :return: float
      :rtype: generator