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 |
||
|---|---|---|
| .. | ||
| AOR_v20.02 | ||
| benchmarks | ||
| cmake/modules | ||
| config | ||
| docs | ||
| fuzzing | ||
| include | ||
| lib | ||
| loader | ||
| spec | ||
| src | ||
| test | ||
| utils | ||
| .clang-tidy | ||
| .gitignore | ||
| CMakeLists.txt | ||
| LICENSE.TXT | ||
| README.txt | ||
README.txt
LLVM libc ========= This directory and its subdirectories contain source code for llvm-libc, a retargetable implementation of the C standard library. LLVM is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.