public final class DoubleArray extends Object implements Matrix, org.joda.beans.ImmutableBean, Serializable
double values.
This provides functionality similar to List but for double[].
In mathematical terms, this is a vector, or one-dimensional matrix.
| Modifier and Type | Field and Description |
|---|---|
static DoubleArray |
EMPTY
An empty array.
|
| Modifier and Type | Method and Description |
|---|---|
DoubleArray |
combine(DoubleArray other,
DoubleBinaryOperator operator)
Returns an instance where each element is formed by some combination of the matching
values in this array and the other array.
|
double |
combineReduce(DoubleArray other,
DoubleTernaryOperator operator)
Combines this array and the other array returning a reduced value.
|
DoubleArray |
concat(double... arrayToConcat)
Returns an array that combines this array and the specified array.
|
DoubleArray |
concat(DoubleArray arrayToConcat)
Returns an array that combines this array and the specified array.
|
boolean |
contains(double value)
Checks if this array contains the specified value.
|
void |
copyInto(double[] destination,
int offset)
Copies this array into the specified array.
|
static DoubleArray |
copyOf(Collection<Double> collection)
Obtains an instance from a collection of
Double. |
static DoubleArray |
copyOf(double[] array)
Obtains an instance from an array of
double. |
static DoubleArray |
copyOf(double[] array,
int fromIndex)
Obtains an instance by copying part of an array.
|
static DoubleArray |
copyOf(double[] array,
int fromIndexInclusive,
int toIndexExclusive)
Obtains an instance by copying part of an array.
|
int |
dimensions()
Gets the number of dimensions of this array.
|
DoubleArray |
dividedBy(double divisor)
Returns an instance with each value divided by the specified divisor.
|
DoubleArray |
dividedBy(DoubleArray other)
Returns an instance where each element is calculated by dividing values in this array by values in the other array.
|
boolean |
equals(Object obj) |
boolean |
equalWithTolerance(DoubleArray other,
double tolerance)
Checks if this array equals another within the specified tolerance.
|
boolean |
equalZeroWithTolerance(double tolerance)
Checks if this array equals zero within the specified tolerance.
|
static DoubleArray |
filled(int size)
Obtains an instance with all entries equal to the zero.
|
static DoubleArray |
filled(int size,
double value)
Obtains an instance with all entries equal to the same value.
|
void |
forEach(IntDoubleConsumer action)
Applies an action to each value in the array.
|
double |
get(int index)
Gets the value at the specified index in this array.
|
int |
hashCode() |
int |
indexOf(double value)
Find the index of the first occurrence of the specified value.
|
boolean |
isEmpty()
Checks if this array is empty.
|
int |
lastIndexOf(double value)
Find the index of the first occurrence of the specified value.
|
DoubleArray |
map(DoubleUnaryOperator operator)
Returns an instance with an operation applied to each value in the array.
|
DoubleArray |
mapWithIndex(IntDoubleToDoubleFunction function)
Returns an instance with an operation applied to each indexed value in the array.
|
double |
max()
Returns the minimum value held in the array.
|
org.joda.beans.MetaBean |
metaBean() |
double |
min()
Returns the minimum value held in the array.
|
DoubleArray |
minus(double amount)
Returns an instance with the specified amount subtracted from each value.
|
DoubleArray |
minus(DoubleArray other)
Returns an instance where each element is equal to the difference between the
matching values in this array and the other array.
|
DoubleArray |
multipliedBy(double factor)
Returns an instance with each value multiplied by the specified factor.
|
DoubleArray |
multipliedBy(DoubleArray other)
Returns an instance where each element is equal to the product of the
matching values in this array and the other array.
|
static DoubleArray |
of()
Obtains an empty immutable array.
|
static DoubleArray |
of(double value)
Obtains an immutable array with a single value.
|
static DoubleArray |
of(double value1,
double value2)
Obtains an immutable array with two values.
|
static DoubleArray |
of(double value1,
double value2,
double value3)
Obtains an immutable array with three values.
|
static DoubleArray |
of(double value1,
double value2,
double value3,
double value4)
Obtains an immutable array with four values.
|
static DoubleArray |
of(double value1,
double value2,
double value3,
double value4,
double value5)
Obtains an immutable array with five values.
|
static DoubleArray |
of(double value1,
double value2,
double value3,
double value4,
double value5,
double value6)
Obtains an immutable array with six values.
|
static DoubleArray |
of(double value1,
double value2,
double value3,
double value4,
double value5,
double value6,
double value7)
Obtains an immutable array with seven values.
|
static DoubleArray |
of(double value1,
double value2,
double value3,
double value4,
double value5,
double value6,
double value7,
double value8)
Obtains an immutable array with eight values.
|
static DoubleArray |
of(double value1,
double value2,
double value3,
double value4,
double value5,
double value6,
double value7,
double value8,
double... otherValues)
Obtains an immutable array with more than eight values.
|
static DoubleArray |
of(DoubleStream stream)
Obtains an instance with entries filled from a stream.
|
static DoubleArray |
of(int size,
IntToDoubleFunction valueFunction)
Obtains an instance with entries filled using a function.
|
static DoubleArray |
ofUnsafe(double[] array)
Obtains an instance by wrapping an array.
|
DoubleArray |
plus(double amount)
Returns an instance with the specified amount added to each value.
|
DoubleArray |
plus(DoubleArray other)
Returns an instance where each element is the sum of the matching values
in this array and the other array.
|
double |
reduce(double identity,
DoubleBinaryOperator operator)
Reduces this array returning a single value.
|
int |
size()
Gets the size of this array.
|
DoubleArray |
sorted()
Returns a sorted copy of this array.
|
DoubleStream |
stream()
Returns a stream over the array values.
|
DoubleArray |
subArray(int fromIndexInclusive)
Returns an array holding the values from the specified index onwards.
|
DoubleArray |
subArray(int fromIndexInclusive,
int toIndexExclusive)
Returns an array holding the values between the specified from and to indices.
|
double |
sum()
Returns the sum of all the values in the array.
|
double[] |
toArray()
Converts this instance to an independent
double[]. |
double[] |
toArrayUnsafe()
Returns the underlying array.
|
List<Double> |
toList()
Returns a list equivalent to this array.
|
String |
toString() |
DoubleArray |
with(int index,
double newValue)
Returns an instance with the value at the specified index changed.
|
public static final DoubleArray EMPTY
public static DoubleArray of()
public static DoubleArray of(double value)
value - the single valuepublic static DoubleArray of(double value1, double value2)
value1 - the first valuevalue2 - the second valuepublic static DoubleArray of(double value1, double value2, double value3)
value1 - the first valuevalue2 - the second valuevalue3 - the third valuepublic static DoubleArray of(double value1, double value2, double value3, double value4)
value1 - the first valuevalue2 - the second valuevalue3 - the third valuevalue4 - the fourth valuepublic static DoubleArray of(double value1, double value2, double value3, double value4, double value5)
value1 - the first valuevalue2 - the second valuevalue3 - the third valuevalue4 - the fourth valuevalue5 - the fifth valuepublic static DoubleArray of(double value1, double value2, double value3, double value4, double value5, double value6)
value1 - the first valuevalue2 - the second valuevalue3 - the third valuevalue4 - the fourth valuevalue5 - the fifth valuevalue6 - the sixth valuepublic static DoubleArray of(double value1, double value2, double value3, double value4, double value5, double value6, double value7)
value1 - the first valuevalue2 - the second valuevalue3 - the third valuevalue4 - the fourth valuevalue5 - the fifth valuevalue6 - the sixth valuevalue7 - the seventh valuepublic static DoubleArray of(double value1, double value2, double value3, double value4, double value5, double value6, double value7, double value8)
value1 - the first valuevalue2 - the second valuevalue3 - the third valuevalue4 - the fourth valuevalue5 - the fifth valuevalue6 - the sixth valuevalue7 - the seventh valuevalue8 - the eighth valuepublic static DoubleArray of(double value1, double value2, double value3, double value4, double value5, double value6, double value7, double value8, double... otherValues)
value1 - the first valuevalue2 - the second valuevalue3 - the third valuevalue4 - the fourth valuevalue5 - the fifth valuevalue6 - the sixth valuevalue7 - the seventh valuevalue8 - the eighth valueotherValues - the other valuespublic static DoubleArray of(int size, IntToDoubleFunction valueFunction)
The function is passed the array index and returns the value for that index.
size - the number of elementsvalueFunction - the function used to populate the valuepublic static DoubleArray of(DoubleStream stream)
The stream is converted to an array using DoubleStream.toArray().
stream - the stream of elementspublic static DoubleArray ofUnsafe(double[] array)
This method is inherently unsafe as it relies on good behavior by callers. Callers must never make any changes to the passed in array after calling this method. Doing so would violate the immutability of this class.
array - the array to assignpublic static DoubleArray copyOf(Collection<Double> collection)
Double.
The order of the values in the returned array is the order in which elements are returned from the iterator of the collection.
collection - the collection to initialize frompublic static DoubleArray copyOf(double[] array)
double.
The input array is copied and not mutated.
array - the array to copy, clonedpublic static DoubleArray copyOf(double[] array, int fromIndex)
The input array is copied and not mutated.
array - the array to copyfromIndex - the offset from the start of the arrayIndexOutOfBoundsException - if the index is invalidpublic static DoubleArray copyOf(double[] array, int fromIndexInclusive, int toIndexExclusive)
The input array is copied and not mutated.
array - the array to copyfromIndexInclusive - the start index of the input array to copy fromtoIndexExclusive - the end index of the input array to copy toIndexOutOfBoundsException - if the index is invalidpublic static DoubleArray filled(int size)
size - the number of elementspublic static DoubleArray filled(int size, double value)
size - the number of elementsvalue - the value of all the elementspublic int dimensions()
dimensions in interface Matrixpublic int size()
public boolean isEmpty()
public double get(int index)
index - the zero-based index to retrieveIndexOutOfBoundsException - if the index is invalidpublic boolean contains(double value)
The value is checked using Double.doubleToLongBits in order to match equals.
This also allow this method to be used to find any occurrences of NaN.
value - the value to findpublic int indexOf(double value)
The value is checked using Double.doubleToLongBits in order to match equals.
This also allow this method to be used to find any occurrences of NaN.
value - the value to findpublic int lastIndexOf(double value)
The value is checked using Double.doubleToLongBits in order to match equals.
This also allow this method to be used to find any occurrences of NaN.
value - the value to findpublic void copyInto(double[] destination,
int offset)
The specified array must be at least as large as this array. If it is larger, then the remainder of the array will be untouched.
destination - the array to copy intooffset - the offset in the destination array to start fromIndexOutOfBoundsException - if the destination array is not large enough
or the offset is negativepublic DoubleArray subArray(int fromIndexInclusive)
fromIndexInclusive - the start index of the array to copy fromIndexOutOfBoundsException - if the index is invalidpublic DoubleArray subArray(int fromIndexInclusive, int toIndexExclusive)
fromIndexInclusive - the start index of the array to copy fromtoIndexExclusive - the end index of the array to copy toIndexOutOfBoundsException - if the index is invalidpublic double[] toArray()
double[].public double[] toArrayUnsafe()
This method is inherently unsafe as it relies on good behavior by callers. Callers must never make any changes to the array returned by this method. Doing so would violate the immutability of this class.
public List<Double> toList()
public DoubleStream stream()
public void forEach(IntDoubleConsumer action)
This is used to perform an action on the contents of this array. The action receives both the index and the value. For example, the action could print out the array.
base.forEach((index, value) -> System.out.println(index + ": " + value));
This instance is immutable and unaffected by this method.
action - the action to be appliedpublic DoubleArray with(int index, double newValue)
This instance is immutable and unaffected by this method.
index - the zero-based index to setnewValue - the new value to storeIndexOutOfBoundsException - if the index is invalidpublic DoubleArray plus(double amount)
This is used to add to the contents of this array, returning a new array.
This is a special case of map(DoubleUnaryOperator).
This instance is immutable and unaffected by this method.
amount - the amount to add, may be negativepublic DoubleArray minus(double amount)
This is used to subtract from the contents of this array, returning a new array.
This is a special case of map(DoubleUnaryOperator).
This instance is immutable and unaffected by this method.
amount - the amount to subtract, may be negativepublic DoubleArray multipliedBy(double factor)
This is used to multiply the contents of this array, returning a new array.
This is a special case of map(DoubleUnaryOperator).
This instance is immutable and unaffected by this method.
factor - the multiplicative factorpublic DoubleArray dividedBy(double divisor)
This is used to divide the contents of this array, returning a new array.
This is a special case of map(DoubleUnaryOperator).
This instance is immutable and unaffected by this method.
divisor - the value by which the array values are dividedpublic DoubleArray map(DoubleUnaryOperator operator)
This is used to perform an operation on the contents of this array, returning a new array. The operator only receives the value. For example, the operator could take the inverse of each element.
result = base.map(value -> 1 / value);
This instance is immutable and unaffected by this method.
operator - the operator to be appliedpublic DoubleArray mapWithIndex(IntDoubleToDoubleFunction function)
This is used to perform an operation on the contents of this array, returning a new array. The function receives both the index and the value. For example, the operator could multiply the value by the index.
result = base.mapWithIndex((index, value) -> index * value);
This instance is immutable and unaffected by this method.
function - the function to be appliedpublic DoubleArray plus(DoubleArray other)
This is used to add two arrays, returning a new array.
Element n in the resulting array is equal to element n in this array
plus element n in the other array.
The arrays must be of the same size.
This is a special case of combine(DoubleArray, DoubleBinaryOperator).
This instance is immutable and unaffected by this method.
other - the other arrayIllegalArgumentException - if the arrays have different sizespublic DoubleArray minus(DoubleArray other)
This is used to subtract the second array from the first, returning a new array.
Element n in the resulting array is equal to element n in this array
minus element n in the other array.
The arrays must be of the same size.
This is a special case of combine(DoubleArray, DoubleBinaryOperator).
This instance is immutable and unaffected by this method.
other - the other arrayIllegalArgumentException - if the arrays have different sizespublic DoubleArray multipliedBy(DoubleArray other)
This is used to multiply each value in this array by the corresponding value in the other array, returning a new array.
Element n in the resulting array is equal to element n in this array
multiplied by element n in the other array.
The arrays must be of the same size.
This is a special case of combine(DoubleArray, DoubleBinaryOperator).
This instance is immutable and unaffected by this method.
other - the other arrayIllegalArgumentException - if the arrays have different sizespublic DoubleArray dividedBy(DoubleArray other)
This is used to divide each value in this array by the corresponding value in the other array, returning a new array.
Element n in the resulting array is equal to element n in this array
divided by element n in the other array.
The arrays must be of the same size.
This is a special case of combine(DoubleArray, DoubleBinaryOperator).
This instance is immutable and unaffected by this method.
other - the other arrayIllegalArgumentException - if the arrays have different sizespublic DoubleArray combine(DoubleArray other, DoubleBinaryOperator operator)
This is used to combine two arrays, returning a new array.
Element n in the resulting array is equal to the result of the operator
when applied to element n in this array and element n in the other array.
The arrays must be of the same size.
This instance is immutable and unaffected by this method.
other - the other arrayoperator - the operator used to combine each pair of valuesIllegalArgumentException - if the arrays have different sizespublic double combineReduce(DoubleArray other, DoubleTernaryOperator operator)
This is used to combine two arrays, returning a single reduced value. The operator is called once for each element in the arrays. The arrays must be of the same size.
The first argument to the operator is the running total of the reduction, starting from zero. The second argument to the operator is the element from this array. The third argument to the operator is the element from the other array.
This instance is immutable and unaffected by this method.
other - the other arrayoperator - the operator used to combine each pair of values with the current totalIllegalArgumentException - if the arrays have different sizespublic DoubleArray concat(double... arrayToConcat)
The result will have a length equal to this.size() + arrayToConcat.length.
This instance is immutable and unaffected by this method.
arrayToConcat - the array to add to the end of this arrayIndexOutOfBoundsException - if the index is invalidpublic DoubleArray concat(DoubleArray arrayToConcat)
The result will have a length equal to this.size() + newArray.length.
This instance is immutable and unaffected by this method.
arrayToConcat - the new array to add to the end of this arrayIndexOutOfBoundsException - if the index is invalidpublic DoubleArray sorted()
This uses Arrays.sort(double[]).
This instance is immutable and unaffected by this method.
public double min()
If the array is empty, then an exception is thrown. If the array contains NaN, then the result is NaN.
IllegalStateException - if the array is emptypublic double max()
If the array is empty, then an exception is thrown. If the array contains NaN, then the result is NaN.
IllegalStateException - if the array is emptypublic double sum()
This is a special case of reduce(double, DoubleBinaryOperator).
public double reduce(double identity,
DoubleBinaryOperator operator)
This is used to reduce the values in this array to a single value. The operator is called once for each element in the arrays. The first argument to the operator is the running total of the reduction, starting from zero. The second argument to the operator is the element.
This instance is immutable and unaffected by this method.
identity - the identity value to start fromoperator - the operator used to combine the value with the current totalpublic org.joda.beans.MetaBean metaBean()
metaBean in interface org.joda.beans.Beanpublic boolean equalWithTolerance(DoubleArray other, double tolerance)
This returns true if the two instances have double values that are
equal within the specified tolerance.
other - the other arraytolerance - the tolerancepublic boolean equalZeroWithTolerance(double tolerance)
This returns true if all the double values equal zero within the specified tolerance.
tolerance - the toleranceCopyright 2009-Present by OpenGamma Inc. and individual contributors
Apache v2 licensed
Additional documentation can be found at strata.opengamma.io.