Abstract class serving as the basis of parallel array classes across types.
Constructor and description |
---|
AbstractParallelAnyArray
(java.util.concurrent.ForkJoinPool ex, int origin, int fence) |
Type | Name and description |
---|---|
double[] |
allDoubles() |
long[] |
allLongs() |
java.lang.Object[] |
allObjects(java.lang.Class elementType) Shared support for select/map all -- probe filter, map, and type to start selection driver, or do parallel mapping, or just copy. |
int |
anyIndex() Returns the index of some element matching bound and filter constraints, or -1 if none. |
void |
boundsCheck(int lo, int hi) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(IntAndObjectToObject<? super T, ? extends U> fst, IntAndObjectToObject<? super U, ? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(IntAndObjectToObject<? super T, ? extends U> fst, IntAndObjectToDouble<? super U> snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(IntAndObjectToObject<? super T, ? extends U> fst, IntAndObjectToLong<? super U> snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(IntAndDoubleToObject<? extends U> fst, IntAndObjectToObject<? super U, ? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(IntAndDoubleToObject<? extends U> fst, IntAndObjectToDouble<? super U> snd) |
static IntAndDoubleToLong |
compoundIndexedOp(IntAndDoubleToObject<? extends U> fst, IntAndObjectToLong<? super U> snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(IntAndLongToObject<? extends U> fst, IntAndObjectToObject<? super U, ? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(IntAndLongToObject<? extends U> fst, IntAndObjectToDouble<? super U> snd) |
static IntAndLongToLong |
compoundIndexedOp(IntAndLongToObject<? extends U> fst, IntAndObjectToLong<? super U> snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(IntAndObjectToDouble<? super T> fst, IntAndDoubleToObject<? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(IntAndObjectToDouble<? super T> fst, IntAndDoubleToDouble snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(IntAndObjectToLong<? super T> fst, IntAndLongToLong snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(IntAndDoubleToLong fst, IntAndLongToObject<? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(IntAndDoubleToDouble fst, IntAndDoubleToDouble snd) |
static IntAndDoubleToLong |
compoundIndexedOp(IntAndDoubleToDouble fst, IntAndDoubleToLong snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(IntAndLongToDouble fst, IntAndDoubleToObject<? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(IntAndLongToDouble fst, IntAndDoubleToDouble snd) |
static IntAndLongToLong |
compoundIndexedOp(IntAndLongToDouble fst, IntAndDoubleToLong snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(IntAndObjectToLong<? super T> fst, IntAndLongToObject<? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(IntAndObjectToLong<? super T> fst, IntAndLongToDouble snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(IntAndObjectToDouble<? super T> fst, IntAndDoubleToLong snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(IntAndDoubleToDouble fst, IntAndDoubleToObject<? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(IntAndDoubleToLong fst, IntAndLongToDouble snd) |
static IntAndDoubleToLong |
compoundIndexedOp(IntAndDoubleToLong fst, IntAndLongToLong snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(IntAndLongToLong fst, IntAndLongToObject<? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(IntAndLongToLong fst, IntAndLongToDouble snd) |
static IntAndLongToLong |
compoundIndexedOp(IntAndLongToLong fst, IntAndLongToLong snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(IntAndObjectToObject<? super T, ? extends U> fst, Op<? super U, ? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(IntAndObjectToObject<? super T, ? extends U> fst, ObjectToDouble<? super U> snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(IntAndObjectToObject<? super T, ? extends U> fst, ObjectToLong<? super U> snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(IntAndDoubleToObject<? extends U> fst, Op<? super U, ? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(IntAndDoubleToObject<? extends U> fst, ObjectToDouble<? super U> snd) |
static IntAndDoubleToLong |
compoundIndexedOp(IntAndDoubleToObject<? extends U> fst, ObjectToLong<? super U> snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(IntAndLongToObject<? extends U> fst, Op<? super U, ? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(IntAndLongToObject<? extends U> fst, ObjectToDouble<? super U> snd) |
static IntAndLongToLong |
compoundIndexedOp(IntAndLongToObject<? extends U> fst, ObjectToLong<? super U> snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(IntAndObjectToDouble<? super T> fst, DoubleToObject<? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(IntAndObjectToDouble<? super T> fst, DoubleOp snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(IntAndObjectToDouble<? super T> fst, DoubleToLong snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(IntAndDoubleToDouble fst, DoubleToObject<? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(IntAndDoubleToDouble fst, DoubleOp snd) |
static IntAndDoubleToLong |
compoundIndexedOp(IntAndDoubleToDouble fst, DoubleToLong snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(IntAndLongToDouble fst, DoubleToObject<? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(IntAndLongToDouble fst, DoubleOp snd) |
static IntAndLongToLong |
compoundIndexedOp(IntAndLongToDouble fst, DoubleToLong snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(IntAndObjectToLong<? super T> fst, LongToObject<? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(IntAndObjectToLong<? super T> fst, LongToDouble snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(IntAndObjectToLong<? super T> fst, LongOp snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(IntAndDoubleToLong fst, LongToObject<? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(IntAndDoubleToLong fst, LongToDouble snd) |
static IntAndDoubleToLong |
compoundIndexedOp(IntAndDoubleToLong fst, LongOp snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(IntAndLongToLong fst, LongToObject<? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(IntAndLongToLong fst, LongToDouble snd) |
static IntAndLongToLong |
compoundIndexedOp(IntAndLongToLong fst, LongOp snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(Op<? super T, ? extends U> fst, IntAndObjectToObject<? super U, ? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(Op<? super T, ? extends U> fst, IntAndObjectToDouble<? super U> snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(Op<? super T, ? extends U> fst, IntAndObjectToLong<? super U> snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(DoubleToObject<? extends U> fst, IntAndObjectToObject<? super U, ? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(DoubleToObject<? extends U> fst, IntAndObjectToDouble<? super U> snd) |
static IntAndDoubleToLong |
compoundIndexedOp(DoubleToObject<? extends U> fst, IntAndObjectToLong<? super U> snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(LongToObject<? extends U> fst, IntAndObjectToObject<? super U, ? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(LongToObject<? extends U> fst, IntAndObjectToDouble<? super U> snd) |
static IntAndLongToLong |
compoundIndexedOp(LongToObject<? extends U> fst, IntAndObjectToLong<? super U> snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(ObjectToDouble<? super T> fst, IntAndDoubleToObject<? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(ObjectToDouble<? super T> fst, IntAndDoubleToDouble snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(ObjectToDouble<? super T> fst, IntAndDoubleToLong snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(DoubleOp fst, IntAndDoubleToObject<? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(DoubleOp fst, IntAndDoubleToDouble snd) |
static IntAndDoubleToLong |
compoundIndexedOp(DoubleOp fst, IntAndDoubleToLong snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(LongToDouble fst, IntAndDoubleToObject<? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(LongToDouble fst, IntAndDoubleToDouble snd) |
static IntAndLongToLong |
compoundIndexedOp(LongToDouble fst, IntAndDoubleToLong snd) |
static IntAndObjectToObject<T, V> |
compoundIndexedOp(ObjectToLong<? super T> fst, IntAndLongToObject<? extends V> snd) |
static IntAndObjectToDouble<T> |
compoundIndexedOp(ObjectToLong<? super T> fst, IntAndLongToDouble snd) |
static IntAndObjectToLong<T> |
compoundIndexedOp(ObjectToLong<? super T> fst, IntAndLongToLong snd) |
static IntAndDoubleToObject<V> |
compoundIndexedOp(DoubleToLong fst, IntAndLongToObject<? extends V> snd) |
static IntAndDoubleToDouble |
compoundIndexedOp(DoubleToLong fst, IntAndLongToDouble snd) |
static IntAndDoubleToLong |
compoundIndexedOp(DoubleToLong fst, IntAndLongToLong snd) |
static IntAndLongToObject<V> |
compoundIndexedOp(LongOp fst, IntAndLongToObject<? extends V> snd) |
static IntAndLongToDouble |
compoundIndexedOp(LongOp fst, IntAndLongToDouble snd) |
static IntAndLongToLong |
compoundIndexedOp(LongOp fst, IntAndLongToLong snd) |
static IntAndObjectPredicate<T> |
compoundIndexedSelector(Predicate<S> fst, IntAndObjectPredicate<? super T> snd) |
static IntAndObjectPredicate<T> |
compoundIndexedSelector(IntAndObjectPredicate<S> fst, IntAndObjectPredicate<? super T> snd) |
static IntAndObjectPredicate<T> |
compoundIndexedSelector(IntAndObjectPredicate<S> fst, Predicate<? super T> snd) |
static IntAndDoublePredicate |
compoundIndexedSelector(DoublePredicate fst, IntAndDoublePredicate snd) |
static IntAndDoublePredicate |
compoundIndexedSelector(IntAndDoublePredicate fst, IntAndDoublePredicate snd) |
static IntAndDoublePredicate |
compoundIndexedSelector(IntAndDoublePredicate fst, DoublePredicate snd) |
static IntAndLongPredicate |
compoundIndexedSelector(LongPredicate fst, IntAndLongPredicate snd) |
static IntAndLongPredicate |
compoundIndexedSelector(IntAndLongPredicate fst, IntAndLongPredicate snd) |
static IntAndLongPredicate |
compoundIndexedSelector(IntAndLongPredicate fst, LongPredicate snd) |
int |
computeThreshold() Returns size threshold for splitting into subtask. |
double |
dget(int index) |
double[] |
dgetArray() |
int |
getThreshold() Returns lazily computed threshold. |
boolean |
hasFilter() |
boolean |
hasMap() |
static IntAndObjectToObject<T, V> |
indexedMapper(BinaryOp<? super T, ? super U, ? extends V> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndObjectToDouble<T> |
indexedMapper(ObjectAndObjectToDouble<? super T, ? super U> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndObjectToLong<T> |
indexedMapper(ObjectAndObjectToLong<? super T, ? super U> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndObjectToObject<T, V> |
indexedMapper(ObjectAndDoubleToObject<? super T, ? extends V> combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndObjectToDouble<T> |
indexedMapper(ObjectAndDoubleToDouble<? super T> combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndObjectToLong<T> |
indexedMapper(ObjectAndDoubleToLong<? super T> combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndObjectToObject<T, V> |
indexedMapper(ObjectAndLongToObject<? super T, ? extends V> combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndObjectToDouble<T> |
indexedMapper(ObjectAndLongToDouble<? super T> combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndObjectToLong<T> |
indexedMapper(ObjectAndLongToLong<? super T> combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndDoubleToObject<V> |
indexedMapper(DoubleAndObjectToObject<? super U, ? extends V> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndDoubleToDouble |
indexedMapper(DoubleAndObjectToDouble<? super U> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndDoubleToLong |
indexedMapper(DoubleAndObjectToLong<? super U> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndDoubleToObject<V> |
indexedMapper(DoubleAndDoubleToObject<? extends V> combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndDoubleToDouble |
indexedMapper(BinaryDoubleOp combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndDoubleToLong |
indexedMapper(DoubleAndDoubleToLong combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndDoubleToObject<V> |
indexedMapper(DoubleAndLongToObject<? extends V> combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndDoubleToDouble |
indexedMapper(DoubleAndLongToDouble combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndDoubleToLong |
indexedMapper(DoubleAndLongToLong combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndLongToObject<V> |
indexedMapper(LongAndObjectToObject<? super U, ? extends V> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndLongToDouble |
indexedMapper(LongAndObjectToDouble<? super U> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndLongToLong |
indexedMapper(LongAndObjectToLong<? super U> combiner, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndLongToObject<V> |
indexedMapper(LongAndDoubleToObject<? extends V> combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndLongToDouble |
indexedMapper(LongAndDoubleToDouble combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndLongToLong |
indexedMapper(LongAndDoubleToLong combiner, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndLongToObject<V> |
indexedMapper(LongAndLongToObject<? extends V> combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndLongToDouble |
indexedMapper(LongAndLongToDouble combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndLongToLong |
indexedMapper(BinaryLongOp combiner, ParallelLongArrayWithLongMapping u, int origin) |
static IntAndObjectPredicate<T> |
indexedSelector(BinaryPredicate<? super T, ? super U> bp, ParallelArrayWithMapping<W, U> u, int origin) |
static IntAndDoublePredicate |
indexedSelector(BinaryDoublePredicate bp, ParallelDoubleArrayWithDoubleMapping u, int origin) |
static IntAndLongPredicate |
indexedSelector(BinaryLongPredicate bp, ParallelLongArrayWithLongMapping u, int origin) |
boolean |
isEmpty() Returns true if there are no elements. |
boolean |
isSelected(int index) |
void |
leafApply(int lo, int hi, Procedure procedure) |
void |
leafApply(int lo, int hi, DoubleProcedure procedure) |
void |
leafApply(int lo, int hi, LongProcedure procedure) |
void |
leafBinaryIndexMap(int l, int h, IntAndObjectToObject op) |
void |
leafBinaryIndexMap(int l, int h, IntAndDoubleToDouble op) |
void |
leafBinaryIndexMap(int l, int h, IntAndLongToLong op) |
void |
leafCombineInPlace(int lo, int hi, java.lang.Object[] other, int otherOffset, BinaryOp combiner) |
void |
leafCombineInPlace(int lo, int hi, ParallelArrayWithMapping other, int otherOffset, BinaryOp combiner) |
void |
leafCombineInPlace(int lo, int hi, double[] other, int otherOffset, BinaryDoubleOp combiner) |
void |
leafCombineInPlace(int lo, int hi, ParallelDoubleArrayWithDoubleMapping other, int otherOffset, BinaryDoubleOp combiner) |
void |
leafCombineInPlace(int lo, int hi, long[] other, int otherOffset, BinaryLongOp combiner) |
void |
leafCombineInPlace(int lo, int hi, ParallelLongArrayWithLongMapping other, int otherOffset, BinaryLongOp combiner) |
void |
leafFill(int l, int h, java.lang.Object value) |
void |
leafFill(int l, int h, double value) |
void |
leafFill(int l, int h, long value) |
void |
leafGenerate(int l, int h, Generator generator) |
void |
leafGenerate(int l, int h, DoubleGenerator generator) |
void |
leafGenerate(int l, int h, LongGenerator generator) |
void |
leafIndexMap(int l, int h, IntToObject op) |
void |
leafIndexMap(int l, int h, IntToDouble array) |
void |
leafIndexMap(int l, int h, IntToLong array) |
int |
leafIndexSelected(int lo, int hi, boolean positive, int[] indices) |
void |
leafMoveByIndex(int[] indices, int loIdx, int hiIdx, int offset) |
int |
leafMoveSelected(int lo, int hi, int offset, boolean positive) |
java.lang.Object |
leafReduce(int lo, int hi, Reducer reducer, java.lang.Object base) |
double |
leafReduce(int lo, int hi, DoubleReducer reducer, double base) |
long |
leafReduce(int lo, int hi, LongReducer reducer, long base) |
void |
leafTransfer(int lo, int hi, java.lang.Object[] dest, int offset) |
void |
leafTransfer(int lo, int hi, double[] dest, int offset) |
void |
leafTransfer(int lo, int hi, long[] dest, int offset) |
void |
leafTransferByIndex(int[] indices, int loIdx, int hiIdx, java.lang.Object[] dest, int offset) |
void |
leafTransferByIndex(int[] indices, int loIdx, int hiIdx, double[] dest, int offset) |
void |
leafTransferByIndex(int[] indices, int loIdx, int hiIdx, long[] dest, int offset) |
void |
leafTransform(int l, int h, Op op) |
void |
leafTransform(int l, int h, DoubleOp op) |
void |
leafTransform(int l, int h, LongOp op) |
long |
lget(int index) |
long[] |
lgetArray() |
java.lang.Object |
oget(int index) |
java.lang.Object[] |
ogetArray() Access methods for ref, double, long. |
int |
size() Returns the number of elements selected using bound or filter restrictions. |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Shared support for select/map all -- probe filter, map, and type to start selection driver, or do parallel mapping, or just copy.
Returns the index of some element matching bound and filter constraints, or -1 if none.
Returns size threshold for splitting into subtask. By default, uses about 8 times as many tasks as threads
Returns lazily computed threshold.
Returns true if there are no elements.
Access methods for ref, double, long. Checking for null/false return is used as a sort of type test. These are used to avoid duplication in non-performance-critical aspects of control, as well as to provide a simple default mechanism for extensions.
Returns the number of elements selected using bound or filter restrictions. Note that this method must evaluate all selectors to return its result.
Copyright © 2008–2014 Václav Pech. All Rights Reserved.