--- jsr166/src/extra166y/AbstractParallelAnyArray.java 2011/12/05 04:08:47 1.9 +++ jsr166/src/extra166y/AbstractParallelAnyArray.java 2015/01/18 20:17:32 1.18 @@ -5,6 +5,7 @@ */ package extra166y; + import jsr166y.*; import static extra166y.Ops.*; import java.util.*; @@ -65,7 +66,7 @@ public abstract class AbstractParallelAn // A few public methods exported across all subclasses /** - * Return the number of elements selected using bound or + * Returns the number of elements selected using bound or * filter restrictions. Note that this method must evaluate * all selectors to return its result. * @return the number of elements @@ -82,7 +83,7 @@ public abstract class AbstractParallelAn /** * Returns the index of some element matching bound and filter * constraints, or -1 if none. - * @return index of matching element, or -1 if none. + * @return index of matching element, or -1 if none */ public int anyIndex() { if (!hasFilter()) @@ -95,7 +96,7 @@ public abstract class AbstractParallelAn } /** - * Returns true if there are no elements + * Returns true if there are no elements. * @return true if there are no elements */ public boolean isEmpty() { @@ -132,7 +133,7 @@ public abstract class AbstractParallelAn */ Object[] ogetArray() { return null; } double[] dgetArray() { return null; } - long[] lgetArray() { return null; } + long[] lgetArray() { return null; } abstract Object oget(int index); abstract double dget(int index); abstract long lget(int index); @@ -145,6 +146,7 @@ public abstract class AbstractParallelAn * oget, dget, etc. But most are overridden in most concrete * classes to avoid per-element dispatching. */ + void leafApply(int lo, int hi, Procedure procedure) { for (int i = lo; i < hi; ++i) if (isSelected(i)) @@ -274,7 +276,7 @@ public abstract class AbstractParallelAn /** * Shared support for select/map all -- probe filter, map, and * type to start selection driver, or do parallel mapping, or - * just copy, + * just copy. */ final Object[] allObjects(Class elementType) { if (hasFilter()) { @@ -403,7 +405,7 @@ public abstract class AbstractParallelAn int otherOffset, BinaryLongOp combiner) {} // Base of object ref array classes - static abstract class OPap extends AbstractParallelAnyArray { + abstract static class OPap extends AbstractParallelAnyArray { T[] array; OPap(ForkJoinPool ex, int origin, int fence, T[] array) { super(ex, origin, fence); @@ -433,7 +435,7 @@ public abstract class AbstractParallelAn } // Base of double array classes - static abstract class DPap extends AbstractParallelAnyArray { + abstract static class DPap extends AbstractParallelAnyArray { double[] array; DPap(ForkJoinPool ex, int origin, int fence, double[] array) { super(ex, origin, fence); @@ -463,7 +465,7 @@ public abstract class AbstractParallelAn } // Base of long array classes - static abstract class LPap extends AbstractParallelAnyArray { + abstract static class LPap extends AbstractParallelAnyArray { long[] array; LPap(ForkJoinPool ex, int origin, int fence, long[] array) { super(ex, origin, fence); @@ -513,7 +515,7 @@ public abstract class AbstractParallelAn return new ORPap(ex, origin, fence, array, selector); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OUOMPap(ex, origin, fence, array, op); } @@ -1169,7 +1171,7 @@ public abstract class AbstractParallelAn compoundIndexedSelector(this.selector, selector)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OFOMPap(ex, origin, fence, array, selector, op); } @@ -1710,7 +1712,7 @@ public abstract class AbstractParallelAn compoundIndexedSelector(this.selector, selector)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OROMPap(ex, origin, fence, array, selector, op); } @@ -2228,7 +2230,7 @@ public abstract class AbstractParallelAn // Object-mapped - static abstract class OOMPap extends ParallelArrayWithMapping { + abstract static class OOMPap extends ParallelArrayWithMapping { final Op op; OOMPap(ForkJoinPool ex, int origin, int fence, T[] array, @@ -2258,7 +2260,7 @@ public abstract class AbstractParallelAn } } - static abstract class DOMPap extends ParallelDoubleArrayWithMapping { + abstract static class DOMPap extends ParallelDoubleArrayWithMapping { final DoubleToObject op; DOMPap(ForkJoinPool ex, int origin, int fence, double[] array, DoubleToObject op) { @@ -2287,7 +2289,7 @@ public abstract class AbstractParallelAn } } - static abstract class LOMPap extends ParallelLongArrayWithMapping { + abstract static class LOMPap extends ParallelLongArrayWithMapping { final LongToObject op; LOMPap(ForkJoinPool ex, int origin, int fence, long[] array, LongToObject op) { @@ -2324,7 +2326,7 @@ public abstract class AbstractParallelAn super(ex, origin, fence, array, op); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OUOMPap(ex, origin, fence, array, CommonOps.compoundOp(this.op, op)); @@ -2518,7 +2520,7 @@ public abstract class AbstractParallelAn boolean hasFilter() { return true; } boolean isSelected(int i) { return selector.op(this.array[i]); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OFOMPap (ex, origin, fence, array, selector, @@ -2773,7 +2775,7 @@ public abstract class AbstractParallelAn boolean hasFilter() { return true; } boolean isSelected(int i) { return selector.op(i, this.array[i]); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OROMPap (ex, origin, fence, array, selector, @@ -3013,7 +3015,7 @@ public abstract class AbstractParallelAn // Object-combined - static abstract class OOCPap extends ParallelArrayWithMapping { + abstract static class OOCPap extends ParallelArrayWithMapping { final IntAndObjectToObject op; OOCPap(ForkJoinPool ex, int origin, int fence, T[] array, @@ -3045,7 +3047,7 @@ public abstract class AbstractParallelAn } } - static abstract class DOCPap extends ParallelDoubleArrayWithMapping { + abstract static class DOCPap extends ParallelDoubleArrayWithMapping { final IntAndDoubleToObject op; DOCPap(ForkJoinPool ex, int origin, int fence, double[] array, IntAndDoubleToObject op) { @@ -3076,7 +3078,7 @@ public abstract class AbstractParallelAn } } - static abstract class LOCPap extends ParallelLongArrayWithMapping { + abstract static class LOCPap extends ParallelLongArrayWithMapping { final IntAndLongToObject op; LOCPap(ForkJoinPool ex, int origin, int fence, long[] array, IntAndLongToObject op) { @@ -3115,7 +3117,7 @@ public abstract class AbstractParallelAn super(ex, origin, fence, array, op); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OUOCPap(ex, origin, fence, array, compoundIndexedOp(this.op, op)); @@ -3309,7 +3311,7 @@ public abstract class AbstractParallelAn boolean hasFilter() { return true; } boolean isSelected(int i) { return selector.op(this.array[i]); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OFOCPap(ex, origin, fence, array, selector, compoundIndexedOp(this.op, op)); @@ -3552,7 +3554,7 @@ public abstract class AbstractParallelAn boolean hasFilter() { return true; } boolean isSelected(int i) { return selector.op(i, this.array[i]); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (Op op) { return new OROCPap(ex, origin, fence, array, selector, compoundIndexedOp(this.op, op)); @@ -3784,7 +3786,7 @@ public abstract class AbstractParallelAn // Double-mapped - static abstract class ODMPap extends ParallelArrayWithDoubleMapping { + abstract static class ODMPap extends ParallelArrayWithDoubleMapping { final ObjectToDouble op; ODMPap(ForkJoinPool ex, int origin, int fence, T[] array, ObjectToDouble op) { @@ -3814,7 +3816,7 @@ public abstract class AbstractParallelAn } - static abstract class DDMPap extends ParallelDoubleArrayWithDoubleMapping { + abstract static class DDMPap extends ParallelDoubleArrayWithDoubleMapping { final DoubleOp op; DDMPap (ForkJoinPool ex, int origin, int fence, @@ -3844,7 +3846,7 @@ public abstract class AbstractParallelAn } } - static abstract class LDMPap extends ParallelLongArrayWithDoubleMapping { + abstract static class LDMPap extends ParallelLongArrayWithDoubleMapping { final LongToDouble op; LDMPap(ForkJoinPool ex, int origin, int fence, long[] array, LongToDouble op) { @@ -3892,7 +3894,7 @@ public abstract class AbstractParallelAn CommonOps.compoundOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (DoubleToObject op) { return new OUOMPap(ex, origin, fence, array, CommonOps.compoundOp(this.op, op)); @@ -4080,7 +4082,7 @@ public abstract class AbstractParallelAn CommonOps.compoundOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (DoubleToObject op) { return new OFOMPap(ex, origin, fence, array, selector, CommonOps.compoundOp(this.op, op)); @@ -4316,7 +4318,7 @@ public abstract class AbstractParallelAn CommonOps.compoundOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (DoubleToObject op) { return new OROMPap(ex, origin, fence, array, selector, CommonOps.compoundOp(this.op, op)); @@ -4530,7 +4532,7 @@ public abstract class AbstractParallelAn } // double-combined - static abstract class ODCPap extends ParallelArrayWithDoubleMapping { + abstract static class ODCPap extends ParallelArrayWithDoubleMapping { final IntAndObjectToDouble op; ODCPap(ForkJoinPool ex, int origin, int fence, T[] array, IntAndObjectToDouble op) { @@ -4562,7 +4564,7 @@ public abstract class AbstractParallelAn } - static abstract class DDCPap extends ParallelDoubleArrayWithDoubleMapping { + abstract static class DDCPap extends ParallelDoubleArrayWithDoubleMapping { final IntAndDoubleToDouble op; DDCPap(ForkJoinPool ex, int origin, int fence, double[] array, IntAndDoubleToDouble op) { @@ -4593,7 +4595,7 @@ public abstract class AbstractParallelAn } } - static abstract class LDCPap extends ParallelLongArrayWithDoubleMapping { + abstract static class LDCPap extends ParallelLongArrayWithDoubleMapping { final IntAndLongToDouble op; LDCPap(ForkJoinPool ex, int origin, int fence, long[] array, IntAndLongToDouble op) { @@ -4641,7 +4643,7 @@ public abstract class AbstractParallelAn compoundIndexedOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (DoubleToObject op) { return new OUOCPap(ex, origin, fence, array, compoundIndexedOp(this.op, op)); @@ -4828,7 +4830,7 @@ public abstract class AbstractParallelAn compoundIndexedOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (DoubleToObject op) { return new OFOCPap(ex, origin, fence, array, selector, compoundIndexedOp(this.op, op)); @@ -5066,7 +5068,7 @@ public abstract class AbstractParallelAn compoundIndexedOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (DoubleToObject op) { return new OROCPap(ex, origin, fence, array, selector, compoundIndexedOp(this.op, op)); @@ -5281,7 +5283,7 @@ public abstract class AbstractParallelAn } // long-combined - static abstract class OLMPap extends ParallelArrayWithLongMapping { + abstract static class OLMPap extends ParallelArrayWithLongMapping { final ObjectToLong op; OLMPap(ForkJoinPool ex, int origin, int fence, T[] array, final ObjectToLong op) { @@ -5310,7 +5312,7 @@ public abstract class AbstractParallelAn } } - static abstract class DLMPap extends ParallelDoubleArrayWithLongMapping { + abstract static class DLMPap extends ParallelDoubleArrayWithLongMapping { final DoubleToLong op; DLMPap(ForkJoinPool ex, int origin, int fence, double[] array, DoubleToLong op) { @@ -5340,7 +5342,7 @@ public abstract class AbstractParallelAn } - static abstract class LLMPap extends ParallelLongArrayWithLongMapping { + abstract static class LLMPap extends ParallelLongArrayWithLongMapping { final LongOp op; LLMPap(ForkJoinPool ex, int origin, int fence, long[] array, LongOp op) { @@ -5387,7 +5389,7 @@ public abstract class AbstractParallelAn CommonOps.compoundOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (LongToObject op) { return new OUOMPap(ex, origin, fence, array, CommonOps.compoundOp(this.op, op)); @@ -5576,7 +5578,7 @@ public abstract class AbstractParallelAn CommonOps.compoundOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (LongToObject op) { return new OFOMPap(ex, origin, fence, array, selector, CommonOps.compoundOp(this.op, op)); @@ -5816,7 +5818,7 @@ public abstract class AbstractParallelAn CommonOps.compoundOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (LongToObject op) { return new OROMPap(ex, origin, fence, array, selector, CommonOps.compoundOp(this.op, op)); @@ -6032,7 +6034,7 @@ public abstract class AbstractParallelAn } // long-combined - static abstract class OLCPap extends ParallelArrayWithLongMapping { + abstract static class OLCPap extends ParallelArrayWithLongMapping { final IntAndObjectToLong op; OLCPap(ForkJoinPool ex, int origin, int fence, T[] array, IntAndObjectToLong op) { @@ -6063,7 +6065,7 @@ public abstract class AbstractParallelAn } } - static abstract class DLCPap extends ParallelDoubleArrayWithLongMapping { + abstract static class DLCPap extends ParallelDoubleArrayWithLongMapping { final IntAndDoubleToLong op; DLCPap(ForkJoinPool ex, int origin, int fence, double[] array, IntAndDoubleToLong op) { @@ -6094,7 +6096,7 @@ public abstract class AbstractParallelAn } } - static abstract class LLCPap extends ParallelLongArrayWithLongMapping { + abstract static class LLCPap extends ParallelLongArrayWithLongMapping { final IntAndLongToLong op; LLCPap(ForkJoinPool ex, int origin, int fence, long[] array, IntAndLongToLong op) { @@ -6142,7 +6144,7 @@ public abstract class AbstractParallelAn compoundIndexedOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (LongToObject op) { return new OUOCPap(ex, origin, fence, array, compoundIndexedOp(this.op, op)); @@ -6327,7 +6329,7 @@ public abstract class AbstractParallelAn compoundIndexedOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (LongToObject op) { return new OFOCPap(ex, origin, fence, array, selector, @@ -6569,7 +6571,7 @@ public abstract class AbstractParallelAn compoundIndexedOp(this.op, op)); } - public ParallelArrayWithMapping withMapping + public ParallelArrayWithMapping withMapping (LongToObject op) { return new OROCPap(ex, origin, fence, array, selector, @@ -6819,7 +6821,7 @@ public abstract class AbstractParallelAn int cursor; FilteredAsDoubleIterator() { cursor = origin; - advance() ; + advance(); } private void advance() { while (cursor < fence) { @@ -6872,7 +6874,7 @@ public abstract class AbstractParallelAn int cursor; FilteredAsLongIterator() { cursor = origin; - advance() ; + advance(); } private void advance() { while (cursor < fence) { @@ -6925,7 +6927,7 @@ public abstract class AbstractParallelAn int cursor; FilteredIterator() { cursor = origin; - advance() ; + advance(); } private void advance() { while (cursor < fence) {