llvm-project/libc/test
Tue Ly 6168b42225 [libc] Improve the performance of expf.
Reduce the polynomial's degree from 7 down to 4.

Currently we use a degree-7 minimax polynomial on an interval of length 2^-7
around 0 to compute `expf`. Based on the suggestion of @santoshn and the RLIBM
project (https://github.com/rutgers-apl/rlibm-all/blob/main/source/float/exp.c)
and the improvement we made with `exp2f` in https://reviews.llvm.org/D122346,
it is possible to have a good polynomial of degree-4 on a subinterval of length
2^(-7) to approximate e^x.

We did try to either reduce the degree of the polynomial down to 3 or increase
the interval size to 2^(-6), 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^(-7) around 0.

Reviewed By: sivachandra, zimmermann6, santoshn

Differential Revision: https://reviews.llvm.org/D122418
2022-03-25 12:20:20 -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 expf. 2022-03-25 12:20:20 -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