summary refs log tree commit diff
path: root/math/w_exp2f.c
Commit message (Collapse)AuthorAgeFilesLines
* Add libm_alias_*_other_r macros.Joseph Myers2017-10-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some libm functions are unable to use the generic alias macros such as libm_alias_double because they have special symbol versioning requirements for the main float, double or long double public names. To facilitate adding _FloatN / _FloatNx function aliases in future, it's still desirable to have generic macros those functions can use as far as possible. This patch adds macros such as libm_alias_double_other, which only define names for _FloatN / _FloatNx aliases, not for float / double / long double. As present, all these new macros do nothing, but they are called in the appropriate places in macros such as libm_alias_double. This patch also arranges for lgamma implementations, and the recently added optimized float function implementations, to use the new macros to make them ready for addition of _FloatN / _FloatNx aliases. Tested for x86_64, and tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by this patch. * sysdeps/generic/libm-alias-double.h (libm_alias_double_other_r): New macro. (libm_alias_double_other): Likewise. (libm_alias_double_r): Use libm_alias_double_other_r. * sysdeps/generic/libm-alias-float.h (libm_alias_float_other_r): New macro. (libm_alias_float_other): Likewise. (libm_alias_float_r): Use libm_alias_float_other_r. * sysdeps/generic/libm-alias-float128.h (libm_alias_float128_other_r): New macro. (libm_alias_float128_other): Likewise. (libm_alias_float128_r): Use libm_alias_float128_other_r. * sysdeps/generic/libm-alias-ldouble.h (libm_alias_ldouble_other_r): New macro. (libm_alias_ldouble_other): Likewise. (libm_alias_ldouble_r): Use libm_alias_ldouble_other_r. * sysdeps/ieee754/ldbl-opt/libm-alias-double.h (libm_alias_double_other_r): New macro. (libm_alias_double_other): Likewise. (libm_alias_double_r): Use libm_alias_double_other_r. * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h (libm_alias_ldouble_other_r): New macro. (libm_alias_ldouble_other): Likewise. (libm_alias_ldouble_r): Use libm_alias_ldouble_other_r. * math/w_lgamma_main.c: Include <libm-alias-double.h>. [!USE_AS_COMPAT]: Use libm_alias_double_other. * math/w_lgammaf_main.c: Include <libm-alias-float.h>. [!USE_AS_COMPAT]: Use libm_alias_float_other. * math/w_lgammal_main.c: Include <libm-alias-ldouble.h>. [!USE_AS_COMPAT]: Use libm_alias_ldouble_other. * math/w_exp2f.c: Use libm_alias_float_other. * math/w_expf.c: Likewise. * math/w_log2f.c: Likewise. * math/w_logf.c: Likewise. * math/w_powf.c: Likewise. * sysdeps/ieee754/flt-32/e_exp2f.c: Include <libm-alias-float.h>. [!__exp2f]: Use libm_alias_float_other. * sysdeps/ieee754/flt-32/e_expf.c: Include <libm-alias-float.h>. [!__expf]: Use libm_alias_float_other. * sysdeps/ieee754/flt-32/e_log2f.c: Include <libm-alias-float.h>. [!__log2f]: Use libm_alias_float_other. * sysdeps/ieee754/flt-32/e_logf.c: Include <libm-alias-float.h>. [!__logf]: Use libm_alias_float_other. * sysdeps/ieee754/flt-32/e_powf.c: Include <libm-alias-float.h>. [!__powf]: Use libm_alias_float_other.
* New expf and exp2f version without SVID compat wrapperSzabolcs Nagy2017-09-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes the expf and exp2f error handling semantics to only set errno accoring to POSIX rules. New symbol version is introduced at GLIBC_2.27. The old wrappers are kept for compat symbols. Internal calls to __expf now get the new error semantics, this seems to only affect sysdeps/i386/fpu/s_expm1f.S where the errno-only behaviour should be correct. ia64 needed assembly change to have the new and compat versioned symbol map to the same function. All linux libm abilists are updated. * math/Versions (expf): New libm symbol at GLIBC_2.27. (exp2f): Likewise. * math/w_exp2f.c: New file. * math/w_expf.c: New file. * math/w_exp2f_compat.c (__exp2f_compat): For compat symbol only. * math/w_expf_compat.c (__expf_compat): Likewise. * sysdeps/ia64/fpu/e_exp2f.S: Add versioned symbols. * sysdeps/ia64/fpu/e_expf.S: Likewise. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
* Move wrappers to libm-compat-calls-autoGabriel F. T. Gomes2017-01-041-19/+0
| | | | | | | | | | This commit moves one step towards the deprecation of wrappers that use _LIB_VERSION / matherr / __kernel_standard functionality, by adding the suffix '_compat' to their filenames and adjusting Makefiles and #includes accordingly. New template wrappers that do not use such functionality will be added by future patches and will be first used by the float128 wrappers.
* This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* ↵Wilco Dijkstra2015-06-031-3/+3
| | | | to use standard C99 macros. This has no effect on generated code.
* Fix exp2 errno setting on underflow (bug 16283).Joseph Myers2013-12-031-1/+1
|
* Fix missing exp2 overflow exception (bug 13871).Joseph Myers2012-03-211-9/+5
|
* Use non-signaling floating-point comparisons in math functions.Aurelien Jarno2012-02-191-1/+2
|
* Optimize libmUlrich Drepper2011-10-121-18/+8
| | | | | libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized.
* Use private math_private.h in files in math/Ulrich Drepper2011-10-081-1/+1
|
* Moved to csu/errno-loc.c.Ulrich Drepper2005-12-141-0/+32
|
* (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper2004-12-221-32/+0
|
* 2.5-18.1Jakub Jelinek2007-07-121-0/+32
|
* Update.Ulrich Drepper2001-02-171-32/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * math/w_acos.c: Move to ... * sysdeps/generic/w_acos.c: ...here. New file. * math/w_acosf.c: Move to ... * sysdeps/generic/w_acosf.c: ...here. New file. * math/w_acosh.c: Move to ... * sysdeps/generic/w_acosh.c: ...here. New file. * math/w_acoshf.c: Move to ... * sysdeps/generic/w_acoshf.c: ...here. New file. * math/w_acoshl.c: Move to ... * sysdeps/generic/w_acoshl.c: ...here. New file. * math/w_acosl.c: Move to ... * sysdeps/generic/w_acosl.c: ...here. New file. * math/w_asin.c: Move to ... * sysdeps/generic/w_asin.c: ...here. New file. * math/w_asinf.c: Move to ... * sysdeps/generic/w_asinf.c: ...here. New file. * math/w_asinl.c: Move to ... * sysdeps/generic/w_asinl.c: ...here. New file. * math/w_atan2.c: Move to ... * sysdeps/generic/w_atan2.c: ...here. New file. * math/w_atan2f.c: Move to ... * sysdeps/generic/w_atan2f.c: ...here. New file. * math/w_atan2l.c: Move to ... * sysdeps/generic/w_atan2l.c: ...here. New file. * math/w_atanh.c: Move to ... * sysdeps/generic/w_atanh.c: ...here. New file. * math/w_atanhf.c: Move to ... * sysdeps/generic/w_atanhf.c: ...here. New file. * math/w_atanhl.c: Move to ... * sysdeps/generic/w_atanhl.c: ...here. New file. * math/w_cosh.c: Move to ... * sysdeps/generic/w_cosh.c: ...here. New file. * math/w_coshf.c: Move to ... * sysdeps/generic/w_coshf.c: ...here. New file. * math/w_coshl.c: Move to ... * sysdeps/generic/w_coshl.c: ...here. New file. * math/w_drem.c: Move to ... * sysdeps/generic/w_drem.c: ...here. New file. * math/w_dremf.c: Move to ... * sysdeps/generic/w_dremf.c: ...here. New file. * math/w_dreml.c: Move to ... * sysdeps/generic/w_dreml.c: ...here. New file. * math/w_exp10.c: Move to ... * sysdeps/generic/w_exp10.c: ...here. New file. * math/w_exp10f.c: Move to ... * sysdeps/generic/w_exp10f.c: ...here. New file. * math/w_exp10l.c: Move to ... * sysdeps/generic/w_exp10l.c: ...here. New file. * math/w_exp2.c: Move to ... * sysdeps/generic/w_exp2.c: ...here. New file. * math/w_exp2f.c: Move to ... * sysdeps/generic/w_exp2f.c: ...here. New file. * math/w_exp2l.c: Move to ... * sysdeps/generic/w_exp2l.c: ...here. New file. * math/w_fmod.c: Move to ... * sysdeps/generic/w_fmod.c: ...here. New file. * math/w_fmodf.c: Move to ... * sysdeps/generic/w_fmodf.c: ...here. New file. * math/w_fmodl.c: Move to ... * sysdeps/generic/w_fmodl.c: ...here. New file. * math/w_hypot.c: Move to ... * sysdeps/generic/w_hypot.c: ...here. New file. * math/w_hypotf.c: Move to ... * sysdeps/generic/w_hypotf.c: ...here. New file. * math/w_hypotl.c: Move to ... * sysdeps/generic/w_hypotl.c: ...here. New file. * math/w_j0.c: Move to ... * sysdeps/generic/w_j0.c: ...here. New file. * math/w_j0f.c: Move to ... * sysdeps/generic/w_j0f.c: ...here. New file. * math/w_j0l.c: Move to ... * sysdeps/generic/w_j0l.c: ...here. New file. * math/w_j1.c: Move to ... * sysdeps/generic/w_j1.c: ...here. New file. * math/w_j1f.c: Move to ... * sysdeps/generic/w_j1f.c: ...here. New file. * math/w_j1l.c: Move to ... * sysdeps/generic/w_j1l.c: ...here. New file. * math/w_jn.c: Move to ... * sysdeps/generic/w_jn.c: ...here. New file. * math/w_jnf.c: Move to ... * sysdeps/generic/w_jnf.c: ...here. New file. * math/w_jnl.c: Move to ... * sysdeps/generic/w_jnl.c: ...here. New file. * math/w_lgamma.c: Move to ... * sysdeps/generic/w_lgamma.c: ...here. New file. * math/w_lgammaf.c: Move to ... * sysdeps/generic/w_lgammaf.c: ...here. New file. * math/w_lgammaf_r.c: Move to ... * sysdeps/generic/w_lgammaf_r.c: ...here. New file. * math/w_lgammal.c: Move to ... * sysdeps/generic/w_lgammal.c: ...here. New file. * math/w_lgammal_r.c: Move to ... * sysdeps/generic/w_lgammal_r.c: ...here. New file. * math/w_lgamma_r.c: Move to ... * sysdeps/generic/w_lgamma_r.c: ...here. New file. * math/w_log10.c: Move to ... * sysdeps/generic/w_log10.c: ...here. New file. * math/w_log10f.c: Move to ... * sysdeps/generic/w_log10f.c: ...here. New file. * math/w_log10l.c: Move to ... * sysdeps/generic/w_log10l.c: ...here. New file. * math/w_log.c: Move to ... * sysdeps/generic/w_log.c: ...here. New file. * math/w_logf.c: Move to ... * sysdeps/generic/w_logf.c: ...here. New file. * math/w_logl.c: Move to ... * sysdeps/generic/w_logl.c: ...here. New file. * math/w_pow.c: Move to ... * sysdeps/generic/w_pow.c: ...here. New file. * math/w_powf.c: Move to ... * sysdeps/generic/w_powf.c: ...here. New file. * math/w_powl.c: Move to ... * sysdeps/generic/w_powl.c: ...here. New file. * math/w_remainder.c: Move to ... * sysdeps/generic/w_remainder.c: ...here. New file. * math/w_remainderf.c: Move to ... * sysdeps/generic/w_remainderf.c: ...here. New file. * math/w_remainderl.c: Move to ... * sysdeps/generic/w_remainderl.c: ...here. New file. * math/w_scalb.c: Move to ... * sysdeps/generic/w_scalb.c: ...here. New file. * math/w_scalbf.c: Move to ... * sysdeps/generic/w_scalbf.c: ...here. New file. * math/w_scalbl.c: Move to ... * sysdeps/generic/w_scalbl.c: ...here. New file. * math/w_sinh.c: Move to ... * sysdeps/generic/w_sinh.c: ...here. New file. * math/w_sinhf.c: Move to ... * sysdeps/generic/w_sinhf.c: ...here. New file. * math/w_sinhl.c: Move to ... * sysdeps/generic/w_sinhl.c: ...here. New file. * math/w_sqrtl.c: Move to ... * sysdeps/generic/w_sqrtl.c: ...here. New file. * math/w_tgamma.c: Move to ... * sysdeps/generic/w_tgamma.c: ...here. New file. * math/w_tgammaf.c: Move to ... * sysdeps/generic/w_tgammaf.c: ...here. New file. * math/w_tgammal.c: Move to ... * sysdeps/generic/w_tgammal.c: ...here. New file.
* Update.Ulrich Drepper1999-07-141-0/+32