Package extra166y
Class ParallelDoubleArray
An array of doubles supporting parallel operations. This class
provides methods supporting the same operations as
ParallelArray
, but specialized for scalar doubles. It additionally
provides a few methods specific to numerical values.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Summary statistics for a possibly bounded, filtered, and/or mapped ParallelDoubleArray. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ParallelDoubleArray
(jsr166y.ForkJoinPool executor, double[] array, int limit) Constructor for use by subclasses to create a new ParallelDoubleArray using the given executor, and initially using the supplied array, with effective size bound by the given limit. -
Method Summary
Modifier and TypeMethodDescriptionaddAll
(double[] other) Equivalent to asList().addAll but specialized for array arguments and likely to be more efficient.Appends all (possibly bounded, filtered, or mapped) elements of the given ParallelDoubleArray, resizing and/or reallocating this array if necessary.all()
Returns a new ParallelDoubleArray holding all elementsReturns a new ParallelDoubleArray containing only the unique elements of this array (that is, without any duplicates).void
apply
(Ops.DoubleProcedure procedure) Applies the given procedure to elementsasList()
Returns a view of this ParallelDoubleArray as a List.int
binarySearch
(double target) Assuming this array is sorted, returns the index of an element equal to given target, or -1 if not present.int
binarySearch
(double target, Ops.DoubleComparator 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.static ParallelDoubleArray
create
(int size, jsr166y.ForkJoinPool executor) Creates a new ParallelDoubleArray using the given executor and an array of the given sizestatic ParallelDoubleArray
createEmpty
(int size, jsr166y.ForkJoinPool executor) Creates a new ParallelDoubleArray using the given executor and an array of the given size, but with an initial effective size of zero, enabling incremental insertion viaasList()
operations.static ParallelDoubleArray
createFromCopy
(double[] source, jsr166y.ForkJoinPool executor) Creates a new ParallelDoubleArray using the given executor and initially holding copies of the given source elements.static ParallelDoubleArray
createFromCopy
(int size, double[] source, jsr166y.ForkJoinPool executor) Creates a new ParallelDoubleArray using an array of the given size, initially holding copies of the given source truncated or padded with zeros to obtain the specified length.static ParallelDoubleArray
createUsingHandoff
(double[] handoff, jsr166y.ForkJoinPool executor) Creates a new ParallelDoubleArray initially using the given array and executor.cumulate
(Ops.DoubleReducer reducer, double base) Replaces each element with the running cumulation of applying the given reducer.Replaces each element with the running sumstatic jsr166y.ForkJoinPool
Returns a common default executor for use in ParallelArrays.double
get
(int i) Returns the element of the array at the given indexdouble[]
getArray()
Returns the underlying array used for computationsjsr166y.ForkJoinPool
Returns the executor used for computationsboolean
Returns true if all elements at the same relative positions of this and other array are equal.int
indexOf
(double target) Returns the index of some element equal to given target, or -1 if not presentiterator()
Returns an iterator stepping through each element of the array up to the current limit.double
max()
Returns the maximum element, or -Double.MAX_VALUE if emptydouble
max
(Ops.DoubleComparator comparator) Returns the maximum element, or -Double.MAX_VALUE if emptydouble
min()
Returns the minimum element, or Double.MAX_VALUE if empty,double
min
(Ops.DoubleComparator comparator) Returns the minimum element, or Double.MAX_VALUE if emptydouble
precumulate
(Ops.DoubleReducer reducer, double base) Replaces each element with the cumulation of applying the given reducer to all previous values, and returns the total reduction.double
Replaces each element with its prefix sumdouble
reduce
(Ops.DoubleReducer reducer, double base) Returns reduction of elementsremoveAll
(Ops.DoublePredicate selector) Removes from the array all elements for which the given selector holds.Removes consecutive elements that are equal, shifting others leftward, and possibly decreasing size.replaceWithGeneratedValue
(Ops.DoubleGenerator generator) Replaces elements with the results of applying the given generator.Replaces elements with the results of applying the given mapping to each index and current element valueReplaces elements with the results of applying the given op to their indices.replaceWithMapping
(Ops.BinaryDoubleOp combiner, double[] other) Replaces elements with results of applying op(thisElement, otherElement)replaceWithMapping
(Ops.BinaryDoubleOp combiner, ParallelDoubleArrayWithDoubleMapping other) Replaces elements with results of applying op(thisElement, otherElement)Replaces elements with the results of applying the given op to their current values.replaceWithValue
(double value) Replaces elements with the given value.void
set
(int i, double x) Sets the element of the array at the given index to the given valuefinal void
setLimit
(int newLimit) Ensures that the underlying array can be accessed up to the given upper bound, reallocating and copying the underlying array to expand if necessary.int
size()
Returns the effective size of the underlying array.sort()
Sorts the array, assuming all elements are Comparable.sort
(Ops.DoubleComparator comparator) Sorts the array.double
sum()
Returns the sum of elementssummary()
Returns summary statistics, using natural comparatorsummary
(Ops.DoubleComparator comparator) Returns summary statistics, using the given comparator to locate minimum and maximum elements.toString()
Equivalent to asList().toString()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).withFilter
(Ops.BinaryDoublePredicate selector, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate only on elements for which the given binary selector returns truewithFilter
(Ops.DoublePredicate selector) Returns an operation prefix that causes a method to operate only on the elements of the array for which the given selector returns truewithIndexedFilter
(Ops.IntAndDoublePredicate selector) Returns an operation prefix that causes a method to operate only on elements for which the given indexed selector returns trueReturns 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, and produces a new value.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, and produces a new value.withIndexedMapping
(Ops.IntAndDoubleToObject<? extends 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, and produces a new value.withMapping
(Ops.BinaryDoubleOp combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.DoubleAndDoubleToLong combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.DoubleAndDoubleToObject<? 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.withMapping
(Ops.DoubleAndLongToDouble combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.DoubleAndLongToLong combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.DoubleAndLongToObject<? 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.withMapping
(Ops.DoubleAndObjectToDouble<? 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.withMapping
(Ops.DoubleAndObjectToLong<? 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, X> ParallelDoubleArrayWithMapping <W> withMapping
(Ops.DoubleAndObjectToObject<? 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.Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.withMapping
(Ops.DoubleToObject<? extends U> op) Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.Methods inherited from class extra166y.ParallelDoubleArrayWithDoubleMapping
sequentially
Methods inherited from class extra166y.AbstractParallelAnyArray
anyIndex, isEmpty
-
Constructor Details
-
ParallelDoubleArray
protected ParallelDoubleArray(jsr166y.ForkJoinPool executor, double[] array, int limit) Constructor for use by subclasses to create a new ParallelDoubleArray using the given executor, and initially using the supplied array, with effective size bound by the given limit. This constructor is designed to enable extensions via subclassing. To create a ParallelDoubleArray, usecreate(int, jsr166y.ForkJoinPool)
,createEmpty(int, jsr166y.ForkJoinPool)
,createUsingHandoff(double[], jsr166y.ForkJoinPool)
orcreateFromCopy(double[], jsr166y.ForkJoinPool)
.- Parameters:
executor
- the executorarray
- the arraylimit
- the upper bound limit
-
-
Method Details
-
defaultExecutor
public static jsr166y.ForkJoinPool defaultExecutor()Returns a common default executor for use in ParallelArrays. This executor arranges enough parallelism to use most, but not necessarily all, of the available processors on this system.- Returns:
- the executor
-
create
Creates a new ParallelDoubleArray using the given executor and an array of the given size- Parameters:
size
- the array sizeexecutor
- the executor
-
createUsingHandoff
public static ParallelDoubleArray createUsingHandoff(double[] handoff, jsr166y.ForkJoinPool executor) Creates a new ParallelDoubleArray initially using the given array and executor. In general, the handed off array should not be used for other purposes once constructing this ParallelDoubleArray. The given array may be internally replaced by another array in the course of methods that add or remove elements.- Parameters:
handoff
- the arrayexecutor
- the executor
-
createFromCopy
Creates a new ParallelDoubleArray using the given executor and initially holding copies of the given source elements.- Parameters:
source
- the source of initial elementsexecutor
- the executor
-
createFromCopy
public static ParallelDoubleArray createFromCopy(int size, double[] source, jsr166y.ForkJoinPool executor) Creates a new ParallelDoubleArray using an array of the given size, initially holding copies of the given source truncated or padded with zeros to obtain the specified length.- Parameters:
size
- the array sizesource
- the source of initial elementsexecutor
- the executor
-
createEmpty
Creates a new ParallelDoubleArray using the given executor and an array of the given size, but with an initial effective size of zero, enabling incremental insertion viaasList()
operations.- Parameters:
size
- the array sizeexecutor
- the executor
-
getExecutor
public jsr166y.ForkJoinPool getExecutor()Returns the executor used for computations- Returns:
- the executor
-
apply
Applies the given procedure to elements- Overrides:
apply
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
procedure
- the procedure
-
reduce
Returns reduction of elements- Overrides:
reduce
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
reducer
- the reducerbase
- the result for an empty array- Returns:
- reduction
-
all
Returns a new ParallelDoubleArray holding all elements- Overrides:
all
in classParallelDoubleArrayWithDoubleMapping
- Returns:
- a new ParallelDoubleArray holding all elements
-
replaceWithMapping
Replaces elements with the results of applying the given op to their current values.- Overrides:
replaceWithMapping
in classParallelDoubleArrayWithFilter
- Parameters:
op
- the op- Returns:
- this (to simplify use in expressions)
-
replaceWithMappedIndex
Replaces elements with the results of applying the given op to their indices.- Overrides:
replaceWithMappedIndex
in classParallelDoubleArrayWithFilter
- Parameters:
op
- the op- Returns:
- this (to simplify use in expressions)
-
replaceWithMappedIndex
Replaces elements with the results of applying the given mapping to each index and current element value- Overrides:
replaceWithMappedIndex
in classParallelDoubleArrayWithFilter
- Parameters:
op
- the op- Returns:
- this (to simplify use in expressions)
-
replaceWithGeneratedValue
Replaces elements with the results of applying the given generator. For example, to fill the array with uniform random values, use replaceWithGeneratedValue(Ops.doubleRandom())- Overrides:
replaceWithGeneratedValue
in classParallelDoubleArrayWithFilter
- Parameters:
generator
- the generator- Returns:
- this (to simplify use in expressions)
-
replaceWithValue
Replaces elements with the given value.- Overrides:
replaceWithValue
in classParallelDoubleArrayWithFilter
- Parameters:
value
- the value- Returns:
- this (to simplify use in expressions)
-
replaceWithMapping
public ParallelDoubleArray replaceWithMapping(Ops.BinaryDoubleOp combiner, ParallelDoubleArrayWithDoubleMapping other) Replaces elements with results of applying op(thisElement, otherElement)- Overrides:
replaceWithMapping
in classParallelDoubleArrayWithFilter
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- this (to simplify use in expressions)
- Throws:
ArrayIndexOutOfBoundsException
- if other array has fewer elements than this array.
-
replaceWithMapping
Replaces elements with results of applying op(thisElement, otherElement)- Overrides:
replaceWithMapping
in classParallelDoubleArrayWithFilter
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- this (to simplify use in expressions)
- Throws:
ArrayIndexOutOfBoundsException
- if other array has fewer elements than this array.
-
indexOf
public int indexOf(double 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 int binarySearch(double 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
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 forcomparator
- the comparator- Returns:
- the index or -1 if not present
-
summary
Returns summary statistics, using the given comparator to locate minimum and maximum elements.- Overrides:
summary
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
comparator
- the comparator to use for locating minimum and maximum elements- Returns:
- the summary.
-
summary
Returns summary statistics, using natural comparator- Overrides:
summary
in classParallelDoubleArrayWithDoubleMapping
- Returns:
- the summary.
-
min
Returns the minimum element, or Double.MAX_VALUE if empty- Overrides:
min
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
comparator
- the comparator- Returns:
- minimum element, or Double.MAX_VALUE if empty
-
min
public double min()Returns the minimum element, or Double.MAX_VALUE if empty,- Overrides:
min
in classParallelDoubleArrayWithDoubleMapping
- Returns:
- minimum element, or Double.MAX_VALUE if empty
-
max
Returns the maximum element, or -Double.MAX_VALUE if empty- Overrides:
max
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
comparator
- the comparator- Returns:
- maximum element, or -Double.MAX_VALUE if empty
-
max
public double max()Returns the maximum element, or -Double.MAX_VALUE if empty- Overrides:
max
in classParallelDoubleArrayWithDoubleMapping
- Returns:
- maximum element, or -Double.MAX_VALUE if empty
-
cumulate
Replaces each element with the running cumulation of applying the given reducer. For example, if the contents are the numbers 1, 2, 3, and the reducer operation adds numbers, then after invocation of this method, the contents would be 1, 3, 6 (that is, 1, 1+2, 1+2+3);- Parameters:
reducer
- the reducerbase
- the result for an empty array- Returns:
- this (to simplify use in expressions)
-
precumulate
Replaces each element with the cumulation of applying the given reducer to all previous values, and returns the total reduction. For example, if the contents are the numbers 1, 2, 3, and the reducer operation adds numbers, then after invocation of this method, the contents would be 0, 1, 3 (that is, 0, 0+1, 0+1+2, and the return value would be 6 (that is, 1+2+3);- Parameters:
reducer
- the reducerbase
- the result for an empty array- Returns:
- the total reduction
-
sort
Sorts the array. Unlike Arrays.sort, this sort does not guarantee that elements with equal keys maintain their relative position in the array.- Parameters:
comparator
- the comparator to use- Returns:
- this (to simplify use in expressions)
-
sort
Sorts the array, 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:
ClassCastException
- if any element is not Comparable.
-
removeConsecutiveDuplicates
Removes consecutive elements that are equal, shifting others leftward, and possibly decreasing size. This method may be used after sorting to ensure that this ParallelDoubleArray contains a set of unique elements.- Returns:
- this (to simplify use in expressions)
-
addAll
Equivalent to asList().addAll but specialized for array arguments and likely to be more efficient.- Parameters:
other
- the elements to add- Returns:
- this (to simplify use in expressions)
-
addAll
Appends all (possibly bounded, filtered, or mapped) elements of the given ParallelDoubleArray, resizing and/or reallocating this array if necessary.- Parameters:
other
- the elements to add- Returns:
- this (to simplify use in expressions)
-
allUniqueElements
Returns a new ParallelDoubleArray containing only the unique elements of this array (that is, without any duplicates).- Overrides:
allUniqueElements
in classParallelDoubleArrayWithFilter
- Returns:
- the new ParallelDoubleArray
-
removeAll
Removes from the array all elements for which the given selector holds.- Parameters:
selector
- the selector- Returns:
- this (to simplify use in expressions)
-
hasAllEqualElements
Returns true if all elements at the same relative positions of this and other array are equal.- Overrides:
hasAllEqualElements
in classParallelDoubleArrayWithFilter
- Parameters:
other
- the other array- Returns:
- true if equal
-
sum
public double sum()Returns the sum of elements- Overrides:
sum
in classParallelDoubleArrayWithDoubleMapping
- Returns:
- the sum of elements
-
cumulateSum
Replaces each element with the running sum- Returns:
- this (to simplify use in expressions)
-
precumulateSum
public double precumulateSum()Replaces each element with its prefix sum- Returns:
- the total sum
-
withBounds
Returns an operation prefix that causes a method to operate only on the elements of the array between firstIndex (inclusive) and upperBound (exclusive).- Parameters:
firstIndex
- the lower bound (inclusive)upperBound
- the upper bound (exclusive)- Returns:
- operation prefix
-
withFilter
Returns an operation prefix that causes a method to operate only on the elements of the array for which the given selector returns true- Parameters:
selector
- the selector- Returns:
- operation prefix
-
withFilter
public ParallelDoubleArrayWithFilter withFilter(Ops.BinaryDoublePredicate selector, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate only on elements for which the given binary selector returns true- Overrides:
withFilter
in classParallelDoubleArrayWithFilter
- Parameters:
selector
- the selector- Returns:
- operation prefix
-
withIndexedFilter
Returns an operation prefix that causes a method to operate only on elements for which the given indexed selector returns true- Parameters:
selector
- the selector- Returns:
- operation prefix
-
withMapping
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.- Parameters:
op
- the op- Returns:
- operation prefix
-
withMapping
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.- Parameters:
op
- the op- Returns:
- operation prefix
-
withMapping
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.- Parameters:
op
- the op- Returns:
- operation prefix
-
withMapping
public <V,W, ParallelDoubleArrayWithMapping<W> withMappingX> (Ops.DoubleAndObjectToObject<? 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.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V> ParallelDoubleArrayWithMapping<V> withMapping(Ops.DoubleAndDoubleToObject<? 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.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V> ParallelDoubleArrayWithMapping<V> withMapping(Ops.DoubleAndLongToObject<? 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.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V,W> ParallelDoubleArrayWithDoubleMapping withMapping(Ops.DoubleAndObjectToDouble<? 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.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelDoubleArrayWithDoubleMapping withMapping(Ops.BinaryDoubleOp combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelDoubleArrayWithDoubleMapping withMapping(Ops.DoubleAndLongToDouble combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V,W> ParallelDoubleArrayWithLongMapping withMapping(Ops.DoubleAndObjectToLong<? 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.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelDoubleArrayWithLongMapping withMapping(Ops.DoubleAndDoubleToLong combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelDoubleArrayWithLongMapping withMapping(Ops.DoubleAndLongToLong combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelDoubleArrayWithDoubleMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withIndexedMapping
public <U> ParallelDoubleArrayWithMapping<U> withIndexedMapping(Ops.IntAndDoubleToObject<? extends 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, and produces a new value.- Parameters:
mapper
- the mapper- Returns:
- operation prefix
-
withIndexedMapping
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, and produces a new value.- Parameters:
mapper
- the mapper- Returns:
- operation prefix
-
withIndexedMapping
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, and produces a new value.- Parameters:
mapper
- the mapper- Returns:
- operation prefix
-
iterator
Returns an iterator stepping through each element of the array up to the current limit. This iterator does not support the remove operation. However, a full ListIterator supporting add, remove, and set operations is available viaasList()
.- Returns:
- an iterator stepping through each element.
-
asList
Returns a view of this ParallelDoubleArray as a List. This List has the same structural and performance characteristics asArrayList
, and may be used to modify, replace or extend the bounds of the array underlying this ParallelDoubleArray. The methods supported by this list view are not in general implemented as parallel operations. This list is also not itself thread-safe. In particular, performing list updates while other parallel operations are in progress has undefined (and surely undesired) effects.- Returns:
- a list view
-
size
public int size()Returns the effective size of the underlying array. The effective size is the current limit, if used (seesetLimit(int)
), or the length of the array otherwise.- Overrides:
size
in classAbstractParallelAnyArray
- Returns:
- the effective size of array
-
getArray
public double[] getArray()Returns the underlying array used for computations- Returns:
- the array
-
get
public double get(int i) Returns the element of the array at the given index- Parameters:
i
- the index- Returns:
- the element of the array at the given index
-
set
public void set(int i, double x) Sets the element of the array at the given index to the given value- Parameters:
i
- the indexx
- the value
-
toString
Equivalent to asList().toString() -
setLimit
public final void setLimit(int newLimit) Ensures that the underlying array can be accessed up to the given upper bound, reallocating and copying the underlying array to expand if necessary. Or, if the given limit is less than the length of the underlying array, causes computations to ignore elements past the given limit.- Parameters:
newLimit
- the new upper bound- Throws:
IllegalArgumentException
- if newLimit less than zero.
-