aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Ramsay <Joe.Ramsay@arm.com>2024-04-24 15:01:51 +0100
committerJoe Ramsay <joe.ramsay@arm.com>2024-04-24 15:01:51 +0100
commitaa6e0cb0d7aa74d069121880c9eebd691e6b0441 (patch)
tree0a9463adef6ca7701a23274c94f9879f8d6cbff4
parent420df6d8f093cc52b22d6d4ec060b9ba342d6d9e (diff)
downloadarm-optimized-routines-aa6e0cb0d7aa74d069121880c9eebd691e6b0441.tar.gz
pl/math: Update ULP threshold for asin
A slightly larger max was found.
-rw-r--r--pl/math/asin_3u.c6
-rw-r--r--pl/math/sv_asin_3u.c8
-rw-r--r--pl/math/v_asin_3u.c6
3 files changed, 10 insertions, 10 deletions
diff --git a/pl/math/asin_3u.c b/pl/math/asin_3u.c
index 90eef60..6b7df54 100644
--- a/pl/math/asin_3u.c
+++ b/pl/math/asin_3u.c
@@ -54,8 +54,8 @@
asin(x) ~ pi/2 - acos(x) ~ pi/2 - 2 * sqrt(z) (1 + z * P(z)).
The largest observed error in this region is 2.69 ulps,
- asin(0x1.044ac9819f573p-1) got 0x1.110d7e85fdd5p-1
- want 0x1.110d7e85fdd53p-1. */
+ asin(0x1.044e8cefee301p-1) got 0x1.1111dd54ddf96p-1
+ want 0x1.1111dd54ddf99p-1. */
double
asin (double x)
{
@@ -97,7 +97,7 @@ asin (double x)
}
PL_SIG (S, D, 1, asin, -1.0, 1.0)
-PL_TEST_ULP (asin, 2.19)
+PL_TEST_ULP (asin, 2.20)
PL_TEST_INTERVAL (asin, 0, Small, 5000)
PL_TEST_INTERVAL (asin, Small, 0.5, 50000)
PL_TEST_INTERVAL (asin, 0.5, 1.0, 50000)
diff --git a/pl/math/sv_asin_3u.c b/pl/math/sv_asin_3u.c
index c3dd37b..daac9e1 100644
--- a/pl/math/sv_asin_3u.c
+++ b/pl/math/sv_asin_3u.c
@@ -1,7 +1,7 @@
/*
* Double-precision SVE asin(x) function.
*
- * Copyright (c) 2023, Arm Limited.
+ * Copyright (c) 2023-2024, Arm Limited.
* SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
*/
@@ -42,8 +42,8 @@ static const struct data
asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
The largest observed error in this region is 2.69 ulps,
- _ZGVsMxv_asin(0x1.044ac9819f573p-1) got 0x1.110d7e85fdd5p-1
- want 0x1.110d7e85fdd53p-1. */
+ _ZGVsMxv_asin (0x1.044e8cefee301p-1) got 0x1.1111dd54ddf96p-1
+ want 0x1.1111dd54ddf99p-1. */
svfloat64_t SV_NAME_D1 (asin) (svfloat64_t x, const svbool_t pg)
{
const struct data *d = ptr_barrier (&data);
@@ -76,7 +76,7 @@ svfloat64_t SV_NAME_D1 (asin) (svfloat64_t x, const svbool_t pg)
}
PL_SIG (SV, D, 1, asin, -1.0, 1.0)
-PL_TEST_ULP (SV_NAME_D1 (asin), 2.19)
+PL_TEST_ULP (SV_NAME_D1 (asin), 2.20)
PL_TEST_INTERVAL (SV_NAME_D1 (asin), 0, 0.5, 50000)
PL_TEST_INTERVAL (SV_NAME_D1 (asin), 0.5, 1.0, 50000)
PL_TEST_INTERVAL (SV_NAME_D1 (asin), 1.0, 0x1p11, 50000)
diff --git a/pl/math/v_asin_3u.c b/pl/math/v_asin_3u.c
index dc0c7ce..b2de300 100644
--- a/pl/math/v_asin_3u.c
+++ b/pl/math/v_asin_3u.c
@@ -58,8 +58,8 @@ special_case (float64x2_t x, float64x2_t y, uint64x2_t special)
asin(x) = pi/2 - (y + y * z * P(z)), with z = (1-x)/2 and y = sqrt(z).
The largest observed error in this region is 2.69 ulps,
- _ZGVnN2v_asin (0x1.044ac9819f573p-1) got 0x1.110d7e85fdd5p-1
- want 0x1.110d7e85fdd53p-1. */
+ _ZGVnN2v_asin (0x1.044e8cefee301p-1) got 0x1.1111dd54ddf96p-1
+ want 0x1.1111dd54ddf99p-1. */
float64x2_t VPCS_ATTR V_NAME_D1 (asin) (float64x2_t x)
{
const struct data *d = ptr_barrier (&data);
@@ -103,7 +103,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (asin) (float64x2_t x)
}
PL_SIG (V, D, 1, asin, -1.0, 1.0)
-PL_TEST_ULP (V_NAME_D1 (asin), 2.19)
+PL_TEST_ULP (V_NAME_D1 (asin), 2.20)
PL_TEST_EXPECT_FENV (V_NAME_D1 (asin), WANT_SIMD_EXCEPT)
PL_TEST_INTERVAL (V_NAME_D1 (asin), 0, Small, 5000)
PL_TEST_INTERVAL (V_NAME_D1 (asin), Small, 0.5, 50000)