You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2021/06/23 00:11:43 UTC
[commons-math] branch master updated: Adapt to "Commons Numbers"
API update (cf. NUMBERS-163).
This is an automated email from the ASF dual-hosted git repository.
erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-math.git
The following commit(s) were added to refs/heads/master by this push:
new 03923d2 Adapt to "Commons Numbers" API update (cf. NUMBERS-163).
03923d2 is described below
commit 03923d2b79addad2eca68926207338f8860f9991
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Wed Jun 23 02:09:48 2021 +0200
Adapt to "Commons Numbers" API update (cf. NUMBERS-163).
---
.../core/ExtendedFieldElementAbstractTest.java | 36 +++++++---
.../math4/legacy/analysis/FunctionUtils.java | 10 +--
.../analysis/differentiation/DSCompiler.java | 25 +++----
.../differentiation/DerivativeStructure.java | 52 ++++++++-------
.../analysis/differentiation/SparseGradient.java | 76 +++++++++++-----------
.../BicubicInterpolatingFunction.java | 4 +-
.../field/ExtendedFieldElementAbstractTest.java | 36 +++++++---
.../math4/legacy/ode/nonstiff/Decimal64.java | 49 +++++++-------
8 files changed, 163 insertions(+), 125 deletions(-)
diff --git a/commons-math-legacy-core/src/test/java/org/apache/commons/math4/legacy/core/ExtendedFieldElementAbstractTest.java b/commons-math-legacy-core/src/test/java/org/apache/commons/math4/legacy/core/ExtendedFieldElementAbstractTest.java
index 5f6ab7d..d09323a 100644
--- a/commons-math-legacy-core/src/test/java/org/apache/commons/math4/legacy/core/ExtendedFieldElementAbstractTest.java
+++ b/commons-math-legacy-core/src/test/java/org/apache/commons/math4/legacy/core/ExtendedFieldElementAbstractTest.java
@@ -19,7 +19,7 @@ package org.apache.commons.math4.legacy.core;
import org.junit.Assert;
import org.junit.Test;
-import org.apache.commons.numbers.core.LinearCombination;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.rng.UniformRandomProvider;
import org.apache.commons.rng.simple.RandomSource;
import org.apache.commons.math4.legacy.core.jdkmath.AccurateMath;
@@ -397,7 +397,7 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 10);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD, bD),
+ checkRelative(Sum.ofProducts(aD, bD).getAsDouble(),
aF[0].linearCombination(aF, bF));
}
}
@@ -409,7 +409,7 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 10);
double[] bD = generateDouble(r, 10);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD, bD),
+ checkRelative(Sum.ofProducts(aD, bD).getAsDouble(),
bF[0].linearCombination(aD, bF));
}
}
@@ -422,7 +422,9 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 2);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1]).getAsDouble(),
aF[0].linearCombination(aF[0], bF[0], aF[1], bF[1]));
}
}
@@ -434,7 +436,9 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 2);
double[] bD = generateDouble(r, 2);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1]).getAsDouble(),
bF[0].linearCombination(aD[0], bF[0], aD[1], bF[1]));
}
}
@@ -447,7 +451,10 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 3);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2]).getAsDouble(),
aF[0].linearCombination(aF[0], bF[0], aF[1], bF[1], aF[2], bF[2]));
}
}
@@ -459,7 +466,10 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 3);
double[] bD = generateDouble(r, 3);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2]).getAsDouble(),
bF[0].linearCombination(aD[0], bF[0], aD[1], bF[1], aD[2], bF[2]));
}
}
@@ -472,7 +482,11 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 4);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2], aD[3], bD[3]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2])
+ .addProduct(aD[3], bD[3]).getAsDouble(),
aF[0].linearCombination(aF[0], bF[0], aF[1], bF[1], aF[2], bF[2], aF[3], bF[3]));
}
}
@@ -484,7 +498,11 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 4);
double[] bD = generateDouble(r, 4);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2], aD[3], bD[3]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2])
+ .addProduct(aD[3], bD[3]).getAsDouble(),
bF[0].linearCombination(aD[0], bF[0], aD[1], bF[1], aD[2], bF[2], aD[3], bF[3]));
}
}
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/FunctionUtils.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/FunctionUtils.java
index 884209d..65eb6aa 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/FunctionUtils.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/FunctionUtils.java
@@ -17,7 +17,7 @@
package org.apache.commons.math4.legacy.analysis;
-import org.apache.commons.numbers.core.LinearCombination;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.math4.legacy.analysis.differentiation.DerivativeStructure;
import org.apache.commons.math4.legacy.analysis.differentiation.MultivariateDifferentiableFunction;
import org.apache.commons.math4.legacy.analysis.differentiation.UnivariateDifferentiableFunction;
@@ -380,7 +380,7 @@ public class FunctionUtils {
* @see #derivative(MultivariateDifferentiableFunction, int[])
*/
public static MultivariateDifferentiableFunction toDifferentiable(final MultivariateFunction f,
- final MultivariateVectorFunction gradient) {
+ final MultivariateVectorFunction gradient) {
return new MultivariateDifferentiableFunction() {
@@ -427,16 +427,12 @@ public class FunctionUtils {
orders[i] = 0;
// compose partial derivatives
- packed[i + 1] = LinearCombination.value(dv, partials);
-
+ packed[i + 1] = Sum.ofProducts(dv, partials).getAsDouble();
}
return new DerivativeStructure(parameters, 1, packed);
-
}
-
};
-
}
/** Convert an {@link UnivariateDifferentiableFunction} to an
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DSCompiler.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DSCompiler.java
index c8f52e9..3a4007f 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DSCompiler.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DSCompiler.java
@@ -21,7 +21,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
-import org.apache.commons.numbers.core.LinearCombination;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.math4.legacy.exception.DimensionMismatchException;
import org.apache.commons.math4.legacy.exception.MathArithmeticException;
import org.apache.commons.math4.legacy.exception.MathInternalError;
@@ -667,8 +667,9 @@ public class DSCompiler {
final double a2, final double[] c2, final int offset2,
final double[] result, final int resultOffset) {
for (int i = 0; i < getSize(); ++i) {
- result[resultOffset + i] =
- LinearCombination.value(a1, c1[offset1 + i], a2, c2[offset2 + i]);
+ result[resultOffset + i] = Sum.create()
+ .addProduct(a1, c1[offset1 + i])
+ .addProduct(a2, c2[offset2 + i]).getAsDouble();
}
}
@@ -692,10 +693,10 @@ public class DSCompiler {
final double a3, final double[] c3, final int offset3,
final double[] result, final int resultOffset) {
for (int i = 0; i < getSize(); ++i) {
- result[resultOffset + i] =
- LinearCombination.value(a1, c1[offset1 + i],
- a2, c2[offset2 + i],
- a3, c3[offset3 + i]);
+ result[resultOffset + i] = Sum.create()
+ .addProduct(a1, c1[offset1 + i])
+ .addProduct(a2, c2[offset2 + i])
+ .addProduct(a3, c3[offset3 + i]).getAsDouble();
}
}
@@ -723,11 +724,11 @@ public class DSCompiler {
final double a4, final double[] c4, final int offset4,
final double[] result, final int resultOffset) {
for (int i = 0; i < getSize(); ++i) {
- result[resultOffset + i] =
- LinearCombination.value(a1, c1[offset1 + i],
- a2, c2[offset2 + i],
- a3, c3[offset3 + i],
- a4, c4[offset4 + i]);
+ result[resultOffset + i] = Sum.create()
+ .addProduct(a1, c1[offset1 + i])
+ .addProduct(a2, c2[offset2 + i])
+ .addProduct(a3, c3[offset3 + i])
+ .addProduct(a4, c4[offset4 + i]).getAsDouble();
}
}
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.java
index 3e266e0..f2c03cf 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructure.java
@@ -19,7 +19,7 @@ package org.apache.commons.math4.legacy.analysis.differentiation;
import java.util.Arrays;
import java.io.Serializable;
-import org.apache.commons.numbers.core.LinearCombination;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.math4.legacy.core.Field;
import org.apache.commons.math4.legacy.core.FieldElement;
import org.apache.commons.math4.legacy.core.RealFieldElement;
@@ -966,7 +966,7 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
for (int i = 0; i < b.length; ++i) {
bDouble[i] = b[i].getValue();
}
- final double accurateValue = LinearCombination.value(aDouble, bDouble);
+ final double accurateValue = Sum.ofProducts(aDouble, bDouble).getAsDouble();
// compute a simple value, with all partial derivatives
DerivativeStructure simpleValue = a[0].getField().getZero();
@@ -995,7 +995,7 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
for (int i = 0; i < b.length; ++i) {
bDouble[i] = b[i].getValue();
}
- final double accurateValue = LinearCombination.value(a, bDouble);
+ final double accurateValue = Sum.ofProducts(a, bDouble).getAsDouble();
// compute a simple value, with all partial derivatives
DerivativeStructure simpleValue = b[0].getField().getZero();
@@ -1021,8 +1021,9 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
throws DimensionMismatchException {
// compute an accurate value, taking care of cancellations
- final double accurateValue = LinearCombination.value(a1.getValue(), b1.getValue(),
- a2.getValue(), b2.getValue());
+ final double accurateValue = Sum.create()
+ .addProduct(a1.getValue(), b1.getValue())
+ .addProduct(a2.getValue(), b2.getValue()).getAsDouble();
// compute a simple value, with all partial derivatives
final DerivativeStructure simpleValue = a1.multiply(b1).add(a2.multiply(b2));
@@ -1031,7 +1032,6 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
final double[] all = simpleValue.getAllDerivatives();
all[0] = accurateValue;
return new DerivativeStructure(getFreeParameters(), getOrder(), all);
-
}
/** {@inheritDoc}
@@ -1045,8 +1045,9 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
throws DimensionMismatchException {
// compute an accurate value, taking care of cancellations
- final double accurateValue = LinearCombination.value(a1, b1.getValue(),
- a2, b2.getValue());
+ final double accurateValue = Sum.create()
+ .addProduct(a1, b1.getValue())
+ .addProduct(a2, b2.getValue()).getAsDouble();
// compute a simple value, with all partial derivatives
final DerivativeStructure simpleValue = b1.multiply(a1).add(b2.multiply(a2));
@@ -1070,9 +1071,10 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
throws DimensionMismatchException {
// compute an accurate value, taking care of cancellations
- final double accurateValue = LinearCombination.value(a1.getValue(), b1.getValue(),
- a2.getValue(), b2.getValue(),
- a3.getValue(), b3.getValue());
+ final double accurateValue = Sum.create()
+ .addProduct(a1.getValue(), b1.getValue())
+ .addProduct(a2.getValue(), b2.getValue())
+ .addProduct(a3.getValue(), b3.getValue()).getAsDouble();
// compute a simple value, with all partial derivatives
final DerivativeStructure simpleValue = a1.multiply(b1).add(a2.multiply(b2)).add(a3.multiply(b3));
@@ -1096,9 +1098,10 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
throws DimensionMismatchException {
// compute an accurate value, taking care of cancellations
- final double accurateValue = LinearCombination.value(a1, b1.getValue(),
- a2, b2.getValue(),
- a3, b3.getValue());
+ final double accurateValue = Sum.create()
+ .addProduct(a1, b1.getValue())
+ .addProduct(a2, b2.getValue())
+ .addProduct(a3, b3.getValue()).getAsDouble();
// compute a simple value, with all partial derivatives
final DerivativeStructure simpleValue = b1.multiply(a1).add(b2.multiply(a2)).add(b3.multiply(a3));
@@ -1107,7 +1110,6 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
final double[] all = simpleValue.getAllDerivatives();
all[0] = accurateValue;
return new DerivativeStructure(getFreeParameters(), getOrder(), all);
-
}
/** {@inheritDoc}
@@ -1123,10 +1125,11 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
throws DimensionMismatchException {
// compute an accurate value, taking care of cancellations
- final double accurateValue = LinearCombination.value(a1.getValue(), b1.getValue(),
- a2.getValue(), b2.getValue(),
- a3.getValue(), b3.getValue(),
- a4.getValue(), b4.getValue());
+ final double accurateValue = Sum.create()
+ .addProduct(a1.getValue(), b1.getValue())
+ .addProduct(a2.getValue(), b2.getValue())
+ .addProduct(a3.getValue(), b3.getValue())
+ .addProduct(a4.getValue(), b4.getValue()).getAsDouble();
// compute a simple value, with all partial derivatives
final DerivativeStructure simpleValue = a1.multiply(b1).add(a2.multiply(b2)).add(a3.multiply(b3)).add(a4.multiply(b4));
@@ -1135,7 +1138,6 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
final double[] all = simpleValue.getAllDerivatives();
all[0] = accurateValue;
return new DerivativeStructure(getFreeParameters(), getOrder(), all);
-
}
/** {@inheritDoc}
@@ -1151,10 +1153,11 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
throws DimensionMismatchException {
// compute an accurate value, taking care of cancellations
- final double accurateValue = LinearCombination.value(a1, b1.getValue(),
- a2, b2.getValue(),
- a3, b3.getValue(),
- a4, b4.getValue());
+ final double accurateValue = Sum.create()
+ .addProduct(a1, b1.getValue())
+ .addProduct(a2, b2.getValue())
+ .addProduct(a3, b3.getValue())
+ .addProduct(a4, b4.getValue()).getAsDouble();
// compute a simple value, with all partial derivatives
final DerivativeStructure simpleValue = b1.multiply(a1).add(b2.multiply(a2)).add(b3.multiply(a3)).add(b4.multiply(a4));
@@ -1163,7 +1166,6 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
final double[] all = simpleValue.getAllDerivatives();
all[0] = accurateValue;
return new DerivativeStructure(getFreeParameters(), getOrder(), all);
-
}
/**
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/SparseGradient.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/SparseGradient.java
index 74c2c5d..d247544 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/SparseGradient.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/differentiation/SparseGradient.java
@@ -21,7 +21,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.apache.commons.numbers.core.LinearCombination;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.numbers.core.Precision;
import org.apache.commons.math4.legacy.core.Field;
import org.apache.commons.math4.legacy.core.FieldElement;
@@ -733,9 +733,7 @@ public class SparseGradient implements RealFieldElement<SparseGradient>, Seriali
/** {@inheritDoc} */
@Override
public SparseGradient linearCombination(final SparseGradient[] a,
- final SparseGradient[] b)
- throws DimensionMismatchException {
-
+ final SparseGradient[] b) {
// compute a simple value, with all partial derivatives
SparseGradient out = a[0].getField().getZero();
for (int i = 0; i < a.length; ++i) {
@@ -751,10 +749,9 @@ public class SparseGradient implements RealFieldElement<SparseGradient>, Seriali
for (int i = 0; i < b.length; ++i) {
bDouble[i] = b[i].getValue();
}
- out.value = LinearCombination.value(aDouble, bDouble);
+ out.value = Sum.ofProducts(aDouble, bDouble).getAsDouble();
return out;
-
}
/** {@inheritDoc} */
@@ -772,73 +769,75 @@ public class SparseGradient implements RealFieldElement<SparseGradient>, Seriali
for (int i = 0; i < b.length; ++i) {
bDouble[i] = b[i].getValue();
}
- out.value = LinearCombination.value(a, bDouble);
+ out.value = Sum.ofProducts(a, bDouble).getAsDouble();
return out;
-
}
/** {@inheritDoc} */
@Override
public SparseGradient linearCombination(final SparseGradient a1, final SparseGradient b1,
- final SparseGradient a2, final SparseGradient b2) {
+ final SparseGradient a2, final SparseGradient b2) {
// compute a simple value, with all partial derivatives
SparseGradient out = a1.multiply(b1).add(a2.multiply(b2));
// recompute an accurate value, taking care of cancellations
- out.value = LinearCombination.value(a1.value, b1.value, a2.value, b2.value);
+ out.value = Sum.create()
+ .addProduct(a1.value, b1.value)
+ .addProduct(a2.value, b2.value).getAsDouble();
return out;
-
}
/** {@inheritDoc} */
@Override
public SparseGradient linearCombination(final double a1, final SparseGradient b1,
- final double a2, final SparseGradient b2) {
+ final double a2, final SparseGradient b2) {
// compute a simple value, with all partial derivatives
SparseGradient out = b1.multiply(a1).add(b2.multiply(a2));
// recompute an accurate value, taking care of cancellations
- out.value = LinearCombination.value(a1, b1.value, a2, b2.value);
+ out.value = Sum.create()
+ .addProduct(a1, b1.value)
+ .addProduct(a2, b2.value).getAsDouble();
return out;
-
}
/** {@inheritDoc} */
@Override
public SparseGradient linearCombination(final SparseGradient a1, final SparseGradient b1,
- final SparseGradient a2, final SparseGradient b2,
- final SparseGradient a3, final SparseGradient b3) {
+ final SparseGradient a2, final SparseGradient b2,
+ final SparseGradient a3, final SparseGradient b3) {
// compute a simple value, with all partial derivatives
SparseGradient out = a1.multiply(b1).add(a2.multiply(b2)).add(a3.multiply(b3));
// recompute an accurate value, taking care of cancellations
- out.value = LinearCombination.value(a1.value, b1.value,
- a2.value, b2.value,
- a3.value, b3.value);
+ out.value = Sum.create()
+ .addProduct(a1.value, b1.value)
+ .addProduct(a2.value, b2.value)
+ .addProduct(a3.value, b3.value).getAsDouble();
return out;
-
}
/** {@inheritDoc} */
@Override
public SparseGradient linearCombination(final double a1, final SparseGradient b1,
- final double a2, final SparseGradient b2,
- final double a3, final SparseGradient b3) {
+ final double a2, final SparseGradient b2,
+ final double a3, final SparseGradient b3) {
// compute a simple value, with all partial derivatives
SparseGradient out = b1.multiply(a1).add(b2.multiply(a2)).add(b3.multiply(a3));
// recompute an accurate value, taking care of cancellations
- out.value = LinearCombination.value(a1, b1.value,
- a2, b2.value,
- a3, b3.value);
+ out.value = Sum.create()
+ .addProduct(a1, b1.value)
+ .addProduct(a2, b2.value)
+ .addProduct(a3, b3.value).getAsDouble();
return out;
@@ -847,21 +846,21 @@ public class SparseGradient implements RealFieldElement<SparseGradient>, Seriali
/** {@inheritDoc} */
@Override
public SparseGradient linearCombination(final SparseGradient a1, final SparseGradient b1,
- final SparseGradient a2, final SparseGradient b2,
- final SparseGradient a3, final SparseGradient b3,
- final SparseGradient a4, final SparseGradient b4) {
+ final SparseGradient a2, final SparseGradient b2,
+ final SparseGradient a3, final SparseGradient b3,
+ final SparseGradient a4, final SparseGradient b4) {
// compute a simple value, with all partial derivatives
SparseGradient out = a1.multiply(b1).add(a2.multiply(b2)).add(a3.multiply(b3)).add(a4.multiply(b4));
// recompute an accurate value, taking care of cancellations
- out.value = LinearCombination.value(a1.value, b1.value,
- a2.value, b2.value,
- a3.value, b3.value,
- a4.value, b4.value);
+ out.value = Sum.create()
+ .addProduct(a1.value, b1.value)
+ .addProduct(a2.value, b2.value)
+ .addProduct(a3.value, b3.value)
+ .addProduct(a4.value, b4.value).getAsDouble();
return out;
-
}
/** {@inheritDoc} */
@@ -875,13 +874,13 @@ public class SparseGradient implements RealFieldElement<SparseGradient>, Seriali
SparseGradient out = b1.multiply(a1).add(b2.multiply(a2)).add(b3.multiply(a3)).add(b4.multiply(a4));
// recompute an accurate value, taking care of cancellations
- out.value = LinearCombination.value(a1, b1.value,
- a2, b2.value,
- a3, b3.value,
- a4, b4.value);
+ out.value = Sum.create()
+ .addProduct(a1, b1.value)
+ .addProduct(a2, b2.value)
+ .addProduct(a3, b3.value)
+ .addProduct(a4, b4.value).getAsDouble();
return out;
-
}
/**
@@ -932,5 +931,4 @@ public class SparseGradient implements RealFieldElement<SparseGradient>, Seriali
public int hashCode() {
return 743 + 809 * Double.hashCode(value) + 167 * derivatives.hashCode();
}
-
}
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/BicubicInterpolatingFunction.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/BicubicInterpolatingFunction.java
index 7ceb288..7e493f7 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/BicubicInterpolatingFunction.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/interpolation/BicubicInterpolatingFunction.java
@@ -18,7 +18,7 @@ package org.apache.commons.math4.legacy.analysis.interpolation;
import java.util.Arrays;
-import org.apache.commons.numbers.core.LinearCombination;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.math4.legacy.analysis.BivariateFunction;
import org.apache.commons.math4.legacy.exception.DimensionMismatchException;
import org.apache.commons.math4.legacy.exception.NoDataException;
@@ -320,7 +320,7 @@ class BicubicFunction implements BivariateFunction {
private double apply(double[] pX, double[] pY, double[][] coeff) {
double result = 0;
for (int i = 0; i < N; i++) {
- final double r = LinearCombination.value(coeff[i], pY);
+ final double r = Sum.ofProducts(coeff[i], pY).getAsDouble();
result += r * pX[i];
}
diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/field/ExtendedFieldElementAbstractTest.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/field/ExtendedFieldElementAbstractTest.java
index 64e2ae3..5c111ed 100644
--- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/field/ExtendedFieldElementAbstractTest.java
+++ b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/field/ExtendedFieldElementAbstractTest.java
@@ -19,7 +19,7 @@ package org.apache.commons.math4.legacy.field;
import org.junit.Assert;
import org.junit.Test;
-import org.apache.commons.numbers.core.LinearCombination;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.rng.UniformRandomProvider;
import org.apache.commons.rng.simple.RandomSource;
import org.apache.commons.math4.legacy.core.RealFieldElement;
@@ -399,7 +399,7 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 10);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD, bD),
+ checkRelative(Sum.ofProducts(aD, bD).getAsDouble(),
aF[0].linearCombination(aF, bF));
}
}
@@ -411,7 +411,7 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 10);
double[] bD = generateDouble(r, 10);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD, bD),
+ checkRelative(Sum.ofProducts(aD, bD).getAsDouble(),
bF[0].linearCombination(aD, bF));
}
}
@@ -424,7 +424,9 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 2);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1]).getAsDouble(),
aF[0].linearCombination(aF[0], bF[0], aF[1], bF[1]));
}
}
@@ -436,7 +438,9 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 2);
double[] bD = generateDouble(r, 2);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1]).getAsDouble(),
bF[0].linearCombination(aD[0], bF[0], aD[1], bF[1]));
}
}
@@ -449,7 +453,10 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 3);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2]).getAsDouble(),
aF[0].linearCombination(aF[0], bF[0], aF[1], bF[1], aF[2], bF[2]));
}
}
@@ -461,7 +468,10 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 3);
double[] bD = generateDouble(r, 3);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2]).getAsDouble(),
bF[0].linearCombination(aD[0], bF[0], aD[1], bF[1], aD[2], bF[2]));
}
}
@@ -474,7 +484,11 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] bD = generateDouble(r, 4);
T[] aF = toFieldArray(aD);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2], aD[3], bD[3]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2])
+ .addProduct(aD[3], bD[3]).getAsDouble(),
aF[0].linearCombination(aF[0], bF[0], aF[1], bF[1], aF[2], bF[2], aF[3], bF[3]));
}
}
@@ -486,7 +500,11 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
double[] aD = generateDouble(r, 4);
double[] bD = generateDouble(r, 4);
T[] bF = toFieldArray(bD);
- checkRelative(LinearCombination.value(aD[0], bD[0], aD[1], bD[1], aD[2], bD[2], aD[3], bD[3]),
+ checkRelative(Sum.create()
+ .addProduct(aD[0], bD[0])
+ .addProduct(aD[1], bD[1])
+ .addProduct(aD[2], bD[2])
+ .addProduct(aD[3], bD[3]).getAsDouble(),
bF[0].linearCombination(aD[0], bF[0], aD[1], bF[1], aD[2], bF[2], aD[3], bF[3]));
}
}
diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/nonstiff/Decimal64.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/nonstiff/Decimal64.java
index 31d5476..626d2d8 100644
--- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/nonstiff/Decimal64.java
+++ b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/nonstiff/Decimal64.java
@@ -16,8 +16,8 @@
*/
package org.apache.commons.math4.legacy.ode.nonstiff;
+import org.apache.commons.numbers.core.Sum;
import org.apache.commons.math4.legacy.core.jdkmath.AccurateMath;
-import org.apache.commons.numbers.core.LinearCombination;
import org.apache.commons.math4.legacy.core.Field;
import org.apache.commons.math4.legacy.core.RealFieldElement;
import org.apache.commons.math4.legacy.exception.DimensionMismatchException;
@@ -661,7 +661,7 @@ public class Decimal64 extends Number
aDouble[i] = a[i].value;
bDouble[i] = b[i].value;
}
- return new Decimal64(LinearCombination.value(aDouble, bDouble));
+ return new Decimal64(Sum.ofProducts(aDouble, bDouble).getAsDouble());
}
/** {@inheritDoc}
@@ -677,7 +677,7 @@ public class Decimal64 extends Number
for (int i = 0; i < a.length; ++i) {
bDouble[i] = b[i].value;
}
- return new Decimal64(LinearCombination.value(a, bDouble));
+ return new Decimal64(Sum.ofProducts(a, bDouble).getAsDouble());
}
/** {@inheritDoc}
@@ -686,8 +686,9 @@ public class Decimal64 extends Number
@Override
public Decimal64 linearCombination(final Decimal64 a1, final Decimal64 b1,
final Decimal64 a2, final Decimal64 b2) {
- return new Decimal64(LinearCombination.value(a1.value, b1.value,
- a2.value, b2.value));
+ return new Decimal64(Sum.create()
+ .addProduct(a1.value, b1.value)
+ .addProduct(a2.value, b2.value).getAsDouble());
}
/** {@inheritDoc}
@@ -696,8 +697,9 @@ public class Decimal64 extends Number
@Override
public Decimal64 linearCombination(final double a1, final Decimal64 b1,
final double a2, final Decimal64 b2) {
- return new Decimal64(LinearCombination.value(a1, b1.value,
- a2, b2.value));
+ return new Decimal64(Sum.create()
+ .addProduct(a1, b1.value)
+ .addProduct(a2, b2.value).getAsDouble());
}
/** {@inheritDoc}
@@ -707,9 +709,10 @@ public class Decimal64 extends Number
public Decimal64 linearCombination(final Decimal64 a1, final Decimal64 b1,
final Decimal64 a2, final Decimal64 b2,
final Decimal64 a3, final Decimal64 b3) {
- return new Decimal64(LinearCombination.value(a1.value, b1.value,
- a2.value, b2.value,
- a3.value, b3.value));
+ return new Decimal64(Sum.create()
+ .addProduct(a1.value, b1.value)
+ .addProduct(a2.value, b2.value)
+ .addProduct(a3.value, b3.value).getAsDouble());
}
/** {@inheritDoc}
@@ -719,9 +722,10 @@ public class Decimal64 extends Number
public Decimal64 linearCombination(final double a1, final Decimal64 b1,
final double a2, final Decimal64 b2,
final double a3, final Decimal64 b3) {
- return new Decimal64(LinearCombination.value(a1, b1.value,
- a2, b2.value,
- a3, b3.value));
+ return new Decimal64(Sum.create()
+ .addProduct(a1, b1.value)
+ .addProduct(a2, b2.value)
+ .addProduct(a3, b3.value).getAsDouble());
}
/** {@inheritDoc}
@@ -732,10 +736,11 @@ public class Decimal64 extends Number
final Decimal64 a2, final Decimal64 b2,
final Decimal64 a3, final Decimal64 b3,
final Decimal64 a4, final Decimal64 b4) {
- return new Decimal64(LinearCombination.value(a1.value, b1.value,
- a2.value, b2.value,
- a3.value, b3.value,
- a4.value, b4.value));
+ return new Decimal64(Sum.create()
+ .addProduct(a1.value, b1.value)
+ .addProduct(a2.value, b2.value)
+ .addProduct(a3.value, b3.value)
+ .addProduct(a4.value, b4.value).getAsDouble());
}
/** {@inheritDoc}
@@ -746,10 +751,10 @@ public class Decimal64 extends Number
final double a2, final Decimal64 b2,
final double a3, final Decimal64 b3,
final double a4, final Decimal64 b4) {
- return new Decimal64(LinearCombination.value(a1, b1.value,
- a2, b2.value,
- a3, b3.value,
- a4, b4.value));
+ return new Decimal64(Sum.create()
+ .addProduct(a1, b1.value)
+ .addProduct(a2, b2.value)
+ .addProduct(a3, b3.value)
+ .addProduct(a4, b4.value).getAsDouble());
}
-
}