docs: def _findSegment(self, x):
          '''
          :param x: x value to place in segment defined by the xData (instantiation)
          :return: The lower index in the segment
          '''
          iLeft = 0
          iRight = len(self.xData) - 1
          while True:
              if iRight - iLeft <= 1:
                  return iLeft
              i = (iRight + iLeft) / 2
              if x < self.xData[i]:
                  iRight = i
              else:
                  iLeft = i