diff options
author | Joe Ramsay <Joe.Ramsay@arm.com> | 2023-12-01 09:49:45 +0000 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2023-12-04 15:52:11 +0000 |
commit | 63d0a35d5f223a3f4b68190567b7d4d44545bce5 (patch) | |
tree | 69b006288d047188fcd0b81906647f9168a9eb65 /libio/putwchar.c | |
parent | 8e755f5bc8f57d0034c12f34c11ce8a83103dc65 (diff) | |
download | glibc-63d0a35d5f223a3f4b68190567b7d4d44545bce5.tar glibc-63d0a35d5f223a3f4b68190567b7d4d44545bce5.tar.gz glibc-63d0a35d5f223a3f4b68190567b7d4d44545bce5.tar.bz2 glibc-63d0a35d5f223a3f4b68190567b7d4d44545bce5.zip |
math: Add new exp10 implementation
New implementation is based on the existing exp/exp2, with different
reduction constants and polynomial. Worst-case error in round-to-
nearest is 0.513 ULP.
The exp/exp2 shared table is reused for exp10 - .rodata size of
e_exp_data increases by 64 bytes.
As for exp/exp2, targets with single-instruction rounding/conversion
intrinsics can use them by toggling TOINT_INTRINSICS=1 and adding the
necessary code to their math_private.h.
Improvements on Neoverse V1 compared to current GLIBC master:
exp10 thruput: 3.3x in [-0x1.439b746e36b52p+8 0x1.34413509f79ffp+8]
exp10 latency: 1.8x in [-0x1.439b746e36b52p+8 0x1.34413509f79ffp+8]
Tested on:
aarch64-linux-gnu (TOINT_INTRINSICS, fma contraction) and
x86_64-linux-gnu (!TOINT_INTRINSICS, no fma contraction)
Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Diffstat (limited to 'libio/putwchar.c')
0 files changed, 0 insertions, 0 deletions