Lines Matching refs:size
28 static inline void COPYSWAPPY(char *a, char *b, char *t, size_t size) in COPYSWAPPY() argument
30 __builtin_memcpy(t, b, size); in COPYSWAPPY()
31 __builtin_memmove(b, a, size); in COPYSWAPPY()
32 __builtin_memcpy(a, t, size); in COPYSWAPPY()
47 static inline void Petsc_memcpy(char *dest, const char *src, size_t size) in Petsc_memcpy() argument
49 __builtin_memcpy(dest, src, size); in Petsc_memcpy()
60 static inline void Petsc_memmove(char *dest, const char *src, size_t size) in Petsc_memmove() argument
62 __builtin_memmove(dest, src, size); in Petsc_memmove()
73 static inline void COPYSWAPPY(char *a, char *b, char *t, size_t size) in COPYSWAPPY() argument
76 PetscCallAbort(PETSC_COMM_SELF, PetscMemcpy(t, b, size)); in COPYSWAPPY()
77 PetscCallAbort(PETSC_COMM_SELF, PetscMemmove(b, a, size)); in COPYSWAPPY()
78 PetscCallAbort(PETSC_COMM_SELF, PetscMemcpy(a, t, size)); in COPYSWAPPY()
94 static inline void Petsc_memcpy(char *dest, const char *src, size_t size) in Petsc_memcpy() argument
97 PetscCallAbort(PETSC_COMM_SELF, PetscMemcpy(dest, src, size)); in Petsc_memcpy()
109 static inline void Petsc_memmove(char *dest, const char *src, size_t size) in Petsc_memmove() argument
112 PetscCallAbort(PETSC_COMM_SELF, PetscMemmove(dest, src, size)); in Petsc_memmove()
134 static inline PetscErrorCode PetscGallopSearchLeft_Private(const char *arr, size_t size, CompFunc c… in PetscGallopSearchLeft_Private() argument
141 if ((*cmp)(x, arr + r * size, ctx) >= 0) { in PetscGallopSearchLeft_Private()
145 …if ((*cmp)(x, (arr) + l * size, ctx) < 0 || PetscUnlikely(!(r - l))) PetscFunctionReturn(PETSC_SUC… in PetscGallopSearchLeft_Private()
151 if ((*cmp)(x, (arr) + cur * size, ctx) < 0) break; in PetscGallopSearchLeft_Private()
159 if ((*cmp)(x, (arr) + mid * size, ctx) < 0) { in PetscGallopSearchLeft_Private()
171 static inline PetscErrorCode PetscGallopSearchRight_Private(const char *arr, size_t size, CompFunc … in PetscGallopSearchRight_Private() argument
178 if ((*cmp)(x, arr + l * size, ctx) <= 0) { in PetscGallopSearchRight_Private()
182 …if ((*cmp)(x, (arr) + r * size, ctx) > 0 || PetscUnlikely(!(r - l))) PetscFunctionReturn(PETSC_SUC… in PetscGallopSearchRight_Private()
188 if ((*cmp)(x, (arr) + cur * size, ctx) > 0) break; in PetscGallopSearchRight_Private()
196 if ((*cmp)(x, (arr) + mid * size, ctx) > 0) { in PetscGallopSearchRight_Private()
209 static inline PetscErrorCode PetscTimSortMergeLo_Private(char *arr, char *tarr, size_t size, CompFu… in PetscTimSortMergeLo_Private() argument
215 Petsc_memcpy(tarr, arr + (left * size), llen * size); in PetscTimSortMergeLo_Private()
217 if ((*cmp)(tarr + (i * size), arr + (j * size), ctx) < 0) { in PetscTimSortMergeLo_Private()
218 Petsc_memcpy(arr + (k * size), tarr + (i * size), size); in PetscTimSortMergeLo_Private()
226 …PetscCall(PetscGallopSearchLeft_Private(tarr, size, cmp, ctx, i, llen - 1, arr + (j * size), &l1)); in PetscTimSortMergeLo_Private()
228 Petsc_memcpy(arr + (k * size), tarr + (i * size), diff1 * size); in PetscTimSortMergeLo_Private()
232 … PetscCall(PetscGallopSearchLeft_Private(arr, size, cmp, ctx, j, right, tarr + (i * size), &l2)); in PetscTimSortMergeLo_Private()
234 Petsc_memmove((arr) + k * size, (arr) + j * size, diff2 * size); in PetscTimSortMergeLo_Private()
242 Petsc_memmove(arr + (k * size), arr + (j * size), size); in PetscTimSortMergeLo_Private()
250 … PetscCall(PetscGallopSearchLeft_Private(arr, size, cmp, ctx, j, right, tarr + (i * size), &l2)); in PetscTimSortMergeLo_Private()
252 Petsc_memmove(arr + (k * size), arr + (j * size), diff2 * size); in PetscTimSortMergeLo_Private()
256 …PetscCall(PetscGallopSearchLeft_Private(tarr, size, cmp, ctx, i, llen - 1, arr + (j * size), &l1)); in PetscTimSortMergeLo_Private()
258 Petsc_memcpy(arr + (k * size), tarr + (i * size), diff1 * size); in PetscTimSortMergeLo_Private()
267 if (i < llen) Petsc_memcpy(arr + (k * size), tarr + (i * size), (llen - i) * size); in PetscTimSortMergeLo_Private()
336 static inline PetscErrorCode PetscTimSortMergeHi_Private(char *arr, char *tarr, size_t size, CompFu… in PetscTimSortMergeHi_Private() argument
342 Petsc_memcpy(tarr, (arr) + mid * size, rlen * size); in PetscTimSortMergeHi_Private()
344 if ((*cmp)((tarr) + i * size, (arr) + j * size, ctx) > 0) { in PetscTimSortMergeHi_Private()
345 Petsc_memcpy((arr) + k * size, (tarr) + i * size, size); in PetscTimSortMergeHi_Private()
353 … PetscCall(PetscGallopSearchRight_Private(tarr, size, cmp, ctx, 0, i, (arr) + j * size, &l1)); in PetscTimSortMergeHi_Private()
355 Petsc_memcpy((arr) + (k - diff1 + 1) * size, (tarr) + (l1 + 1) * size, diff1 * size); in PetscTimSortMergeHi_Private()
359 … PetscCall(PetscGallopSearchRight_Private(arr, size, cmp, ctx, left, j, (tarr) + i * size, &l2)); in PetscTimSortMergeHi_Private()
361 Petsc_memmove((arr) + (k - diff2 + 1) * size, (arr) + (l2 + 1) * size, diff2 * size); in PetscTimSortMergeHi_Private()
369 Petsc_memmove((arr) + k * size, (arr) + j * size, size); in PetscTimSortMergeHi_Private()
377 … PetscCall(PetscGallopSearchRight_Private(arr, size, cmp, ctx, left, j, (tarr) + i * size, &l2)); in PetscTimSortMergeHi_Private()
379 Petsc_memmove((arr) + (k - diff2 + 1) * size, (arr) + (l2 + 1) * size, diff2 * size); in PetscTimSortMergeHi_Private()
383 … PetscCall(PetscGallopSearchRight_Private(tarr, size, cmp, ctx, 0, i, (arr) + j * size, &l1)); in PetscTimSortMergeHi_Private()
385 Petsc_memcpy((arr) + (k - diff1 + 1) * size, (tarr) + (l1 + 1) * size, diff1 * size); in PetscTimSortMergeHi_Private()
394 if (i >= 0) Petsc_memcpy((arr) + left * size, tarr, (i + 1) * size); in PetscTimSortMergeHi_Private()
462 static inline PetscErrorCode PetscInsertionSort_Private(char *arr, char *tarr, size_t size, CompFun… in PetscInsertionSort_Private() argument
469 Petsc_memcpy(tarr, arr + (i * size), size); in PetscInsertionSort_Private()
470 while ((j >= left) && ((*cmp)(tarr, (arr) + j * size, ctx) < 0)) { in PetscInsertionSort_Private()
471 COPYSWAPPY(arr + (j + 1) * size, arr + j * size, tarr + size, size); in PetscInsertionSort_Private()
474 Petsc_memcpy((arr) + (j + 1) * size, tarr, size); in PetscInsertionSort_Private()
497 static inline PetscErrorCode PetscBinaryInsertionSort_Private(char *arr, char *tarr, size_t size, C… in PetscBinaryInsertionSort_Private() argument
504 Petsc_memcpy(tarr, arr + (i * size), size); in PetscBinaryInsertionSort_Private()
507 if ((*cmp)(tarr, arr + (m * size), ctx) < 0) { in PetscBinaryInsertionSort_Private()
513 Petsc_memmove(arr + ((l + 1) * size), arr + (l * size), (i - l) * size); in PetscBinaryInsertionSort_Private()
514 Petsc_memcpy(arr + (l * size), tarr, size); in PetscBinaryInsertionSort_Private()
542 PetscInt size; member
552 size_t size; member
559 if (PetscLikely(newSize <= buff->size)) PetscFunctionReturn(PETSC_SUCCESS); in PetscTimSortResizeBuffer_Private()
565 buff->size = newMax; in PetscTimSortResizeBuffer_Private()
570 static inline PetscErrorCode PetscTimSortForceCollapse_Private(char *arr, size_t size, CompFunc cmp… in PetscTimSortForceCollapse_Private() argument
575 …if ((*cmp)(arr + (stack[stacksize].start - 1) * size, arr + (stack[stacksize].start) * size, ctx) … in PetscTimSortForceCollapse_Private()
578 …rchLeft_Private(arr, size, cmp, ctx, stack[stacksize - 1].start, stack[stacksize].start - 1, (arr)… in PetscTimSortForceCollapse_Private()
580 …ate(arr, size, cmp, ctx, stack[stacksize].start, stack[stacksize].start + stack[stacksize].size - … in PetscTimSortForceCollapse_Private()
582 PetscCall(PetscTimSortResizeBuffer_Private(buff, (m - l + 1) * size)); in PetscTimSortForceCollapse_Private()
583 PetscCall(PetscTimSortMergeLo_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortForceCollapse_Private()
585 PetscCall(PetscTimSortResizeBuffer_Private(buff, (r - m + 1) * size)); in PetscTimSortForceCollapse_Private()
586 PetscCall(PetscTimSortMergeHi_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortForceCollapse_Private()
590 stack[stacksize - 1].size += stack[stacksize].size; in PetscTimSortForceCollapse_Private()
605 …p, ctx, stack[stacksize].start, stack[stacksize].start + stack[stacksize].size - 1, (arr) + (stack… in PetscTimSortForceCollapseWithArray_Private()
617 stack[stacksize - 1].size += stack[stacksize].size; in PetscTimSortForceCollapseWithArray_Private()
622 static inline PetscErrorCode PetscTimSortMergeCollapse_Private(char *arr, size_t size, CompFunc cmp… in PetscTimSortMergeCollapse_Private() argument
632 if (stack[i - 1].size < stack[i].size) { in PetscTimSortMergeCollapse_Private()
634 if ((*cmp)(arr + (stack[i].start - 1) * size, arr + (stack[i].start) * size, ctx) > 0) { in PetscTimSortMergeCollapse_Private()
637 …etscGallopSearchLeft_Private(arr, size, cmp, ctx, stack[i - 1].start, stack[i].start - 1, (arr) + … in PetscTimSortMergeCollapse_Private()
639 …pSearchRight_Private(arr, size, cmp, ctx, stack[i].start, stack[i].start + stack[i].size - 1, arr … in PetscTimSortMergeCollapse_Private()
641 PetscCall(PetscTimSortResizeBuffer_Private(buff, (m - l + 1) * size)); in PetscTimSortMergeCollapse_Private()
642 PetscCall(PetscTimSortMergeLo_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortMergeCollapse_Private()
644 PetscCall(PetscTimSortResizeBuffer_Private(buff, (r - m + 1) * size)); in PetscTimSortMergeCollapse_Private()
645 PetscCall(PetscTimSortMergeHi_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortMergeCollapse_Private()
649 stack[i - 1].size += stack[i].size; in PetscTimSortMergeCollapse_Private()
655 if (stack[i - 2].size <= stack[i - 1].size + stack[i].size) { in PetscTimSortMergeCollapse_Private()
656 if (stack[i - 2].size < stack[i].size) { in PetscTimSortMergeCollapse_Private()
658 … if ((*cmp)(arr + (stack[i - 1].start - 1) * size, arr + (stack[i - 1].start) * size, ctx) > 0) { in PetscTimSortMergeCollapse_Private()
661 …allopSearchLeft_Private(arr, size, cmp, ctx, stack[i - 2].start, stack[i - 1].start - 1, (arr) + (… in PetscTimSortMergeCollapse_Private()
663 …ght_Private(arr, size, cmp, ctx, stack[i - 1].start, stack[i - 1].start + stack[i - 1].size - 1, (… in PetscTimSortMergeCollapse_Private()
665 PetscCall(PetscTimSortResizeBuffer_Private(buff, (m - l + 1) * size)); in PetscTimSortMergeCollapse_Private()
666 PetscCall(PetscTimSortMergeLo_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortMergeCollapse_Private()
668 PetscCall(PetscTimSortResizeBuffer_Private(buff, (r - m + 1) * size)); in PetscTimSortMergeCollapse_Private()
669 PetscCall(PetscTimSortMergeHi_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortMergeCollapse_Private()
673 stack[i - 2].size += stack[i - 1].size; in PetscTimSortMergeCollapse_Private()
676 stack[i - 1].size = stack[i].size; in PetscTimSortMergeCollapse_Private()
681 if ((*cmp)(arr + (stack[i].start - 1) * size, arr + (stack[i].start) * size, ctx) > 0) { in PetscTimSortMergeCollapse_Private()
684 …PetscGallopSearchLeft_Private(arr, size, cmp, ctx, stack[i - 1].start, stack[i].start - 1, arr + s… in PetscTimSortMergeCollapse_Private()
686 …SearchRight_Private(arr, size, cmp, ctx, stack[i].start, stack[i].start + stack[i].size - 1, (arr)… in PetscTimSortMergeCollapse_Private()
688 PetscCall(PetscTimSortResizeBuffer_Private(buff, (m - l + 1) * size)); in PetscTimSortMergeCollapse_Private()
689 PetscCall(PetscTimSortMergeLo_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortMergeCollapse_Private()
691 PetscCall(PetscTimSortResizeBuffer_Private(buff, (r - m + 1) * size)); in PetscTimSortMergeCollapse_Private()
692 PetscCall(PetscTimSortMergeHi_Private(arr, buff->ptr, size, cmp, ctx, l, m, r)); in PetscTimSortMergeCollapse_Private()
696 stack[i - 1].size += stack[i].size; in PetscTimSortMergeCollapse_Private()
699 } else if (stack[i - 1].size <= stack[i].size) { in PetscTimSortMergeCollapse_Private()
720 if (stack[i - 1].size < stack[i].size) { in PetscTimSortMergeCollapseWithArray_Private()
727 …t_Private(arr, asize, cmp, ctx, stack[i].start, stack[i].start + stack[i].size - 1, arr + (stack[i… in PetscTimSortMergeCollapseWithArray_Private()
739 stack[i - 1].size += stack[i].size; in PetscTimSortMergeCollapseWithArray_Private()
745 if (stack[i - 2].size <= stack[i - 1].size + stack[i].size) { in PetscTimSortMergeCollapseWithArray_Private()
746 if (stack[i - 2].size < stack[i].size) { in PetscTimSortMergeCollapseWithArray_Private()
753 …r, asize, cmp, ctx, stack[i - 1].start, stack[i - 1].start + stack[i - 1].size - 1, (arr) + (stack… in PetscTimSortMergeCollapseWithArray_Private()
765 stack[i - 2].size += stack[i - 1].size; in PetscTimSortMergeCollapseWithArray_Private()
768 stack[i - 1].size = stack[i].size; in PetscTimSortMergeCollapseWithArray_Private()
778 …t_Private(arr, asize, cmp, ctx, stack[i].start, stack[i].start + stack[i].size - 1, (arr) + (stack… in PetscTimSortMergeCollapseWithArray_Private()
790 stack[i - 1].size += stack[i].size; in PetscTimSortMergeCollapseWithArray_Private()
793 } else if (stack[i - 1].size <= stack[i].size) { in PetscTimSortMergeCollapseWithArray_Private()
807 static inline PetscErrorCode PetscTimSortBuildRun_Private(char *arr, char *tarr, size_t size, CompF… in PetscTimSortBuildRun_Private() argument
818 if ((*cmp)((arr) + (ri + 1) * size, (arr) + ri * size, ctx) < 0) { in PetscTimSortBuildRun_Private()
821 if ((*cmp)((arr) + (ri + 1) * size, (arr) + ri * size, ctx) >= 0) break; in PetscTimSortBuildRun_Private()
826 for (; lo < hi; ++lo, --hi) COPYSWAPPY(arr + lo * size, arr + hi * size, tarr, size); in PetscTimSortBuildRun_Private()
831 if ((*cmp)((arr) + (ri + 1) * size, (arr) + ri * size, ctx) < 0) break; in PetscTimSortBuildRun_Private()
840 PetscCall(PetscInsertionSort_Private(arr, tarr, size, cmp, ctx, runstart, ri, re)); in PetscTimSortBuildRun_Private()
842 PetscCall(PetscBinaryInsertionSort_Private(arr, tarr, size, cmp, ctx, runstart, ri, re)); in PetscTimSortBuildRun_Private()
966 PetscErrorCode PetscTimSort(PetscInt n, void *arr, size_t size, int (*cmp)(const void *, const void… in PetscTimSort() argument
991 PetscCall(PetscMalloc1((size_t)minrun * size, &buff.ptr)); in PetscTimSort()
992 buff.size = (size_t)minrun * size; in PetscTimSort()
993 buff.maxsize = (size_t)n * size; in PetscTimSort()
997 …PetscCall(PetscTimSortBuildRun_Private((char *)arr, buff.ptr, size, cmp, ctx, n, minrun, runstart,… in PetscTimSort()
999 runstack[stacksize].size = runend - runstart + 1; in PetscTimSort()
1000 …PetscCall(PetscTimSortMergeCollapse_Private((char *)arr, size, cmp, ctx, &buff, runstack, &stacksi… in PetscTimSort()
1006 …PetscCall(PetscTimSortForceCollapse_Private((char *)arr, size, cmp, ctx, &buff, runstack, stacksiz… in PetscTimSort()
1116 abuff.size = (size_t)minrun * asize; in PetscTimSortWithArray()
1119 bbuff.size = (size_t)minrun * bsize; in PetscTimSortWithArray()
1126 runstack[stacksize].size = runend - runstart + 1; in PetscTimSortWithArray()