101 |
101 |
102 /** The smallest subtask array partition size to use as threshold */ |
102 /** The smallest subtask array partition size to use as threshold */ |
103 static final int MIN_PARTITION = 16; |
103 static final int MIN_PARTITION = 16; |
104 |
104 |
105 static final class CumulateTask<T> extends CountedCompleter<Void> { |
105 static final class CumulateTask<T> extends CountedCompleter<Void> { |
|
106 @SuppressWarnings("serial") // Not statically typed as Serializable |
106 final T[] array; |
107 final T[] array; |
|
108 @SuppressWarnings("serial") // Not statically typed as Serializable |
107 final BinaryOperator<T> function; |
109 final BinaryOperator<T> function; |
108 CumulateTask<T> left, right; |
110 CumulateTask<T> left, right; |
109 T in, out; |
111 @SuppressWarnings("serial") // Not statically typed as Serializable |
|
112 T in; |
|
113 @SuppressWarnings("serial") // Not statically typed as Serializable |
|
114 T out; |
110 final int lo, hi, origin, fence, threshold; |
115 final int lo, hi, origin, fence, threshold; |
111 |
116 |
112 /** Root task constructor */ |
117 /** Root task constructor */ |
113 public CumulateTask(CumulateTask<T> parent, |
118 public CumulateTask(CumulateTask<T> parent, |
114 BinaryOperator<T> function, |
119 BinaryOperator<T> function, |
255 private static final long serialVersionUID = 5293554502939613543L; |
260 private static final long serialVersionUID = 5293554502939613543L; |
256 } |
261 } |
257 |
262 |
258 static final class LongCumulateTask extends CountedCompleter<Void> { |
263 static final class LongCumulateTask extends CountedCompleter<Void> { |
259 final long[] array; |
264 final long[] array; |
|
265 @SuppressWarnings("serial") // Not statically typed as Serializable |
260 final LongBinaryOperator function; |
266 final LongBinaryOperator function; |
261 LongCumulateTask left, right; |
267 LongCumulateTask left, right; |
262 long in, out; |
268 long in, out; |
263 final int lo, hi, origin, fence, threshold; |
269 final int lo, hi, origin, fence, threshold; |
264 |
270 |
406 private static final long serialVersionUID = -5074099945909284273L; |
412 private static final long serialVersionUID = -5074099945909284273L; |
407 } |
413 } |
408 |
414 |
409 static final class DoubleCumulateTask extends CountedCompleter<Void> { |
415 static final class DoubleCumulateTask extends CountedCompleter<Void> { |
410 final double[] array; |
416 final double[] array; |
|
417 @SuppressWarnings("serial") // Not statically typed as Serializable |
411 final DoubleBinaryOperator function; |
418 final DoubleBinaryOperator function; |
412 DoubleCumulateTask left, right; |
419 DoubleCumulateTask left, right; |
413 double in, out; |
420 double in, out; |
414 final int lo, hi, origin, fence, threshold; |
421 final int lo, hi, origin, fence, threshold; |
415 |
422 |
557 private static final long serialVersionUID = -586947823794232033L; |
564 private static final long serialVersionUID = -586947823794232033L; |
558 } |
565 } |
559 |
566 |
560 static final class IntCumulateTask extends CountedCompleter<Void> { |
567 static final class IntCumulateTask extends CountedCompleter<Void> { |
561 final int[] array; |
568 final int[] array; |
|
569 @SuppressWarnings("serial") // Not statically typed as Serializable |
562 final IntBinaryOperator function; |
570 final IntBinaryOperator function; |
563 IntCumulateTask left, right; |
571 IntCumulateTask left, right; |
564 int in, out; |
572 int in, out; |
565 final int lo, hi, origin, fence, threshold; |
573 final int lo, hi, origin, fence, threshold; |
566 |
574 |