llvm-project/libc/test
Tue Ly b9d87d7466 [libc] Improve the performance of exp2f.
Reduce the range-reduction table size from 128 entries down to 64 entries, and
reduce the polynomial's degree from 6 down to 4.

Currently we use a degree-6 minimax polynomial on an interval of length 2^-7
around 0 to compute exp2f.  Based on the suggestion of @santoshn and the RLIBM
project (https://github.com/rutgers-apl/rlibm-prog/blob/main/libm/float/exp2.c)
it is possible to have a good polynomial of degree-4 on a subinterval of length
2^(-6) to approximate 2^x.

We did try to either reduce the degree of the polynomial down to 3 or increase
the interval size to 2^(-5), but in both cases the number of exceptional values
exploded.  So we settle with using a degree-4 polynomial of the interval of
size 2^(-6) around 0.

Reviewed By: michaelrj, sivachandra, zimmermann6, santoshn

Differential Revision: https://reviews.llvm.org/D122346
2022-03-24 18:06:37 -04:00
..
integration [libc] Use real objects and archives in integration tests. 2022-03-24 07:02:33 +00:00
src [libc] Improve the performance of exp2f. 2022-03-24 18:06:37 -04:00
utils [libc][NFC] split standalone_cpp into single headers 2022-03-08 11:56:08 -08:00
CMakeLists.txt [libc] Use real objects and archives in integration tests. 2022-03-24 07:02:33 +00:00
ErrnoSetterMatcher.h [libc][NFC] Move sys/mman entrypoints to the default build configs. 2022-01-11 16:51:10 +00:00