diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index c52b3be..0d24f8f 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java: ['17']
+ java: ['22']
steps:
- uses: actions/checkout@v1
- name: Setup test JDK ${{ matrix.java }}
@@ -15,10 +15,10 @@ jobs:
with:
java-version: ${{ matrix.java }}
- run: echo "test_java_home=$JAVA_HOME" >> $GITHUB_ENV
- - name: Setup build JDK 17
+ - name: Setup build JDK 22
uses: actions/setup-java@v1
with:
- java-version: 17
+ java-version: 22
- name: Maven Test
run: mvn install -V -B -Dtest_java_home=${{ env.test_java_home }}
diff --git a/pom.xml b/pom.xml
index 3073d35..445220e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,7 +96,8 @@
maven-compiler-plugin
3.8.1
- 17
+
+ 22
diff --git a/src/main/java/org/weakref/int128/Int128.java b/src/main/java/org/weakref/int128/Int128.java
index 6c21c2c..67d8b90 100644
--- a/src/main/java/org/weakref/int128/Int128.java
+++ b/src/main/java/org/weakref/int128/Int128.java
@@ -19,10 +19,10 @@
import java.nio.ByteOrder;
import java.util.concurrent.ThreadLocalRandom;
+import static java.lang.Math.unsignedMultiplyHigh;
import static org.weakref.int128.MoreMath.ifNegative;
import static org.weakref.int128.MoreMath.unsignedBorrow;
import static org.weakref.int128.MoreMath.unsignedCarry;
-import static org.weakref.int128.MoreMath.unsignedMultiplyHigh;
public record Int128(long high, long low)
implements Comparable
diff --git a/src/main/java/org/weakref/int128/Int128Math.java b/src/main/java/org/weakref/int128/Int128Math.java
index ec18bc4..ffe9d54 100644
--- a/src/main/java/org/weakref/int128/Int128Math.java
+++ b/src/main/java/org/weakref/int128/Int128Math.java
@@ -13,6 +13,8 @@
*/
package org.weakref.int128;
+import static java.lang.Math.unsignedMultiplyHigh;
+
public final class Int128Math
{
private Int128Math() {}
@@ -138,7 +140,7 @@ public static long subtractLowExact(long aHigh, long aLow, long bHigh, long bLow
public static long multiplyHigh(long aHigh, long aLow, long bHigh, long bLow)
{
- return MoreMath.unsignedMultiplyHigh(aLow, bLow) + aLow * bHigh + aHigh * bLow;
+ return unsignedMultiplyHigh(aLow, bLow) + aLow * bHigh + aHigh * bLow;
}
public static long multiplyLow(long aHigh, long aLow, long bHigh, long bLow)
diff --git a/src/main/java/org/weakref/int128/MoreMath.java b/src/main/java/org/weakref/int128/MoreMath.java
index d7f39dc..fa1f026 100644
--- a/src/main/java/org/weakref/int128/MoreMath.java
+++ b/src/main/java/org/weakref/int128/MoreMath.java
@@ -53,11 +53,4 @@ public static long ifNegative(long test, long value)
{
return value & (test >> 63);
}
-
- // TODO: replace with JDK 18's Math.unsignedMultiplyHigh
- public static long unsignedMultiplyHigh(long x, long y)
- {
- // HD 8-3: High-Order Product Signed from/to Unsigned
- return Math.multiplyHigh(x, y) + ifNegative(x, y) + ifNegative(y, x);
- }
}