aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Ramsay <Joe.Ramsay@arm.com>2022-10-31 14:02:58 +0000
committerJoe Ramsay <joe.ramsay@arm.com>2022-10-31 14:02:58 +0000
commite873df5c1f5925f9cd82458e068d697fe3a8c18d (patch)
tree016b843727528a2bbf74b1aa311fd601506f066f
parent4705cc8a8333f5eb37687e9920dddfa93b91198b (diff)
downloadarm-optimized-routines-e873df5c1f5925f9cd82458e068d697fe3a8c18d.tar.gz
pl/math: Update ULP threshold for erfc (all variants) and scalar log1p
Filenames, comments and threshold in runulp updated.
-rw-r--r--pl/math/erfc_4u5.c4
-rw-r--r--pl/math/log1p_2u.c6
-rw-r--r--pl/math/s_erfc_4u.c (renamed from pl/math/s_erfc_3u7.c)2
-rw-r--r--pl/math/sv_erfc_4u.c6
-rwxr-xr-xpl/math/test/runulp.sh8
-rw-r--r--pl/math/v_erfc_4u.c (renamed from pl/math/v_erfc_3u7.c)6
-rw-r--r--pl/math/vn_erfc_4u.c (renamed from pl/math/vn_erfc_3u7.c)2
7 files changed, 17 insertions, 17 deletions
diff --git a/pl/math/erfc_4u5.c b/pl/math/erfc_4u5.c
index 7e0e813..003a0cc 100644
--- a/pl/math/erfc_4u5.c
+++ b/pl/math/erfc_4u5.c
@@ -118,8 +118,8 @@ top32 (double x)
The approximation uses polynomial approximation of
exp(x^2) * erfc(x) with fixed orders on 20 intervals.
Maximum measured error is 4.05 ULPs:.
- erfc(0x1.e8ee8c87064ap-2) got 0x1.ff81b0d2dc2e6p-2
- want 0x1.ff81b0d2dc2eap-2. */
+ erfc(0x1.e8ebf6a2b0801p-2) got 0x1.ff84036f8f0b3p-2
+ want 0x1.ff84036f8f0b7p-2. */
double
erfc (double x)
{
diff --git a/pl/math/log1p_2u.c b/pl/math/log1p_2u.c
index ddef7c5..b9c7e9e 100644
--- a/pl/math/log1p_2u.c
+++ b/pl/math/log1p_2u.c
@@ -23,9 +23,9 @@
/* log1p approximation using polynomial on reduced interval. Largest
observed errors are near the lower boundary of the region where k
is 0.
- Maximum measured error: 1.72ULP.
- log1p(-0x1.2e49eddc007d4p-2) got -0x1.663e386abd899p-2
- want -0x1.663e386abd89bp-2. */
+ Maximum measured error: 1.75ULP.
+ log1p(-0x1.2e1aea97b3e5cp-2) got -0x1.65fb8659a2f9p-2
+ want -0x1.65fb8659a2f92p-2. */
double
log1p (double x)
{
diff --git a/pl/math/s_erfc_3u7.c b/pl/math/s_erfc_4u.c
index 880d7a7..6d80574 100644
--- a/pl/math/s_erfc_3u7.c
+++ b/pl/math/s_erfc_4u.c
@@ -3,4 +3,4 @@
* SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
*/
#define SCALAR 1
-#include "v_erfc_3u7.c"
+#include "v_erfc_4u.c"
diff --git a/pl/math/sv_erfc_4u.c b/pl/math/sv_erfc_4u.c
index b4f2ff0..33c1c62 100644
--- a/pl/math/sv_erfc_4u.c
+++ b/pl/math/sv_erfc_4u.c
@@ -77,9 +77,9 @@ sv_eval_gauss (const svbool_t pg, sv_f64_t abs_x)
}
/* Optimized double precision vector complementary error function erfc.
- Maximum measured error is 3.63 ULP:
- __sv_erfc(0x1.479279a3bbc74p+2) got 0x1.ff341c664edc5p-42
- want 0x1.ff341c664edc9p-42. */
+ Maximum measured error is 3.64 ULP:
+ __sv_erfc(0x1.4792573ee6cc7p+2) got 0x1.ff3f4c8e200d5p-42
+ want 0x1.ff3f4c8e200d9p-42. */
sv_f64_t
__sv_erfc_x (sv_f64_t x, const svbool_t pg)
{
diff --git a/pl/math/test/runulp.sh b/pl/math/test/runulp.sh
index 53dc7f5..1573979 100755
--- a/pl/math/test/runulp.sh
+++ b/pl/math/test/runulp.sh
@@ -57,7 +57,7 @@ t log10 0 0xffff000000000000 10000
t log10 0x1p-4 0x1p4 40000
t log10 0 inf 40000
-L=3.55
+L=3.56
t erfc 0 0xffff0000 10000
t erfc 0x1p-1022 0x1p-26 40000
t erfc -0x1p-1022 -0x1p-26 40000
@@ -107,7 +107,7 @@ t asinh -1.0 -100.0 10000
t asinh 100.0 inf 50000
t asinh -100.0 -inf 10000
-L=1.24
+L=1.26
t log1p -10.0 10.0 10000
t log1p 0.0 0x1p-23 50000
t log1p 0x1p-23 0.001 50000
@@ -470,7 +470,7 @@ range_sve_erfc='
'
# error limits
-L_erfc=3.14
+L_erfc=3.15
L_erfcf=0.26
L_log10=1.97
L_log10f=2.81
@@ -505,7 +505,7 @@ L_sve_expf=1.46
L_sve_erff=0.76
L_sve_erf=1.97
L_sve_tanf=2.7
-L_sve_erfc=3.14
+L_sve_erfc=3.15
while read G F R
do
diff --git a/pl/math/v_erfc_3u7.c b/pl/math/v_erfc_4u.c
index d65a9d7..603d8f5 100644
--- a/pl/math/v_erfc_3u7.c
+++ b/pl/math/v_erfc_4u.c
@@ -103,9 +103,9 @@ v_eval_gauss (v_f64_t a)
}
/* Optimized double precision vector complementary error function erfc.
- Maximum measured error is 3.63 ULP:
- __v_erfc(0x1.479279a3bbc74p+2) got 0x1.ff341c664edc5p-42
- want 0x1.ff341c664edc9p-42. */
+ Maximum measured error is 3.64 ULP:
+ __v_erfc(0x1.4792573ee6cc7p+2) got 0x1.ff3f4c8e200d5p-42
+ want 0x1.ff3f4c8e200d9p-42. */
VPCS_ATTR
v_f64_t V_NAME (erfc) (v_f64_t x)
{
diff --git a/pl/math/vn_erfc_3u7.c b/pl/math/vn_erfc_4u.c
index db06bc3..678e316 100644
--- a/pl/math/vn_erfc_3u7.c
+++ b/pl/math/vn_erfc_4u.c
@@ -8,5 +8,5 @@
#ifdef __vpcs
#define VPCS 1
#define VPCS_ALIAS strong_alias (__vn_erfc, _ZGVnN2v_erfc)
-#include "v_erfc_3u7.c"
+#include "v_erfc_4u.c"
#endif