groovyx.gpars.extra166y
Class ParallelArrayWithFilter<T>

java.lang.Object
  extended by groovyx.gpars.extra166y.AbstractParallelAnyArray
      extended by groovyx.gpars.extra166y.AbstractParallelAnyArray.OPap<T>
          extended by groovyx.gpars.extra166y.ParallelArrayWithMapping<T,T>
              extended by groovyx.gpars.extra166y.ParallelArrayWithFilter<T>
Direct Known Subclasses:
AbstractParallelAnyArray.OFPap, AbstractParallelAnyArray.ORPap, ParallelArrayWithBounds

public abstract class ParallelArrayWithFilter<T>
extends ParallelArrayWithMapping<T,T>

A prefix view of ParallelArray that causes operations to apply only to elements for which a selector returns true. 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
ParallelArrayWithFilter(jsr166y.ForkJoinPool ex, int origin, int fence, T[] array)
           
 
Method Summary
 ParallelArray<T> allNonidenticalElements()
          Returns a new ParallelArray containing only non-null unique elements (that is, without any duplicates).
 ParallelArray<T> allUniqueElements()
          Returns a new ParallelArray containing only non-null unique elements (that is, without any duplicates).
<U,V> boolean
hasAllEqualElements(ParallelArrayWithMapping<U,V> other)
          Returns true if all elements at the same relative positions of this and other array are equal.
<U,V> boolean
hasAllIdenticalElements(ParallelArrayWithMapping<U,V> other)
          Returns true if all elements at the same relative positions of this and other array are identical.
(package private)  void leafTransfer(int lo, int hi, java.lang.Object[] dest, int offset)
           
(package private)  void leafTransferByIndex(int[] indices, int loIdx, int hiIdx, java.lang.Object[] dest, int offset)
           
(package private)  java.lang.Object oget(int i)
           
 ParallelArrayWithFilter<T> replaceWithGeneratedValue(Ops.Generator<? extends T> generator)
          Replaces elements with results of applying the given generator.
 ParallelArrayWithFilter<T> replaceWithMappedIndex(Ops.IntAndObjectToObject<? super T,? extends T> op)
          Replaces elements with the results of applying the given mapping to each index and current element value
 ParallelArrayWithFilter<T> replaceWithMappedIndex(Ops.IntToObject<? extends T> op)
          Replaces elements with the results of applying the given op to their indices
<V,W> ParallelArrayWithFilter<T>
replaceWithMapping(Ops.BinaryOp<? super T,? super V,? extends T> combiner, ParallelArrayWithMapping<W,V> other)
          Replaces elements with results of applying op(thisElement, otherElement)
 ParallelArrayWithFilter<T> replaceWithMapping(Ops.BinaryOp<T,T,T> combiner, T[] other)
          Replaces elements with results of applying op(thisElement, otherElement)
 ParallelArrayWithFilter<T> replaceWithMapping(Ops.Op<? super T,? extends T> op)
          Replaces elements with the results of applying the given op to their current values.
 ParallelArrayWithFilter<T> replaceWithValue(T value)
          Replaces elements with the given value.
<V,W> ParallelArrayWithFilter<T>
withFilter(Ops.BinaryPredicate<? super T,? super V> selector, ParallelArrayWithMapping<W,V> other)
          Returns an operation prefix that causes a method to operate only on elements for which the current selector (if present) and the given binary selector returns true
abstract  ParallelArrayWithFilter<T> withFilter(Ops.Predicate<? super T> selector)
          Returns an operation prefix that causes a method to operate only on elements for which the current selector (if present) and the given selector returns true
abstract  ParallelArrayWithFilter<T> withIndexedFilter(Ops.IntAndObjectPredicate<? super T> selector)
          Returns an operation prefix that causes a method to operate only on elements for which the current selector (if present) and the given indexed selector returns true
 
Methods inherited from class groovyx.gpars.extra166y.ParallelArrayWithMapping
all, all, any, apply, max, max, min, min, reduce, sequentially, summary, summary, withIndexedMapping, withIndexedMapping, withIndexedMapping, withMapping, withMapping, withMapping, withMapping, withMapping, withMapping, withMapping, withMapping, withMapping, withMapping, withMapping, withMapping
 
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, leafTransferByIndex, leafTransferByIndex, leafTransform, leafTransform, leafTransform, lgetArray, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParallelArrayWithFilter

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

replaceWithMapping

public ParallelArrayWithFilter<T> replaceWithMapping(Ops.Op<? super T,? extends T> op)
Replaces elements with the results of applying the given op to their current values.

Parameters:
op - the op
Returns:
this (to simplify use in expressions)

replaceWithMappedIndex

public ParallelArrayWithFilter<T> replaceWithMappedIndex(Ops.IntToObject<? extends T> op)
Replaces elements with the results of applying the given op to their indices

Parameters:
op - the op
Returns:
this (to simplify use in expressions)

replaceWithMappedIndex

public ParallelArrayWithFilter<T> replaceWithMappedIndex(Ops.IntAndObjectToObject<? super T,? extends T> op)
Replaces elements with the results of applying the given mapping to each index and current element value

Parameters:
op - the op
Returns:
this (to simplify use in expressions)

replaceWithGeneratedValue

public ParallelArrayWithFilter<T> replaceWithGeneratedValue(Ops.Generator<? extends T> generator)
Replaces elements with results of applying the given generator.

Parameters:
generator - the generator
Returns:
this (to simplify use in expressions)

replaceWithValue

public ParallelArrayWithFilter<T> replaceWithValue(T value)
Replaces elements with the given value.

Parameters:
value - the value
Returns:
this (to simplify use in expressions)

replaceWithMapping

public <V,W> ParallelArrayWithFilter<T> replaceWithMapping(Ops.BinaryOp<? super T,? super V,? extends T> combiner,
                                                           ParallelArrayWithMapping<W,V> other)
Replaces elements with results of applying op(thisElement, otherElement)

Parameters:
other - the other array
combiner - the combiner
Returns:
this (to simplify use in expressions)

replaceWithMapping

public ParallelArrayWithFilter<T> replaceWithMapping(Ops.BinaryOp<T,T,T> combiner,
                                                     T[] other)
Replaces elements with results of applying op(thisElement, otherElement)

Parameters:
other - the other array
combiner - the combiner
Returns:
this (to simplify use in expressions)

allUniqueElements

public ParallelArray<T> allUniqueElements()
Returns a new ParallelArray containing only non-null unique elements (that is, without any duplicates). This method uses each element's equals method to test for duplication.

Returns:
the new ParallelArray

allNonidenticalElements

public ParallelArray<T> allNonidenticalElements()
Returns a new ParallelArray containing only non-null unique elements (that is, without any duplicates). This method uses reference identity to test for duplication.

Returns:
the new ParallelArray

withFilter

public abstract ParallelArrayWithFilter<T> withFilter(Ops.Predicate<? super T> selector)
Returns an operation prefix that causes a method to operate only on elements for which the current selector (if present) and the given selector returns true

Parameters:
selector - the selector
Returns:
operation prefix

withFilter

public <V,W> ParallelArrayWithFilter<T> withFilter(Ops.BinaryPredicate<? super T,? super V> selector,
                                                   ParallelArrayWithMapping<W,V> other)
Returns an operation prefix that causes a method to operate only on elements for which the current selector (if present) and the given binary selector returns true

Parameters:
selector - the selector
Returns:
operation prefix

withIndexedFilter

public abstract ParallelArrayWithFilter<T> withIndexedFilter(Ops.IntAndObjectPredicate<? super T> selector)
Returns an operation prefix that causes a method to operate only on elements for which the current selector (if present) and the given indexed selector returns true

Parameters:
selector - the selector
Returns:
operation prefix

hasAllEqualElements

public <U,V> boolean hasAllEqualElements(ParallelArrayWithMapping<U,V> other)
Returns true if all elements at the same relative positions of this and other array are equal.

Parameters:
other - the other array
Returns:
true if equal

hasAllIdenticalElements

public <U,V> boolean hasAllIdenticalElements(ParallelArrayWithMapping<U,V> other)
Returns true if all elements at the same relative positions of this and other array are identical.

Parameters:
other - the other array
Returns:
true if equal

leafTransfer

final void leafTransfer(int lo,
                        int hi,
                        java.lang.Object[] dest,
                        int offset)
Overrides:
leafTransfer in class AbstractParallelAnyArray

leafTransferByIndex

final void leafTransferByIndex(int[] indices,
                               int loIdx,
                               int hiIdx,
                               java.lang.Object[] dest,
                               int offset)
Overrides:
leafTransferByIndex in class AbstractParallelAnyArray

oget

final java.lang.Object oget(int i)
Specified by:
oget in class AbstractParallelAnyArray

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