--- jsr166/src/main/java/util/ArrayPrefixHelpers.java 2013/01/20 04:25:11 1.2 +++ jsr166/src/main/java/util/ArrayPrefixHelpers.java 2015/09/20 15:33:12 1.7 @@ -5,12 +5,12 @@ */ package java.util; -import java.util.concurrent.ForkJoinPool; + import java.util.concurrent.CountedCompleter; import java.util.function.BinaryOperator; +import java.util.function.DoubleBinaryOperator; import java.util.function.IntBinaryOperator; import java.util.function.LongBinaryOperator; -import java.util.function.DoubleBinaryOperator; /** * ForkJoin tasks to perform Arrays.parallelPrefix operations. @@ -19,7 +19,7 @@ import java.util.function.DoubleBinaryOp * @since 1.8 */ class ArrayPrefixHelpers { - private ArrayPrefixHelpers() {}; // non-instantiable + private ArrayPrefixHelpers() {} // non-instantiable /* * Parallel prefix (aka cumulate, scan) task classes @@ -72,27 +72,14 @@ class ArrayPrefixHelpers { /** The smallest subtask array partition size to use as threshold */ static final int MIN_PARTITION = 16; - static final class CumulateTask extends CountedCompleter { + private static final class CumulateTask + extends CountedCompleter { final T[] array; final BinaryOperator function; CumulateTask left, right; T in, out; final int lo, hi, origin, fence, threshold; - /** Root task constructor */ - public CumulateTask(CumulateTask parent, - BinaryOperator function, - T[] array, int lo, int hi) { - super(parent); - this.function = function; this.array = array; - this.lo = this.origin = lo; this.hi = this.fence = hi; - int p; - this.threshold = - (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3)) - <= MIN_PARTITION ? MIN_PARTITION : p; - } - - /** Subtask constructor */ CumulateTask(CumulateTask parent, BinaryOperator function, T[] array, int origin, int fence, int threshold, int lo, int hi) { @@ -224,27 +211,14 @@ class ArrayPrefixHelpers { private static final long serialVersionUID = 5293554502939613543L; } - static final class LongCumulateTask extends CountedCompleter { + private static final class LongCumulateTask + extends CountedCompleter { final long[] array; final LongBinaryOperator function; LongCumulateTask left, right; long in, out; final int lo, hi, origin, fence, threshold; - /** Root task constructor */ - public LongCumulateTask(LongCumulateTask parent, - LongBinaryOperator function, - long[] array, int lo, int hi) { - super(parent); - this.function = function; this.array = array; - this.lo = this.origin = lo; this.hi = this.fence = hi; - int p; - this.threshold = - (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3)) - <= MIN_PARTITION ? MIN_PARTITION : p; - } - - /** Subtask constructor */ LongCumulateTask(LongCumulateTask parent, LongBinaryOperator function, long[] array, int origin, int fence, int threshold, int lo, int hi) { @@ -374,30 +348,17 @@ class ArrayPrefixHelpers { private static final long serialVersionUID = -5074099945909284273L; } - static final class DoubleCumulateTask extends CountedCompleter { + private static final class DoubleCumulateTask + extends CountedCompleter { final double[] array; final DoubleBinaryOperator function; DoubleCumulateTask left, right; double in, out; final int lo, hi, origin, fence, threshold; - /** Root task constructor */ - public DoubleCumulateTask(DoubleCumulateTask parent, - DoubleBinaryOperator function, - double[] array, int lo, int hi) { - super(parent); - this.function = function; this.array = array; - this.lo = this.origin = lo; this.hi = this.fence = hi; - int p; - this.threshold = - (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3)) - <= MIN_PARTITION ? MIN_PARTITION : p; - } - - /** Subtask constructor */ DoubleCumulateTask(DoubleCumulateTask parent, DoubleBinaryOperator function, - double[] array, int origin, int fence, int threshold, - int lo, int hi) { + double[] array, int origin, int fence, int threshold, + int lo, int hi) { super(parent); this.function = function; this.array = array; this.origin = origin; this.fence = fence; @@ -524,30 +485,17 @@ class ArrayPrefixHelpers { private static final long serialVersionUID = -586947823794232033L; } - static final class IntCumulateTask extends CountedCompleter { + private static final class IntCumulateTask + extends CountedCompleter { final int[] array; final IntBinaryOperator function; IntCumulateTask left, right; int in, out; final int lo, hi, origin, fence, threshold; - /** Root task constructor */ - public IntCumulateTask(IntCumulateTask parent, - IntBinaryOperator function, - int[] array, int lo, int hi) { - super(parent); - this.function = function; this.array = array; - this.lo = this.origin = lo; this.hi = this.fence = hi; - int p; - this.threshold = - (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3)) - <= MIN_PARTITION ? MIN_PARTITION : p; - } - - /** Subtask constructor */ IntCumulateTask(IntCumulateTask parent, IntBinaryOperator function, - int[] array, int origin, int fence, int threshold, - int lo, int hi) { + int[] array, int origin, int fence, int threshold, + int lo, int hi) { super(parent); this.function = function; this.array = array; this.origin = origin; this.fence = fence;