docs: def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):
      '''Port of numpy's linspace to pure python. Does not support dtype, and 
      returns lists of floats.
      '''
      num = int(num)
      start = start * 1.
      stop = stop * 1.
  
      if num <= 0:
          return []
      if endpoint:
          if num == 1:
              return [start]
          step = (stop-start)/float((num-1))
          if num == 1:
              step = nan
          
          y = [start]
          for _ in range(num-2):
              y.append(y[-1] + step)
          y.append(stop)
      else:
          step = (stop-start)/float(num)
          if num == 1:
              step = nan
          y = [start]
          for _ in range(num-1):
              y.append(y[-1] + step)
      if retstep:
          return y, step
      else:
          return y