code: def _Bisect(self, x, xs, ys):
          
          if x <= xs[0]:
              return ys[0]
          if x >= xs[-1]:
              return ys[-1]
          i = bisect.bisect(xs, x)
          frac = 1.0 * (x - xs[i - 1]) / (xs[i] - xs[i - 1])
          y = ys[i - 1] + frac * 1.0 * (ys[i] - ys[i - 1])
          return y
docs: Helper function.