diff --git a/libc/docs/math/index.rst b/libc/docs/math/index.rst index 15895fe7a7af53..40f18862849bc0 100644 --- a/libc/docs/math/index.rst +++ b/libc/docs/math/index.rst @@ -68,91 +68,405 @@ Add a new math function to LLVM libc Implementation Status ===================== +* To check math functions enabled for Linux: + + - `linux-x86_64 `_ + + - `linux-aarch64 `_ + + - `linux-aarch32 `_ + + - `linux-riscv64 `_ + +* To check math functions enabled for Windows: + + - `windows-x86_64 `_ + + - windows-aarch64 - to be added + +* To check math functions enabled for macOS: + + - `darwin-x86_64 `_ + + - `darwin-aarch64 `_ + +* To check math functions enabled for GPU: + + - `gpu-entrypoints `_ + +* To check math functions enabled for embedded system: + + - `barebone-aarch32 `_ + + - barebone-riscv32 - to be added + Basic Operations ---------------- -============== ================ =============== ====================== - (float) (double) (long double) -============== ================ =============== ====================== -ceil :green:`XA` :green:`XA` :green:`XA` -copysign :green:`XA` :green:`XA` :green:`XA` -fabs :green:`XA` :green:`XA` :green:`XA` -fdim :green:`XA` :green:`XA` :green:`XA` -floor :green:`XA` :green:`XA` :green:`XA` -fmax :green:`XA` :green:`XA` :green:`XA` -fmin :green:`XA` :green:`XA` :green:`XA` -fmod :green:`XA` :green:`XA` -fpclassify -frexp :green:`XA` :green:`XA` :green:`XA` -ilogb :green:`XA` :green:`XA` :green:`XA` -isfinite -isgreater -isgreaterequal -isinf -isless -islessequal -islessgreater -isnan -isnormal -isubordered -ldexp :green:`XA` :green:`XA` :green:`XA` -llrint :green:`XA` :green:`XA` :green:`XA` -llround :green:`XA` :green:`XA` :green:`XA` -logb :green:`XA` :green:`XA` :green:`XA` -lrint :green:`XA` :green:`XA` :green:`XA` -lround :green:`XA` :green:`XA` :green:`XA` -modf :green:`XA` :green:`XA` :green:`XA` -nan -nearbyint :green:`XA` :green:`XA` :green:`XA` -nextafter :green:`XA` :green:`XA` :green:`XA` -nexttoward -remainder :green:`XA` :green:`XA` :green:`XA` -remquo :green:`XA` :green:`XA` :green:`XA` -rint :green:`XA` :green:`XA` :green:`XA` -round :green:`XA` :green:`XA` :green:`XA` -scalbn :green:`XA` :green:`XA` :green:`XA` -signbit -trunc :green:`XA` :green:`XA` :green:`XA` -============== ================ =============== ====================== ++--------------+---------------------------------------+-------------------+-------------------+-------------------+-------------------+ +| | Linux | Windows | MacOS | Embedded | GPU | +| +---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| | x86_64 | aarch64 | aarch32 | riscv64 | x86_64 | aarch64 | x86_64 | aarch64 | aarch32 | riscv32 | AMD | nVidia | ++==============+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+ +| ceil | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ceilf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ceill | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| copysign | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| copysignf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| copysignl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fabs | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fabsf | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fabsl | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fdim | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fdimf | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fdiml | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| floor | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| floorf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| floorl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmax | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmaxf | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmaxl | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmin | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fminf | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fminl | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmod | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmodf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmodl | | | | | | | | | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| frexp | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| frexpf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| frexpl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ilogb | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ilogbf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ilogbl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ldexp | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ldexpf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| ldexpl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| llrint | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| llrintf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| llrintl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| llround | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| llroundf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| llroundl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| logb | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| logbf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| logbl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lrint | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lrintf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lrintl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lround | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lroundf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lroundl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| modf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| modff | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| modfl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nan | | | | | | | | | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nanf | | | | | | | | | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nanl | | | | | | | | | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nearbyint | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nearbyintf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nearbyintl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nextafter | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nextafterf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nextafterl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nexttoward | | | | | | | | | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nexttowardf | | | | | | | | | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| nexttowardl | | | | | | | | | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| remainder | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| remainderf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| remainderl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| remquo | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| remquof | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| remquol | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| rint | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| rintf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| rintl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| round | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| roundf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| roundl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| scalbn | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| scalbnf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| scalbnl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| trunc | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| truncf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| truncl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ + Higher Math Functions --------------------- -============== ================ =============== ====================== - (float) (double) (long double) -============== ================ =============== ====================== -acos :green:`XA` -acosh :green:`XA` -asin :green:`XA` -asinh :green:`XA` -atan :green:`XA` -atan2 -atanh :green:`XA` -cbrt -cos :green:`XA` :green:`XA` -cosh :green:`XA` -erf -erfc -exp :green:`XA` -exp10 :green:`XA` -exp2 :green:`XA` -expm1 :green:`XA` -fma :green:`XA` :green:`XA` -hypot :green:`XA` :green:`XA` -lgamma -log :green:`XA` -log10 :green:`XA` :green:`XA` -log1p :green:`XA` -log2 :green:`XA` -pow -sin :green:`XA` :green:`XA` -sincos :green:`XA` :green:`XA` -sinh :green:`XA` -sqrt :green:`XA` :green:`XA` :green:`XA` -tan :green:`XA` -tanh :green:`XA` -tgamma -============== ================ =============== ====================== ++------------+---------------------------------------+-------------------+-------------------+-------------------+-------------------+ +| | Linux | Windows | MacOS | Embedded | GPU | +| +---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| | x86_64 | aarch64 | aarch32 | riscv64 | x86_64 | aarch64 | x86_64 | aarch64 | aarch32 | riscv32 | AMD | nVidia | ++============+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+=========+ +| acos | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| acosf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| acosl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| acosh | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| acoshf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| acoshl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| asin | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| asinf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| asinl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| asinh | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| asinhf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| asinhl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atan | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atanf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atanl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atan2 | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atan2f | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atan2l | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atanh | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atanhf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| atanhl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| cbrt | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| cbrtf | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| cbrtl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| cos | |check| | | | | |check| | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| cosf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| cosl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| cosh | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| coshf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| coshl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| erf | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| erff | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| erfl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| erfc | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| erfcf | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| erfcl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| exp | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| expf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| expl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| exp10 | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| exp10f | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| exp10l | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| exp2 | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| exp2f | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| exp2l | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| expm1 | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| expm1f | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| expm1l | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fma | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmaf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| fmal | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| hypot | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| hypotf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| hypotl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lgamma | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lgammaf | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| lgammal | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log | |check| | |check| | | | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| logf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| logl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log10 | |check| | |check| | | | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log10f | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log10l | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log1p | |check| | |check| | | | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log1pf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log1pl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log2 | |check| | |check| | | | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log2f | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| log2l | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| pow | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| powf | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| powl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sin | |check| | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sinf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sinl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sincos | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sincosf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sincosl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sinh | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sinhf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sinhl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sqrt | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sqrtf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| sqrtl | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tan | |check| | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tanf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tanl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tanh | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tanhf | |check| | |check| | | |check| | |check| | | | |check| | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tanhl | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tgamma | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tgammaf | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ +| tgammal | | | | | | | | | | | | | ++------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ + Accuracy of Higher Math Functions ================================= @@ -160,36 +474,36 @@ Accuracy of Higher Math Functions ============== ================ =============== ====================== (float) (double) (long double) ============== ================ =============== ====================== -acos :green:`XA` -acosh :green:`XA` -asin :green:`XA` -asinh :green:`XA` -atan :green:`XA` -atanh :green:`XA` -cos :green:`XA` large -cosh :green:`XA` -exp :green:`XA` -exp10 :green:`XA` -exp2 :green:`XA` -expm1 :green:`XA` -fma :green:`XA` :green:`XA` -hypot :green:`XA` :green:`XA` -log :green:`XA` -log10 :green:`XA` :green:`XA` -log1p :green:`XA` -log2 :green:`XA` -sin :green:`XA` large -sincos :green:`XA` large -sinh :green:`XA` -sqrt :green:`XA` :green:`XA` :green:`XA` -tan :green:`XA` -tanh :green:`XA` +acos |check| +acosh |check| +asin |check| +asinh |check| +atan |check| +atanh |check| +cos |check| large +cosh |check| +exp |check| +exp10 |check| +exp2 |check| +expm1 |check| +fma |check| |check| +hypot |check| |check| +log |check| |check| +log10 |check| |check| +log1p |check| |check| +log2 |check| |check| +sin |check| large +sincos |check| large +sinh |check| +sqrt |check| |check| |check| +tan |check| +tanh |check| ============== ================ =============== ====================== + Legends: -* `X` = x86_64, `A` = aarch64, `a` = arm32 -* Green text (eg. :green:`XA`): correctly rounded for all 4 rounding modes. +* |check| : correctly rounded for all 4 rounding modes. * CR: correctly rounded for the default rounding mode (round-to-the-nearest, tie-to-even). * x ULPs: largest errors recorded.