def _fast_intersect(self, other, sort):
    if (self[0] <= other[0]):
        (left, right) = (self, other)
    else:
        (left, right) = (other, self)
    end = min(left[(- 1)], right[(- 1)])
    start = right[0]
    if (end < start):
        result = self[:0]
    else:
        lslice = slice(*left.slice_locs(start, end))
        result = left._values[lslice]
    return result
def _fast_intersect(self, other, sort):
    if (self[0] <= other[0]):
        (left, right) = (self, other)
    else:
        (left, right) = (other, self)
    end = min(left[(- 1)], right[(- 1)])
    start = right[0]
    if (end < start):
        result = self[:0]
    else:
        lslice = slice(*left.slice_locs(start, end))
        result = left._values[lslice]
    return result