extra166y
Class ParallelArrayWithBounds<T>

java.lang.Object
  extended by extra166y.AbstractParallelAnyArray
      extended by extra166y.ParallelArrayWithMapping<T,T>
          extended by extra166y.ParallelArrayWithFilter<T>
              extended by extra166y.ParallelArrayWithBounds<T>
Direct Known Subclasses:
ParallelArray

public abstract class ParallelArrayWithBounds<T>
extends ParallelArrayWithFilter<T>

A prefix view of ParallelArray that causes operations to apply only to elements within a given range. Instances of this class may be constructed only via prefix methods of ParallelArray or its other prefix classes.


Method Summary
abstract  int binarySearch(T target)
          Assuming this array is sorted, returns the index of an element equal to given target, or -1 if not present.
abstract  int binarySearch(T target, java.util.Comparator<? super T> comparator)
          Assuming this array is sorted with respect to the given comparator, returns the index of an element equal to given target, or -1 if not present.
abstract  ParallelArrayWithBounds<T> cumulate(Ops.Reducer<T> reducer, T base)
          Replaces each element with the running cumulation of applying the given reducer.
abstract  int indexOf(T target)
          Returns the index of some element equal to given target, or -1 if not present
abstract  T precumulate(Ops.Reducer<T> reducer, T base)
          Replaces each element with the cumulation of applying the given reducer to all previous values, and returns the total reduction.
abstract  ParallelArrayWithBounds<T> sort()
          Sorts the elements, assuming all elements are Comparable.
abstract  ParallelArrayWithBounds<T> sort(java.util.Comparator<? super T> cmp)
          Sorts the elements.
abstract  ParallelArrayWithBounds<T> withBounds(int firstIndex, int upperBound)
          Returns an operation prefix that causes a method to operate only on the elements of the array between firstIndex (inclusive) and upperBound (exclusive).
 
Methods inherited from class extra166y.ParallelArrayWithFilter
allNonidenticalElements, allUniqueElements, hasAllEqualElements, hasAllIdenticalElements, replaceWithGeneratedValue, replaceWithMappedIndex, replaceWithMappedIndex, replaceWithMapping, replaceWithMapping, replaceWithMapping, replaceWithValue, withFilter, withFilter, withIndexedFilter
 
Methods inherited from class 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 extra166y.AbstractParallelAnyArray
anyIndex, isEmpty, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

withBounds

public abstract ParallelArrayWithBounds<T> withBounds(int firstIndex,
                                                      int upperBound)
Returns an operation prefix that causes a method to operate only on the elements of the array between firstIndex (inclusive) and upperBound (exclusive). The bound arguments are relative to the current bounds. For example pa.withBounds(2, 8).withBounds(3, 5) indexes the 5th (= 2+3) and 6th elements of pa. However, indices returned by methods such as indexOf are with respect to the underlying ParallelArray.

Parameters:
firstIndex - the lower bound (inclusive)
upperBound - the upper bound (exclusive)
Returns:
operation prefix

indexOf

public abstract int indexOf(T target)
Returns the index of some element equal to given target, or -1 if not present

Parameters:
target - the element to search for
Returns:
the index or -1 if not present

binarySearch

public abstract int binarySearch(T target)
Assuming this array is sorted, returns the index of an element equal to given target, or -1 if not present. If the array is not sorted, the results are undefined.

Parameters:
target - the element to search for
Returns:
the index or -1 if not present

binarySearch

public abstract int binarySearch(T target,
                                 java.util.Comparator<? super T> comparator)
Assuming this array is sorted with respect to the given comparator, returns the index of an element equal to given target, or -1 if not present. If the array is not sorted, the results are undefined.

Parameters:
target - the element to search for
comparator - the comparator
Returns:
the index or -1 if not present

cumulate

public abstract ParallelArrayWithBounds<T> cumulate(Ops.Reducer<T> reducer,
                                                    T base)
Replaces each element with the running cumulation of applying the given reducer.

Parameters:
reducer - the reducer
base - the result for an empty array
Returns:
this (to simplify use in expressions)

precumulate

public abstract T precumulate(Ops.Reducer<T> reducer,
                              T base)
Replaces each element with the cumulation of applying the given reducer to all previous values, and returns the total reduction.

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

sort

public abstract ParallelArrayWithBounds<T> sort(java.util.Comparator<? super T> cmp)
Sorts the elements. Unlike Arrays.sort, this sort does not guarantee that elements with equal keys maintain their relative position in the array.

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

sort

public abstract ParallelArrayWithBounds<T> sort()
Sorts the elements, assuming all elements are Comparable. Unlike Arrays.sort, this sort does not guarantee that elements with equal keys maintain their relative position in the array.

Returns:
this (to simplify use in expressions)
Throws:
java.lang.ClassCastException - if any element is not Comparable.