This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-math.git

commit 6969438fda0529576ab6700989e5fdaff840f558
Author: aherbert <aherb...@apache.org>
AuthorDate: Thu Oct 13 16:49:11 2022 +0100

    Remove use of modulus to detect odd/even
    
    Use the lowest bit to detect the sign.
---
 .../commons/math4/legacy/core/ExtendedFieldElementAbstractTest.java   | 2 +-
 .../math4/legacy/analysis/integration/gauss/HermiteRuleFactory.java   | 2 +-
 .../analysis/integration/gauss/LegendreHighPrecisionRuleFactory.java  | 2 +-
 .../math4/legacy/analysis/integration/gauss/LegendreRuleFactory.java  | 2 +-
 .../legacy/analysis/integration/gauss/SymmetricGaussIntegrator.java   | 2 +-
 .../java/org/apache/commons/math4/legacy/genetics/CycleCrossover.java | 4 ++--
 .../math4/legacy/ode/nonstiff/AdamsBashforthFieldIntegrator.java      | 2 +-
 .../commons/math4/legacy/ode/nonstiff/AdamsBashforthIntegrator.java   | 2 +-
 .../math4/legacy/ode/nonstiff/GraggBulirschStoerIntegrator.java       | 2 +-
 .../legacy/analysis/differentiation/DerivativeStructureTest.java      | 2 +-
 .../math4/legacy/analysis/integration/SimpsonIntegratorTest.java      | 4 ++--
 .../legacy/analysis/integration/gauss/HermiteParametricTest.java      | 3 ++-
 .../integration/gauss/LegendreHighPrecisionParametricTest.java        | 3 ++-
 .../legacy/analysis/integration/gauss/LegendreParametricTest.java     | 3 ++-
 .../math4/legacy/analysis/polynomials/PolynomialsUtilsTest.java       | 2 +-
 .../commons/math4/legacy/field/ExtendedFieldElementAbstractTest.java  | 2 +-
 .../org/apache/commons/math4/legacy/ode/events/EventFilterTest.java   | 2 +-
 .../commons/math4/legacy/optim/nonlinear/scalar/TestFunction.java     | 2 +-
 18 files changed, 23 insertions(+), 20 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 c9713e310..0829f2973 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
@@ -248,7 +248,7 @@ public abstract class ExtendedFieldElementAbstractTest<T 
extends RealFieldElemen
         for (double x = -0.9; x < 0.9; x += 0.05) {
             for (int n = 1; n < 5; ++n) {
                 if (x < 0) {
-                    if (n % 2 == 1) {
+                    if ((n & 1) == 1) {
                         checkRelative(-JdkMath.pow(-x, 1.0 / n), 
build(x).rootN(n));
                     }
                 } else {
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteRuleFactory.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteRuleFactory.java
index 4cdbc0f68..a5a9491fe 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteRuleFactory.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteRuleFactory.java
@@ -156,7 +156,7 @@ public class HermiteRuleFactory extends 
BaseRuleFactory<Double> {
         // Note: as written, the test for oddness will work for negative
         // integers too (although it is not necessary here), preventing
         // a FindBugs warning.
-        if (numberOfPoints % 2 != 0) {
+        if ((numberOfPoints & 1) != 0) {
             double hm = H0;
             for (int j = 1; j < numberOfPoints; j += 2) {
                 final double jp1 = j + 1.0;
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionRuleFactory.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionRuleFactory.java
index 7ce9734d7..dc636b372 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionRuleFactory.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionRuleFactory.java
@@ -185,7 +185,7 @@ public class LegendreHighPrecisionRuleFactory extends 
BaseRuleFactory<BigDecimal
         // Note: as written, the test for oddness will work for negative
         // integers too (although it is not necessary here), preventing
         // a FindBugs warning.
-        if (numberOfPoints % 2 != 0) {
+        if ((numberOfPoints & 1) != 0) {
             BigDecimal pmc = BigDecimal.ONE;
             for (int j = 1; j < numberOfPoints; j += 2) {
                 final BigDecimal b_j = new BigDecimal(j, mContext);
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreRuleFactory.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreRuleFactory.java
index b4aecba6b..347303e40 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreRuleFactory.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreRuleFactory.java
@@ -120,7 +120,7 @@ public class LegendreRuleFactory extends 
BaseRuleFactory<Double> {
         // Note: as written, the test for oddness will work for negative
         // integers too (although it is not necessary here), preventing
         // a FindBugs warning.
-        if (numberOfPoints % 2 != 0) {
+        if ((numberOfPoints & 1) != 0) {
             double pmc = 1;
             for (int j = 1; j < numberOfPoints; j += 2) {
                 pmc = -j * pmc / (j + 1);
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/SymmetricGaussIntegrator.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/SymmetricGaussIntegrator.java
index b12177bad..c95423d02 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/SymmetricGaussIntegrator.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/analysis/integration/gauss/SymmetricGaussIntegrator.java
@@ -85,7 +85,7 @@ public class SymmetricGaussIntegrator extends GaussIntegrator 
{
             s = t;
         }
 
-        if (ruleLength % 2 != 0) {
+        if ((ruleLength & 1) != 0) {
             final double w = getWeight(iMax);
 
             final double y = w * f.value(0d) - c;
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/genetics/CycleCrossover.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/genetics/CycleCrossover.java
index 414492b0c..5f06354c0 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/genetics/CycleCrossover.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/genetics/CycleCrossover.java
@@ -155,8 +155,8 @@ public class CycleCrossover<T> implements CrossoverPolicy {
                 idx = parent1Rep.indexOf(item);
             }
 
-            // for even cycles: swap the child elements on the indices found 
in this cycle
-            if (cycle++ % 2 != 0) {
+            // for odd cycles: swap the child elements on the indices found in 
this cycle
+            if ((cycle++ & 1) != 0) {
                 for (int i : indices) {
                     T tmp = child1Rep.get(i);
                     child1Rep.set(i, child2Rep.get(i));
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthFieldIntegrator.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthFieldIntegrator.java
index eba3d44dc..5b821f834 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthFieldIntegrator.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthFieldIntegrator.java
@@ -220,7 +220,7 @@ public class AdamsBashforthFieldIntegrator<T extends 
RealFieldElement<T>> extend
             // apply Taylor formula from high order to low order,
             // for the sake of numerical accuracy
             T variation = getField().getZero();
-            int sign = predictedNordsieck.getRowDimension() % 2 == 0 ? -1 : 1;
+            int sign = (predictedNordsieck.getRowDimension() & 1) == 0 ? -1 : 
1;
             for (int k = predictedNordsieck.getRowDimension() - 1; k >= 0; 
--k) {
                 variation = variation.add(predictedNordsieck.getEntry(k, 
i).multiply(sign));
                 sign      = -sign;
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthIntegrator.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthIntegrator.java
index cb1944640..9e4f34fed 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthIntegrator.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/AdamsBashforthIntegrator.java
@@ -215,7 +215,7 @@ public class AdamsBashforthIntegrator extends 
AdamsIntegrator {
             // apply Taylor formula from high order to low order,
             // for the sake of numerical accuracy
             double variation = 0;
-            int sign = predictedNordsieck.getRowDimension() % 2 == 0 ? -1 : 1;
+            int sign = (predictedNordsieck.getRowDimension() & 1) == 0 ? -1 : 
1;
             for (int k = predictedNordsieck.getRowDimension() - 1; k >= 0; 
--k) {
                 variation += sign * predictedNordsieck.getEntry(k, i);
                 sign       = -sign;
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/GraggBulirschStoerIntegrator.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/GraggBulirschStoerIntegrator.java
index d73cc36b3..56ec113e4 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/GraggBulirschStoerIntegrator.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ode/nonstiff/GraggBulirschStoerIntegrator.java
@@ -309,7 +309,7 @@ public class GraggBulirschStoerIntegrator extends 
AdaptiveStepsizeIntegrator {
   public void setOrderControl(final int maximalOrder,
                               final double control1, final double control2) {
 
-    if (maximalOrder <= 6 || maximalOrder % 2 != 0) {
+    if (maximalOrder <= 6 || (maximalOrder & 1) != 0) {
       this.maxOrder = 18;
     }
 
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructureTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructureTest.java
index 9f1b6c702..a14482d05 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructureTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/differentiation/DerivativeStructureTest.java
@@ -547,7 +547,7 @@ public class DerivativeStructureTest extends 
ExtendedFieldElementAbstractTest<De
                     Assert.assertTrue(correctRoot.getPartialDerivative(1) > 0);
                     for (int order = 2; order <= maxOrder; ++order) {
                         
Assert.assertTrue(Double.isInfinite(correctRoot.getPartialDerivative(order)));
-                        if ((order % 2) == 0) {
+                        if ((order & 1) == 0) {
                             
Assert.assertTrue(correctRoot.getPartialDerivative(order) < 0);
                         } else {
                             
Assert.assertTrue(correctRoot.getPartialDerivative(order) > 0);
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/SimpsonIntegratorTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/SimpsonIntegratorTest.java
index b33eb4fce..1788a5255 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/SimpsonIntegratorTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/SimpsonIntegratorTest.java
@@ -200,14 +200,14 @@ public final class SimpsonIntegratorTest {
         // sum ~ h/3 * [ f(x0) + 4f(x1) + 2f(x2) + 4f(x3) + 2f(x4) ... + 
4f(xn-1) + f(xn) ]
         // h = (b-a)/n
         // f(xi) = f(a + i*h)
-        assert n > 0 && n % 2 == 0 : "n must be strictly positive and even";
+        assert n > 0 && (n & 1) == 0 : "n must be strictly positive and even";
         final double h = (b - a) / n;
         double sum4 = 0;
         double sum2 = 0;
         for (int i = 1; i < n; i++) {
             // Alternate sums that are multiplied by 4 and 2
             final double fxi = f.value(a + i * h);
-            if (i % 2 == 0) {
+            if ((i & 1) == 0) {
                 sum2 += fxi;
             } else {
                 sum4 += fxi;
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteParametricTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteParametricTest.java
index 74b4e6244..769d74853 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteParametricTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/HermiteParametricTest.java
@@ -79,7 +79,8 @@ public class HermiteParametricTest extends 
GaussianQuadratureAbstractTest {
 
     @Override
     public double getExpectedValue(final int n) {
-        if (n % 2 == 1) {
+        if ((n & 1) == 1) {
+            // n is odd
             return 0;
         }
 
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionParametricTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionParametricTest.java
index d8316bb19..eefe9c616 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionParametricTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreHighPrecisionParametricTest.java
@@ -77,7 +77,8 @@ public class LegendreHighPrecisionParametricTest extends 
GaussianQuadratureAbstr
 
     @Override
     public double getExpectedValue(final int n) {
-        if (n % 2 == 1) {
+        if ((n & 1) == 1) {
+            // n is odd
             return 0;
         }
         return 2d / (n + 1);
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreParametricTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreParametricTest.java
index eeb5f40cf..5d45e6481 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreParametricTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/integration/gauss/LegendreParametricTest.java
@@ -77,7 +77,8 @@ public class LegendreParametricTest extends 
GaussianQuadratureAbstractTest {
 
     @Override
     public double getExpectedValue(final int n) {
-        if (n % 2 == 1) {
+        if ((n & 1) == 1) {
+            // n is odd
             return 0;
         }
         return 2d / (n + 1);
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtilsTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtilsTest.java
index be1369fed..d6f4014f7 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtilsTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/analysis/polynomials/PolynomialsUtilsTest.java
@@ -260,7 +260,7 @@ public class PolynomialsUtilsTest {
               +26876802183334044115405d
         };
         for (int i = 0; i < l40.length; ++i) {
-            if (i % 2 == 0) {
+            if ((i & 1) == 0) {
                 double ci = numerators[i / 2] / denominator;
                 Assert.assertEquals(ci, l40[i], JdkMath.abs(ci) * 1e-15);
             } else {
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 e2352e40a..3e5631c22 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
@@ -250,7 +250,7 @@ public abstract class ExtendedFieldElementAbstractTest<T 
extends RealFieldElemen
         for (double x = -0.9; x < 0.9; x += 0.05) {
             for (int n = 1; n < 5; ++n) {
                 if (x < 0) {
-                    if (n % 2 == 1) {
+                    if ((n & 1) == 1) {
                         checkRelative(-JdkMath.pow(-x, 1.0 / n), 
build(x).rootN(n));
                     }
                 } else {
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/events/EventFilterTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/events/EventFilterTest.java
index 055adeb35..0f94f21da 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/events/EventFilterTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/ode/events/EventFilterTest.java
@@ -116,7 +116,7 @@ public class EventFilterTest {
             double t = t0 + (t1 - t0) * rng.nextDouble();
             double g = eventFilter.g(t, new double[] { JdkMath.sin(t), 
JdkMath.cos(t) });
             int turn = (int) JdkMath.floor((t - refSwitch) / (2 * JdkMath.PI));
-            if (turn % 2 == 0) {
+            if ((turn & 1) == 0) {
                 Assert.assertEquals( signEven * JdkMath.sin(t), g, 1.0e-10);
             } else {
                 Assert.assertEquals(-signEven * JdkMath.sin(t), g, 1.0e-10);
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/TestFunction.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/TestFunction.java
index a82d47a0d..3a935ebdf 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/TestFunction.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/TestFunction.java
@@ -156,7 +156,7 @@ public enum TestFunction {
         }),
     // https://scholarship.rice.edu/handle/1911/16304
     ROSENBROCK(dim -> {
-            if (dim % 2 != 0) {
+            if ((dim & 1) != 0) {
                 throw new IllegalArgumentException("Must be a multiple of 2 
(was: " + dim + ")");
             }
             final int last = dim / 2;

Reply via email to