Repository: commons-math
Updated Branches:
  refs/heads/master 97dc91d15 -> 4a3727381


MATH-1416: Depend on "Commons Numbers" (module "commons-numbers-arrays").


Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/3200db16
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/3200db16
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/3200db16

Branch: refs/heads/master
Commit: 3200db1671d4b360abc43165cfb31e534966da92
Parents: 97dc91d
Author: Gilles <er...@apache.org>
Authored: Thu May 25 01:45:29 2017 +0200
Committer: Gilles <er...@apache.org>
Committed: Thu May 25 01:47:49 2017 +0200

----------------------------------------------------------------------
 pom.xml                                         |  6 +++
 .../commons/math4/analysis/FunctionUtils.java   |  4 +-
 .../analysis/differentiation/DSCompiler.java    |  8 ++--
 .../differentiation/DerivativeStructure.java    | 17 +++----
 .../differentiation/SparseGradient.java         | 20 ++++----
 .../BicubicInterpolatingFunction.java           |  3 +-
 .../interpolation/InterpolatingMicrosphere.java |  6 ++-
 .../geometry/euclidean/threed/Cartesian3D.java  | 30 ++++++------
 .../geometry/euclidean/threed/Rotation.java     | 20 ++++----
 .../geometry/euclidean/twod/Cartesian2D.java    |  8 ++--
 .../math4/geometry/euclidean/twod/Line.java     | 48 ++++++++++----------
 .../euclidean/twod/hull/ConvexHull2D.java       |  6 +--
 .../apache/commons/math4/util/Decimal64.java    | 17 +++----
 13 files changed, 102 insertions(+), 91 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 817807b..b864093 100644
--- a/pom.xml
+++ b/pom.xml
@@ -380,6 +380,12 @@
 
     <dependency>
       <groupId>org.apache.commons</groupId>
+      <artifactId>commons-numbers-arrays</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-client-api</artifactId>
       <version>1.0</version>
     </dependency>

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/analysis/FunctionUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/analysis/FunctionUtils.java 
b/src/main/java/org/apache/commons/math4/analysis/FunctionUtils.java
index fff715a..6c54879 100644
--- a/src/main/java/org/apache/commons/math4/analysis/FunctionUtils.java
+++ b/src/main/java/org/apache/commons/math4/analysis/FunctionUtils.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.math4.analysis;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.analysis.differentiation.DerivativeStructure;
 import 
org.apache.commons.math4.analysis.differentiation.MultivariateDifferentiableFunction;
 import 
org.apache.commons.math4.analysis.differentiation.UnivariateDifferentiableFunction;
@@ -25,7 +26,6 @@ import 
org.apache.commons.math4.exception.DimensionMismatchException;
 import org.apache.commons.math4.exception.NotStrictlyPositiveException;
 import org.apache.commons.math4.exception.NumberIsTooLargeException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
-import org.apache.commons.math4.util.MathArrays;
 
 /**
  * Utilities for manipulating function objects.
@@ -464,7 +464,7 @@ public class FunctionUtils {
                     orders[i] = 0;
 
                     // compose partial derivatives
-                    packed[i + 1] = MathArrays.linearCombination(dv, partials);
+                    packed[i + 1] = LinearCombination.value(dv, partials);
 
                 }
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java
 
b/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java
index dd857de..03898ac 100644
--- 
a/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java
+++ 
b/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java
@@ -21,6 +21,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.exception.DimensionMismatchException;
 import org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.MathInternalError;
@@ -28,7 +29,6 @@ import 
org.apache.commons.math4.exception.NotPositiveException;
 import org.apache.commons.math4.exception.NumberIsTooLargeException;
 import org.apache.commons.numbers.combinatorics.FactorialDouble;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathArrays;
 
 /** Class holding "compiled" computation rules for derivative structures.
  * <p>This class implements the computation rules described in Dan Kalman's 
paper <a
@@ -668,7 +668,7 @@ public class DSCompiler {
                                   final double[] result, final int 
resultOffset) {
         for (int i = 0; i < getSize(); ++i) {
             result[resultOffset + i] =
-                    MathArrays.linearCombination(a1, c1[offset1 + i], a2, 
c2[offset2 + i]);
+                    LinearCombination.value(a1, c1[offset1 + i], a2, 
c2[offset2 + i]);
         }
     }
 
@@ -693,7 +693,7 @@ public class DSCompiler {
                                   final double[] result, final int 
resultOffset) {
         for (int i = 0; i < getSize(); ++i) {
             result[resultOffset + i] =
-                    MathArrays.linearCombination(a1, c1[offset1 + i],
+                    LinearCombination.value(a1, c1[offset1 + i],
                                                  a2, c2[offset2 + i],
                                                  a3, c3[offset3 + i]);
         }
@@ -724,7 +724,7 @@ public class DSCompiler {
                                   final double[] result, final int 
resultOffset) {
         for (int i = 0; i < getSize(); ++i) {
             result[resultOffset + i] =
-                    MathArrays.linearCombination(a1, c1[offset1 + i],
+                    LinearCombination.value(a1, c1[offset1 + i],
                                                  a2, c2[offset2 + i],
                                                  a3, c3[offset3 + i],
                                                  a4, c4[offset4 + i]);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.java
 
b/src/main/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.java
index 887d890..6a6b390 100644
--- 
a/src/main/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.java
+++ 
b/src/main/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructure.java
@@ -18,6 +18,7 @@ package org.apache.commons.math4.analysis.differentiation;
 
 import java.io.Serializable;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.Field;
 import org.apache.commons.math4.FieldElement;
 import org.apache.commons.math4.RealFieldElement;
@@ -965,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 = MathArrays.linearCombination(aDouble, 
bDouble);
+        final double accurateValue = LinearCombination.value(aDouble, bDouble);
 
         // compute a simple value, with all partial derivatives
         DerivativeStructure simpleValue = a[0].getField().getZero();
@@ -994,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 = MathArrays.linearCombination(a, bDouble);
+        final double accurateValue = LinearCombination.value(a, bDouble);
 
         // compute a simple value, with all partial derivatives
         DerivativeStructure simpleValue = b[0].getField().getZero();
@@ -1020,7 +1021,7 @@ public class DerivativeStructure implements 
RealFieldElement<DerivativeStructure
         throws DimensionMismatchException {
 
         // compute an accurate value, taking care of cancellations
-        final double accurateValue = 
MathArrays.linearCombination(a1.getValue(), b1.getValue(),
+        final double accurateValue = LinearCombination.value(a1.getValue(), 
b1.getValue(),
                                                                   
a2.getValue(), b2.getValue());
 
         // compute a simple value, with all partial derivatives
@@ -1044,7 +1045,7 @@ public class DerivativeStructure implements 
RealFieldElement<DerivativeStructure
         throws DimensionMismatchException {
 
         // compute an accurate value, taking care of cancellations
-        final double accurateValue = MathArrays.linearCombination(a1, 
b1.getValue(),
+        final double accurateValue = LinearCombination.value(a1, b1.getValue(),
                                                                   a2, 
b2.getValue());
 
         // compute a simple value, with all partial derivatives
@@ -1069,7 +1070,7 @@ public class DerivativeStructure implements 
RealFieldElement<DerivativeStructure
         throws DimensionMismatchException {
 
         // compute an accurate value, taking care of cancellations
-        final double accurateValue = 
MathArrays.linearCombination(a1.getValue(), b1.getValue(),
+        final double accurateValue = LinearCombination.value(a1.getValue(), 
b1.getValue(),
                                                                   
a2.getValue(), b2.getValue(),
                                                                   
a3.getValue(), b3.getValue());
 
@@ -1095,7 +1096,7 @@ public class DerivativeStructure implements 
RealFieldElement<DerivativeStructure
         throws DimensionMismatchException {
 
         // compute an accurate value, taking care of cancellations
-        final double accurateValue = MathArrays.linearCombination(a1, 
b1.getValue(),
+        final double accurateValue = LinearCombination.value(a1, b1.getValue(),
                                                                   a2, 
b2.getValue(),
                                                                   a3, 
b3.getValue());
 
@@ -1122,7 +1123,7 @@ public class DerivativeStructure implements 
RealFieldElement<DerivativeStructure
         throws DimensionMismatchException {
 
         // compute an accurate value, taking care of cancellations
-        final double accurateValue = 
MathArrays.linearCombination(a1.getValue(), b1.getValue(),
+        final double accurateValue = LinearCombination.value(a1.getValue(), 
b1.getValue(),
                                                                   
a2.getValue(), b2.getValue(),
                                                                   
a3.getValue(), b3.getValue(),
                                                                   
a4.getValue(), b4.getValue());
@@ -1150,7 +1151,7 @@ public class DerivativeStructure implements 
RealFieldElement<DerivativeStructure
         throws DimensionMismatchException {
 
         // compute an accurate value, taking care of cancellations
-        final double accurateValue = MathArrays.linearCombination(a1, 
b1.getValue(),
+        final double accurateValue = LinearCombination.value(a1, b1.getValue(),
                                                                   a2, 
b2.getValue(),
                                                                   a3, 
b3.getValue(),
                                                                   a4, 
b4.getValue());

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/analysis/differentiation/SparseGradient.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/analysis/differentiation/SparseGradient.java
 
b/src/main/java/org/apache/commons/math4/analysis/differentiation/SparseGradient.java
index c642fed..13893cd 100644
--- 
a/src/main/java/org/apache/commons/math4/analysis/differentiation/SparseGradient.java
+++ 
b/src/main/java/org/apache/commons/math4/analysis/differentiation/SparseGradient.java
@@ -21,14 +21,14 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
+import org.apache.commons.numbers.core.Precision;
 import org.apache.commons.math4.Field;
 import org.apache.commons.math4.FieldElement;
 import org.apache.commons.math4.RealFieldElement;
 import org.apache.commons.math4.exception.DimensionMismatchException;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathArrays;
 import org.apache.commons.math4.util.MathUtils;
-import org.apache.commons.numbers.core.Precision;
 
 /**
  * First derivative computation with large number of variables.
@@ -752,7 +752,7 @@ public class SparseGradient implements 
RealFieldElement<SparseGradient>, Seriali
         for (int i = 0; i < b.length; ++i) {
             bDouble[i] = b[i].getValue();
         }
-        out.value = MathArrays.linearCombination(aDouble, bDouble);
+        out.value = LinearCombination.value(aDouble, bDouble);
 
         return out;
 
@@ -773,7 +773,7 @@ public class SparseGradient implements 
RealFieldElement<SparseGradient>, Seriali
         for (int i = 0; i < b.length; ++i) {
             bDouble[i] = b[i].getValue();
         }
-        out.value = MathArrays.linearCombination(a, bDouble);
+        out.value = LinearCombination.value(a, bDouble);
 
         return out;
 
@@ -788,7 +788,7 @@ public class SparseGradient implements 
RealFieldElement<SparseGradient>, Seriali
         SparseGradient out = a1.multiply(b1).add(a2.multiply(b2));
 
         // recompute an accurate value, taking care of cancellations
-        out.value = MathArrays.linearCombination(a1.value, b1.value, a2.value, 
b2.value);
+        out.value = LinearCombination.value(a1.value, b1.value, a2.value, 
b2.value);
 
         return out;
 
@@ -803,7 +803,7 @@ public class SparseGradient implements 
RealFieldElement<SparseGradient>, Seriali
         SparseGradient out = b1.multiply(a1).add(b2.multiply(a2));
 
         // recompute an accurate value, taking care of cancellations
-        out.value = MathArrays.linearCombination(a1, b1.value, a2, b2.value);
+        out.value = LinearCombination.value(a1, b1.value, a2, b2.value);
 
         return out;
 
@@ -819,7 +819,7 @@ public class SparseGradient implements 
RealFieldElement<SparseGradient>, Seriali
         SparseGradient out = 
a1.multiply(b1).add(a2.multiply(b2)).add(a3.multiply(b3));
 
         // recompute an accurate value, taking care of cancellations
-        out.value = MathArrays.linearCombination(a1.value, b1.value,
+        out.value = LinearCombination.value(a1.value, b1.value,
                                                  a2.value, b2.value,
                                                  a3.value, b3.value);
 
@@ -837,7 +837,7 @@ public class SparseGradient implements 
RealFieldElement<SparseGradient>, Seriali
         SparseGradient out = 
b1.multiply(a1).add(b2.multiply(a2)).add(b3.multiply(a3));
 
         // recompute an accurate value, taking care of cancellations
-        out.value = MathArrays.linearCombination(a1, b1.value,
+        out.value = LinearCombination.value(a1, b1.value,
                                                  a2, b2.value,
                                                  a3, b3.value);
 
@@ -856,7 +856,7 @@ public class SparseGradient implements 
RealFieldElement<SparseGradient>, Seriali
         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 = MathArrays.linearCombination(a1.value, b1.value,
+        out.value = LinearCombination.value(a1.value, b1.value,
                                                  a2.value, b2.value,
                                                  a3.value, b3.value,
                                                  a4.value, b4.value);
@@ -876,7 +876,7 @@ 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 = MathArrays.linearCombination(a1, b1.value,
+        out.value = LinearCombination.value(a1, b1.value,
                                                  a2, b2.value,
                                                  a3, b3.value,
                                                  a4, b4.value);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java
 
b/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java
index 4ded79d..aa23502 100644
--- 
a/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java
+++ 
b/src/main/java/org/apache/commons/math4/analysis/interpolation/BicubicInterpolatingFunction.java
@@ -18,6 +18,7 @@ package org.apache.commons.math4.analysis.interpolation;
 
 import java.util.Arrays;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.analysis.BivariateFunction;
 import org.apache.commons.math4.exception.DimensionMismatchException;
 import org.apache.commons.math4.exception.NoDataException;
@@ -319,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 = MathArrays.linearCombination(coeff[i], pY);
+            final double r = LinearCombination.value(coeff[i], pY);
             result += r * pX[i];
         }
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/analysis/interpolation/InterpolatingMicrosphere.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/analysis/interpolation/InterpolatingMicrosphere.java
 
b/src/main/java/org/apache/commons/math4/analysis/interpolation/InterpolatingMicrosphere.java
index 4887d80..893a760 100644
--- 
a/src/main/java/org/apache/commons/math4/analysis/interpolation/InterpolatingMicrosphere.java
+++ 
b/src/main/java/org/apache/commons/math4/analysis/interpolation/InterpolatingMicrosphere.java
@@ -18,6 +18,8 @@ package org.apache.commons.math4.analysis.interpolation;
 
 import java.util.List;
 import java.util.ArrayList;
+import org.apache.commons.numbers.arrays.CosAngle;
+import org.apache.commons.numbers.arrays.SafeNorm;
 import org.apache.commons.math4.random.UnitSphereRandomVectorGenerator;
 import org.apache.commons.math4.exception.DimensionMismatchException;
 import org.apache.commons.math4.exception.NotPositiveException;
@@ -220,7 +222,7 @@ public class InterpolatingMicrosphere {
         for (int i = 0; i < numSamples; i++) {
             // Vector between interpolation point and current sample point.
             final double[] diff = MathArrays.ebeSubtract(samplePoints[i], 
point);
-            final double diffNorm = MathArrays.safeNorm(diff);
+            final double diffNorm = SafeNorm.value(diff);
 
             if (FastMath.abs(diffNorm) < noInterpolationTolerance) {
                 // No need to interpolate, as the interpolation point is
@@ -301,7 +303,7 @@ public class InterpolatingMicrosphere {
                             double weight) {
         for (int i = 0; i < size; i++) {
             final double[] n = microsphere.get(i).getNormal();
-            final double cos = MathArrays.cosAngle(n, sampleDirection);
+            final double cos = CosAngle.value(n, sampleDirection);
 
             if (cos > 0) {
                 final double illumination = cos * weight;

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Cartesian3D.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Cartesian3D.java
 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Cartesian3D.java
index a1468b9..774a5ba 100644
--- 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Cartesian3D.java
+++ 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Cartesian3D.java
@@ -20,6 +20,7 @@ package org.apache.commons.math4.geometry.euclidean.threed;
 import java.io.Serializable;
 import java.text.NumberFormat;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.exception.DimensionMismatchException;
 import org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
@@ -27,7 +28,6 @@ import org.apache.commons.math4.geometry.Point;
 import org.apache.commons.math4.geometry.Space;
 import org.apache.commons.math4.geometry.Vector;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathArrays;
 import org.apache.commons.math4.util.MathUtils;
 
 /**
@@ -153,9 +153,9 @@ public class Cartesian3D extends Vector3D implements 
Serializable, Point<Euclide
      * @param u2 second base (unscaled) vector
      */
     public Cartesian3D(double a1, Cartesian3D u1, double a2, Cartesian3D u2) {
-        this.x = MathArrays.linearCombination(a1, u1.x, a2, u2.x);
-        this.y = MathArrays.linearCombination(a1, u1.y, a2, u2.y);
-        this.z = MathArrays.linearCombination(a1, u1.z, a2, u2.z);
+        this.x = LinearCombination.value(a1, u1.x, a2, u2.x);
+        this.y = LinearCombination.value(a1, u1.y, a2, u2.y);
+        this.z = LinearCombination.value(a1, u1.z, a2, u2.z);
     }
 
     /** Linear constructor
@@ -170,9 +170,9 @@ public class Cartesian3D extends Vector3D implements 
Serializable, Point<Euclide
      */
     public Cartesian3D(double a1, Cartesian3D u1, double a2, Cartesian3D u2,
                     double a3, Cartesian3D u3) {
-        this.x = MathArrays.linearCombination(a1, u1.x, a2, u2.x, a3, u3.x);
-        this.y = MathArrays.linearCombination(a1, u1.y, a2, u2.y, a3, u3.y);
-        this.z = MathArrays.linearCombination(a1, u1.z, a2, u2.z, a3, u3.z);
+        this.x = LinearCombination.value(a1, u1.x, a2, u2.x, a3, u3.x);
+        this.y = LinearCombination.value(a1, u1.y, a2, u2.y, a3, u3.y);
+        this.z = LinearCombination.value(a1, u1.z, a2, u2.z, a3, u3.z);
     }
 
     /** Linear constructor
@@ -189,9 +189,9 @@ public class Cartesian3D extends Vector3D implements 
Serializable, Point<Euclide
      */
     public Cartesian3D(double a1, Cartesian3D u1, double a2, Cartesian3D u2,
                     double a3, Cartesian3D u3, double a4, Cartesian3D u4) {
-        this.x = MathArrays.linearCombination(a1, u1.x, a2, u2.x, a3, u3.x, 
a4, u4.x);
-        this.y = MathArrays.linearCombination(a1, u1.y, a2, u2.y, a3, u3.y, 
a4, u4.y);
-        this.z = MathArrays.linearCombination(a1, u1.z, a2, u2.z, a3, u3.z, 
a4, u4.z);
+        this.x = LinearCombination.value(a1, u1.x, a2, u2.x, a3, u3.x, a4, 
u4.x);
+        this.y = LinearCombination.value(a1, u1.y, a2, u2.y, a3, u3.y, a4, 
u4.y);
+        this.z = LinearCombination.value(a1, u1.z, a2, u2.z, a3, u3.z, a4, 
u4.z);
     }
 
     /** Get the abscissa of the vector.
@@ -466,12 +466,12 @@ public class Cartesian3D extends Vector3D implements 
Serializable, Point<Euclide
      * algorithms to preserve accuracy and reduce cancellation effects.
      * It should be very accurate even for nearly orthogonal vectors.
      * </p>
-     * @see MathArrays#linearCombination(double, double, double, double, 
double, double)
+     * @see LinearCombination#value(double, double, double, double, double, 
double)
      */
     @Override
     public double dotProduct(final Vector<Euclidean3D> v) {
         final Cartesian3D v3 = (Cartesian3D) v;
-        return MathArrays.linearCombination(x, v3.x, y, v3.y, z, v3.z);
+        return LinearCombination.value(x, v3.x, y, v3.y, z, v3.z);
     }
 
     /** Compute the cross-product of the instance with another vector.
@@ -480,9 +480,9 @@ public class Cartesian3D extends Vector3D implements 
Serializable, Point<Euclide
      */
     public Cartesian3D crossProduct(final Vector<Euclidean3D> v) {
         final Cartesian3D v3 = (Cartesian3D) v;
-        return new Cartesian3D(MathArrays.linearCombination(y, v3.z, -z, v3.y),
-                            MathArrays.linearCombination(z, v3.x, -x, v3.z),
-                            MathArrays.linearCombination(x, v3.y, -y, v3.x));
+        return new Cartesian3D(LinearCombination.value(y, v3.z, -z, v3.y),
+                            LinearCombination.value(z, v3.x, -x, v3.z),
+                            LinearCombination.value(x, v3.y, -y, v3.x));
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Rotation.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Rotation.java
 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Rotation.java
index 59517ba..4d18e52 100644
--- 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Rotation.java
+++ 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/threed/Rotation.java
@@ -19,11 +19,11 @@ package org.apache.commons.math4.geometry.euclidean.threed;
 
 import java.io.Serializable;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathArrays;
 
 /**
  * This class implements rotations in a three-dimensional space.
@@ -290,19 +290,19 @@ public class Rotation implements Serializable {
       // buid a matrix transforming the first base into the second one
       final double[][] m = new double[][] {
           {
-              MathArrays.linearCombination(u1.getX(), v1.getX(), u2.getX(), 
v2.getX(), u3.getX(), v3.getX()),
-              MathArrays.linearCombination(u1.getY(), v1.getX(), u2.getY(), 
v2.getX(), u3.getY(), v3.getX()),
-              MathArrays.linearCombination(u1.getZ(), v1.getX(), u2.getZ(), 
v2.getX(), u3.getZ(), v3.getX())
+              LinearCombination.value(u1.getX(), v1.getX(), u2.getX(), 
v2.getX(), u3.getX(), v3.getX()),
+              LinearCombination.value(u1.getY(), v1.getX(), u2.getY(), 
v2.getX(), u3.getY(), v3.getX()),
+              LinearCombination.value(u1.getZ(), v1.getX(), u2.getZ(), 
v2.getX(), u3.getZ(), v3.getX())
           },
           {
-              MathArrays.linearCombination(u1.getX(), v1.getY(), u2.getX(), 
v2.getY(), u3.getX(), v3.getY()),
-              MathArrays.linearCombination(u1.getY(), v1.getY(), u2.getY(), 
v2.getY(), u3.getY(), v3.getY()),
-              MathArrays.linearCombination(u1.getZ(), v1.getY(), u2.getZ(), 
v2.getY(), u3.getZ(), v3.getY())
+              LinearCombination.value(u1.getX(), v1.getY(), u2.getX(), 
v2.getY(), u3.getX(), v3.getY()),
+              LinearCombination.value(u1.getY(), v1.getY(), u2.getY(), 
v2.getY(), u3.getY(), v3.getY()),
+              LinearCombination.value(u1.getZ(), v1.getY(), u2.getZ(), 
v2.getY(), u3.getZ(), v3.getY())
           },
           {
-              MathArrays.linearCombination(u1.getX(), v1.getZ(), u2.getX(), 
v2.getZ(), u3.getX(), v3.getZ()),
-              MathArrays.linearCombination(u1.getY(), v1.getZ(), u2.getY(), 
v2.getZ(), u3.getY(), v3.getZ()),
-              MathArrays.linearCombination(u1.getZ(), v1.getZ(), u2.getZ(), 
v2.getZ(), u3.getZ(), v3.getZ())
+              LinearCombination.value(u1.getX(), v1.getZ(), u2.getX(), 
v2.getZ(), u3.getX(), v3.getZ()),
+              LinearCombination.value(u1.getY(), v1.getZ(), u2.getY(), 
v2.getZ(), u3.getY(), v3.getZ()),
+              LinearCombination.value(u1.getZ(), v1.getZ(), u2.getZ(), 
v2.getZ(), u3.getZ(), v3.getZ())
           }
       };
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
index 7e68362..1198ff6 100644
--- 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
+++ 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
@@ -18,6 +18,7 @@ package org.apache.commons.math4.geometry.euclidean.twod;
 
 import java.text.NumberFormat;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.exception.DimensionMismatchException;
 import org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
@@ -25,7 +26,6 @@ import org.apache.commons.math4.geometry.Point;
 import org.apache.commons.math4.geometry.Space;
 import org.apache.commons.math4.geometry.Vector;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathArrays;
 import org.apache.commons.math4.util.MathUtils;
 
 /** This class represents a 2D point or a 2D vector.
@@ -267,7 +267,7 @@ public class Cartesian2D extends Vector2D implements 
Point<Euclidean2D> {
         double threshold = normProduct * 0.9999;
         if ((dot < -threshold) || (dot > threshold)) {
             // the vectors are almost aligned, compute using the sine
-            final double n = FastMath.abs(MathArrays.linearCombination(v1.x, 
v2.y, -v1.y, v2.x));
+            final double n = FastMath.abs(LinearCombination.value(v1.x, v2.y, 
-v1.y, v2.x));
             if (dot >= 0) {
                 return FastMath.asin(n / normProduct);
             }
@@ -356,7 +356,7 @@ public class Cartesian2D extends Vector2D implements 
Point<Euclidean2D> {
     @Override
     public double dotProduct(final Vector<Euclidean2D> v) {
         final Cartesian2D v2 = (Cartesian2D) v;
-        return MathArrays.linearCombination(x, v2.x, y, v2.y);
+        return LinearCombination.value(x, v2.x, y, v2.y);
     }
 
     /**
@@ -384,7 +384,7 @@ public class Cartesian2D extends Vector2D implements 
Point<Euclidean2D> {
         final double y1 = getY() - p1.getY();
         final double x2 = getX() - p1.getX();
         final double y2 = p2.getY() - p1.getY();
-        return MathArrays.linearCombination(x1, y1, -x2, y2);
+        return LinearCombination.value(x1, y1, -x2, y2);
     }
 
     /** Compute the distance between two points according to the L<sub>2</sub> 
norm.

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
index 561cdc7..076179b 100644
--- a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
+++ b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Line.java
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.math4.geometry.euclidean.twod;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
 import org.apache.commons.math4.geometry.Point;
@@ -29,7 +30,6 @@ import 
org.apache.commons.math4.geometry.partitioning.Hyperplane;
 import org.apache.commons.math4.geometry.partitioning.SubHyperplane;
 import org.apache.commons.math4.geometry.partitioning.Transform;
 import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathArrays;
 import org.apache.commons.math4.util.MathUtils;
 
 /** This class represents an oriented line in the 2D plane.
@@ -158,7 +158,7 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
             angle        = FastMath.PI + FastMath.atan2(-dy, -dx);
             cos          = dx / d;
             sin          = dy / d;
-            originOffset = MathArrays.linearCombination(p2.getX(), p1.getY(), 
-p1.getX(), p2.getY()) / d;
+            originOffset = LinearCombination.value(p2.getX(), p1.getY(), 
-p1.getX(), p2.getY()) / d;
         }
     }
 
@@ -171,7 +171,7 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
         this.angle   = MathUtils.normalizeAngle(alpha, FastMath.PI);
         cos          = FastMath.cos(this.angle);
         sin          = FastMath.sin(this.angle);
-        originOffset = MathArrays.linearCombination(cos, p.getY(), -sin, 
p.getX());
+        originOffset = LinearCombination.value(cos, p.getY(), -sin, p.getX());
     }
 
     /** Revert the instance.
@@ -257,7 +257,7 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
      * the specified space point
      */
     public Cartesian1D toSubSpace(final Cartesian2D cartesian) {
-        return new Cartesian1D(MathArrays.linearCombination(cos, 
cartesian.getX(), sin, cartesian.getY()));
+        return new Cartesian1D(LinearCombination.value(cos, cartesian.getX(), 
sin, cartesian.getY()));
     }
 
     /** Transform a sub-space point into a space point.
@@ -267,8 +267,8 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
      */
     public Cartesian2D toSpace(Cartesian1D cartesian) {
         final double abscissa = cartesian.getX();
-        return new Cartesian2D(MathArrays.linearCombination(abscissa, cos, 
-originOffset, sin),
-                            MathArrays.linearCombination(abscissa, sin,  
originOffset, cos));
+        return new Cartesian2D(LinearCombination.value(abscissa, cos, 
-originOffset, sin),
+                            LinearCombination.value(abscissa, sin,  
originOffset, cos));
     }
 
     /** Get the intersection point of the instance and another line.
@@ -277,12 +277,12 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
      * or null if there are no intersection points
      */
     public Cartesian2D intersection(final Line other) {
-        final double d = MathArrays.linearCombination(sin, other.cos, 
-other.sin, cos);
+        final double d = LinearCombination.value(sin, other.cos, -other.sin, 
cos);
         if (FastMath.abs(d) < tolerance) {
             return null;
         }
-        return new Cartesian2D(MathArrays.linearCombination(cos, 
other.originOffset, -other.cos, originOffset) / d,
-                            MathArrays.linearCombination(sin, 
other.originOffset, -other.sin, originOffset) / d);
+        return new Cartesian2D(LinearCombination.value(cos, 
other.originOffset, -other.cos, originOffset) / d,
+                            LinearCombination.value(sin, other.originOffset, 
-other.sin, originOffset) / d);
     }
 
     /** {@inheritDoc}
@@ -328,7 +328,7 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
      */
     public double getOffset(final Line line) {
         return originOffset +
-               (MathArrays.linearCombination(cos, line.cos, sin, line.sin) > 0 
? -line.originOffset : line.originOffset);
+               (LinearCombination.value(cos, line.cos, sin, line.sin) > 0 ? 
-line.originOffset : line.originOffset);
     }
 
     /** Get the offset (oriented distance) of a vector.
@@ -350,14 +350,14 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
      * @return offset of the point
      */
     public double getOffset(Cartesian2D cartesian) {
-        return MathArrays.linearCombination(sin, cartesian.getX(), -cos, 
cartesian.getY(), 1.0, originOffset);
+        return LinearCombination.value(sin, cartesian.getX(), -cos, 
cartesian.getY(), 1.0, originOffset);
     }
 
     /** {@inheritDoc} */
     @Override
     public boolean sameOrientationAs(final Hyperplane<Euclidean2D> other) {
         final Line otherL = (Line) other;
-        return MathArrays.linearCombination(sin, otherL.sin, cos, otherL.cos) 
>= 0.0;
+        return LinearCombination.value(sin, otherL.sin, cos, otherL.cos) >= 
0.0;
     }
 
     /** Get one point from the plane.
@@ -369,8 +369,8 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
     public Cartesian2D getPointAt(final Cartesian1D abscissa, final double 
offset) {
         final double x       = abscissa.getX();
         final double dOffset = offset - originOffset;
-        return new Cartesian2D(MathArrays.linearCombination(x, cos,  dOffset, 
sin),
-                            MathArrays.linearCombination(x, sin, -dOffset, 
cos));
+        return new Cartesian2D(LinearCombination.value(x, cos,  dOffset, sin),
+                            LinearCombination.value(x, sin, -dOffset, cos));
     }
 
     /** Check if the line contains a point.
@@ -400,14 +400,14 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
      * (they can have either the same or opposite orientations)
      */
     public boolean isParallelTo(final Line line) {
-        return FastMath.abs(MathArrays.linearCombination(sin, line.cos, -cos, 
line.sin)) < tolerance;
+        return FastMath.abs(LinearCombination.value(sin, line.cos, -cos, 
line.sin)) < tolerance;
     }
 
     /** Translate the line to force it passing by a point.
      * @param p point by which the line should pass
      */
     public void translateToPoint(final Cartesian2D p) {
-        originOffset = MathArrays.linearCombination(cos, p.getY(), -sin, 
p.getX());
+        originOffset = LinearCombination.value(cos, p.getY(), -sin, p.getX());
     }
 
     /** Get the angle of the line.
@@ -524,9 +524,9 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
             this.cX1 = cX1;
             this.cY1 = cY1;
 
-            c1Y = MathArrays.linearCombination(cXY, cY1, -cYY, cX1);
-            c1X = MathArrays.linearCombination(cXX, cY1, -cYX, cX1);
-            c11 = MathArrays.linearCombination(cXX, cYY, -cYX, cXY);
+            c1Y = LinearCombination.value(cXY, cY1, -cYY, cX1);
+            c1X = LinearCombination.value(cXX, cY1, -cYX, cX1);
+            c11 = LinearCombination.value(cXX, cYY, -cYX, cXY);
 
             if (FastMath.abs(c11) < 1.0e-20) {
                 throw new 
MathIllegalArgumentException(LocalizedFormats.NON_INVERTIBLE_TRANSFORM);
@@ -540,17 +540,17 @@ public class Line implements Hyperplane<Euclidean2D>, 
Embedding<Euclidean2D, Euc
             final Cartesian2D p2D = (Cartesian2D) point;
             final double  x   = p2D.getX();
             final double  y   = p2D.getY();
-            return new Cartesian2D(MathArrays.linearCombination(cXX, x, cXY, 
y, cX1, 1),
-                                MathArrays.linearCombination(cYX, x, cYY, y, 
cY1, 1));
+            return new Cartesian2D(LinearCombination.value(cXX, x, cXY, y, 
cX1, 1),
+                                LinearCombination.value(cYX, x, cYY, y, cY1, 
1));
         }
 
         /** {@inheritDoc} */
         @Override
         public Line apply(final Hyperplane<Euclidean2D> hyperplane) {
             final Line   line    = (Line) hyperplane;
-            final double rOffset = MathArrays.linearCombination(c1X, line.cos, 
c1Y, line.sin, c11, line.originOffset);
-            final double rCos    = MathArrays.linearCombination(cXX, line.cos, 
cXY, line.sin);
-            final double rSin    = MathArrays.linearCombination(cYX, line.cos, 
cYY, line.sin);
+            final double rOffset = LinearCombination.value(c1X, line.cos, c1Y, 
line.sin, c11, line.originOffset);
+            final double rCos    = LinearCombination.value(cXX, line.cos, cXY, 
line.sin);
+            final double rSin    = LinearCombination.value(cYX, line.cos, cYY, 
line.sin);
             final double inv     = 1.0 / FastMath.sqrt(rSin * rSin + rCos * 
rCos);
             return new Line(FastMath.PI + FastMath.atan2(-rSin, -rCos),
                             inv * rCos, inv * rSin,

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/hull/ConvexHull2D.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/hull/ConvexHull2D.java
 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/hull/ConvexHull2D.java
index 239c85f..0ba9fa9 100644
--- 
a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/hull/ConvexHull2D.java
+++ 
b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/hull/ConvexHull2D.java
@@ -18,6 +18,8 @@ package org.apache.commons.math4.geometry.euclidean.twod.hull;
 
 import java.io.Serializable;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
+import org.apache.commons.numbers.core.Precision;
 import org.apache.commons.math4.exception.InsufficientDataException;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
@@ -28,8 +30,6 @@ import 
org.apache.commons.math4.geometry.euclidean.twod.Cartesian2D;
 import org.apache.commons.math4.geometry.hull.ConvexHull;
 import org.apache.commons.math4.geometry.partitioning.Region;
 import org.apache.commons.math4.geometry.partitioning.RegionFactory;
-import org.apache.commons.math4.util.MathArrays;
-import org.apache.commons.numbers.core.Precision;
 
 /**
  * This class represents a convex hull in an two-dimensional euclidean space.
@@ -91,7 +91,7 @@ public class ConvexHull2D implements ConvexHull<Euclidean2D, 
Cartesian2D>, Seria
             final Cartesian2D d1 = p2.subtract(p1);
             final Cartesian2D d2 = p3.subtract(p2);
 
-            final double crossProduct = 
MathArrays.linearCombination(d1.getX(), d2.getY(), -d1.getY(), d2.getX());
+            final double crossProduct = LinearCombination.value(d1.getX(), 
d2.getY(), -d1.getY(), d2.getX());
             final int cmp = Precision.compareTo(crossProduct, 0.0, tolerance);
             // in case of collinear points the cross product will be zero
             if (cmp != 0.0) {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/3200db16/src/main/java/org/apache/commons/math4/util/Decimal64.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/util/Decimal64.java 
b/src/main/java/org/apache/commons/math4/util/Decimal64.java
index b8f4999..1bbd2ea 100644
--- a/src/main/java/org/apache/commons/math4/util/Decimal64.java
+++ b/src/main/java/org/apache/commons/math4/util/Decimal64.java
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.math4.util;
 
+import org.apache.commons.numbers.arrays.LinearCombination;
 import org.apache.commons.math4.Field;
 import org.apache.commons.math4.RealFieldElement;
 import org.apache.commons.math4.exception.DimensionMismatchException;
@@ -659,7 +660,7 @@ public class Decimal64 extends Number
             aDouble[i] = a[i].value;
             bDouble[i] = b[i].value;
         }
-        return new Decimal64(MathArrays.linearCombination(aDouble, bDouble));
+        return new Decimal64(LinearCombination.value(aDouble, bDouble));
     }
 
     /** {@inheritDoc}
@@ -675,7 +676,7 @@ public class Decimal64 extends Number
         for (int i = 0; i < a.length; ++i) {
             bDouble[i] = b[i].value;
         }
-        return new Decimal64(MathArrays.linearCombination(a, bDouble));
+        return new Decimal64(LinearCombination.value(a, bDouble));
     }
 
     /** {@inheritDoc}
@@ -684,7 +685,7 @@ public class Decimal64 extends Number
     @Override
     public Decimal64 linearCombination(final Decimal64 a1, final Decimal64 b1,
                                        final Decimal64 a2, final Decimal64 b2) 
{
-        return new Decimal64(MathArrays.linearCombination(a1.value, b1.value,
+        return new Decimal64(LinearCombination.value(a1.value, b1.value,
                                                           a2.value, b2.value));
     }
 
@@ -694,7 +695,7 @@ public class Decimal64 extends Number
     @Override
     public Decimal64 linearCombination(final double a1, final Decimal64 b1,
                                        final double a2, final Decimal64 b2) {
-        return new Decimal64(MathArrays.linearCombination(a1, b1.value,
+        return new Decimal64(LinearCombination.value(a1, b1.value,
                                                           a2, b2.value));
     }
 
@@ -705,7 +706,7 @@ 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(MathArrays.linearCombination(a1.value, b1.value,
+        return new Decimal64(LinearCombination.value(a1.value, b1.value,
                                                           a2.value, b2.value,
                                                           a3.value, b3.value));
     }
@@ -717,7 +718,7 @@ 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(MathArrays.linearCombination(a1, b1.value,
+        return new Decimal64(LinearCombination.value(a1, b1.value,
                                                           a2, b2.value,
                                                           a3, b3.value));
     }
@@ -730,7 +731,7 @@ 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(MathArrays.linearCombination(a1.value, b1.value,
+        return new Decimal64(LinearCombination.value(a1.value, b1.value,
                                                           a2.value, b2.value,
                                                           a3.value, b3.value,
                                                           a4.value, b4.value));
@@ -744,7 +745,7 @@ 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(MathArrays.linearCombination(a1, b1.value,
+        return new Decimal64(LinearCombination.value(a1, b1.value,
                                                           a2, b2.value,
                                                           a3, b3.value,
                                                           a4, b4.value));

Reply via email to