code: def compounding(start, stop, compound, t=0.0):
      
      curr = float(start)
      while True:
          yield _clip(curr, start, stop)
          curr *= compound
docs: Yield an infinite series of compounding values. Each time the
      generator is called, a value is produced by multiplying the previous
      value by the compound rate.
  
      EXAMPLE:
        >>> sizes = compounding(1., 10., 1.5)
        >>> assert next(sizes) == 1.
        >>> assert next(sizes) == 1 * 1.5
        >>> assert next(sizes) == 1.5 * 1.5