1524 |
|
continue; |
1525 |
|
double x = src[k]; |
1526 |
|
long bits = Double.doubleToLongBits(x); |
1527 |
< |
int hash = hash((int)(bits ^ (bits >>> 32)));; |
1527 |
> |
int hash = hash((int)(bits ^ (bits >>> 32))); |
1528 |
|
long entry = (((long)hash) << 32) + (k + 1); |
1529 |
|
int idx = hash & mask; |
1530 |
|
for (;;) { |
1875 |
|
final RecursiveAction right; |
1876 |
|
final RecursiveAction merger; |
1877 |
|
FJSubSorter(RecursiveAction left, RecursiveAction right, |
1878 |
< |
RecursiveAction merger){ |
1878 |
> |
RecursiveAction merger) { |
1879 |
|
this.left = left; this.right = right; this.merger = merger; |
1880 |
|
} |
1881 |
|
public void compute() { |
1882 |
< |
invokeAll(left, right); |
1882 |
> |
right.fork(); |
1883 |
> |
left.invoke(); |
1884 |
> |
right.join(); |
1885 |
|
merger.invoke(); |
1886 |
|
} |
1887 |
|
} |
2348 |
|
else break; |
2349 |
|
} |
2350 |
|
|
2351 |
< |
oquickSort(a, cmp, lo, left); |
2352 |
< |
lo = left + 1; |
2351 |
> |
if (left - lo <= hi - right) { |
2352 |
> |
oquickSort(a, cmp, lo, left); |
2353 |
> |
lo = left + 1; |
2354 |
> |
} |
2355 |
> |
else { |
2356 |
> |
oquickSort(a, cmp, right, hi); |
2357 |
> |
hi = left; |
2358 |
> |
} |
2359 |
|
} |
2360 |
|
} |
2361 |
|
|
2400 |
|
else break; |
2401 |
|
} |
2402 |
|
|
2403 |
< |
ocquickSort(a, lo, left); |
2404 |
< |
lo = left + 1; |
2403 |
> |
if (left - lo <= hi - right) { |
2404 |
> |
ocquickSort(a, lo, left); |
2405 |
> |
lo = left + 1; |
2406 |
> |
} |
2407 |
> |
else { |
2408 |
> |
ocquickSort(a, right, hi); |
2409 |
> |
hi = left; |
2410 |
> |
} |
2411 |
|
} |
2412 |
|
} |
2413 |
|
|
2452 |
|
else break; |
2453 |
|
} |
2454 |
|
|
2455 |
< |
dquickSort(a, cmp, lo, left); |
2456 |
< |
lo = left + 1; |
2455 |
> |
if (left - lo <= hi - right) { |
2456 |
> |
dquickSort(a, cmp, lo, left); |
2457 |
> |
lo = left + 1; |
2458 |
> |
} |
2459 |
> |
else { |
2460 |
> |
dquickSort(a, cmp, right, hi); |
2461 |
> |
hi = left; |
2462 |
> |
} |
2463 |
|
} |
2464 |
|
} |
2465 |
|
|
2504 |
|
else break; |
2505 |
|
} |
2506 |
|
|
2507 |
< |
dcquickSort(a, lo, left); |
2508 |
< |
lo = left + 1; |
2507 |
> |
if (left - lo <= hi - right) { |
2508 |
> |
dcquickSort(a, lo, left); |
2509 |
> |
lo = left + 1; |
2510 |
> |
} |
2511 |
> |
else { |
2512 |
> |
dcquickSort(a, right, hi); |
2513 |
> |
hi = left; |
2514 |
> |
} |
2515 |
|
} |
2516 |
|
} |
2517 |
|
|
2556 |
|
else break; |
2557 |
|
} |
2558 |
|
|
2559 |
< |
lquickSort(a, cmp, lo, left); |
2560 |
< |
lo = left + 1; |
2559 |
> |
if (left - lo <= hi - right) { |
2560 |
> |
lquickSort(a, cmp, lo, left); |
2561 |
> |
lo = left + 1; |
2562 |
> |
} |
2563 |
> |
else { |
2564 |
> |
lquickSort(a, cmp, right, hi); |
2565 |
> |
hi = left; |
2566 |
> |
} |
2567 |
|
} |
2568 |
|
} |
2569 |
|
|
2608 |
|
else break; |
2609 |
|
} |
2610 |
|
|
2611 |
< |
lcquickSort(a, lo, left); |
2612 |
< |
lo = left + 1; |
2611 |
> |
if (left - lo <= hi - right) { |
2612 |
> |
lcquickSort(a, lo, left); |
2613 |
> |
lo = left + 1; |
2614 |
> |
} |
2615 |
> |
else { |
2616 |
> |
lcquickSort(a, right, hi); |
2617 |
> |
hi = left; |
2618 |
> |
} |
2619 |
|
} |
2620 |
|
} |
2621 |
|
|
2709 |
|
int cb; |
2710 |
|
for (;;) { // Establish action: sum, cumulate, or both |
2711 |
|
int b = phase; |
2712 |
< |
if ((b & FINISHED) != 0) // already done |
2712 |
> |
if ((b & FINISHED) != 0) // already done |
2713 |
|
return false; |
2714 |
|
if ((b & CUMULATE) != 0) |
2715 |
|
cb = FINISHED; |
2821 |
|
} |
2822 |
|
|
2823 |
|
/** |
2824 |
< |
* Computational operations for FJSCan |
2824 |
> |
* Computational operations for FJScan |
2825 |
|
*/ |
2826 |
|
static abstract class FJScanOp { |
2827 |
|
final int threshold; |