public class DoubleArrayMath
extends java.lang.Object
Modifier | Constructor and Description |
---|---|
protected |
DoubleArrayMath() |
Modifier and Type | Method and Description |
---|---|
protected static int |
_commonLength(double[] array1,
double[] array2,
java.lang.String methodName)
Throw an exception if the two arrays are not of the same length,
or if either array is null.
|
static double[] |
add(double[] array,
double z)
Return a new array that is the formed by adding z to each element
of the input array.
|
static double[] |
add(double[] array1,
double[] array2)
Return a new array that is the element-by-element sum of the two
input arrays.
|
static double[] |
allocCopy(double[] array)
Return a new array that is a copy of the array argument.
|
static double[] |
append(double[] array1,
double[] array2)
Return a new array that is the result of appending array2 to the end
of array1.
|
static double[] |
append(double[] array1,
int idx1,
int length1,
double[] array2,
int idx2,
int length2)
Return a new array that is the result of appending length2
elements of array2, starting from the array2[idx2] to length1
elements of array1, starting from array1[idx1].
|
static double[] |
applyBinaryOperation(DoubleBinaryOperation op,
double[] array,
double z)
Return a new array that is formed by applying an instance of a
DoubleBinaryOperation to each element in the input array
and z, using the array elements as the left operands and z
as the right operand in all cases.
|
static double[] |
applyBinaryOperation(DoubleBinaryOperation op,
double[] array1,
double[] array2)
Return a new array that is formed by applying an instance of a
DoubleBinaryOperation to the two arrays, element by element,
using the elements of the first array as the left operands and the
elements of the second array as the right operands.
|
static double[] |
applyBinaryOperation(DoubleBinaryOperation op,
double z,
double[] array)
Return a new array that is formed by applying an instance of a
DoubleBinaryOperation to each element in the input array,
using z as the left operand in all cases and the array elements
as the right operands (op.operate(z, array[i])).
|
static double[] |
applyUnaryOperation(DoubleUnaryOperation op,
double[] array)
Return a new array that is formed by applying an instance of a
DoubleUnaryOperation to each element in the input array
(op.operate(array[i])).
|
static double[] |
divide(double[] array,
double num)
Return a new array that is the element-by-element division of
the first array by the given value.
|
static double[] |
divideElements(double[] array1,
double[] array2)
Return a new array that is the element-by-element division of
the first array by the second array (array1[i] / array2[i]).
|
static double |
dotProduct(double[] array1,
double[] array2)
Return the dot product of the two arrays.
|
static double |
l2norm(double[] array)
Return the L2-norm of the array, that is, the square root of
the sum of the squares of the elements.
|
static double[] |
limit(double[] array,
double bottom,
double top)
Return a new array that is a copy of the argument except that
the elements are limited to lie within the specified range.
|
static double[] |
modulo(double[] array,
double z)
Return a new array that is the formed by the modulo of each element
of the input array and z (array[i] % z).
|
static double[] |
multiply(double[] array,
double factor)
Return a new array that is constructed from the argument by
multiplying each element in the array by the second argument, which is
a double.
|
static double[] |
multiply(double[] array1,
double[] array2)
Return a new array that is the element-by-element multiplication of
the two input arrays.
|
static double[] |
negative(double[] array)
Return a new array that is the formed by the additive inverse of each
element of the input array (-array[i]).
|
static double[] |
normalize(double[] array)
Return a new array that is formed by scaling the array so that
it has a L2-norm of 1.
|
static double[] |
padMiddle(double[] array,
int newLength)
Return a new array of doubles that is formed by padding the
middle of the array with 0's.
|
static double[] |
resize(double[] array,
int newLength)
Return a new array of length newLength that is formed by
either truncating or padding the input array.
|
static double[] |
resize(double[] array,
int newLength,
int startIdx)
Return a new array of length newLength that is formed by
either truncating or padding the input array.
|
static double[] |
scale(double[] array,
double scaleFactor)
Return a new array of doubles produced by scaling the input
array elements by scaleFactor.
|
static double[] |
subtract(double[] array1,
double[] array2)
Return a new array that is the element-by-element difference of the
two input arrays, i.e. the first array minus the second array
(array1[i] - array2[i]).
|
static double |
sum(double[] array)
Return the sum of the elements in the array.
|
static double |
sumOfSquares(double[] array)
Return the sum of the squares of all of the elements in the array.
|
static Complex[] |
toComplexArray(double[] array)
Return a new array that is formed by converting the doubles in
the argument array to complex numbers.
|
static float[] |
toFloatArray(double[] array)
Return a new array that is formed by converting the doubles in
the argument array to doubles.
|
static int[] |
toIntegerArray(double[] array)
Return a new array that is formed by converting the doubles in
the argument array to integers.
|
static long[] |
toLongArray(double[] array)
Return a new array that is formed by converting the doubles in
the argument array to longs.
|
static java.lang.String |
toString(double[] array)
Return a new String representing the array, formatted as
in Java array initializers.
|
static java.lang.String |
toString(double[] array,
java.lang.String elementDelimiter,
java.lang.String vectorBegin,
java.lang.String vectorEnd)
Return a new String representing the array, formatted as
specified by the ArrayStringFormat argument.
|
static boolean |
within(double[] array1,
double[] array2,
double maxError)
Return true if all the distances between corresponding elements
array1 and array2 are all less than or equal to
the corresponding elements in maxError.
|
static boolean |
within(double[] array1,
double[] array2,
double[] maxError)
Return true if all the distances between corresponding elements
array1 and array2 are all less than or equal to
the corresponding elements in maxError.
|
public static final double[] add(double[] array, double z)
public static final double[] add(double[] array1, double[] array2)
public static final double[] allocCopy(double[] array)
array
- An array of ints.public static final double[] append(double[] array1, double[] array2)
public static final double[] append(double[] array1, int idx1, int length1, double[] array2, int idx2, int length2)
array1
- The first array of doubles.idx1
- The starting index for array1.length1
- The number of elements of array1 to use.array2
- The second array of doubles, which is appended.idx2
- The starting index for array2.length2
- The number of elements of array2 to append.public static final double[] applyBinaryOperation(DoubleBinaryOperation op, double[] array, double z)
public static final double[] applyBinaryOperation(DoubleBinaryOperation op, double z, double[] array)
public static final double[] applyBinaryOperation(DoubleBinaryOperation op, double[] array1, double[] array2)
public static final double[] applyUnaryOperation(DoubleUnaryOperation op, double[] array)
public static final double[] divideElements(double[] array1, double[] array2)
array1
- The first array of doubles.array2
- The second array of doubles.public static final double[] divide(double[] array, double num)
array
- The array of double numbers.num
- The double scalar.public static final double dotProduct(double[] array1, double[] array2)
public static final double l2norm(double[] array)
public static final double[] limit(double[] array, double bottom, double top)
If the length of the array is 0, return a new array of length 0.
array
- An array of doubles.bottom
- The bottom limit.top
- The top limit.public static final double[] modulo(double[] array, double z)
public static final double[] multiply(double[] array1, double[] array2)
public static final double[] multiply(double[] array, double factor)
array
- An array of doubles.factor
- A double.public static final double[] negative(double[] array)
public static final double[] normalize(double[] array)
public static final double[] padMiddle(double[] array, int newLength)
array
- An array of doubles.newLength
- The desired length of the returned array.public static final double[] resize(double[] array, int newLength)
array
- An array of doubles.newLength
- The desired length of the output array.public static final double[] resize(double[] array, int newLength, int startIdx)
array
- An array of doubles.newLength
- The desired length of the output array.startIdx
- The starting index for the input array.public static final double[] scale(double[] array, double scaleFactor)
public static final double[] subtract(double[] array1, double[] array2)
public static final double sum(double[] array)
public static final double sumOfSquares(double[] array)
public static final Complex[] toComplexArray(double[] array)
array
- An array of double.public static final float[] toFloatArray(double[] array)
array
- An array of double.public static final int[] toIntegerArray(double[] array)
array
- An array of double.public static final long[] toLongArray(double[] array)
array
- An array of double.public static final java.lang.String toString(double[] array)
public static final java.lang.String toString(double[] array, java.lang.String elementDelimiter, java.lang.String vectorBegin, java.lang.String vectorEnd)
public static final boolean within(double[] array1, double[] array2, double maxError)
array1
- The first array.array2
- The second array.maxError
- The threshold for the magnitude of the difference.java.lang.IllegalArgumentException
- If the arrays are not of the same
length.public static final boolean within(double[] array1, double[] array2, double[] maxError)
array1
- The first array.array2
- The second array.maxError
- The array of thresholds for the magnitudes of
the difference.java.lang.IllegalArgumentException
- If the arrays are not of the same
length.protected static final int _commonLength(double[] array1, double[] array2, java.lang.String methodName)
array1
- The first array of doubles.array2
- The second array of doubles.methodName
- A String representing the method name of the caller,
without parentheses.