Lines Matching defs:middle

354   int *middle;
358 middle = first + t / 2;
362 return ss_median3(Td, PA, first, middle, last - 1);
365 return ss_median5(Td, PA, first, first + t, middle, last - 1 - t, last - 1);
370 middle = ss_median3(Td, PA, middle - t, middle, middle + t);
372 return ss_median3(Td, PA, first, middle, last);
551 ss_rotate(int *first, int *middle, int *last) {
554 l = middle - first, r = last - middle;
556 if(l == r) { ss_blockswap(first, middle, l); break; }
558 a = last - 1, b = middle - 1;
566 a -= 1, b = middle - 1;
571 a = first, b = middle;
579 a += 1, b = middle;
593 int *first, int *middle, int *last,
604 for(a = first, len = middle - first, half = len >> 1, r = -1;
616 if(a < middle) {
618 ss_rotate(a, middle, last);
619 last -= middle - a;
620 middle = a;
621 if(first == middle) { break; }
625 if(middle == last) { break; }
636 int *first, int *middle, int *last,
642 bufend = buf + (middle - first) - 1;
643 ss_blockswap(buf, first, middle - first);
645 for(t = *(a = first), b = buf, c = middle;;) {
686 int *first, int *middle, int *last,
694 bufend = buf + (last - middle) - 1;
695 ss_blockswap(buf, middle, last - middle);
700 if(*(middle - 1) < 0) { p2 = PA + ~*(middle - 1); x |= 2; }
701 else { p2 = PA + *(middle - 1); }
702 for(t = *(a = last - 1), b = bufend, c = middle - 1;;) {
745 int *first, int *middle, int *last,
766 if((last - middle) <= bufsize) {
767 if((first < middle) && (middle < last)) {
768 ss_mergebackward(T, PA, first, middle, last, buf, depth);
771 STACK_POP(first, middle, last, check);
775 if((middle - first) <= bufsize) {
776 if(first < middle) {
777 ss_mergeforward(T, PA, first, middle, last, buf, depth);
780 STACK_POP(first, middle, last, check);
784 for(m = 0, len = MIN(middle - first, last - middle), half = len >> 1;
787 if(ss_compare(T, PA + GETIDX(*(middle + m + half)),
788 PA + GETIDX(*(middle - m - half - 1)), depth) < 0) {
795 lm = middle - m, rm = middle + m;
796 ss_blockswap(lm, middle, m);
797 l = r = middle, next = 0;
811 middle = lm, last = l, check = (check & 3) | (next & 4);
813 if((next & 2) && (r == middle)) { next ^= 6; }
815 first = r, middle = rm, check = (next & 3) | (check & 4);
818 if(ss_compare(T, PA + GETIDX(*(middle - 1)), PA + *middle, depth) == 0) {
819 *middle = ~*middle;
822 STACK_POP(first, middle, last, check);
842 int *b, *middle, *curbuf;
856 buf = middle = last - limit, bufsize = limit;
858 middle = last, limit = 0;
860 for(a = first, i = 0; SS_BLOCKSIZE < (middle - a); a += SS_BLOCKSIZE, ++i) {
874 ss_mintrosort(T, PA, a, middle, depth);
876 ss_insertionsort(T, PA, a, middle, depth);
880 ss_swapmerge(T, PA, a - k, a, middle, buf, bufsize, depth);
886 ss_mintrosort(T, PA, middle, last, depth);
888 ss_insertionsort(T, PA, middle, last, depth);
890 ss_inplacemerge(T, PA, first, middle, last, depth);
1016 int *middle;
1020 middle = first + t / 2;
1024 return tr_median3(ISAd, first, middle, last - 1);
1027 return tr_median5(ISAd, first, first + t, middle, last - 1 - t, last - 1);
1032 middle = tr_median3(ISAd, middle - t, middle, middle + t);
1034 return tr_median3(ISAd, first, middle, last);
1071 int *first, int *middle, int *last,
1077 for(b = middle - 1; (++b < last) && ((x = ISAd[*b]) == v);) { }
1115 /* sort suffixes of middle partition