groovyx.gpars.extra166y
Class ParallelArrayWithMapping<T,U>

java.lang.Object
  extended by groovyx.gpars.extra166y.AbstractParallelAnyArray
      extended by groovyx.gpars.extra166y.AbstractParallelAnyArray.OPap<T>
          extended by groovyx.gpars.extra166y.ParallelArrayWithMapping<T,U>
Direct Known Subclasses:
AbstractParallelAnyArray.OOCPap, AbstractParallelAnyArray.OOMPap, ParallelArrayWithFilter

public abstract class ParallelArrayWithMapping<T,U>
extends AbstractParallelAnyArray.OPap<T>

A prefix view of ParallelArray that causes operations to apply to mappings of elements, not to the elements themselves. Instances of this class may be constructed only via prefix methods of ParallelArray or its other prefix classes.


Nested Class Summary
 
Nested classes/interfaces inherited from class groovyx.gpars.extra166y.AbstractParallelAnyArray
AbstractParallelAnyArray.AndPredicate<T>, AbstractParallelAnyArray.DDCPap, AbstractParallelAnyArray.DDMPap, AbstractParallelAnyArray.DFDCPap, AbstractParallelAnyArray.DFDMPap, AbstractParallelAnyArray.DFLCPap, AbstractParallelAnyArray.DFLMPap, AbstractParallelAnyArray.DFOCPap<U>, AbstractParallelAnyArray.DFOMPap<U>, AbstractParallelAnyArray.DFPap, AbstractParallelAnyArray.DLCPap, AbstractParallelAnyArray.DLMPap, AbstractParallelAnyArray.DOCPap<U>, AbstractParallelAnyArray.DOMPap<U>, AbstractParallelAnyArray.DPap, AbstractParallelAnyArray.DRDCPap, AbstractParallelAnyArray.DRDMPap, AbstractParallelAnyArray.DRLCPap, AbstractParallelAnyArray.DRLMPap, AbstractParallelAnyArray.DROCPap<U>, AbstractParallelAnyArray.DROMPap<U>, AbstractParallelAnyArray.DRPap, AbstractParallelAnyArray.DUDCPap, AbstractParallelAnyArray.DUDMPap, AbstractParallelAnyArray.DULCPap, AbstractParallelAnyArray.DULMPap, AbstractParallelAnyArray.DUOCPap<U>, AbstractParallelAnyArray.DUOMPap<U>, AbstractParallelAnyArray.DUPap, AbstractParallelAnyArray.FilteredAsDoubleIterator, AbstractParallelAnyArray.FilteredAsLongIterator, AbstractParallelAnyArray.FilteredIterator<U>, AbstractParallelAnyArray.LDCPap, AbstractParallelAnyArray.LDMPap, AbstractParallelAnyArray.LFDCPap, AbstractParallelAnyArray.LFDMPap, AbstractParallelAnyArray.LFLCPap, AbstractParallelAnyArray.LFLMPap, AbstractParallelAnyArray.LFOCPap<U>, AbstractParallelAnyArray.LFOMPap<U>, AbstractParallelAnyArray.LFPap, AbstractParallelAnyArray.LLCPap, AbstractParallelAnyArray.LLMPap, AbstractParallelAnyArray.LOCPap<U>, AbstractParallelAnyArray.LOMPap<U>, AbstractParallelAnyArray.LPap, AbstractParallelAnyArray.LRDCPap, AbstractParallelAnyArray.LRDMPap, AbstractParallelAnyArray.LRLCPap, AbstractParallelAnyArray.LRLMPap, AbstractParallelAnyArray.LROCPap<U>, AbstractParallelAnyArray.LROMPap<U>, AbstractParallelAnyArray.LRPap, AbstractParallelAnyArray.LUDCPap, AbstractParallelAnyArray.LUDMPap, AbstractParallelAnyArray.LULCPap, AbstractParallelAnyArray.LULMPap, AbstractParallelAnyArray.LUOCPap<U>, AbstractParallelAnyArray.LUOMPap<U>, AbstractParallelAnyArray.LUPap, AbstractParallelAnyArray.ODCPap<T>, AbstractParallelAnyArray.ODMPap<T>, AbstractParallelAnyArray.OFDCPap<T>, AbstractParallelAnyArray.OFDMPap<T>, AbstractParallelAnyArray.OFLCPap<T>, AbstractParallelAnyArray.OFLMPap<T>, AbstractParallelAnyArray.OFOCPap<T,U>, AbstractParallelAnyArray.OFOMPap<T,U>, AbstractParallelAnyArray.OFPap<T>, AbstractParallelAnyArray.OLCPap<T>, AbstractParallelAnyArray.OLMPap<T>, AbstractParallelAnyArray.OOCPap<T,U>, AbstractParallelAnyArray.OOMPap<T,U>, AbstractParallelAnyArray.OPap<T>, AbstractParallelAnyArray.ORDCPap<T>, AbstractParallelAnyArray.ORDMPap<T>, AbstractParallelAnyArray.ORLCPap<T>, AbstractParallelAnyArray.ORLMPap<T>, AbstractParallelAnyArray.OROCPap<T,U>, AbstractParallelAnyArray.OROMPap<T,U>, AbstractParallelAnyArray.ORPap<T>, AbstractParallelAnyArray.OUDCPap<T>, AbstractParallelAnyArray.OUDMPap<T>, AbstractParallelAnyArray.OULCPap<T>, AbstractParallelAnyArray.OULMPap<T>, AbstractParallelAnyArray.OUOCPap<T,U>, AbstractParallelAnyArray.OUOMPap<T,U>, AbstractParallelAnyArray.OUPap<T>, AbstractParallelAnyArray.Sequentially<U>, AbstractParallelAnyArray.SequentiallyAsDouble, AbstractParallelAnyArray.SequentiallyAsLong, AbstractParallelAnyArray.UnfilteredAsDoubleIterator, AbstractParallelAnyArray.UnfilteredAsLongIterator, AbstractParallelAnyArray.UnfilteredIterator<U>
 
Field Summary
 
Fields inherited from class groovyx.gpars.extra166y.AbstractParallelAnyArray.OPap
array
 
Fields inherited from class groovyx.gpars.extra166y.AbstractParallelAnyArray
ex, fence, origin, threshold
 
Constructor Summary
ParallelArrayWithMapping(jsr166y.ForkJoinPool ex, int origin, int fence, T[] array)
           
 
Method Summary
 ParallelArray<U> all()
          Returns a new ParallelArray holding elements
 ParallelArray<U> all(java.lang.Class<? super U> elementType)
          Returns a new ParallelArray with the given element type holding elements
 U any()
          Returns some element matching bound and filter constraints, or null if none.
 void apply(Ops.Procedure<? super U> procedure)
          Applies the given procedure to elements
 U max()
          Returns the maximum element, or null if empty assuming that all elements are Comparables
 U max(java.util.Comparator<? super U> comparator)
          Returns the maximum element, or null if empty
 U min()
          Returns the minimum element, or null if empty, assuming that all elements are Comparables
 U min(java.util.Comparator<? super U> comparator)
          Returns the minimum element, or null if empty
 U reduce(Ops.Reducer<U> reducer, U base)
          Returns reduction of elements
 java.lang.Iterable<U> sequentially()
          Returns an Iterable view to sequentially step through mapped elements also obeying bound and filter constraints, without performing computations to evaluate them in parallel
 ParallelArray.SummaryStatistics<U> summary()
          Returns summary statistics, assuming that all elements are Comparables
 ParallelArray.SummaryStatistics<U> summary(java.util.Comparator<? super U> comparator)
          Returns summary statistics, using the given comparator to locate minimum and maximum elements.
abstract  ParallelArrayWithDoubleMapping<T> withIndexedMapping(Ops.IntAndObjectToDouble<? super U> mapper)
          Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.
abstract  ParallelArrayWithLongMapping<T> withIndexedMapping(Ops.IntAndObjectToLong<? super U> mapper)
          Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.
abstract
<V> ParallelArrayWithMapping<T,V>
withIndexedMapping(Ops.IntAndObjectToObject<? super U,? extends V> mapper)
          Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.
<V,W,X> ParallelArrayWithMapping<T,W>
withMapping(Ops.BinaryOp<? super U,? super V,? extends W> combiner, ParallelArrayWithMapping<X,V> other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
 ParallelArrayWithDoubleMapping<T> withMapping(Ops.ObjectAndDoubleToDouble<? super U> combiner, ParallelDoubleArrayWithDoubleMapping other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
 ParallelArrayWithLongMapping<T> withMapping(Ops.ObjectAndDoubleToLong<? super U> combiner, ParallelDoubleArrayWithDoubleMapping other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
<V> ParallelArrayWithMapping<T,V>
withMapping(Ops.ObjectAndDoubleToObject<? super U,? extends V> combiner, ParallelDoubleArrayWithDoubleMapping other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
 ParallelArrayWithDoubleMapping<T> withMapping(Ops.ObjectAndLongToDouble<? super U> combiner, ParallelLongArrayWithLongMapping other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
 ParallelArrayWithLongMapping<T> withMapping(Ops.ObjectAndLongToLong<? super U> combiner, ParallelLongArrayWithLongMapping other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
<V> ParallelArrayWithMapping<T,V>
withMapping(Ops.ObjectAndLongToObject<? super U,? extends V> combiner, ParallelLongArrayWithLongMapping other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
<V,W> ParallelArrayWithDoubleMapping<T>
withMapping(Ops.ObjectAndObjectToDouble<? super U,? super V> combiner, ParallelArrayWithMapping<W,V> other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
<V,W> ParallelArrayWithLongMapping<T>
withMapping(Ops.ObjectAndObjectToLong<? super U,? super V> combiner, ParallelArrayWithMapping<W,V> other)
          Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
abstract  ParallelArrayWithDoubleMapping<T> withMapping(Ops.ObjectToDouble<? super U> op)
          Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results
abstract  ParallelArrayWithLongMapping<T> withMapping(Ops.ObjectToLong<? super U> op)
          Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results
abstract
<V> ParallelArrayWithMapping<T,V>
withMapping(Ops.Op<? super U,? extends V> op)
          Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results
 
Methods inherited from class groovyx.gpars.extra166y.AbstractParallelAnyArray.OPap
dget, leafMoveByIndex, leafMoveSelected, lget, ogetArray
 
Methods inherited from class groovyx.gpars.extra166y.AbstractParallelAnyArray
allDoubles, allLongs, allObjects, anyIndex, boundsCheck, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedOp, compoundIndexedSelector, compoundIndexedSelector, compoundIndexedSelector, compoundIndexedSelector, compoundIndexedSelector, compoundIndexedSelector, compoundIndexedSelector, compoundIndexedSelector, compoundIndexedSelector, computeThreshold, dgetArray, getThreshold, hasFilter, hasMap, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedMapper, indexedSelector, indexedSelector, indexedSelector, isEmpty, isSelected, leafApply, leafApply, leafApply, leafBinaryIndexMap, leafBinaryIndexMap, leafBinaryIndexMap, leafCombineInPlace, leafCombineInPlace, leafCombineInPlace, leafCombineInPlace, leafCombineInPlace, leafCombineInPlace, leafFill, leafFill, leafFill, leafGenerate, leafGenerate, leafGenerate, leafIndexMap, leafIndexMap, leafIndexMap, leafIndexSelected, leafReduce, leafReduce, leafReduce, leafTransfer, leafTransfer, leafTransfer, leafTransferByIndex, leafTransferByIndex, leafTransferByIndex, leafTransform, leafTransform, leafTransform, lgetArray, oget, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParallelArrayWithMapping

ParallelArrayWithMapping(jsr166y.ForkJoinPool ex,
                         int origin,
                         int fence,
                         T[] array)
Method Detail

apply

public void apply(Ops.Procedure<? super U> procedure)
Applies the given procedure to elements

Parameters:
procedure - the procedure

reduce

public U reduce(Ops.Reducer<U> reducer,
                U base)
Returns reduction of elements

Parameters:
reducer - the reducer
base - the result for an empty array
Returns:
reduction

any

public U any()
Returns some element matching bound and filter constraints, or null if none.

Returns:
an element, or null if none.

min

public U min(java.util.Comparator<? super U> comparator)
Returns the minimum element, or null if empty

Parameters:
comparator - the comparator
Returns:
minimum element, or null if empty

min

public U min()
Returns the minimum element, or null if empty, assuming that all elements are Comparables

Returns:
minimum element, or null if empty
Throws:
java.lang.ClassCastException - if any element is not Comparable.

max

public U max(java.util.Comparator<? super U> comparator)
Returns the maximum element, or null if empty

Parameters:
comparator - the comparator
Returns:
maximum element, or null if empty

max

public U max()
Returns the maximum element, or null if empty assuming that all elements are Comparables

Returns:
maximum element, or null if empty
Throws:
java.lang.ClassCastException - if any element is not Comparable.

summary

public ParallelArray.SummaryStatistics<U> summary(java.util.Comparator<? super U> comparator)
Returns summary statistics, using the given comparator to locate minimum and maximum elements.

Parameters:
comparator - the comparator to use for locating minimum and maximum elements
Returns:
the summary.

summary

public ParallelArray.SummaryStatistics<U> summary()
Returns summary statistics, assuming that all elements are Comparables

Returns:
the summary.

all

public ParallelArray<U> all()
Returns a new ParallelArray holding elements

Returns:
a new ParallelArray holding elements

all

public ParallelArray<U> all(java.lang.Class<? super U> elementType)
Returns a new ParallelArray with the given element type holding elements

Parameters:
elementType - the type of the elements
Returns:
a new ParallelArray holding elements

withMapping

public abstract <V> ParallelArrayWithMapping<T,V> withMapping(Ops.Op<? super U,? extends V> op)
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results

Parameters:
op - the op
Returns:
operation prefix

withMapping

public abstract ParallelArrayWithDoubleMapping<T> withMapping(Ops.ObjectToDouble<? super U> op)
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results

Parameters:
op - the op
Returns:
operation prefix

withMapping

public abstract ParallelArrayWithLongMapping<T> withMapping(Ops.ObjectToLong<? super U> op)
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results

Parameters:
op - the op
Returns:
operation prefix

withMapping

public <V,W,X> ParallelArrayWithMapping<T,W> withMapping(Ops.BinaryOp<? super U,? super V,? extends W> combiner,
                                                         ParallelArrayWithMapping<X,V> other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public <V> ParallelArrayWithMapping<T,V> withMapping(Ops.ObjectAndDoubleToObject<? super U,? extends V> combiner,
                                                     ParallelDoubleArrayWithDoubleMapping other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public <V> ParallelArrayWithMapping<T,V> withMapping(Ops.ObjectAndLongToObject<? super U,? extends V> combiner,
                                                     ParallelLongArrayWithLongMapping other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public <V,W> ParallelArrayWithDoubleMapping<T> withMapping(Ops.ObjectAndObjectToDouble<? super U,? super V> combiner,
                                                           ParallelArrayWithMapping<W,V> other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public ParallelArrayWithDoubleMapping<T> withMapping(Ops.ObjectAndDoubleToDouble<? super U> combiner,
                                                     ParallelDoubleArrayWithDoubleMapping other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public ParallelArrayWithDoubleMapping<T> withMapping(Ops.ObjectAndLongToDouble<? super U> combiner,
                                                     ParallelLongArrayWithLongMapping other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public <V,W> ParallelArrayWithLongMapping<T> withMapping(Ops.ObjectAndObjectToLong<? super U,? super V> combiner,
                                                         ParallelArrayWithMapping<W,V> other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public ParallelArrayWithLongMapping<T> withMapping(Ops.ObjectAndDoubleToLong<? super U> combiner,
                                                   ParallelDoubleArrayWithDoubleMapping other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withMapping

public ParallelArrayWithLongMapping<T> withMapping(Ops.ObjectAndLongToLong<? super U> combiner,
                                                   ParallelLongArrayWithLongMapping other)
Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.

Parameters:
combiner - the combiner
other - the other array
Returns:
operation prefix
Throws:
java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).

withIndexedMapping

public abstract <V> ParallelArrayWithMapping<T,V> withIndexedMapping(Ops.IntAndObjectToObject<? super U,? extends V> mapper)
Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.

Parameters:
mapper - the mapper
Returns:
operation prefix

withIndexedMapping

public abstract ParallelArrayWithDoubleMapping<T> withIndexedMapping(Ops.IntAndObjectToDouble<? super U> mapper)
Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.

Parameters:
mapper - the mapper
Returns:
operation prefix

withIndexedMapping

public abstract ParallelArrayWithLongMapping<T> withIndexedMapping(Ops.IntAndObjectToLong<? super U> mapper)
Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.

Parameters:
mapper - the mapper
Returns:
operation prefix

sequentially

public java.lang.Iterable<U> sequentially()
Returns an Iterable view to sequentially step through mapped elements also obeying bound and filter constraints, without performing computations to evaluate them in parallel

Returns:
the Iterable view

Copyright © 2008–2012 Václav Pech. All Rights Reserved.