summaryrefslogtreecommitdiff
path: root/test/082-inline-execute/src/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/082-inline-execute/src/Main.java')
-rw-r--r--test/082-inline-execute/src/Main.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/082-inline-execute/src/Main.java b/test/082-inline-execute/src/Main.java
index f4a234b437..97ecf47876 100644
--- a/test/082-inline-execute/src/Main.java
+++ b/test/082-inline-execute/src/Main.java
@@ -45,6 +45,8 @@ public class Main {
test_Math_isInfinite_D();
test_Math_isInfinite_F();
test_Math_multiplyHigh();
+ test_Math_fma_D();
+ test_Math_fma_F();
test_Short_reverseBytes();
test_Integer_reverseBytes();
test_Long_reverseBytes();
@@ -985,6 +987,24 @@ public class Main {
Assert.assertEquals(Math.multiplyHigh(Long.MAX_VALUE, Long.MAX_VALUE), 4611686018427387903L);
}
+ public static void test_Math_fma_D() {
+ final double MAX_D = Double.MAX_VALUE;
+ final double MIN_D = Double.MIN_VALUE;
+ Math.fma(3.0, 4.0, 5.0);
+ Assert.assertEquals(Double.compare(Math.fma(3.0, 4.0, 5.0), 17.0), 0);
+ Assert.assertEquals(Double.compare(Math.fma(MAX_D, MIN_D, 1.0), 1.0000000000000009), 0);
+ Assert.assertEquals(Double.compare(Math.fma(MAX_D, MIN_D, 0.0), 8.881784197001251E-16), 0);
+ }
+
+ public static void test_Math_fma_F() {
+ final float MAX_F = Float.MAX_VALUE;
+ final float MIN_F = Float.MIN_VALUE;
+ Math.fma(3.0f, 4.0f, 5.0f);
+ Assert.assertEquals(Float.compare(Math.fma(3.0f, 4.0f, 5.0f), 17.0f), 0);
+ Assert.assertEquals(Float.compare(Math.fma(MAX_F, MIN_F, 1.0f), 1.0000005f), 0);
+ Assert.assertEquals(Float.compare(Math.fma(MAX_F, MIN_F, 0.0f), 4.7683712978141557E-7f), 0);
+ }
+
public static void test_StrictMath_abs_I() {
StrictMath.abs(-1);
Assert.assertEquals(StrictMath.abs(0), 0);