diff options
author | Joe Ramsay <Joe.Ramsay@arm.com> | 2024-04-24 15:01:51 +0100 |
---|---|---|
committer | Joe Ramsay <joe.ramsay@arm.com> | 2024-04-24 15:01:51 +0100 |
commit | aa6e0cb0d7aa74d069121880c9eebd691e6b0441 (patch) | |
tree | 0a9463adef6ca7701a23274c94f9879f8d6cbff4 | |
parent | 420df6d8f093cc52b22d6d4ec060b9ba342d6d9e (diff) | |
download | arm-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.c | 6 | ||||
-rw-r--r-- | pl/math/sv_asin_3u.c | 8 | ||||
-rw-r--r-- | pl/math/v_asin_3u.c | 6 |
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) |