Lines Matching refs:ahi
305 def find_longest_match(self, alo=0, ahi=None, blo=0, bhi=None):
306 """Find longest matching block in a[alo:ahi] and b[blo:bhi].
313 alo <= i <= i+k <= ahi
364 if ahi is None:
365 ahi = len(a)
374 for i in range(alo, ahi):
398 while besti+bestsize < ahi and bestj+bestsize < bhi and \
414 while besti+bestsize < ahi and bestj+bestsize < bhi and \
453 alo, ahi, blo, bhi = queue.pop()
454 i, j, k = x = self.find_longest_match(alo, ahi, blo, bhi)
457 # a[i+k:ahi] vs b[j+k:bhi] unknown
462 if i+k < ahi and j+k < bhi:
463 queue.append((i+k, ahi, j+k, bhi))
860 for tag, alo, ahi, blo, bhi in cruncher.get_opcodes():
862 g = self._fancy_replace(a, alo, ahi, b, blo, bhi)
864 g = self._dump('-', a, alo, ahi)
868 g = self._dump(' ', a, alo, ahi)
879 def _plain_replace(self, a, alo, ahi, b, blo, bhi):
880 assert alo < ahi and blo < bhi
883 if bhi - blo < ahi - alo:
885 second = self._dump('-', a, alo, ahi)
887 first = self._dump('-', a, alo, ahi)
893 def _fancy_replace(self, a, alo, ahi, b, blo, bhi):
924 for i in range(alo, ahi):
945 yield from self._plain_replace(a, alo, ahi, b, blo, bhi)
985 yield from self._fancy_helper(a, best_i+1, ahi, b, best_j+1, bhi)
987 def _fancy_helper(self, a, alo, ahi, b, blo, bhi):
989 if alo < ahi:
991 g = self._fancy_replace(a, alo, ahi, b, blo, bhi)
993 g = self._dump('-', a, alo, ahi)