private int ssPivot(final int td, final int pa, final int first, final int last) { int middle; int t; t = last - first; middle = first + t / 2; if (t <= 512) { if (t <= 32) { return ssMedian3(td, pa, first, middle, last - 1); } t >>= 2; return ssMedian5(td, pa, first, first + t, middle, last - 1 - t, last - 1); } t >>= 3; return ssMedian3( td, pa, ssMedian3(td, pa, first, first + t, first + (t << 1)), ssMedian3(td, pa, middle - t, middle, middle + t), ssMedian3(td, pa, last - 1 - (t << 1), last - 1 - t, last - 1) ); }
private int ssPivot(final int td, final int pa, final int first, final int last) { int middle; int t; t = last - first; middle = first + t / 2; if (t <= 512) { if (t <= 32) { return ssMedian3(td, pa, first, middle, last - 1); } t >>= 2; return ssMedian5(td, pa, first, first + t, middle, last - 1 - t, last - 1); } t >>= 3; return ssMedian3( td, pa, ssMedian3(td, pa, first, first + t, first + (t << 1)), ssMedian3(td, pa, middle - t, middle, middle + t), ssMedian3(td, pa, last - 1 - (t << 1), last - 1 - t, last - 1) ); }
private int ssPivot(final int td, final int pa, final int first, final int last) { int middle; int t; t = last - first; middle = first + t / 2; if (t <= 512) { if (t <= 32) { return ssMedian3(td, pa, first, middle, last - 1); } t >>= 2; return ssMedian5(td, pa, first, first + t, middle, last - 1 - t, last - 1); } t >>= 3; return ssMedian3( td, pa, ssMedian3(td, pa, first, first + t, first + (t << 1)), ssMedian3(td, pa, middle - t, middle, middle + t), ssMedian3(td, pa, last - 1 - (t << 1), last - 1 - t, last - 1) ); }
private int ssPivot(final int td, final int pa, final int first, final int last) { int middle; int t; t = last - first; middle = first + t / 2; if (t <= 512) { if (t <= 32) { return ssMedian3(td, pa, first, middle, last - 1); } t >>= 2; return ssMedian5(td, pa, first, first + t, middle, last - 1 - t, last - 1); } t >>= 3; return ssMedian3( td, pa, ssMedian3(td, pa, first, first + t, first + (t << 1)), ssMedian3(td, pa, middle - t, middle, middle + t), ssMedian3(td, pa, last - 1 - (t << 1), last - 1 - t, last - 1) ); }
private int ssPivot(final int td, final int pa, final int first, final int last) { int middle; int t; t = last - first; middle = first + t / 2; if (t <= 512) { if (t <= 32) { return ssMedian3(td, pa, first, middle, last - 1); } t >>= 2; return ssMedian5(td, pa, first, first + t, middle, last - 1 - t, last - 1); } t >>= 3; return ssMedian3( td, pa, ssMedian3(td, pa, first, first + t, first + (t << 1)), ssMedian3(td, pa, middle - t, middle, middle + t), ssMedian3(td, pa, last - 1 - (t << 1), last - 1 - t, last - 1) ); }
private int ssPivot(final int td, final int pa, final int first, final int last) { int middle; int t; t = last - first; middle = first + t / 2; if (t <= 512) { if (t <= 32) { return ssMedian3(td, pa, first, middle, last - 1); } t >>= 2; return ssMedian5(td, pa, first, first + t, middle, last - 1 - t, last - 1); } t >>= 3; return ssMedian3( td, pa, ssMedian3(td, pa, first, first + t, first + (t << 1)), ssMedian3(td, pa, middle - t, middle, middle + t), ssMedian3(td, pa, last - 1 - (t << 1), last - 1 - t, last - 1) ); }
private int ssPivot(final int td, final int pa, final int first, final int last) { int middle; int t; t = last - first; middle = first + t / 2; if (t <= 512) { if (t <= 32) { return ssMedian3(td, pa, first, middle, last - 1); } t >>= 2; return ssMedian5(td, pa, first, first + t, middle, last - 1 - t, last - 1); } t >>= 3; return ssMedian3( td, pa, ssMedian3(td, pa, first, first + t, first + (t << 1)), ssMedian3(td, pa, middle - t, middle, middle + t), ssMedian3(td, pa, last - 1 - (t << 1), last - 1 - t, last - 1) ); }