Performance of CORE-MATH functions (revision 81d5ea0) on an Intel Xeon Silver 4214, with GCC 13.2.0, compared to GNU libc 2.37, the Intel Math Library from icx 2023.2.0 and LLVM libc (revision d099dbb):
Available CORE-MATH functions (under MIT license for the stand-alone functions):
| function | binary32 | binary64 | binary80 | binary128 |
| acos | code | code | glibc | glibc (1) |
| acosh | code | code | ||
| acospi | code | |||
| asin | code | code | ||
| asinh | code | code | ||
| asinpi | code | |||
| atan | code | code | ||
| atan2 | code | |||
| atan2pi | code | |||
| atanh | code | code | ||
| atanpi | code | |||
| cbrt | code | code (proof) | glibc | glibc |
| cos | code | code | ||
| cosh | code | code | ||
| cospi | code | code | ||
| erf | code | code | ||
| erfc | code | code | ||
| exp | code | code | ||
| exp10 | code | code | ||
| exp10m1 | code | code | ||
| exp2 | code | code | ||
| exp2m1 | code | code | ||
| expm1 | code | code | ||
| hypot | code | code | ||
| log | code | code (with Gappa proof) | ||
| log10 | code | code | ||
| log10p1 | code | code | ||
| log1p | code | code | ||
| log2 | code | code | ||
| log2p1 | code | code | ||
| pow | code | code | ||
| rsqrt | code | code | ||
| sin | code | code | ||
| sinh | code | code | ||
| sinpi | code | code | ||
| tan | code | code | ||
| tanh | code | code | ||
| tanpi | code | code |
Caption:
Notes:
Other correctly-rounded implementations:
| function | binary32 | binary64 | binary80 | binary128 |
| acos | rlibm llvm | crlibm | ||
| acosh | llvm | |||
| acospi | crlibm | |||
| asin | rlibm llvm | crlibm | ||
| asinh | llvm | |||
| asinpi | crlibm | |||
| atan | rlibm llvm | crlibm | ||
| atan2 | ||||
| atanh | llvm | crlibm | ||
| atanpi | crlibm | |||
| cbrt | ||||
| cos | rlibm llvm,llvm | crlibm | ||
| cosh | rlibm llvm llvm | crlibm | ||
| cospi | rlibm | crlibm | ||
| erf | llvm | |||
| erfc | ||||
| exp | rlibm llvm,llvm | crlibm, llvm | ||
| exp10 | rlibm llvm | llvm | ||
| exp2 | rlibm llvm llvm llvm | crlibm, llvm | ||
| expm1 | llvm,llvm | crlibm,llvm | <||
| hypot | llvm,llvm | llvm | ||
| log | rlibm llvm | crlibm, llvm | ||
| log10 | rlibm llvm | crlibm, llvm | ||
| log1p | llvm | crlibm, llvm | ||
| log2 | rlibm llvm | crlibm, llvm | ||
| pow | crlibm (2) | |||
| sin | rlibm llvm,llvm | crlibm | ||
| sincos | llvm | |||
| sinh | rlibm llvm llvm | crlibm | ||
| sinpi | rlibm | crlibm | ||
| tan | rlibm llvm,llvm | crlibm | ||
| tanh | llvm llvm | |||
| tanpi | crlibm |