aboutsummaryrefslogtreecommitdiff
path: root/math/test
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-12-04 04:11:41 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-12-04 04:11:41 +0000
commita1ca34202964a49508d49854c8500f9e09b042ed (patch)
tree559634645b261c500bdd7b172b2ecf4f87e6dd78 /math/test
parent0c47e0f8e36cd0cdeefb5f56ccfce78f7931f75d (diff)
parent59371d5a3dfd27747d9d29ab7a7d3470e157d9ee (diff)
downloadarm-optimized-routines-a1ca34202964a49508d49854c8500f9e09b042ed.tar.gz
Upgrade arm-optimized-routines to v20.11 am: 59371d5a3d
Original change: https://android-review.googlesource.com/c/platform/external/arm-optimized-routines/+/1515050 Change-Id: I9c99706d82ceca15395995855d46e3e7d8c23ace
Diffstat (limited to 'math/test')
-rw-r--r--math/test/mathbench.c2
-rwxr-xr-xmath/test/runulp.sh21
-rw-r--r--math/test/testcases/directed/erf.tst17
-rw-r--r--math/test/testcases/directed/erff.tst17
-rw-r--r--math/test/ulp.c2
5 files changed, 59 insertions, 0 deletions
diff --git a/math/test/mathbench.c b/math/test/mathbench.c
index 33ceda3..2e8aaf8 100644
--- a/math/test/mathbench.c
+++ b/math/test/mathbench.c
@@ -248,6 +248,7 @@ D (log2, 0.999, 1.001)
{"pow", 'd', 0, 0.01, 11.1, {.d = xypow}},
D (xpow, 0.01, 11.1)
D (ypow, -9.9, 9.9)
+D (erf, -6.0, 6.0)
F (dummyf, 1.0, 2.0)
F (expf, -9.9, 9.9)
@@ -275,6 +276,7 @@ F (cosf, -3.1, 3.1)
F (cosf, 3.3, 33.3)
F (cosf, 100, 1000)
F (cosf, 1e6, 1e32)
+F (erff, -4.0, 4.0)
#if WANT_VMATH
D (__s_sin, -3.1, 3.1)
D (__s_cos, -3.1, 3.1)
diff --git a/math/test/runulp.sh b/math/test/runulp.sh
index a8c391b..1d87a81 100755
--- a/math/test/runulp.sh
+++ b/math/test/runulp.sh
@@ -72,6 +72,16 @@ t pow 0x1.ffffffffffff0p-1 0x1.0000000000008p0 x 0x1p60 0x1p68 50000
t pow 0x1.ffffffffff000p-1 0x1p0 x 0x1p50 0x1p52 50000
t pow -0x1.ffffffffff000p-1 -0x1p0 x 0x1p50 0x1p52 50000
+L=1.0
+Ldir=0.9
+t erf 0 0xffff000000000000 10000
+t erf 0x1p-1022 0x1p-26 40000
+t erf -0x1p-1022 -0x1p-26 40000
+t erf 0x1p-26 0x1p3 40000
+t erf -0x1p-26 -0x1p3 40000
+t erf 0 inf 40000
+Ldir=0.5
+
L=0.01
t expf 0 0xffff0000 10000
t expf 0x1p-14 0x1p8 50000
@@ -119,6 +129,17 @@ t powf 0x1p-70 0x1p70 x 0x1p-1 0x1p1 50000
t powf 0x1p-70 0x1p70 x -0x1p-1 -0x1p1 50000
t powf 0x1.ep-1 0x1.1p0 x 0x1p8 0x1p14 50000
t powf 0x1.ep-1 0x1.1p0 x -0x1p8 -0x1p14 50000
+
+L=0.6
+Ldir=0.9
+t erff 0 0xffff0000 10000
+t erff 0x1p-127 0x1p-26 40000
+t erff -0x1p-127 -0x1p-26 40000
+t erff 0x1p-26 0x1p3 40000
+t erff -0x1p-26 -0x1p3 40000
+t erff 0 inf 40000
+Ldir=0.5
+
done
# vector functions
diff --git a/math/test/testcases/directed/erf.tst b/math/test/testcases/directed/erf.tst
new file mode 100644
index 0000000..7fa4d18
--- /dev/null
+++ b/math/test/testcases/directed/erf.tst
@@ -0,0 +1,17 @@
+; erf.tst - Directed test cases for erf
+;
+; Copyright (c) 2007-2020, Arm Limited.
+; SPDX-License-Identifier: MIT
+
+func=erf op1=7ff80000.00000001 result=7ff80000.00000001 errno=0
+func=erf op1=fff80000.00000001 result=7ff80000.00000001 errno=0
+func=erf op1=7ff00000.00000001 result=7ff80000.00000001 errno=0 status=i
+func=erf op1=fff00000.00000001 result=7ff80000.00000001 errno=0 status=i
+func=erf op1=7ff00000.00000000 result=3ff00000.00000000 errno=0
+func=erf op1=fff00000.00000000 result=bff00000.00000000 errno=0
+func=erf op1=00000000.00000000 result=00000000.00000000 errno=ERANGE
+func=erf op1=80000000.00000000 result=80000000.00000000 errno=ERANGE
+func=erf op1=00000000.00000001 result=00000000.00000001 errno=0 status=ux
+func=erf op1=80000000.00000001 result=80000000.00000001 errno=0 status=ux
+func=erf op1=3ff00000.00000000 result=3feaf767.a741088a.c6d errno=0
+func=erf op1=bff00000.00000000 result=bfeaf767.a741088a.c6d errno=0
diff --git a/math/test/testcases/directed/erff.tst b/math/test/testcases/directed/erff.tst
new file mode 100644
index 0000000..d05b7b1
--- /dev/null
+++ b/math/test/testcases/directed/erff.tst
@@ -0,0 +1,17 @@
+; erff.tst
+;
+; Copyright (c) 2007-2020, Arm Limited.
+; SPDX-License-Identifier: MIT
+
+func=erff op1=7fc00001 result=7fc00001 errno=0
+func=erff op1=ffc00001 result=7fc00001 errno=0
+func=erff op1=7f800001 result=7fc00001 errno=0 status=i
+func=erff op1=ff800001 result=7fc00001 errno=0 status=i
+func=erff op1=7f800000 result=3f800000 errno=0
+func=erff op1=ff800000 result=bf800000 errno=0
+func=erff op1=00000000 result=00000000 errno=ERANGE
+func=erff op1=80000000 result=80000000 errno=ERANGE
+func=erff op1=00000001 result=00000001 errno=0 status=ux
+func=erff op1=80000001 result=80000001 errno=0 status=ux
+func=erff op1=3f800000 result=3f57bb3d.3a0 errno=0
+func=erff op1=bf800000 result=bf57bb3d.3a0 errno=0
diff --git a/math/test/ulp.c b/math/test/ulp.c
index 371567a..05a5321 100644
--- a/math/test/ulp.c
+++ b/math/test/ulp.c
@@ -331,11 +331,13 @@ static const struct fun fun[] = {
F1 (log)
F1 (log2)
F2 (pow)
+ F1 (erf)
D1 (exp)
D1 (exp2)
D1 (log)
D1 (log2)
D2 (pow)
+ D1 (erf)
#if WANT_VMATH
F (__s_sinf, __s_sinf, sin, mpfr_sin, 1, 1, f1, 0)
F (__s_cosf, __s_cosf, cos, mpfr_cos, 1, 1, f1, 0)