diff options
-rw-r--r-- | ChangeLog | 1127 | ||||
-rw-r--r-- | math/machine/endian.h | 4 | ||||
-rw-r--r-- | math/math_private.h | 99 | ||||
-rw-r--r-- | math/w_acos.c (renamed from sysdeps/libm-ieee754/w_acos.c) | 0 | ||||
-rw-r--r-- | math/w_acosf.c (renamed from sysdeps/libm-ieee754/w_acosf.c) | 0 | ||||
-rw-r--r-- | math/w_acosh.c (renamed from sysdeps/libm-ieee754/w_acosh.c) | 0 | ||||
-rw-r--r-- | math/w_acoshf.c (renamed from sysdeps/libm-ieee754/w_acoshf.c) | 0 | ||||
-rw-r--r-- | math/w_acoshl.c (renamed from sysdeps/libm-ieee754/w_acoshl.c) | 0 | ||||
-rw-r--r-- | math/w_acosl.c (renamed from sysdeps/libm-ieee754/w_acosl.c) | 0 | ||||
-rw-r--r-- | math/w_asin.c (renamed from sysdeps/libm-ieee754/w_asin.c) | 0 | ||||
-rw-r--r-- | math/w_asinf.c (renamed from sysdeps/libm-ieee754/w_asinf.c) | 0 | ||||
-rw-r--r-- | math/w_asinl.c (renamed from sysdeps/libm-ieee754/w_asinl.c) | 0 | ||||
-rw-r--r-- | math/w_atan2.c (renamed from sysdeps/libm-ieee754/w_atan2.c) | 0 | ||||
-rw-r--r-- | math/w_atan2f.c (renamed from sysdeps/libm-ieee754/w_atan2f.c) | 0 | ||||
-rw-r--r-- | math/w_atan2l.c (renamed from sysdeps/libm-ieee754/w_atan2l.c) | 0 | ||||
-rw-r--r-- | math/w_atanh.c (renamed from sysdeps/libm-ieee754/w_atanh.c) | 0 | ||||
-rw-r--r-- | math/w_atanhf.c (renamed from sysdeps/libm-ieee754/w_atanhf.c) | 0 | ||||
-rw-r--r-- | math/w_atanhl.c (renamed from sysdeps/libm-ieee754/w_atanhl.c) | 0 | ||||
-rw-r--r-- | math/w_cosh.c (renamed from sysdeps/libm-ieee754/w_cosh.c) | 0 | ||||
-rw-r--r-- | math/w_coshf.c (renamed from sysdeps/libm-ieee754/w_coshf.c) | 0 | ||||
-rw-r--r-- | math/w_coshl.c (renamed from sysdeps/libm-ieee754/w_coshl.c) | 0 | ||||
-rw-r--r-- | math/w_drem.c (renamed from sysdeps/libm-ieee754/w_drem.c) | 0 | ||||
-rw-r--r-- | math/w_dremf.c (renamed from sysdeps/libm-ieee754/w_dremf.c) | 0 | ||||
-rw-r--r-- | math/w_dreml.c (renamed from sysdeps/libm-ieee754/w_dreml.c) | 0 | ||||
-rw-r--r-- | math/w_exp10.c (renamed from sysdeps/libm-ieee754/w_exp10.c) | 0 | ||||
-rw-r--r-- | math/w_exp10f.c (renamed from sysdeps/libm-ieee754/w_exp10f.c) | 0 | ||||
-rw-r--r-- | math/w_exp10l.c (renamed from sysdeps/libm-ieee754/w_exp10l.c) | 0 | ||||
-rw-r--r-- | math/w_exp2.c (renamed from sysdeps/libm-ieee754/w_exp2.c) | 0 | ||||
-rw-r--r-- | math/w_exp2f.c (renamed from sysdeps/libm-ieee754/w_exp2f.c) | 0 | ||||
-rw-r--r-- | math/w_exp2l.c (renamed from sysdeps/libm-ieee754/w_exp2l.c) | 0 | ||||
-rw-r--r-- | math/w_fmod.c (renamed from sysdeps/libm-ieee754/w_fmod.c) | 0 | ||||
-rw-r--r-- | math/w_fmodf.c (renamed from sysdeps/libm-ieee754/w_fmodf.c) | 0 | ||||
-rw-r--r-- | math/w_fmodl.c (renamed from sysdeps/libm-ieee754/w_fmodl.c) | 0 | ||||
-rw-r--r-- | math/w_hypot.c (renamed from sysdeps/libm-ieee754/w_hypot.c) | 0 | ||||
-rw-r--r-- | math/w_hypotf.c (renamed from sysdeps/libm-ieee754/w_hypotf.c) | 0 | ||||
-rw-r--r-- | math/w_hypotl.c (renamed from sysdeps/libm-ieee754/w_hypotl.c) | 0 | ||||
-rw-r--r-- | math/w_j0.c (renamed from sysdeps/libm-ieee754/w_j0.c) | 0 | ||||
-rw-r--r-- | math/w_j0f.c (renamed from sysdeps/libm-ieee754/w_j0f.c) | 0 | ||||
-rw-r--r-- | math/w_j0l.c (renamed from sysdeps/libm-ieee754/w_j0l.c) | 0 | ||||
-rw-r--r-- | math/w_j1.c (renamed from sysdeps/libm-ieee754/w_j1.c) | 0 | ||||
-rw-r--r-- | math/w_j1f.c (renamed from sysdeps/libm-ieee754/w_j1f.c) | 0 | ||||
-rw-r--r-- | math/w_j1l.c (renamed from sysdeps/libm-ieee754/w_j1l.c) | 0 | ||||
-rw-r--r-- | math/w_jn.c (renamed from sysdeps/libm-ieee754/w_jn.c) | 0 | ||||
-rw-r--r-- | math/w_jnf.c (renamed from sysdeps/libm-ieee754/w_jnf.c) | 0 | ||||
-rw-r--r-- | math/w_jnl.c (renamed from sysdeps/libm-ieee754/w_jnl.c) | 0 | ||||
-rw-r--r-- | math/w_lgamma.c (renamed from sysdeps/libm-ieee754/w_lgamma.c) | 0 | ||||
-rw-r--r-- | math/w_lgamma_r.c (renamed from sysdeps/libm-ieee754/w_lgamma_r.c) | 0 | ||||
-rw-r--r-- | math/w_lgammaf.c (renamed from sysdeps/libm-ieee754/w_lgammaf.c) | 0 | ||||
-rw-r--r-- | math/w_lgammaf_r.c (renamed from sysdeps/libm-ieee754/w_lgammaf_r.c) | 0 | ||||
-rw-r--r-- | math/w_lgammal.c (renamed from sysdeps/libm-ieee754/w_lgammal.c) | 0 | ||||
-rw-r--r-- | math/w_lgammal_r.c (renamed from sysdeps/libm-ieee754/w_lgammal_r.c) | 0 | ||||
-rw-r--r-- | math/w_log.c (renamed from sysdeps/libm-ieee754/w_log.c) | 0 | ||||
-rw-r--r-- | math/w_log10.c (renamed from sysdeps/libm-ieee754/w_log10.c) | 0 | ||||
-rw-r--r-- | math/w_log10f.c (renamed from sysdeps/libm-ieee754/w_log10f.c) | 0 | ||||
-rw-r--r-- | math/w_log10l.c (renamed from sysdeps/libm-ieee754/w_log10l.c) | 0 | ||||
-rw-r--r-- | math/w_logf.c (renamed from sysdeps/libm-ieee754/w_logf.c) | 0 | ||||
-rw-r--r-- | math/w_logl.c (renamed from sysdeps/libm-ieee754/w_logl.c) | 0 | ||||
-rw-r--r-- | math/w_pow.c (renamed from sysdeps/libm-ieee754/w_pow.c) | 0 | ||||
-rw-r--r-- | math/w_powf.c (renamed from sysdeps/libm-ieee754/w_powf.c) | 0 | ||||
-rw-r--r-- | math/w_powl.c (renamed from sysdeps/libm-ieee754/w_powl.c) | 0 | ||||
-rw-r--r-- | math/w_remainder.c (renamed from sysdeps/libm-ieee754/w_remainder.c) | 0 | ||||
-rw-r--r-- | math/w_remainderf.c (renamed from sysdeps/libm-ieee754/w_remainderf.c) | 0 | ||||
-rw-r--r-- | math/w_remainderl.c (renamed from sysdeps/libm-ieee754/w_remainderl.c) | 0 | ||||
-rw-r--r-- | math/w_scalb.c (renamed from sysdeps/libm-ieee754/w_scalb.c) | 0 | ||||
-rw-r--r-- | math/w_scalbf.c (renamed from sysdeps/libm-ieee754/w_scalbf.c) | 0 | ||||
-rw-r--r-- | math/w_scalbl.c (renamed from sysdeps/libm-ieee754/w_scalbl.c) | 0 | ||||
-rw-r--r-- | math/w_sinh.c (renamed from sysdeps/libm-ieee754/w_sinh.c) | 0 | ||||
-rw-r--r-- | math/w_sinhf.c (renamed from sysdeps/libm-ieee754/w_sinhf.c) | 0 | ||||
-rw-r--r-- | math/w_sinhl.c (renamed from sysdeps/libm-ieee754/w_sinhl.c) | 0 | ||||
-rw-r--r-- | math/w_sqrt.c (renamed from sysdeps/libm-ieee754/w_sqrt.c) | 0 | ||||
-rw-r--r-- | math/w_sqrtf.c (renamed from sysdeps/libm-ieee754/w_sqrtf.c) | 0 | ||||
-rw-r--r-- | math/w_sqrtl.c (renamed from sysdeps/libm-ieee754/w_sqrtl.c) | 0 | ||||
-rw-r--r-- | math/w_tgamma.c (renamed from sysdeps/libm-ieee754/w_tgamma.c) | 0 | ||||
-rw-r--r-- | math/w_tgammaf.c (renamed from sysdeps/libm-ieee754/w_tgammaf.c) | 0 | ||||
-rw-r--r-- | math/w_tgammal.c (renamed from sysdeps/libm-ieee754/w_tgammal.c) | 0 | ||||
-rw-r--r-- | stdio-common/printf_fp.c | 25 | ||||
-rw-r--r-- | sysdeps/alpha/Implies | 5 | ||||
-rw-r--r-- | sysdeps/arm/Implies | 3 | ||||
-rw-r--r-- | sysdeps/generic/e_atanhl.c | 14 | ||||
-rw-r--r-- | sysdeps/generic/e_coshl.c | 14 | ||||
-rw-r--r-- | sysdeps/generic/e_exp10.c (renamed from sysdeps/libm-ieee754/e_exp10.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/e_exp10f.c (renamed from sysdeps/libm-ieee754/e_exp10f.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/e_exp10l.c (renamed from sysdeps/libm-ieee754/e_exp10l.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/e_gammal_r.c | 14 | ||||
-rw-r--r-- | sysdeps/generic/e_hypotl.c | 14 | ||||
-rw-r--r-- | sysdeps/generic/e_scalb.c (renamed from sysdeps/libm-ieee754/e_scalb.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/e_scalbf.c (renamed from sysdeps/libm-ieee754/e_scalbf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/e_scalbl.c (renamed from sysdeps/libm-ieee754/e_scalbl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/e_sinhl.c | 14 | ||||
-rw-r--r-- | sysdeps/generic/ldbl2mpn.c | 33 | ||||
-rw-r--r-- | sysdeps/generic/math_ldbl.h | 5 | ||||
-rw-r--r-- | sysdeps/generic/mpn2ldbl.c | 31 | ||||
-rw-r--r-- | sysdeps/generic/printf_fphex.c | 64 | ||||
-rw-r--r-- | sysdeps/generic/s_asinhl.c | 15 | ||||
-rw-r--r-- | sysdeps/generic/s_cacos.c (renamed from sysdeps/libm-ieee754/s_cacos.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cacosf.c (renamed from sysdeps/libm-ieee754/s_cacosf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cacosh.c (renamed from sysdeps/libm-ieee754/s_cacosh.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cacoshf.c (renamed from sysdeps/libm-ieee754/s_cacoshf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cacoshl.c (renamed from sysdeps/libm-ieee754/s_cacoshl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cacosl.c (renamed from sysdeps/libm-ieee754/s_cacosl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_casin.c (renamed from sysdeps/libm-ieee754/s_casin.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_casinf.c (renamed from sysdeps/libm-ieee754/s_casinf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_casinh.c (renamed from sysdeps/libm-ieee754/s_casinh.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_casinhf.c (renamed from sysdeps/libm-ieee754/s_casinhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_casinhl.c (renamed from sysdeps/libm-ieee754/s_casinhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_casinl.c (renamed from sysdeps/libm-ieee754/s_casinl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_catan.c (renamed from sysdeps/libm-ieee754/s_catan.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_catanf.c (renamed from sysdeps/libm-ieee754/s_catanf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_catanh.c (renamed from sysdeps/libm-ieee754/s_catanh.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_catanhf.c (renamed from sysdeps/libm-ieee754/s_catanhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_catanhl.c (renamed from sysdeps/libm-ieee754/s_catanhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_catanl.c (renamed from sysdeps/libm-ieee754/s_catanl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cbrtl.c | 15 | ||||
-rw-r--r-- | sysdeps/generic/s_ccos.c (renamed from sysdeps/libm-ieee754/s_ccos.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ccosf.c (renamed from sysdeps/libm-ieee754/s_ccosf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ccosh.c (renamed from sysdeps/libm-ieee754/s_ccosh.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ccoshf.c (renamed from sysdeps/libm-ieee754/s_ccoshf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ccoshl.c (renamed from sysdeps/libm-ieee754/s_ccoshl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ccosl.c (renamed from sysdeps/libm-ieee754/s_ccosl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cexp.c (renamed from sysdeps/libm-ieee754/s_cexp.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cexpf.c (renamed from sysdeps/libm-ieee754/s_cexpf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cexpl.c (renamed from sysdeps/libm-ieee754/s_cexpl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_clog.c (renamed from sysdeps/libm-ieee754/s_clog.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_clog10.c (renamed from sysdeps/libm-ieee754/s_clog10.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_clog10f.c (renamed from sysdeps/libm-ieee754/s_clog10f.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_clog10l.c (renamed from sysdeps/libm-ieee754/s_clog10l.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_clogf.c (renamed from sysdeps/libm-ieee754/s_clogf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_clogl.c (renamed from sysdeps/libm-ieee754/s_clogl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cpow.c (renamed from sysdeps/libm-ieee754/s_cpow.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cpowf.c (renamed from sysdeps/libm-ieee754/s_cpowf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cpowl.c (renamed from sysdeps/libm-ieee754/s_cpowl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cproj.c (renamed from sysdeps/libm-ieee754/s_cproj.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cprojf.c (renamed from sysdeps/libm-ieee754/s_cprojf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_cprojl.c (renamed from sysdeps/libm-ieee754/s_cprojl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csin.c (renamed from sysdeps/libm-ieee754/s_csin.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csinf.c (renamed from sysdeps/libm-ieee754/s_csinf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csinh.c (renamed from sysdeps/libm-ieee754/s_csinh.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csinhf.c (renamed from sysdeps/libm-ieee754/s_csinhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csinhl.c (renamed from sysdeps/libm-ieee754/s_csinhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csinl.c (renamed from sysdeps/libm-ieee754/s_csinl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csqrt.c (renamed from sysdeps/libm-ieee754/s_csqrt.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csqrtf.c (renamed from sysdeps/libm-ieee754/s_csqrtf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_csqrtl.c (renamed from sysdeps/libm-ieee754/s_csqrtl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ctan.c (renamed from sysdeps/libm-ieee754/s_ctan.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ctanf.c (renamed from sysdeps/libm-ieee754/s_ctanf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ctanh.c (renamed from sysdeps/libm-ieee754/s_ctanh.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ctanhf.c (renamed from sysdeps/libm-ieee754/s_ctanhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ctanhl.c (renamed from sysdeps/libm-ieee754/s_ctanhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ctanl.c (renamed from sysdeps/libm-ieee754/s_ctanl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fdim.c (renamed from sysdeps/libm-ieee754/s_fdim.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fdimf.c (renamed from sysdeps/libm-ieee754/s_fdimf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fdiml.c (renamed from sysdeps/libm-ieee754/s_fdiml.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fma.c (renamed from sysdeps/libm-ieee754/s_fma.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fmaf.c (renamed from sysdeps/libm-ieee754/s_fmaf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fmal.c (renamed from sysdeps/libm-ieee754/s_fmal.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fmax.c (renamed from sysdeps/libm-ieee754/s_fmax.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fmaxf.c (renamed from sysdeps/libm-ieee754/s_fmaxf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fmaxl.c (renamed from sysdeps/libm-ieee754/s_fmaxl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fmin.c (renamed from sysdeps/libm-ieee754/s_fmin.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fminf.c (renamed from sysdeps/libm-ieee754/s_fminf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_fminl.c (renamed from sysdeps/libm-ieee754/s_fminl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ldexp.c (renamed from sysdeps/libm-ieee754/s_ldexp.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ldexpf.c (renamed from sysdeps/libm-ieee754/s_ldexpf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_ldexpl.c (renamed from sysdeps/libm-ieee754/s_ldexpl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_nan.c (renamed from sysdeps/libm-ieee754/s_nan.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_nanf.c (renamed from sysdeps/libm-ieee754/s_nanf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_nanl.c (renamed from sysdeps/libm-ieee754/s_nanl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_nextafter.c (renamed from sysdeps/libm-ieee754/s_nextafter.c) | 2 | ||||
-rw-r--r-- | sysdeps/generic/s_nexttowardf.c | 79 | ||||
-rw-r--r-- | sysdeps/generic/s_nexttowardl.c (renamed from sysdeps/libm-ieee754/s_nexttowardl.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_significand.c (renamed from sysdeps/libm-ieee754/s_significand.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_significandf.c (renamed from sysdeps/libm-ieee754/s_significandf.c) | 0 | ||||
-rw-r--r-- | sysdeps/generic/s_significandl.c (renamed from sysdeps/libm-ieee754/s_significandl.c) | 4 | ||||
-rw-r--r-- | sysdeps/generic/s_tanhl.c | 15 | ||||
-rw-r--r-- | sysdeps/generic/strtold.c | 42 | ||||
-rw-r--r-- | sysdeps/generic/w_expl.c | 13 | ||||
-rw-r--r-- | sysdeps/i386/Implies | 4 | ||||
-rw-r--r-- | sysdeps/i386/fpu/Implies | 2 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_acos.S (renamed from sysdeps/libm-i387/e_acos.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_acosf.S (renamed from sysdeps/libm-i387/e_acosf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_acosh.S (renamed from sysdeps/libm-i387/e_acosh.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_acoshf.S (renamed from sysdeps/libm-i387/e_acoshf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_acoshl.S (renamed from sysdeps/libm-i387/e_acoshl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_acosl.S (renamed from sysdeps/libm-i387/e_acosl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_asin.S (renamed from sysdeps/libm-i387/e_asin.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_asinf.S (renamed from sysdeps/libm-i387/e_asinf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_asinl.S (renamed from sysdeps/libm-i387/e_asinl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_atan2.S (renamed from sysdeps/libm-i387/e_atan2.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_atan2f.S (renamed from sysdeps/libm-i387/e_atan2f.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_atan2l.S (renamed from sysdeps/libm-i387/e_atan2l.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_atanh.S (renamed from sysdeps/libm-i387/e_atanh.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_atanhf.S (renamed from sysdeps/libm-i387/e_atanhf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_atanhl.S (renamed from sysdeps/libm-i387/e_atanhl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_exp.S (renamed from sysdeps/libm-i387/e_exp.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_exp10.S (renamed from sysdeps/libm-i387/e_exp10.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_exp10f.S (renamed from sysdeps/libm-i387/e_exp10f.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_exp10l.S (renamed from sysdeps/libm-i387/e_exp10l.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_expf.S (renamed from sysdeps/libm-i387/e_expf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_expl.S (renamed from sysdeps/libm-i387/e_expl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_fmod.S (renamed from sysdeps/libm-i387/e_fmod.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_fmodf.S (renamed from sysdeps/libm-i387/e_fmodf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_fmodl.S (renamed from sysdeps/libm-i387/e_fmodl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_hypot.S (renamed from sysdeps/libm-i387/e_hypot.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_hypotf.S (renamed from sysdeps/libm-i387/e_hypotf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_log.S (renamed from sysdeps/libm-i387/e_log.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_log10.S (renamed from sysdeps/libm-i387/e_log10.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_log10f.S (renamed from sysdeps/libm-i387/e_log10f.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_log10l.S (renamed from sysdeps/libm-i387/e_log10l.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_logf.S (renamed from sysdeps/libm-i387/e_logf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_logl.S (renamed from sysdeps/libm-i387/e_logl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_pow.S (renamed from sysdeps/libm-i387/e_pow.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_powf.S (renamed from sysdeps/libm-i387/e_powf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_powl.S (renamed from sysdeps/libm-i387/e_powl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_rem_pio2.c (renamed from sysdeps/libm-i387/e_rem_pio2.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_rem_pio2f.c (renamed from sysdeps/libm-i387/e_rem_pio2f.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_rem_pio2l.c (renamed from sysdeps/libm-i387/e_rem_pio2l.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_remainder.S (renamed from sysdeps/libm-i387/e_remainder.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_remainderf.S (renamed from sysdeps/libm-i387/e_remainderf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_remainderl.S (renamed from sysdeps/libm-i387/e_remainderl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_scalb.S (renamed from sysdeps/libm-i387/e_scalb.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_scalbf.S (renamed from sysdeps/libm-i387/e_scalbf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_scalbl.S (renamed from sysdeps/libm-i387/e_scalbl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_sqrt.S (renamed from sysdeps/libm-i387/e_sqrt.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_sqrtf.S (renamed from sysdeps/libm-i387/e_sqrtf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/e_sqrtl.S (renamed from sysdeps/libm-i387/e_sqrtl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/k_rem_pio2.c (renamed from sysdeps/libm-i387/k_rem_pio2.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/k_rem_pio2f.c (renamed from sysdeps/libm-i387/k_rem_pio2f.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/k_rem_pio2l.c (renamed from sysdeps/libm-i387/k_rem_pio2l.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_asinh.S (renamed from sysdeps/libm-i387/s_asinh.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_asinhf.S (renamed from sysdeps/libm-i387/s_asinhf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_asinhl.S (renamed from sysdeps/libm-i387/s_asinhl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_atan.S (renamed from sysdeps/libm-i387/s_atan.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_atanf.S (renamed from sysdeps/libm-i387/s_atanf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_atanl.S (renamed from sysdeps/libm-i387/s_atanl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cbrt.S (renamed from sysdeps/libm-i387/s_cbrt.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cbrtf.S (renamed from sysdeps/libm-i387/s_cbrtf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cbrtl.S (renamed from sysdeps/libm-i387/s_cbrtl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_ceil.S (renamed from sysdeps/libm-i387/s_ceil.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_ceilf.S (renamed from sysdeps/libm-i387/s_ceilf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_ceill.S (renamed from sysdeps/libm-i387/s_ceill.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cexp.S (renamed from sysdeps/libm-i387/s_cexp.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cexpf.S (renamed from sysdeps/libm-i387/s_cexpf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cexpl.S (renamed from sysdeps/libm-i387/s_cexpl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_copysign.S (renamed from sysdeps/libm-i387/s_copysign.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_copysignf.S (renamed from sysdeps/libm-i387/s_copysignf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_copysignl.S (renamed from sysdeps/libm-i387/s_copysignl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cos.S (renamed from sysdeps/libm-i387/s_cos.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cosf.S (renamed from sysdeps/libm-i387/s_cosf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_cosl.S (renamed from sysdeps/libm-i387/s_cosl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_exp2.S (renamed from sysdeps/libm-i387/s_exp2.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_exp2f.S (renamed from sysdeps/libm-i387/s_exp2f.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_exp2l.S (renamed from sysdeps/libm-i387/s_exp2l.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_expm1.S (renamed from sysdeps/libm-i387/s_expm1.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_expm1f.S (renamed from sysdeps/libm-i387/s_expm1f.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_expm1l.S (renamed from sysdeps/libm-i387/s_expm1l.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fdim.S (renamed from sysdeps/libm-i387/s_fdim.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fdimf.S (renamed from sysdeps/libm-i387/s_fdimf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fdiml.S (renamed from sysdeps/libm-i387/s_fdiml.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_finite.S (renamed from sysdeps/libm-i387/s_finite.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_finitef.S (renamed from sysdeps/libm-i387/s_finitef.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_finitel.S (renamed from sysdeps/libm-i387/s_finitel.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_floor.S (renamed from sysdeps/libm-i387/s_floor.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_floorf.S (renamed from sysdeps/libm-i387/s_floorf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_floorl.S (renamed from sysdeps/libm-i387/s_floorl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fma.S (renamed from sysdeps/libm-i387/s_fma.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fmaf.S (renamed from sysdeps/libm-i387/s_fmaf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fmal.S (renamed from sysdeps/libm-i387/s_fmal.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fmax.S (renamed from sysdeps/libm-i387/s_fmax.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fmaxf.S (renamed from sysdeps/libm-i387/s_fmaxf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fmaxl.S (renamed from sysdeps/libm-i387/s_fmaxl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fmin.S (renamed from sysdeps/libm-i387/s_fmin.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fminf.S (renamed from sysdeps/libm-i387/s_fminf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_fminl.S (renamed from sysdeps/libm-i387/s_fminl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_frexp.S (renamed from sysdeps/libm-i387/s_frexp.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_frexpf.S (renamed from sysdeps/libm-i387/s_frexpf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_frexpl.S (renamed from sysdeps/libm-i387/s_frexpl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_ilogb.S (renamed from sysdeps/libm-i387/s_ilogb.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_ilogbf.S (renamed from sysdeps/libm-i387/s_ilogbf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_ilogbl.S (renamed from sysdeps/libm-i387/s_ilogbl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_isinfl.c (renamed from sysdeps/libm-i387/s_isinfl.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_isnanl.c (renamed from sysdeps/libm-i387/s_isnanl.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_llrint.S (renamed from sysdeps/libm-i387/s_llrint.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_llrintf.S (renamed from sysdeps/libm-i387/s_llrintf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_llrintl.S (renamed from sysdeps/libm-i387/s_llrintl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_log1p.S (renamed from sysdeps/libm-i387/s_log1p.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_log1pf.S (renamed from sysdeps/libm-i387/s_log1pf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_log1pl.S (renamed from sysdeps/libm-i387/s_log1pl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_log2.S (renamed from sysdeps/libm-i387/s_log2.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_log2f.S (renamed from sysdeps/libm-i387/s_log2f.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_log2l.S (renamed from sysdeps/libm-i387/s_log2l.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_logb.S (renamed from sysdeps/libm-i387/s_logb.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_logbf.S (renamed from sysdeps/libm-i387/s_logbf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_logbl.S (renamed from sysdeps/libm-i387/s_logbl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_lrint.S (renamed from sysdeps/libm-i387/s_lrint.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_lrintf.S (renamed from sysdeps/libm-i387/s_lrintf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_lrintl.S (renamed from sysdeps/libm-i387/s_lrintl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_nearbyint.S (renamed from sysdeps/libm-i387/s_nearbyint.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_nearbyintf.S (renamed from sysdeps/libm-i387/s_nearbyintf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_nearbyintl.S (renamed from sysdeps/libm-i387/s_nearbyintl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_nextafterl.c (renamed from sysdeps/libm-i387/s_nextafterl.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_remquo.S (renamed from sysdeps/libm-i387/s_remquo.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_remquof.S (renamed from sysdeps/libm-i387/s_remquof.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_remquol.S (renamed from sysdeps/libm-i387/s_remquol.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_rint.S (renamed from sysdeps/libm-i387/s_rint.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_rintf.S (renamed from sysdeps/libm-i387/s_rintf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_rintl.S (renamed from sysdeps/libm-i387/s_rintl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_scalbln.c (renamed from sysdeps/libm-i387/s_scalbln.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_scalblnf.c (renamed from sysdeps/libm-i387/s_scalblnf.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_scalblnl.c (renamed from sysdeps/libm-i387/s_scalblnl.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_scalbn.S (renamed from sysdeps/libm-i387/s_scalbn.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_scalbnf.S (renamed from sysdeps/libm-i387/s_scalbnf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_scalbnl.S (renamed from sysdeps/libm-i387/s_scalbnl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_significand.S (renamed from sysdeps/libm-i387/s_significand.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_significandf.S (renamed from sysdeps/libm-i387/s_significandf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_significandl.S (renamed from sysdeps/libm-i387/s_significandl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_sin.S (renamed from sysdeps/libm-i387/s_sin.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_sincos.S (renamed from sysdeps/libm-i387/s_sincos.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_sincosf.S (renamed from sysdeps/libm-i387/s_sincosf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_sincosl.S (renamed from sysdeps/libm-i387/s_sincosl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_sinf.S (renamed from sysdeps/libm-i387/s_sinf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_sinl.S (renamed from sysdeps/libm-i387/s_sinl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_tan.S (renamed from sysdeps/libm-i387/s_tan.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_tanf.S (renamed from sysdeps/libm-i387/s_tanf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_tanl.S (renamed from sysdeps/libm-i387/s_tanl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_trunc.S (renamed from sysdeps/libm-i387/s_trunc.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_truncf.S (renamed from sysdeps/libm-i387/s_truncf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_truncl.S (renamed from sysdeps/libm-i387/s_truncl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/fpu/t_exp.c (renamed from sysdeps/libm-i387/t_exp.c) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/Implies | 1 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fdim.S (renamed from sysdeps/libm-i387/i686/s_fdim.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fdimf.S (renamed from sysdeps/libm-i387/i686/s_fdimf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fdiml.S (renamed from sysdeps/libm-i387/i686/s_fdiml.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fmax.S (renamed from sysdeps/libm-i387/i686/s_fmax.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fmaxf.S (renamed from sysdeps/libm-i387/i686/s_fmaxf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fmaxl.S (renamed from sysdeps/libm-i387/i686/s_fmaxl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fmin.S (renamed from sysdeps/libm-i387/i686/s_fmin.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fminf.S (renamed from sysdeps/libm-i387/i686/s_fminf.S) | 0 | ||||
-rw-r--r-- | sysdeps/i386/i686/fpu/s_fminl.S (renamed from sysdeps/libm-i387/i686/s_fminl.S) | 0 | ||||
-rw-r--r-- | sysdeps/i960/Implies | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/Implies | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/Dist | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/dbl2mpn.c (renamed from sysdeps/ieee754/dbl2mpn.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_acos.c (renamed from sysdeps/libm-ieee754/e_acos.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_acosh.c (renamed from sysdeps/libm-ieee754/e_acosh.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_asin.c (renamed from sysdeps/libm-ieee754/e_asin.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_atan2.c (renamed from sysdeps/libm-ieee754/e_atan2.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_atanh.c (renamed from sysdeps/libm-ieee754/e_atanh.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_cosh.c (renamed from sysdeps/libm-ieee754/e_cosh.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_exp.c (renamed from sysdeps/libm-ieee754/e_exp.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_fmod.c (renamed from sysdeps/libm-ieee754/e_fmod.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_gamma_r.c (renamed from sysdeps/libm-ieee754/e_gamma_r.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_hypot.c (renamed from sysdeps/libm-ieee754/e_hypot.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_j0.c (renamed from sysdeps/libm-ieee754/e_j0.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_j1.c (renamed from sysdeps/libm-ieee754/e_j1.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_jn.c (renamed from sysdeps/libm-ieee754/e_jn.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_lgamma_r.c (renamed from sysdeps/libm-ieee754/e_lgamma_r.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_log.c (renamed from sysdeps/libm-ieee754/e_log.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_log10.c (renamed from sysdeps/libm-ieee754/e_log10.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_pow.c (renamed from sysdeps/libm-ieee754/e_pow.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_rem_pio2.c (renamed from sysdeps/libm-ieee754/e_rem_pio2.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_remainder.c (renamed from sysdeps/libm-ieee754/e_remainder.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_sinh.c (renamed from sysdeps/libm-ieee754/e_sinh.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_sqrt.c (renamed from sysdeps/libm-ieee754/e_sqrt.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/k_cos.c (renamed from sysdeps/libm-ieee754/k_cos.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/k_rem_pio2.c (renamed from sysdeps/libm-ieee754/k_rem_pio2.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/k_sin.c (renamed from sysdeps/libm-ieee754/k_sin.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/k_tan.c (renamed from sysdeps/libm-ieee754/k_tan.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/mpn2dbl.c (renamed from sysdeps/ieee754/mpn2dbl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_asinh.c (renamed from sysdeps/libm-ieee754/s_asinh.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_atan.c (renamed from sysdeps/libm-ieee754/s_atan.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_cbrt.c (renamed from sysdeps/libm-ieee754/s_cbrt.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_ceil.c (renamed from sysdeps/libm-ieee754/s_ceil.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_copysign.c (renamed from sysdeps/libm-ieee754/s_copysign.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_cos.c (renamed from sysdeps/libm-ieee754/s_cos.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_erf.c (renamed from sysdeps/libm-ieee754/s_erf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_exp2.c (renamed from sysdeps/libm-ieee754/s_exp2.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_expm1.c (renamed from sysdeps/libm-ieee754/s_expm1.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_fabs.c (renamed from sysdeps/libm-ieee754/s_fabs.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_finite.c (renamed from sysdeps/libm-ieee754/s_finite.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_floor.c (renamed from sysdeps/libm-ieee754/s_floor.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_fpclassify.c (renamed from sysdeps/libm-ieee754/s_fpclassify.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_frexp.c (renamed from sysdeps/libm-ieee754/s_frexp.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_ilogb.c (renamed from sysdeps/libm-ieee754/s_ilogb.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_isinf.c (renamed from sysdeps/libm-ieee754/s_isinf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_isnan.c (renamed from sysdeps/libm-ieee754/s_isnan.c) | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_llrint.c (renamed from sysdeps/libm-ieee754/s_llrint.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_llround.c (renamed from sysdeps/libm-ieee754/s_llround.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_log1p.c (renamed from sysdeps/libm-ieee754/s_log1p.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_log2.c (renamed from sysdeps/libm-ieee754/s_log2.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_logb.c (renamed from sysdeps/libm-ieee754/s_logb.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_lrint.c (renamed from sysdeps/libm-ieee754/s_lrint.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_lround.c (renamed from sysdeps/libm-ieee754/s_lround.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_modf.c (renamed from sysdeps/libm-ieee754/s_modf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_nearbyint.c (renamed from sysdeps/libm-ieee754/s_nearbyint.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_nexttoward.c | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_remquo.c (renamed from sysdeps/libm-ieee754/s_remquo.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_rint.c (renamed from sysdeps/libm-ieee754/s_rint.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_round.c (renamed from sysdeps/libm-ieee754/s_round.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_scalbln.c (renamed from sysdeps/libm-ieee754/s_scalbln.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_scalbn.c (renamed from sysdeps/libm-ieee754/s_scalbn.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_signbit.c (renamed from sysdeps/libm-ieee754/s_signbit.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_sin.c (renamed from sysdeps/libm-ieee754/s_sin.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_sincos.c (renamed from sysdeps/libm-ieee754/s_sincos.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_tan.c (renamed from sysdeps/libm-ieee754/s_tan.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_tanh.c (renamed from sysdeps/libm-ieee754/s_tanh.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_trunc.c (renamed from sysdeps/libm-ieee754/s_trunc.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/t_exp.c (renamed from sysdeps/libm-ieee754/t_exp.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/t_exp2.h (renamed from sysdeps/libm-ieee754/t_exp2.h) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/w_exp.c (renamed from sysdeps/libm-ieee754/w_exp.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/Dist (renamed from sysdeps/libm-ieee754/Dist) | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_acosf.c (renamed from sysdeps/libm-ieee754/e_acosf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_acoshf.c (renamed from sysdeps/libm-ieee754/e_acoshf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_asinf.c (renamed from sysdeps/libm-ieee754/e_asinf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_atan2f.c (renamed from sysdeps/libm-ieee754/e_atan2f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_atanhf.c (renamed from sysdeps/libm-ieee754/e_atanhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_coshf.c (renamed from sysdeps/libm-ieee754/e_coshf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_expf.c (renamed from sysdeps/libm-ieee754/e_expf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_fmodf.c (renamed from sysdeps/libm-ieee754/e_fmodf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_gammaf_r.c (renamed from sysdeps/libm-ieee754/e_gammaf_r.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_hypotf.c (renamed from sysdeps/libm-ieee754/e_hypotf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_j0f.c (renamed from sysdeps/libm-ieee754/e_j0f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_j1f.c (renamed from sysdeps/libm-ieee754/e_j1f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_jnf.c (renamed from sysdeps/libm-ieee754/e_jnf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_lgammaf_r.c (renamed from sysdeps/libm-ieee754/e_lgammaf_r.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_log10f.c (renamed from sysdeps/libm-ieee754/e_log10f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_logf.c (renamed from sysdeps/libm-ieee754/e_logf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_powf.c (renamed from sysdeps/libm-ieee754/e_powf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_rem_pio2f.c (renamed from sysdeps/libm-ieee754/e_rem_pio2f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_remainderf.c (renamed from sysdeps/libm-ieee754/e_remainderf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_sinhf.c (renamed from sysdeps/libm-ieee754/e_sinhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_sqrtf.c (renamed from sysdeps/libm-ieee754/e_sqrtf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/k_cosf.c (renamed from sysdeps/libm-ieee754/k_cosf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/k_rem_pio2f.c (renamed from sysdeps/libm-ieee754/k_rem_pio2f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/k_sinf.c (renamed from sysdeps/libm-ieee754/k_sinf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/k_tanf.c (renamed from sysdeps/libm-ieee754/k_tanf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/mpn2flt.c (renamed from sysdeps/ieee754/mpn2flt.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_asinhf.c (renamed from sysdeps/libm-ieee754/s_asinhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_atanf.c (renamed from sysdeps/libm-ieee754/s_atanf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_cbrtf.c (renamed from sysdeps/libm-ieee754/s_cbrtf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_ceilf.c (renamed from sysdeps/libm-ieee754/s_ceilf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_copysignf.c (renamed from sysdeps/libm-ieee754/s_copysignf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_cosf.c (renamed from sysdeps/libm-ieee754/s_cosf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_erff.c (renamed from sysdeps/libm-ieee754/s_erff.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_exp2f.c (renamed from sysdeps/libm-ieee754/s_exp2f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_expm1f.c (renamed from sysdeps/libm-ieee754/s_expm1f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_fabsf.c (renamed from sysdeps/libm-ieee754/s_fabsf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_finitef.c (renamed from sysdeps/libm-ieee754/s_finitef.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_floorf.c (renamed from sysdeps/libm-ieee754/s_floorf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_fpclassifyf.c (renamed from sysdeps/libm-ieee754/s_fpclassifyf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_frexpf.c (renamed from sysdeps/libm-ieee754/s_frexpf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_ilogbf.c (renamed from sysdeps/libm-ieee754/s_ilogbf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_isinff.c (renamed from sysdeps/libm-ieee754/s_isinff.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_isnanf.c (renamed from sysdeps/libm-ieee754/s_isnanf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_llrintf.c (renamed from sysdeps/libm-ieee754/s_llrintf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_llroundf.c (renamed from sysdeps/libm-ieee754/s_llroundf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_log1pf.c (renamed from sysdeps/libm-ieee754/s_log1pf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_log2f.c (renamed from sysdeps/libm-ieee754/s_log2f.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_logbf.c (renamed from sysdeps/libm-ieee754/s_logbf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_lrintf.c (renamed from sysdeps/libm-ieee754/s_lrintf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_lroundf.c (renamed from sysdeps/libm-ieee754/s_lroundf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_modff.c (renamed from sysdeps/libm-ieee754/s_modff.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_nearbyintf.c (renamed from sysdeps/libm-ieee754/s_nearbyintf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_nextafterf.c (renamed from sysdeps/libm-ieee754/s_nextafterf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_remquof.c (renamed from sysdeps/libm-ieee754/s_remquof.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_rintf.c (renamed from sysdeps/libm-ieee754/s_rintf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_roundf.c (renamed from sysdeps/libm-ieee754/s_roundf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_scalblnf.c (renamed from sysdeps/libm-ieee754/s_scalblnf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_scalbnf.c (renamed from sysdeps/libm-ieee754/s_scalbnf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_signbitf.c (renamed from sysdeps/libm-ieee754/s_signbitf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_sincosf.c (renamed from sysdeps/libm-ieee754/s_sincosf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_sinf.c (renamed from sysdeps/libm-ieee754/s_sinf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_tanf.c (renamed from sysdeps/libm-ieee754/s_tanf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_tanhf.c (renamed from sysdeps/libm-ieee754/s_tanhf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_truncf.c (renamed from sysdeps/libm-ieee754/s_truncf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/t_exp2f.h (renamed from sysdeps/libm-ieee754/t_exp2f.h) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/w_expf.c (renamed from sysdeps/libm-ieee754/w_expf.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/k_standard.c (renamed from sysdeps/libm-ieee754/k_standard.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_acoshl.c | 68 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_atan2l.c | 129 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_fmodl.c | 138 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_gammal_r.c | 52 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_remainderl.c | 78 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/ieee754.h | 171 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/ldbl2mpn.c | 137 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/math_ldbl.h | 82 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/mpn2ldbl.c | 51 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/printf_fphex.c | 84 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_ceill.c | 84 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_copysignl.c | 43 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_cosl.c | 83 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_fabsl.c | 39 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_finitel.c | 40 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_floorl.c | 85 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_fpclassifyl.c | 44 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_frexpl.c | 63 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_ilogbl.c | 55 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_isinfl.c | 28 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_isnanl.c | 42 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_llrintl.c | 75 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_llroundl.c | 74 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_logbl.c | 46 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_lrintl.c | 91 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_lroundl.c | 74 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_modfl.c | 88 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nearbyintl.c | 93 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nextafterl.c | 85 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nexttoward.c | 97 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nexttowardf.c | 81 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_remquol.c | 110 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_rintl.c | 90 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_roundl.c | 94 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_scalblnl.c | 70 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_scalbnl.c | 70 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_signbitl.c | 32 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_sincosl.c | 77 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_sinl.c | 83 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_tanl.c | 77 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_truncl.c | 57 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/strtold.c | 42 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_acoshl.c (renamed from sysdeps/libm-ieee754/e_acoshl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_atan2l.c (renamed from sysdeps/libm-ieee754/e_atan2l.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_atanhl.c (renamed from sysdeps/libm-ieee754/e_atanhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_coshl.c (renamed from sysdeps/libm-ieee754/e_coshl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_gammal_r.c (renamed from sysdeps/libm-ieee754/e_gammal_r.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_hypotl.c (renamed from sysdeps/libm-ieee754/e_hypotl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_remainderl.c (renamed from sysdeps/libm-ieee754/e_remainderl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_sinhl.c (renamed from sysdeps/libm-ieee754/e_sinhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/ldbl2mpn.c (renamed from sysdeps/ieee754/ldbl2mpn.c) | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/math_ldbl.h | 98 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/mpn2ldbl.c (renamed from sysdeps/ieee754/mpn2ldbl.c) | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/printf_fphex.c | 61 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_asinhl.c (renamed from sysdeps/libm-ieee754/s_asinhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_cbrtl.c (renamed from sysdeps/libm-ieee754/s_cbrtl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_ceill.c (renamed from sysdeps/libm-ieee754/s_ceill.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_copysignl.c (renamed from sysdeps/libm-ieee754/s_copysignl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_cosl.c (renamed from sysdeps/libm-ieee754/s_cosl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_fabsl.c (renamed from sysdeps/libm-ieee754/s_fabsl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_finitel.c (renamed from sysdeps/libm-ieee754/s_finitel.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_floorl.c (renamed from sysdeps/libm-ieee754/s_floorl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_fpclassifyl.c (renamed from sysdeps/libm-ieee754/s_fpclassifyl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_frexpl.c (renamed from sysdeps/libm-ieee754/s_frexpl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_ilogbl.c (renamed from sysdeps/libm-ieee754/s_ilogbl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_isinfl.c (renamed from sysdeps/libm-ieee754/s_isinfl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_isnanl.c (renamed from sysdeps/libm-ieee754/s_isnanl.c) | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_llrintl.c (renamed from sysdeps/libm-ieee754/s_llrintl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_llroundl.c (renamed from sysdeps/libm-ieee754/s_llroundl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_logbl.c (renamed from sysdeps/libm-ieee754/s_logbl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_lrintl.c (renamed from sysdeps/libm-ieee754/s_lrintl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_lroundl.c (renamed from sysdeps/libm-ieee754/s_lroundl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_modfl.c (renamed from sysdeps/libm-ieee754/s_modfl.c) | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_nearbyintl.c (renamed from sysdeps/libm-ieee754/s_nearbyintl.c) | 7 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_nextafterl.c (renamed from sysdeps/libm-ieee754/s_nextafterl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_nexttoward.c (renamed from sysdeps/libm-ieee754/s_nexttoward.c) | 8 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_nexttowardf.c (renamed from sysdeps/libm-ieee754/s_nexttowardf.c) | 8 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_remquol.c (renamed from sysdeps/libm-ieee754/s_remquol.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_rintl.c (renamed from sysdeps/libm-ieee754/s_rintl.c) | 7 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_roundl.c (renamed from sysdeps/libm-ieee754/s_roundl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_scalblnl.c (renamed from sysdeps/libm-ieee754/s_scalblnl.c) | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_scalbnl.c (renamed from sysdeps/libm-ieee754/s_scalbnl.c) | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_signbitl.c (renamed from sysdeps/libm-ieee754/s_signbitl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_sincosl.c (renamed from sysdeps/libm-ieee754/s_sincosl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_sinl.c (renamed from sysdeps/libm-ieee754/s_sinl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_tanhl.c (renamed from sysdeps/libm-ieee754/s_tanhl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_tanl.c (renamed from sysdeps/libm-ieee754/s_tanl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_truncl.c (renamed from sysdeps/libm-ieee754/s_truncl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/strtold.c | 42 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/w_expl.c (renamed from sysdeps/libm-ieee754/w_expl.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/s_lib_version.c (renamed from sysdeps/libm-ieee754/s_lib_version.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/s_matherr.c (renamed from sysdeps/libm-ieee754/s_matherr.c) | 0 | ||||
-rw-r--r-- | sysdeps/ieee754/s_signgam.c (renamed from sysdeps/libm-ieee754/s_signgam.c) | 0 | ||||
-rw-r--r-- | sysdeps/m68k/Implies | 4 | ||||
-rw-r--r-- | sysdeps/m68k/printf_fphex.c | 2 | ||||
-rw-r--r-- | sysdeps/m68k/strtold.c | 2 | ||||
-rw-r--r-- | sysdeps/mips/Implies | 3 | ||||
-rw-r--r-- | sysdeps/mips/mips64/Implies | 3 | ||||
-rw-r--r-- | sysdeps/powerpc/Implies | 3 | ||||
-rw-r--r-- | sysdeps/sparc/Implies | 2 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/bits/mathdef.h | 15 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/bits/mathinline.h | 211 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/Implies | 3 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/bits/wordsize.h (renamed from sysdeps/sparc/bits/wordsize.h) | 0 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/fpu/bits/huge_val.h | 100 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/Implies | 4 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/Makefile | 13 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/addmul_1.S | 36 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/bits/wordsize.h | 7 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/bits/huge_val.h | 100 |
587 files changed, 5286 insertions, 339 deletions
@@ -1,3 +1,1130 @@ +1999-07-12 Jakub Jelinek <jj@ultra.linux.cz> + + * stdio-common/printf_fp.c (__printf_fp): Adjust for IEEE quad + as _FPIO_CONST_OFFSET does not cover all bits after binary dot. + * sysdeps/generic/printf_fphex.c (__printf_fphex): Support IEEE + quad by moving long double support into PRINT_FPHEX_LONG_DOUBLE + macro. + * sysdeps/alpha/Implies: Imply ieee754/flt-32 and ieee754/dbl-64 + instead of ieee754. + * sysdeps/arm/Implies: Likewise. + * sysdeps/i386/Implies: Imply ieee754/flt-32, ieee754/dbl-64, and + ieee754/ldbl-96 instead of ieee754. + * sysdeps/i386/i686/Implies: Remove implication for libm-i387/i686. + * sysdeps/generic/strtold.c: Remove. + * sysdeps/generic/e_atanhl.c: New file. + * sysdeps/generic/e_coshl.c: New file. + * sysdeps/generic/e_sinhl.c: New file. + * sysdeps/generic/e_gammal_r.c: New file. + * sysdeps/generic/e_hypotl.c: New file. + * sysdeps/generic/s_cbrtl.c: New file. + * sysdeps/generic/s_asinhl.c: New file. + * sysdeps/generic/s_tanhl.c: New file. + * sysdeps/generic/w_expl.c: New file. + * sysdeps/m68k/Implies: Imply ieee754/flt-32, ieee754/dbl-64, and + ieee754/ldbl-96 instead of ieee754. + * sysdeps/m68k/strtold.c: Include ldbl-96 version of strtold. + * sysdeps/m68k/printf_fphex.c: Include ldbl-96 version of + printf_fphex. + * sysdeps/mips/Implies: Imply ieee754/flt-32 and ieee754/dbl-64 + instead of ieee754. + * sysdeps/mips/mips64/Implies: Likewise. + * sysdeps/powerpc/Implies: Likewise. + * sysdeps/sparc/Implies: Remove. + * sysdeps/sparc/sparc32/Implies: Imply ieee754/flt-32 and + ieee754/dbl-64. + * sysdeps/sparc/sparc64/Implies: Imply ieee754/flt-32, ieee754/dbl-64, + and ieee754/ldbl-128. + + * sysdeps/sparc/bits/wordsize.h: Remove. + * sysdeps/sparc/fpu/bits/mathinline.h: New file. + * sysdeps/sparc/fpu/bits/mathdef.h: __NO_LONG_DOUBLE_MATH + only for sparc32. + * sysdeps/sparc/sparc32/fpu/bits/huge_val.h: New file. + * sysdeps/sparc/sparc32/bits/wordsize.h: New file. + * sysdeps/sparc/sparc64/fpu/bits/huge_val.h: New file. + * sysdeps/sparc/sparc64/bits/wordsize.h: New file. + * sysdeps/sparc/sparc64/Makefile: Add IEEE quad long double + support. + + * sysdeps/sparc/sparc64/addmul_1.S: Fix miscalculation + of carries. Optimize. + + * sysdeps/libm-ieee754/e_exp10.c: Moved to ... + * math/e_exp10.c: ...here. + * sysdeps/libm-ieee754/e_exp10f.c: Moved to ... + * math/e_exp10f.c: ...here. + * sysdeps/libm-ieee754/e_exp10l.c: Moved to ... + * math/e_exp10l.c: ...here. + * sysdeps/libm-ieee754/e_scalb.c: Moved to ... + * math/e_scalb.c: ...here. + * sysdeps/libm-ieee754/e_scalbf.c: Moved to ... + * math/e_scalbf.c: ...here. + * sysdeps/libm-ieee754/e_scalbl.c: Moved to ... + * math/e_scalbl.c: ...here. + * sysdeps/libm-ieee754/s_cacos.c: Moved to ... + * math/s_cacos.c: ...here. + * sysdeps/libm-ieee754/s_cacosf.c: Moved to ... + * math/s_cacosf.c: ...here. + * sysdeps/libm-ieee754/s_cacosh.c: Moved to ... + * math/s_cacosh.c: ...here. + * sysdeps/libm-ieee754/s_cacoshf.c: Moved to ... + * math/s_cacoshf.c: ...here. + * sysdeps/libm-ieee754/s_cacoshl.c: Moved to ... + * math/s_cacoshl.c: ...here. + * sysdeps/libm-ieee754/s_cacosl.c: Moved to ... + * math/s_cacosl.c: ...here. + * sysdeps/libm-ieee754/s_casin.c: Moved to ... + * math/s_casin.c: ...here. + * sysdeps/libm-ieee754/s_casinf.c: Moved to ... + * math/s_casinf.c: ...here. + * sysdeps/libm-ieee754/s_casinh.c: Moved to ... + * math/s_casinh.c: ...here. + * sysdeps/libm-ieee754/s_casinhf.c: Moved to ... + * math/s_casinhf.c: ...here. + * sysdeps/libm-ieee754/s_casinhl.c: Moved to ... + * math/s_casinhl.c: ...here. + * sysdeps/libm-ieee754/s_casinl.c: Moved to ... + * math/s_casinl.c: ...here. + * sysdeps/libm-ieee754/s_catan.c: Moved to ... + * math/s_catan.c: ...here. + * sysdeps/libm-ieee754/s_catanf.c: Moved to ... + * math/s_catanf.c: ...here. + * sysdeps/libm-ieee754/s_catanh.c: Moved to ... + * math/s_catanh.c: ...here. + * sysdeps/libm-ieee754/s_catanhf.c: Moved to ... + * math/s_catanhf.c: ...here. + * sysdeps/libm-ieee754/s_catanhl.c: Moved to ... + * math/s_catanhl.c: ...here. + * sysdeps/libm-ieee754/s_catanl.c: Moved to ... + * math/s_catanl.c: ...here. + * sysdeps/libm-ieee754/s_ccos.c: Moved to ... + * math/s_ccos.c: ...here. + * sysdeps/libm-ieee754/s_ccosf.c: Moved to ... + * math/s_ccosf.c: ...here. + * sysdeps/libm-ieee754/s_ccosh.c: Moved to ... + * math/s_ccosh.c: ...here. + * sysdeps/libm-ieee754/s_ccoshf.c: Moved to ... + * math/s_ccoshf.c: ...here. + * sysdeps/libm-ieee754/s_ccoshl.c: Moved to ... + * math/s_ccoshl.c: ...here. + * sysdeps/libm-ieee754/s_ccosl.c: Moved to ... + * math/s_ccosl.c: ...here. + * sysdeps/libm-ieee754/s_cexp.c: Moved to ... + * math/s_cexp.c: ...here. + * sysdeps/libm-ieee754/s_cexpf.c: Moved to ... + * math/s_cexpf.c: ...here. + * sysdeps/libm-ieee754/s_cexpl.c: Moved to ... + * math/s_cexpl.c: ...here. + * sysdeps/libm-ieee754/s_clog.c: Moved to ... + * math/s_clog.c: ...here. + * sysdeps/libm-ieee754/s_clog10.c: Moved to ... + * math/s_clog10.c: ...here. + * sysdeps/libm-ieee754/s_clog10f.c: Moved to ... + * math/s_clog10f.c: ...here. + * sysdeps/libm-ieee754/s_clog10l.c: Moved to ... + * math/s_clog10l.c: ...here. + * sysdeps/libm-ieee754/s_clogf.c: Moved to ... + * math/s_clogf.c: ...here. + * sysdeps/libm-ieee754/s_clogl.c: Moved to ... + * math/s_clogl.c: ...here. + * sysdeps/libm-ieee754/s_cpow.c: Moved to ... + * math/s_cpow.c: ...here. + * sysdeps/libm-ieee754/s_cpowf.c: Moved to ... + * math/s_cpowf.c: ...here. + * sysdeps/libm-ieee754/s_cpowl.c: Moved to ... + * math/s_cpowl.c: ...here. + * sysdeps/libm-ieee754/s_cproj.c: Moved to ... + * math/s_cproj.c: ...here. + * sysdeps/libm-ieee754/s_cprojf.c: Moved to ... + * math/s_cprojf.c: ...here. + * sysdeps/libm-ieee754/s_cprojl.c: Moved to ... + * math/s_cprojl.c: ...here. + * sysdeps/libm-ieee754/s_csin.c: Moved to ... + * math/s_csin.c: ...here. + * sysdeps/libm-ieee754/s_csinf.c: Moved to ... + * math/s_csinf.c: ...here. + * sysdeps/libm-ieee754/s_csinh.c: Moved to ... + * math/s_csinh.c: ...here. + * sysdeps/libm-ieee754/s_csinhf.c: Moved to ... + * math/s_csinhf.c: ...here. + * sysdeps/libm-ieee754/s_csinhl.c: Moved to ... + * math/s_csinhl.c: ...here. + * sysdeps/libm-ieee754/s_csinl.c: Moved to ... + * math/s_csinl.c: ...here. + * sysdeps/libm-ieee754/s_csqrt.c: Moved to ... + * math/s_csqrt.c: ...here. + * sysdeps/libm-ieee754/s_csqrtf.c: Moved to ... + * math/s_csqrtf.c: ...here. + * sysdeps/libm-ieee754/s_csqrtl.c: Moved to ... + * math/s_csqrtl.c: ...here. + * sysdeps/libm-ieee754/s_ctan.c: Moved to ... + * math/s_ctan.c: ...here. + * sysdeps/libm-ieee754/s_ctanf.c: Moved to ... + * math/s_ctanf.c: ...here. + * sysdeps/libm-ieee754/s_ctanh.c: Moved to ... + * math/s_ctanh.c: ...here. + * sysdeps/libm-ieee754/s_ctanhf.c: Moved to ... + * math/s_ctanhf.c: ...here. + * sysdeps/libm-ieee754/s_ctanhl.c: Moved to ... + * math/s_ctanhl.c: ...here. + * sysdeps/libm-ieee754/s_ctanl.c: Moved to ... + * math/s_ctanl.c: ...here. + * sysdeps/libm-ieee754/s_fdim.c: Moved to ... + * math/s_fdim.c: ...here. + * sysdeps/libm-ieee754/s_fdimf.c: Moved to ... + * math/s_fdimf.c: ...here. + * sysdeps/libm-ieee754/s_fdiml.c: Moved to ... + * math/s_fdiml.c: ...here. + * sysdeps/libm-ieee754/s_fma.c: Moved to ... + * math/s_fma.c: ...here. + * sysdeps/libm-ieee754/s_fmaf.c: Moved to ... + * math/s_fmaf.c: ...here. + * sysdeps/libm-ieee754/s_fmal.c: Moved to ... + * math/s_fmal.c: ...here. + * sysdeps/libm-ieee754/s_fmax.c: Moved to ... + * math/s_fmax.c: ...here. + * sysdeps/libm-ieee754/s_fmaxf.c: Moved to ... + * math/s_fmaxf.c: ...here. + * sysdeps/libm-ieee754/s_fmaxl.c: Moved to ... + * math/s_fmaxl.c: ...here. + * sysdeps/libm-ieee754/s_fmin.c: Moved to ... + * math/s_fmin.c: ...here. + * sysdeps/libm-ieee754/s_fminf.c: Moved to ... + * math/s_fminf.c: ...here. + * sysdeps/libm-ieee754/s_fminl.c: Moved to ... + * math/s_fminl.c: ...here. + * sysdeps/libm-ieee754/s_ldexp.c: Moved to ... + * math/s_ldexp.c: ...here. + * sysdeps/libm-ieee754/s_ldexpf.c: Moved to ... + * math/s_ldexpf.c: ...here. + * sysdeps/libm-ieee754/s_ldexpl.c: Moved to ... + * math/s_ldexpl.c: ...here. + * sysdeps/libm-ieee754/s_nan.c: Moved to ... + * math/s_nan.c: ...here. + * sysdeps/libm-ieee754/s_nanf.c: Moved to ... + * math/s_nanf.c: ...here. + * sysdeps/libm-ieee754/s_nanl.c: Moved to ... + * math/s_nanl.c: ...here. + * sysdeps/libm-ieee754/s_significand.c: Moved to ... + * math/s_significand.c: ...here. + * sysdeps/libm-ieee754/s_significandf.c: Moved to ... + * math/s_significandf.c: ...here. + * sysdeps/libm-ieee754/s_significandl.c: Moved to ... + * math/s_significandl.c: ...here. + Avoid conversion from int to double and then to long double. + * sysdeps/libm-ieee754/w_acos.c: Moved to ... + * math/w_acos.c: ...here. + * sysdeps/libm-ieee754/w_acosf.c: Moved to ... + * math/w_acosf.c: ...here. + * sysdeps/libm-ieee754/w_acosh.c: Moved to ... + * math/w_acosh.c: ...here. + * sysdeps/libm-ieee754/w_acoshf.c: Moved to ... + * math/w_acoshf.c: ...here. + * sysdeps/libm-ieee754/w_acoshl.c: Moved to ... + * math/w_acoshl.c: ...here. + * sysdeps/libm-ieee754/w_acosl.c: Moved to ... + * math/w_acosl.c: ...here. + * sysdeps/libm-ieee754/w_asin.c: Moved to ... + * math/w_asin.c: ...here. + * sysdeps/libm-ieee754/w_asinf.c: Moved to ... + * math/w_asinf.c: ...here. + * sysdeps/libm-ieee754/w_asinl.c: Moved to ... + * math/w_asinl.c: ...here. + * sysdeps/libm-ieee754/w_atan2.c: Moved to ... + * math/w_atan2.c: ...here. + * sysdeps/libm-ieee754/w_atan2f.c: Moved to ... + * math/w_atan2f.c: ...here. + * sysdeps/libm-ieee754/w_atan2l.c: Moved to ... + * math/w_atan2l.c: ...here. + * sysdeps/libm-ieee754/w_atanh.c: Moved to ... + * math/w_atanh.c: ...here. + * sysdeps/libm-ieee754/w_atanhf.c: Moved to ... + * math/w_atanhf.c: ...here. + * sysdeps/libm-ieee754/w_atanhl.c: Moved to ... + * math/w_atanhl.c: ...here. + * sysdeps/libm-ieee754/w_cosh.c: Moved to ... + * math/w_cosh.c: ...here. + * sysdeps/libm-ieee754/w_coshf.c: Moved to ... + * math/w_coshf.c: ...here. + * sysdeps/libm-ieee754/w_coshl.c: Moved to ... + * math/w_coshl.c: ...here. + * sysdeps/libm-ieee754/w_drem.c: Moved to ... + * math/w_drem.c: ...here. + * sysdeps/libm-ieee754/w_dremf.c: Moved to ... + * math/w_dremf.c: ...here. + * sysdeps/libm-ieee754/w_dreml.c: Moved to ... + * math/w_dreml.c: ...here. + * sysdeps/libm-ieee754/w_exp10.c: Moved to ... + * math/w_exp10.c: ...here. + * sysdeps/libm-ieee754/w_exp10f.c: Moved to ... + * math/w_exp10f.c: ...here. + * sysdeps/libm-ieee754/w_exp10l.c: Moved to ... + * math/w_exp10l.c: ...here. + * sysdeps/libm-ieee754/w_exp2.c: Moved to ... + * math/w_exp2.c: ...here. + * sysdeps/libm-ieee754/w_exp2f.c: Moved to ... + * math/w_exp2f.c: ...here. + * sysdeps/libm-ieee754/w_exp2l.c: Moved to ... + * math/w_exp2l.c: ...here. + * sysdeps/libm-ieee754/w_fmod.c: Moved to ... + * math/w_fmod.c: ...here. + * sysdeps/libm-ieee754/w_fmodf.c: Moved to ... + * math/w_fmodf.c: ...here. + * sysdeps/libm-ieee754/w_fmodl.c: Moved to ... + * math/w_fmodl.c: ...here. + * sysdeps/libm-ieee754/w_hypot.c: Moved to ... + * math/w_hypot.c: ...here. + * sysdeps/libm-ieee754/w_hypotf.c: Moved to ... + * math/w_hypotf.c: ...here. + * sysdeps/libm-ieee754/w_hypotl.c: Moved to ... + * math/w_hypotl.c: ...here. + * sysdeps/libm-ieee754/w_j0.c: Moved to ... + * math/w_j0.c: ...here. + * sysdeps/libm-ieee754/w_j0f.c: Moved to ... + * math/w_j0f.c: ...here. + * sysdeps/libm-ieee754/w_j0l.c: Moved to ... + * math/w_j0l.c: ...here. + * sysdeps/libm-ieee754/w_j1.c: Moved to ... + * math/w_j1.c: ...here. + * sysdeps/libm-ieee754/w_j1f.c: Moved to ... + * math/w_j1f.c: ...here. + * sysdeps/libm-ieee754/w_j1l.c: Moved to ... + * math/w_j1l.c: ...here. + * sysdeps/libm-ieee754/w_jn.c: Moved to ... + * math/w_jn.c: ...here. + * sysdeps/libm-ieee754/w_jnf.c: Moved to ... + * math/w_jnf.c: ...here. + * sysdeps/libm-ieee754/w_jnl.c: Moved to ... + * math/w_jnl.c: ...here. + * sysdeps/libm-ieee754/w_lgamma.c: Moved to ... + * math/w_lgamma.c: ...here. + * sysdeps/libm-ieee754/w_lgamma_r.c: Moved to ... + * math/w_lgamma_r.c: ...here. + * sysdeps/libm-ieee754/w_lgammaf.c: Moved to ... + * math/w_lgammaf.c: ...here. + * sysdeps/libm-ieee754/w_lgammaf_r.c: Moved to ... + * math/w_lgammaf_r.c: ...here. + * sysdeps/libm-ieee754/w_lgammal.c: Moved to ... + * math/w_lgammal.c: ...here. + * sysdeps/libm-ieee754/w_lgammal_r.c: Moved to ... + * math/w_lgammal_r.c: ...here. + * sysdeps/libm-ieee754/w_log.c: Moved to ... + * math/w_log.c: ...here. + * sysdeps/libm-ieee754/w_log10.c: Moved to ... + * math/w_log10.c: ...here. + * sysdeps/libm-ieee754/w_log10f.c: Moved to ... + * math/w_log10f.c: ...here. + * sysdeps/libm-ieee754/w_log10l.c: Moved to ... + * math/w_log10l.c: ...here. + * sysdeps/libm-ieee754/w_logf.c: Moved to ... + * math/w_logf.c: ...here. + * sysdeps/libm-ieee754/w_logl.c: Moved to ... + * math/w_logl.c: ...here. + * sysdeps/libm-ieee754/w_pow.c: Moved to ... + * math/w_pow.c: ...here. + * sysdeps/libm-ieee754/w_powf.c: Moved to ... + * math/w_powf.c: ...here. + * sysdeps/libm-ieee754/w_powl.c: Moved to ... + * math/w_powl.c: ...here. + * sysdeps/libm-ieee754/w_remainder.c: Moved to ... + * math/w_remainder.c: ...here. + * sysdeps/libm-ieee754/w_remainderf.c: Moved to ... + * math/w_remainderf.c: ...here. + * sysdeps/libm-ieee754/w_remainderl.c: Moved to ... + * math/w_remainderl.c: ...here. + * sysdeps/libm-ieee754/w_scalb.c: Moved to ... + * math/w_scalb.c: ...here. + * sysdeps/libm-ieee754/w_scalbf.c: Moved to ... + * math/w_scalbf.c: ...here. + * sysdeps/libm-ieee754/w_scalbl.c: Moved to ... + * math/w_scalbl.c: ...here. + * sysdeps/libm-ieee754/w_sinh.c: Moved to ... + * math/w_sinh.c: ...here. + * sysdeps/libm-ieee754/w_sinhf.c: Moved to ... + * math/w_sinhf.c: ...here. + * sysdeps/libm-ieee754/w_sinhl.c: Moved to ... + * math/w_sinhl.c: ...here. + * sysdeps/libm-ieee754/w_sqrt.c: Moved to ... + * math/w_sqrt.c: ...here. + * sysdeps/libm-ieee754/w_sqrtf.c: Moved to ... + * math/w_sqrtf.c: ...here. + * sysdeps/libm-ieee754/w_sqrtl.c: Moved to ... + * math/w_sqrtl.c: ...here. + * sysdeps/libm-ieee754/w_tgamma.c: Moved to ... + * math/w_tgamma.c: ...here. + * sysdeps/libm-ieee754/w_tgammaf.c: Moved to ... + * math/w_tgammaf.c: ...here. + * sysdeps/libm-ieee754/w_tgammal.c: Moved to ... + * math/w_tgammal.c: ...here. + * sysdeps/libm-i387/e_acos.S: Moved to ... + * sysdeps/i386/fpu/e_acos.S: ...here. + * sysdeps/libm-i387/e_acosf.S: Moved to ... + * sysdeps/i386/fpu/e_acosf.S: ...here. + * sysdeps/libm-i387/e_acosh.S: Moved to ... + * sysdeps/i386/fpu/e_acosh.S: ...here. + * sysdeps/libm-i387/e_acoshf.S: Moved to ... + * sysdeps/i386/fpu/e_acoshf.S: ...here. + * sysdeps/libm-i387/e_acoshl.S: Moved to ... + * sysdeps/i386/fpu/e_acoshl.S: ...here. + * sysdeps/libm-i387/e_acosl.S: Moved to ... + * sysdeps/i386/fpu/e_acosl.S: ...here. + * sysdeps/libm-i387/e_asin.S: Moved to ... + * sysdeps/i386/fpu/e_asin.S: ...here. + * sysdeps/libm-i387/e_asinf.S: Moved to ... + * sysdeps/i386/fpu/e_asinf.S: ...here. + * sysdeps/libm-i387/e_asinl.S: Moved to ... + * sysdeps/i386/fpu/e_asinl.S: ...here. + * sysdeps/libm-i387/e_atan2.S: Moved to ... + * sysdeps/i386/fpu/e_atan2.S: ...here. + * sysdeps/libm-i387/e_atan2f.S: Moved to ... + * sysdeps/i386/fpu/e_atan2f.S: ...here. + * sysdeps/libm-i387/e_atan2l.S: Moved to ... + * sysdeps/i386/fpu/e_atan2l.S: ...here. + * sysdeps/libm-i387/e_atanh.S: Moved to ... + * sysdeps/i386/fpu/e_atanh.S: ...here. + * sysdeps/libm-i387/e_atanhf.S: Moved to ... + * sysdeps/i386/fpu/e_atanhf.S: ...here. + * sysdeps/libm-i387/e_atanhl.S: Moved to ... + * sysdeps/i386/fpu/e_atanhl.S: ...here. + * sysdeps/libm-i387/e_exp.S: Moved to ... + * sysdeps/i386/fpu/e_exp.S: ...here. + * sysdeps/libm-i387/e_exp10.S: Moved to ... + * sysdeps/i386/fpu/e_exp10.S: ...here. + * sysdeps/libm-i387/e_exp10f.S: Moved to ... + * sysdeps/i386/fpu/e_exp10f.S: ...here. + * sysdeps/libm-i387/e_exp10l.S: Moved to ... + * sysdeps/i386/fpu/e_exp10l.S: ...here. + * sysdeps/libm-i387/e_expf.S: Moved to ... + * sysdeps/i386/fpu/e_expf.S: ...here. + * sysdeps/libm-i387/e_expl.S: Moved to ... + * sysdeps/i386/fpu/e_expl.S: ...here. + * sysdeps/libm-i387/e_fmod.S: Moved to ... + * sysdeps/i386/fpu/e_fmod.S: ...here. + * sysdeps/libm-i387/e_fmodf.S: Moved to ... + * sysdeps/i386/fpu/e_fmodf.S: ...here. + * sysdeps/libm-i387/e_fmodl.S: Moved to ... + * sysdeps/i386/fpu/e_fmodl.S: ...here. + * sysdeps/libm-i387/e_hypot.S: Moved to ... + * sysdeps/i386/fpu/e_hypot.S: ...here. + * sysdeps/libm-i387/e_hypotf.S: Moved to ... + * sysdeps/i386/fpu/e_hypotf.S: ...here. + * sysdeps/libm-i387/e_log.S: Moved to ... + * sysdeps/i386/fpu/e_log.S: ...here. + * sysdeps/libm-i387/e_log10.S: Moved to ... + * sysdeps/i386/fpu/e_log10.S: ...here. + * sysdeps/libm-i387/e_log10f.S: Moved to ... + * sysdeps/i386/fpu/e_log10f.S: ...here. + * sysdeps/libm-i387/e_log10l.S: Moved to ... + * sysdeps/i386/fpu/e_log10l.S: ...here. + * sysdeps/libm-i387/e_logf.S: Moved to ... + * sysdeps/i386/fpu/e_logf.S: ...here. + * sysdeps/libm-i387/e_logl.S: Moved to ... + * sysdeps/i386/fpu/e_logl.S: ...here. + * sysdeps/libm-i387/e_pow.S: Moved to ... + * sysdeps/i386/fpu/e_pow.S: ...here. + * sysdeps/libm-i387/e_powf.S: Moved to ... + * sysdeps/i386/fpu/e_powf.S: ...here. + * sysdeps/libm-i387/e_powl.S: Moved to ... + * sysdeps/i386/fpu/e_powl.S: ...here. + * sysdeps/libm-i387/e_rem_pio2l.c: Moved to ... + * sysdeps/i386/fpu/e_rem_pio2l.c: ...here. + * sysdeps/libm-i387/e_remainder.S: Moved to ... + * sysdeps/i386/fpu/e_remainder.S: ...here. + * sysdeps/libm-i387/e_remainderf.S: Moved to ... + * sysdeps/i386/fpu/e_remainderf.S: ...here. + * sysdeps/libm-i387/e_remainderl.S: Moved to ... + * sysdeps/i386/fpu/e_remainderl.S: ...here. + * sysdeps/libm-i387/e_scalb.S: Moved to ... + * sysdeps/i386/fpu/e_scalb.S: ...here. + * sysdeps/libm-i387/e_scalbf.S: Moved to ... + * sysdeps/i386/fpu/e_scalbf.S: ...here. + * sysdeps/libm-i387/e_scalbl.S: Moved to ... + * sysdeps/i386/fpu/e_scalbl.S: ...here. + * sysdeps/libm-i387/e_sqrt.S: Moved to ... + * sysdeps/i386/fpu/e_sqrt.S: ...here. + * sysdeps/libm-i387/e_sqrtf.S: Moved to ... + * sysdeps/i386/fpu/e_sqrtf.S: ...here. + * sysdeps/libm-i387/e_sqrtl.S: Moved to ... + * sysdeps/i386/fpu/e_sqrtl.S: ...here. + * sysdeps/libm-i387/k_rem_pio2l.c: Moved to ... + * sysdeps/i386/fpu/k_rem_pio2l.c: ...here. + * sysdeps/libm-i387/s_asinh.S: Moved to ... + * sysdeps/i386/fpu/s_asinh.S: ...here. + * sysdeps/libm-i387/s_asinhf.S: Moved to ... + * sysdeps/i386/fpu/s_asinhf.S: ...here. + * sysdeps/libm-i387/s_asinhl.S: Moved to ... + * sysdeps/i386/fpu/s_asinhl.S: ...here. + * sysdeps/libm-i387/s_atan.S: Moved to ... + * sysdeps/i386/fpu/s_atan.S: ...here. + * sysdeps/libm-i387/s_atanf.S: Moved to ... + * sysdeps/i386/fpu/s_atanf.S: ...here. + * sysdeps/libm-i387/s_atanl.S: Moved to ... + * sysdeps/i386/fpu/s_atanl.S: ...here. + * sysdeps/libm-i387/s_cbrt.S: Moved to ... + * sysdeps/i386/fpu/s_cbrt.S: ...here. + * sysdeps/libm-i387/s_cbrtf.S: Moved to ... + * sysdeps/i386/fpu/s_cbrtf.S: ...here. + * sysdeps/libm-i387/s_cbrtl.S: Moved to ... + * sysdeps/i386/fpu/s_cbrtl.S: ...here. + * sysdeps/libm-i387/s_ceil.S: Moved to ... + * sysdeps/i386/fpu/s_ceil.S: ...here. + * sysdeps/libm-i387/s_ceilf.S: Moved to ... + * sysdeps/i386/fpu/s_ceilf.S: ...here. + * sysdeps/libm-i387/s_ceill.S: Moved to ... + * sysdeps/i386/fpu/s_ceill.S: ...here. + * sysdeps/libm-i387/s_cexp.S: Moved to ... + * sysdeps/i386/fpu/s_cexp.S: ...here. + * sysdeps/libm-i387/s_cexpf.S: Moved to ... + * sysdeps/i386/fpu/s_cexpf.S: ...here. + * sysdeps/libm-i387/s_cexpl.S: Moved to ... + * sysdeps/i386/fpu/s_cexpl.S: ...here. + * sysdeps/libm-i387/s_copysign.S: Moved to ... + * sysdeps/i386/fpu/s_copysign.S: ...here. + * sysdeps/libm-i387/s_copysignf.S: Moved to ... + * sysdeps/i386/fpu/s_copysignf.S: ...here. + * sysdeps/libm-i387/s_copysignl.S: Moved to ... + * sysdeps/i386/fpu/s_copysignl.S: ...here. + * sysdeps/libm-i387/s_cos.S: Moved to ... + * sysdeps/i386/fpu/s_cos.S: ...here. + * sysdeps/libm-i387/s_cosf.S: Moved to ... + * sysdeps/i386/fpu/s_cosf.S: ...here. + * sysdeps/libm-i387/s_cosl.S: Moved to ... + * sysdeps/i386/fpu/s_cosl.S: ...here. + * sysdeps/libm-i387/s_exp2.S: Moved to ... + * sysdeps/i386/fpu/s_exp2.S: ...here. + * sysdeps/libm-i387/s_exp2f.S: Moved to ... + * sysdeps/i386/fpu/s_exp2f.S: ...here. + * sysdeps/libm-i387/s_exp2l.S: Moved to ... + * sysdeps/i386/fpu/s_exp2l.S: ...here. + * sysdeps/libm-i387/s_expm1.S: Moved to ... + * sysdeps/i386/fpu/s_expm1.S: ...here. + * sysdeps/libm-i387/s_expm1f.S: Moved to ... + * sysdeps/i386/fpu/s_expm1f.S: ...here. + * sysdeps/libm-i387/s_expm1l.S: Moved to ... + * sysdeps/i386/fpu/s_expm1l.S: ...here. + * sysdeps/libm-i387/s_fdim.S: Moved to ... + * sysdeps/i386/fpu/s_fdim.S: ...here. + * sysdeps/libm-i387/s_fdimf.S: Moved to ... + * sysdeps/i386/fpu/s_fdimf.S: ...here. + * sysdeps/libm-i387/s_fdiml.S: Moved to ... + * sysdeps/i386/fpu/s_fdiml.S: ...here. + * sysdeps/libm-i387/s_finite.S: Moved to ... + * sysdeps/i386/fpu/s_finite.S: ...here. + * sysdeps/libm-i387/s_finitef.S: Moved to ... + * sysdeps/i386/fpu/s_finitef.S: ...here. + * sysdeps/libm-i387/s_finitel.S: Moved to ... + * sysdeps/i386/fpu/s_finitel.S: ...here. + * sysdeps/libm-i387/s_floor.S: Moved to ... + * sysdeps/i386/fpu/s_floor.S: ...here. + * sysdeps/libm-i387/s_floorf.S: Moved to ... + * sysdeps/i386/fpu/s_floorf.S: ...here. + * sysdeps/libm-i387/s_floorl.S: Moved to ... + * sysdeps/i386/fpu/s_floorl.S: ...here. + * sysdeps/libm-i387/s_fma.S: Moved to ... + * sysdeps/i386/fpu/s_fma.S: ...here. + * sysdeps/libm-i387/s_fmaf.S: Moved to ... + * sysdeps/i386/fpu/s_fmaf.S: ...here. + * sysdeps/libm-i387/s_fmal.S: Moved to ... + * sysdeps/i386/fpu/s_fmal.S: ...here. + * sysdeps/libm-i387/s_fmax.S: Moved to ... + * sysdeps/i386/fpu/s_fmax.S: ...here. + * sysdeps/libm-i387/s_fmaxf.S: Moved to ... + * sysdeps/i386/fpu/s_fmaxf.S: ...here. + * sysdeps/libm-i387/s_fmaxl.S: Moved to ... + * sysdeps/i386/fpu/s_fmaxl.S: ...here. + * sysdeps/libm-i387/s_fmin.S: Moved to ... + * sysdeps/i386/fpu/s_fmin.S: ...here. + * sysdeps/libm-i387/s_fminf.S: Moved to ... + * sysdeps/i386/fpu/s_fminf.S: ...here. + * sysdeps/libm-i387/s_fminl.S: Moved to ... + * sysdeps/i386/fpu/s_fminl.S: ...here. + * sysdeps/libm-i387/s_frexp.S: Moved to ... + * sysdeps/i386/fpu/s_frexp.S: ...here. + * sysdeps/libm-i387/s_frexpf.S: Moved to ... + * sysdeps/i386/fpu/s_frexpf.S: ...here. + * sysdeps/libm-i387/s_frexpl.S: Moved to ... + * sysdeps/i386/fpu/s_frexpl.S: ...here. + * sysdeps/libm-i387/s_ilogb.S: Moved to ... + * sysdeps/i386/fpu/s_ilogb.S: ...here. + * sysdeps/libm-i387/s_ilogbf.S: Moved to ... + * sysdeps/i386/fpu/s_ilogbf.S: ...here. + * sysdeps/libm-i387/s_ilogbl.S: Moved to ... + * sysdeps/i386/fpu/s_ilogbl.S: ...here. + * sysdeps/libm-i387/s_llrint.S: Moved to ... + * sysdeps/i386/fpu/s_llrint.S: ...here. + * sysdeps/libm-i387/s_llrintf.S: Moved to ... + * sysdeps/i386/fpu/s_llrintf.S: ...here. + * sysdeps/libm-i387/s_llrintl.S: Moved to ... + * sysdeps/i386/fpu/s_llrintl.S: ...here. + * sysdeps/libm-i387/s_log1p.S: Moved to ... + * sysdeps/i386/fpu/s_log1p.S: ...here. + * sysdeps/libm-i387/s_log1pf.S: Moved to ... + * sysdeps/i386/fpu/s_log1pf.S: ...here. + * sysdeps/libm-i387/s_log1pl.S: Moved to ... + * sysdeps/i386/fpu/s_log1pl.S: ...here. + * sysdeps/libm-i387/s_log2.S: Moved to ... + * sysdeps/i386/fpu/s_log2.S: ...here. + * sysdeps/libm-i387/s_log2f.S: Moved to ... + * sysdeps/i386/fpu/s_log2f.S: ...here. + * sysdeps/libm-i387/s_log2l.S: Moved to ... + * sysdeps/i386/fpu/s_log2l.S: ...here. + * sysdeps/libm-i387/s_logb.S: Moved to ... + * sysdeps/i386/fpu/s_logb.S: ...here. + * sysdeps/libm-i387/s_logbf.S: Moved to ... + * sysdeps/i386/fpu/s_logbf.S: ...here. + * sysdeps/libm-i387/s_logbl.S: Moved to ... + * sysdeps/i386/fpu/s_logbl.S: ...here. + * sysdeps/libm-i387/s_lrint.S: Moved to ... + * sysdeps/i386/fpu/s_lrint.S: ...here. + * sysdeps/libm-i387/s_lrintf.S: Moved to ... + * sysdeps/i386/fpu/s_lrintf.S: ...here. + * sysdeps/libm-i387/s_lrintl.S: Moved to ... + * sysdeps/i386/fpu/s_lrintl.S: ...here. + * sysdeps/libm-i387/s_nearbyint.S: Moved to ... + * sysdeps/i386/fpu/s_nearbyint.S: ...here. + * sysdeps/libm-i387/s_nearbyintf.S: Moved to ... + * sysdeps/i386/fpu/s_nearbyintf.S: ...here. + * sysdeps/libm-i387/s_nearbyintl.S: Moved to ... + * sysdeps/i386/fpu/s_nearbyintl.S: ...here. + * sysdeps/libm-i387/s_remquo.S: Moved to ... + * sysdeps/i386/fpu/s_remquo.S: ...here. + * sysdeps/libm-i387/s_remquof.S: Moved to ... + * sysdeps/i386/fpu/s_remquof.S: ...here. + * sysdeps/libm-i387/s_remquol.S: Moved to ... + * sysdeps/i386/fpu/s_remquol.S: ...here. + * sysdeps/libm-i387/s_rint.S: Moved to ... + * sysdeps/i386/fpu/s_rint.S: ...here. + * sysdeps/libm-i387/s_rintf.S: Moved to ... + * sysdeps/i386/fpu/s_rintf.S: ...here. + * sysdeps/libm-i387/s_rintl.S: Moved to ... + * sysdeps/i386/fpu/s_rintl.S: ...here. + * sysdeps/libm-i387/s_scalbn.S: Moved to ... + * sysdeps/i386/fpu/s_scalbn.S: ...here. + * sysdeps/libm-i387/s_scalbnf.S: Moved to ... + * sysdeps/i386/fpu/s_scalbnf.S: ...here. + * sysdeps/libm-i387/s_scalbnl.S: Moved to ... + * sysdeps/i386/fpu/s_scalbnl.S: ...here. + * sysdeps/libm-i387/s_significand.S: Moved to ... + * sysdeps/i386/fpu/s_significand.S: ...here. + * sysdeps/libm-i387/s_significandf.S: Moved to ... + * sysdeps/i386/fpu/s_significandf.S: ...here. + * sysdeps/libm-i387/s_significandl.S: Moved to ... + * sysdeps/i386/fpu/s_significandl.S: ...here. + * sysdeps/libm-i387/s_sin.S: Moved to ... + * sysdeps/i386/fpu/s_sin.S: ...here. + * sysdeps/libm-i387/s_sincos.S: Moved to ... + * sysdeps/i386/fpu/s_sincos.S: ...here. + * sysdeps/libm-i387/s_sincosf.S: Moved to ... + * sysdeps/i386/fpu/s_sincosf.S: ...here. + * sysdeps/libm-i387/s_sincosl.S: Moved to ... + * sysdeps/i386/fpu/s_sincosl.S: ...here. + * sysdeps/libm-i387/s_sinf.S: Moved to ... + * sysdeps/i386/fpu/s_sinf.S: ...here. + * sysdeps/libm-i387/s_sinl.S: Moved to ... + * sysdeps/i386/fpu/s_sinl.S: ...here. + * sysdeps/libm-i387/s_tan.S: Moved to ... + * sysdeps/i386/fpu/s_tan.S: ...here. + * sysdeps/libm-i387/s_tanf.S: Moved to ... + * sysdeps/i386/fpu/s_tanf.S: ...here. + * sysdeps/libm-i387/s_tanl.S: Moved to ... + * sysdeps/i386/fpu/s_tanl.S: ...here. + * sysdeps/libm-i387/s_trunc.S: Moved to ... + * sysdeps/i386/fpu/s_trunc.S: ...here. + * sysdeps/libm-i387/s_truncf.S: Moved to ... + * sysdeps/i386/fpu/s_truncf.S: ...here. + * sysdeps/libm-i387/s_truncl.S: Moved to ... + * sysdeps/i386/fpu/s_truncl.S: ...here. + * sysdeps/libm-ieee754/k_standard.c: Moved to ... + * sysdeps/ieee754/k_standard.c: ...here. + * sysdeps/libm-ieee754/s_lib_version.c: Moved to ... + * sysdeps/ieee754/s_lib_version.c: ...here. + * sysdeps/libm-ieee754/s_matherr.c: Moved to ... + * sysdeps/ieee754/s_matherr.c: ...here. + * sysdeps/libm-ieee754/s_signgam.c: Moved to ... + * sysdeps/ieee754/s_signgam.c: ...here. + * sysdeps/ieee754/dbl2mpn.c: Moved to ... + * sysdeps/ieee754/dbl-64/dbl2mpn.c: ...here. + * sysdeps/ieee754/mpn2dbl.c: Moved to ... + * sysdeps/ieee754/dbl-64/mpn2dbl.c: ...here. + * sysdeps/libm-ieee754/e_acos.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_acos.c: ...here. + * sysdeps/libm-ieee754/e_acosh.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_acosh.c: ...here. + * sysdeps/libm-ieee754/e_asin.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_asin.c: ...here. + * sysdeps/libm-ieee754/e_atan2.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_atan2.c: ...here. + * sysdeps/libm-ieee754/e_atanh.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_atanh.c: ...here. + * sysdeps/libm-ieee754/e_cosh.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_cosh.c: ...here. + * sysdeps/libm-ieee754/e_exp.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_exp.c: ...here. + * sysdeps/libm-ieee754/e_fmod.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_fmod.c: ...here. + * sysdeps/libm-ieee754/e_gamma_r.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_gamma_r.c: ...here. + * sysdeps/libm-ieee754/e_hypot.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_hypot.c: ...here. + * sysdeps/libm-ieee754/e_j0.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_j0.c: ...here. + * sysdeps/libm-ieee754/e_j1.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_j1.c: ...here. + * sysdeps/libm-ieee754/e_jn.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_jn.c: ...here. + * sysdeps/libm-ieee754/e_lgamma_r.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_lgamma_r.c: ...here. + * sysdeps/libm-ieee754/e_log.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_log.c: ...here. + * sysdeps/libm-ieee754/e_log10.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_log10.c: ...here. + * sysdeps/libm-ieee754/e_pow.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_pow.c: ...here. + * sysdeps/libm-ieee754/e_remainder.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_remainder.c: ...here. + * sysdeps/libm-ieee754/e_sinh.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_sinh.c: ...here. + * sysdeps/libm-ieee754/e_sqrt.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_sqrt.c: ...here. + * sysdeps/libm-ieee754/k_cos.c: Moved to ... + * sysdeps/ieee754/dbl-64/k_cos.c: ...here. + * sysdeps/libm-ieee754/k_sin.c: Moved to ... + * sysdeps/ieee754/dbl-64/k_sin.c: ...here. + * sysdeps/libm-ieee754/k_tan.c: Moved to ... + * sysdeps/ieee754/dbl-64/k_tan.c: ...here. + * sysdeps/libm-ieee754/s_asinh.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_asinh.c: ...here. + * sysdeps/libm-ieee754/s_atan.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_atan.c: ...here. + * sysdeps/libm-ieee754/s_cbrt.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_cbrt.c: ...here. + * sysdeps/libm-ieee754/s_ceil.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_ceil.c: ...here. + * sysdeps/libm-ieee754/s_copysign.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_copysign.c: ...here. + * sysdeps/libm-ieee754/s_cos.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_cos.c: ...here. + * sysdeps/libm-ieee754/s_erf.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_erf.c: ...here. + * sysdeps/libm-ieee754/s_exp2.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_exp2.c: ...here. + * sysdeps/libm-ieee754/s_expm1.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_expm1.c: ...here. + * sysdeps/libm-ieee754/s_fabs.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_fabs.c: ...here. + * sysdeps/libm-ieee754/s_finite.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_finite.c: ...here. + * sysdeps/libm-ieee754/s_floor.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_floor.c: ...here. + * sysdeps/libm-ieee754/s_fpclassify.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_fpclassify.c: ...here. + * sysdeps/libm-ieee754/s_frexp.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_frexp.c: ...here. + * sysdeps/libm-ieee754/s_ilogb.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_ilogb.c: ...here. + * sysdeps/libm-ieee754/s_isinf.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_isinf.c: ...here. + * sysdeps/libm-ieee754/s_isnan.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_isnan.c: ...here. + (__isnan): Comment above function says it returns 0 or 1, but it + used to return 0 or -1. + * sysdeps/libm-ieee754/s_llrint.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_llrint.c: ...here. + * sysdeps/libm-ieee754/s_llround.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_llround.c: ...here. + * sysdeps/libm-ieee754/s_log1p.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_log1p.c: ...here. + * sysdeps/libm-ieee754/s_log2.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_log2.c: ...here. + * sysdeps/libm-ieee754/s_logb.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_logb.c: ...here. + * sysdeps/libm-ieee754/s_lrint.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_lrint.c: ...here. + * sysdeps/libm-ieee754/s_lround.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_lround.c: ...here. + * sysdeps/libm-ieee754/s_modf.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_modf.c: ...here. + * sysdeps/libm-ieee754/s_nearbyint.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_nearbyint.c: ...here. + * sysdeps/libm-ieee754/s_nextafter.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_nextafter.c: ...here. + Add __nexttoward and nexttoward aliases if NO_LONG_DOUBLE. + * sysdeps/libm-ieee754/s_remquo.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_remquo.c: ...here. + * sysdeps/libm-ieee754/s_rint.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_rint.c: ...here. + * sysdeps/libm-ieee754/s_round.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_round.c: ...here. + * sysdeps/libm-ieee754/s_scalbn.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_scalbn.c: ...here. + * sysdeps/libm-ieee754/s_signbit.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_signbit.c: ...here. + * sysdeps/libm-ieee754/s_sin.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_sin.c: ...here. + * sysdeps/libm-ieee754/s_sincos.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_sincos.c: ...here. + * sysdeps/libm-ieee754/s_tan.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_tan.c: ...here. + * sysdeps/libm-ieee754/s_tanh.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_tanh.c: ...here. + * sysdeps/libm-ieee754/s_trunc.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_trunc.c: ...here. + * sysdeps/libm-ieee754/t_exp2.h: Moved to ... + * sysdeps/ieee754/dbl-64/t_exp2.h: ...here. + * sysdeps/libm-ieee754/w_exp.c: Moved to ... + * sysdeps/ieee754/dbl-64/w_exp.c: ...here. + * sysdeps/ieee754/mpn2flt.c: Moved to ... + * sysdeps/ieee754/flt-32/mpn2flt.c: ...here. + * sysdeps/libm-ieee754/e_acosf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_acosf.c: ...here. + * sysdeps/libm-ieee754/e_acoshf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_acoshf.c: ...here. + * sysdeps/libm-ieee754/e_asinf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_asinf.c: ...here. + * sysdeps/libm-ieee754/e_atan2f.c: Moved to ... + * sysdeps/ieee754/flt-32/e_atan2f.c: ...here. + * sysdeps/libm-ieee754/e_atanhf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_atanhf.c: ...here. + * sysdeps/libm-ieee754/e_coshf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_coshf.c: ...here. + * sysdeps/libm-ieee754/e_expf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_expf.c: ...here. + * sysdeps/libm-ieee754/e_fmodf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_fmodf.c: ...here. + * sysdeps/libm-ieee754/e_gammaf_r.c: Moved to ... + * sysdeps/ieee754/flt-32/e_gammaf_r.c: ...here. + * sysdeps/libm-ieee754/e_hypotf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_hypotf.c: ...here. + * sysdeps/libm-ieee754/e_j0f.c: Moved to ... + * sysdeps/ieee754/flt-32/e_j0f.c: ...here. + * sysdeps/libm-ieee754/e_j1f.c: Moved to ... + * sysdeps/ieee754/flt-32/e_j1f.c: ...here. + * sysdeps/libm-ieee754/e_jnf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_jnf.c: ...here. + * sysdeps/libm-ieee754/e_lgammaf_r.c: Moved to ... + * sysdeps/ieee754/flt-32/e_lgammaf_r.c: ...here. + * sysdeps/libm-ieee754/e_log10f.c: Moved to ... + * sysdeps/ieee754/flt-32/e_log10f.c: ...here. + * sysdeps/libm-ieee754/e_logf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_logf.c: ...here. + * sysdeps/libm-ieee754/e_powf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_powf.c: ...here. + * sysdeps/libm-ieee754/e_remainderf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_remainderf.c: ...here. + * sysdeps/libm-ieee754/e_sinhf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_sinhf.c: ...here. + * sysdeps/libm-ieee754/e_sqrtf.c: Moved to ... + * sysdeps/ieee754/flt-32/e_sqrtf.c: ...here. + * sysdeps/libm-ieee754/k_cosf.c: Moved to ... + * sysdeps/ieee754/flt-32/k_cosf.c: ...here. + * sysdeps/libm-ieee754/k_sinf.c: Moved to ... + * sysdeps/ieee754/flt-32/k_sinf.c: ...here. + * sysdeps/libm-ieee754/k_tanf.c: Moved to ... + * sysdeps/ieee754/flt-32/k_tanf.c: ...here. + * sysdeps/libm-ieee754/s_asinhf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_asinhf.c: ...here. + * sysdeps/libm-ieee754/s_atanf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_atanf.c: ...here. + * sysdeps/libm-ieee754/s_cbrtf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_cbrtf.c: ...here. + * sysdeps/libm-ieee754/s_ceilf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_ceilf.c: ...here. + * sysdeps/libm-ieee754/s_copysignf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_copysignf.c: ...here. + * sysdeps/libm-ieee754/s_cosf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_cosf.c: ...here. + * sysdeps/libm-ieee754/s_erff.c: Moved to ... + * sysdeps/ieee754/flt-32/s_erff.c: ...here. + * sysdeps/libm-ieee754/s_exp2f.c: Moved to ... + * sysdeps/ieee754/flt-32/s_exp2f.c: ...here. + * sysdeps/libm-ieee754/s_expm1f.c: Moved to ... + * sysdeps/ieee754/flt-32/s_expm1f.c: ...here. + * sysdeps/libm-ieee754/s_fabsf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_fabsf.c: ...here. + * sysdeps/libm-ieee754/s_finitef.c: Moved to ... + * sysdeps/ieee754/flt-32/s_finitef.c: ...here. + * sysdeps/libm-ieee754/s_floorf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_floorf.c: ...here. + * sysdeps/libm-ieee754/s_fpclassifyf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_fpclassifyf.c: ...here. + * sysdeps/libm-ieee754/s_frexpf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_frexpf.c: ...here. + * sysdeps/libm-ieee754/s_ilogbf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_ilogbf.c: ...here. + * sysdeps/libm-ieee754/s_isinff.c: Moved to ... + * sysdeps/ieee754/flt-32/s_isinff.c: ...here. + * sysdeps/libm-ieee754/s_isnanf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_isnanf.c: ...here. + * sysdeps/libm-ieee754/s_llrintf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_llrintf.c: ...here. + * sysdeps/libm-ieee754/s_llroundf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_llroundf.c: ...here. + * sysdeps/libm-ieee754/s_log1pf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_log1pf.c: ...here. + * sysdeps/libm-ieee754/s_log2f.c: Moved to ... + * sysdeps/ieee754/flt-32/s_log2f.c: ...here. + * sysdeps/libm-ieee754/s_logbf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_logbf.c: ...here. + * sysdeps/libm-ieee754/s_lrintf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_lrintf.c: ...here. + * sysdeps/libm-ieee754/s_lroundf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_lroundf.c: ...here. + * sysdeps/libm-ieee754/s_modff.c: Moved to ... + * sysdeps/ieee754/flt-32/s_modff.c: ...here. + * sysdeps/libm-ieee754/s_nearbyintf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_nearbyintf.c: ...here. + * sysdeps/libm-ieee754/s_nextafterf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_nextafterf.c: ...here. + * sysdeps/libm-ieee754/s_remquof.c: Moved to ... + * sysdeps/ieee754/flt-32/s_remquof.c: ...here. + * sysdeps/libm-ieee754/s_rintf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_rintf.c: ...here. + * sysdeps/libm-ieee754/s_roundf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_roundf.c: ...here. + * sysdeps/libm-ieee754/s_scalbnf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_scalbnf.c: ...here. + * sysdeps/libm-ieee754/s_signbitf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_signbitf.c: ...here. + * sysdeps/libm-ieee754/s_sincosf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_sincosf.c: ...here. + * sysdeps/libm-ieee754/s_sinf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_sinf.c: ...here. + * sysdeps/libm-ieee754/s_tanf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_tanf.c: ...here. + * sysdeps/libm-ieee754/s_tanhf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_tanhf.c: ...here. + * sysdeps/libm-ieee754/s_truncf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_truncf.c: ...here. + * sysdeps/libm-ieee754/t_exp2f.h: Moved to ... + * sysdeps/ieee754/flt-32/t_exp2f.h: ...here. + * sysdeps/libm-ieee754/w_expf.c: Moved to ... + * sysdeps/ieee754/flt-32/w_expf.c: ...here. + * sysdeps/libm-ieee754/e_acoshl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_acoshl.c: ...here. + * sysdeps/libm-ieee754/e_atan2l.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_atan2l.c: ...here. + * sysdeps/libm-ieee754/e_atanhl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_atanhl.c: ...here. + * sysdeps/libm-ieee754/e_coshl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_coshl.c: ...here. + * sysdeps/libm-ieee754/e_gammal_r.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_gammal_r.c: ...here. + * sysdeps/libm-ieee754/e_hypotl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_hypotl.c: ...here. + * sysdeps/libm-ieee754/e_remainderl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_remainderl.c: ...here. + * sysdeps/libm-ieee754/e_sinhl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/e_sinhl.c: ...here. + * sysdeps/libm-ieee754/s_asinhl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_asinhl.c: ...here. + * sysdeps/libm-ieee754/s_cbrtl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_cbrtl.c: ...here. + * sysdeps/libm-ieee754/s_ceill.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_ceill.c: ...here. + * sysdeps/libm-ieee754/s_copysignl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_copysignl.c: ...here. + * sysdeps/libm-ieee754/s_cosl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_cosl.c: ...here. + * sysdeps/libm-ieee754/s_fabsl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_fabsl.c: ...here. + * sysdeps/libm-ieee754/s_finitel.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_finitel.c: ...here. + * sysdeps/libm-ieee754/s_floorl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_floorl.c: ...here. + * sysdeps/libm-ieee754/s_fpclassifyl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_fpclassifyl.c: ...here. + * sysdeps/libm-ieee754/s_frexpl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_frexpl.c: ...here. + * sysdeps/libm-ieee754/s_ilogbl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_ilogbl.c: ...here. + * sysdeps/libm-ieee754/s_llrintl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_llrintl.c: ...here. + * sysdeps/libm-ieee754/s_llroundl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_llroundl.c: ...here. + * sysdeps/libm-ieee754/s_logbl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_logbl.c: ...here. + * sysdeps/libm-ieee754/s_lrintl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_lrintl.c: ...here. + * sysdeps/libm-ieee754/s_lroundl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_lroundl.c: ...here. + * sysdeps/libm-ieee754/s_modfl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_modfl.c: ...here. + (__modfl): IEEE 854 long doubles should use SET_LDOUBLE_WORDS, not + INSERT_WORDS. + * sysdeps/libm-ieee754/s_nearbyintl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_nearbyintl.c: ...here. + (__nearbyintl): Fix for exponents 2^30. + * sysdeps/libm-ieee754/s_remquol.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_remquol.c: ...here. + * sysdeps/libm-ieee754/s_rintl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_rintl.c: ...here. + (__rintl): Fix for exponents 2^30. + * sysdeps/libm-ieee754/s_roundl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_roundl.c: ...here. + * sysdeps/libm-ieee754/s_scalbnl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_scalbnl.c: ...here. + (__scalbnl): Fix exponent for subnormal result. + * sysdeps/libm-ieee754/s_signbitl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_signbitl.c: ...here. + * sysdeps/libm-ieee754/s_sincosl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_sincosl.c: ...here. + * sysdeps/libm-ieee754/s_sinl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_sinl.c: ...here. + * sysdeps/libm-ieee754/s_tanhl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_tanhl.c: ...here. + * sysdeps/libm-ieee754/s_tanl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_tanl.c: ...here. + * sysdeps/libm-ieee754/s_truncl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_truncl.c: ...here. + * sysdeps/libm-ieee754/w_expl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/w_expl.c: ...here. + * sysdeps/libm-i387/i686/s_fminl.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fminl.S: ...here. + * sysdeps/libm-i387/s_scalblnf.c: Moved to ... + * sysdeps/i386/fpu/s_scalblnf.c: ...here. + * sysdeps/libm-ieee754/s_scalblnf.c: Moved to ... + * sysdeps/ieee754/flt-32/s_scalblnf.c: ...here. + * sysdeps/libm-i387/i686/s_fdiml.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fdiml.S: ...here. + * sysdeps/libm-i387/e_rem_pio2f.c: Moved to ... + * sysdeps/i386/fpu/e_rem_pio2f.c: ...here. + * sysdeps/libm-ieee754/e_rem_pio2f.c: Moved to ... + * sysdeps/ieee754/flt-32/e_rem_pio2f.c: ...here. + * sysdeps/libm-i387/i686/s_fmin.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fmin.S: ...here. + * sysdeps/libm-i387/k_rem_pio2.c: Moved to ... + * sysdeps/i386/fpu/k_rem_pio2.c: ...here. + * sysdeps/libm-ieee754/k_rem_pio2.c: Moved to ... + * sysdeps/ieee754/dbl-64/k_rem_pio2.c: ...here. + * sysdeps/libm-i387/k_rem_pio2f.c: Moved to ... + * sysdeps/i386/fpu/k_rem_pio2f.c: ...here. + * sysdeps/libm-ieee754/k_rem_pio2f.c: Moved to ... + * sysdeps/ieee754/flt-32/k_rem_pio2f.c: ...here. + * sysdeps/libm-i387/s_scalbln.c: Moved to ... + * sysdeps/i386/fpu/s_scalbln.c: ...here. + * sysdeps/libm-ieee754/s_scalbln.c: Moved to ... + * sysdeps/ieee754/dbl-64/s_scalbln.c: ...here. + * sysdeps/libm-i387/i686/s_fmax.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fmax.S: ...here. + * sysdeps/libm-i387/t_exp.c: Moved to ... + * sysdeps/i386/fpu/t_exp.c: ...here. + * sysdeps/libm-ieee754/t_exp.c: Moved to ... + * sysdeps/ieee754/dbl-64/t_exp.c: ...here. + * sysdeps/libm-i387/e_rem_pio2.c: Moved to ... + * sysdeps/i386/fpu/e_rem_pio2.c: ...here. + * sysdeps/libm-ieee754/e_rem_pio2.c: Moved to ... + * sysdeps/ieee754/dbl-64/e_rem_pio2.c: ...here. + * sysdeps/libm-i387/s_isinfl.c: Moved to ... + * sysdeps/i386/fpu/s_isinfl.c: ...here. + * sysdeps/libm-ieee754/s_isinfl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_isinfl.c: ...here. + * sysdeps/libm-i387/s_scalblnl.c: Moved to ... + * sysdeps/i386/fpu/s_scalblnl.c: ...here. + * sysdeps/libm-ieee754/s_scalblnl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_scalblnl.c: ...here. + Fix exponent for subnormal result. + * sysdeps/libm-ieee754/s_nexttowardl.c: Moved to ... + * math/s_nexttowardl.c: ...here. + * sysdeps/libm-i387/i686/s_fmaxf.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fmaxf.S: ...here. + * sysdeps/libm-i387/s_isnanl.c: Moved to ... + * sysdeps/i386/fpu/s_isnanl.c: ...here. + * sysdeps/libm-ieee754/s_isnanl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_isnanl.c: ...here. + Comment above function says it returns 0 or 1, but it used to return + 0 or -1. + * sysdeps/libm-i387/i686/s_fminf.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fminf.S: ...here. + * sysdeps/libm-i387/i686/s_fdim.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fdim.S: ...here. + * sysdeps/libm-i387/i686/s_fdimf.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fdimf.S: ...here. + * sysdeps/libm-i387/i686/s_fmaxl.S: Moved to ... + * sysdeps/i386/i686/fpu/s_fmaxl.S: ...here. + * sysdeps/libm-ieee754/s_nexttoward.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_nexttoward.c: ...here. + Cannot compare exponents with different biases without adjusting. + * sysdeps/libm-ieee754/s_nexttowardf.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_nexttowardf.c: ...here. + Cannot compare exponents with different biases without adjusting. + * sysdeps/libm-i387/s_nextafterl.c: Moved to ... + * sysdeps/i386/fpu/s_nextafterl.c: ...here. + * sysdeps/libm-ieee754/s_nextafterl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/s_nextafterl.c: ...here. + * sysdeps/ieee754/ldbl2mpn.c: Moved to ... + * sysdeps/ieee754/ldbl-96/ldbl2mpn.c: ...here. + Removed __NO_LONG_DOUBLE_MATH ifndef around the whole file. + * sysdeps/ieee754/mpn2ldbl.c: Moved to ... + * sysdeps/ieee754/ldbl-96/mpn2ldbl.c: ...here. + Removed __NO_LONG_DOUBLE_MATH ifndef around the whole file. + * sysdeps/libm-ieee754/Dist: Split into ... + * sysdeps/ieee754/dbl-64/Dist: ...this and ... + * sysdeps/ieee754/flt-32/Dist: ...this file. + + * sysdeps/ieee754/flt-32/Implies: New file. + * sysdeps/ieee754/dbl-64/Implies: New file. + * sysdeps/ieee754/dbl-64/math_ldbl.h: New file. + * sysdeps/ieee754/dbl-64/s_nexttoward.c: New file. + * sysdeps/ieee754/dbl-64/s_nexttowardf.c: New file. + * sysdeps/ieee754/dbl-64/strtold.c: New file. + * sysdeps/ieee754/dbl-64/mpn2ldbl.c: New file. + * sysdeps/ieee754/dbl-64/ldbl2mpn.c: New file. + * sysdeps/ieee754/ldbl-96/Implies: New file. + * sysdeps/ieee754/ldbl-96/math_ldbl.h: New file. + * sysdeps/ieee754/ldbl-96/strtold.c: New file. + * sysdeps/ieee754/ldbl-96/printf_fphex.c: New file. + * sysdeps/ieee754/ldbl-128/Implies: New file. + * sysdeps/ieee754/ldbl-128/s_sinl.c: New file. + * sysdeps/ieee754/ldbl-128/s_ceill.c: New file. + * sysdeps/ieee754/ldbl-128/e_remainderl.c: New file. + * sysdeps/ieee754/ldbl-128/ieee754.h: New file. + * sysdeps/ieee754/ldbl-128/e_atan2l.c: New file. + * sysdeps/ieee754/ldbl-128/s_finitel.c: New file. + * sysdeps/ieee754/ldbl-128/s_roundl.c: New file. + * sysdeps/ieee754/ldbl-128/s_llrintl.c: New file. + * sysdeps/ieee754/ldbl-128/e_gammal_r.c: New file. + * sysdeps/ieee754/ldbl-128/s_llroundl.c: New file. + * sysdeps/ieee754/ldbl-128/s_sincosl.c: New file. + * sysdeps/ieee754/ldbl-128/s_cosl.c: New file. + * sysdeps/ieee754/ldbl-128/s_fpclassifyl.c: New file. + * sysdeps/ieee754/ldbl-128/s_ilogbl.c: New file. + * sysdeps/ieee754/ldbl-128/s_floorl.c: New file. + * sysdeps/ieee754/ldbl-128/s_logbl.c: New file. + * sysdeps/ieee754/ldbl-128/s_scalbnl.c: New file. + * sysdeps/ieee754/ldbl-128/s_remquol.c: New file. + * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: New file. + * sysdeps/ieee754/ldbl-128/s_tanl.c: New file. + * sysdeps/ieee754/ldbl-128/s_rintl.c: New file. + * sysdeps/ieee754/ldbl-128/e_acoshl.c: New file. + * sysdeps/ieee754/ldbl-128/s_lroundl.c: New file. + * sysdeps/ieee754/ldbl-128/s_signbitl.c: New file. + * sysdeps/ieee754/ldbl-128/s_copysignl.c: New file. + * sysdeps/ieee754/ldbl-128/s_fabsl.c: New file. + * sysdeps/ieee754/ldbl-128/s_frexpl.c: New file. + * sysdeps/ieee754/ldbl-128/s_truncl.c: New file. + * sysdeps/ieee754/ldbl-128/s_modfl.c: New file. + * sysdeps/ieee754/ldbl-128/s_lrintl.c: New file. + * sysdeps/ieee754/ldbl-128/s_isinfl.c: New file. + * sysdeps/ieee754/ldbl-128/s_scalblnl.c: New file. + * sysdeps/ieee754/ldbl-128/e_fmodl.c: New file. + * sysdeps/ieee754/ldbl-128/s_isnanl.c: New file. + * sysdeps/ieee754/ldbl-128/math_ldbl.h: New file. + * sysdeps/ieee754/ldbl-128/strtold.c: New file. + * sysdeps/ieee754/ldbl-128/s_nextafterl.c: New file. + * sysdeps/ieee754/ldbl-128/s_nexttoward.c: New file. + * sysdeps/ieee754/ldbl-128/s_nexttowardf.c: New file. + * sysdeps/ieee754/ldbl-128/printf_fphex.c: New file. + * sysdeps/ieee754/ldbl-128/mpn2ldbl.c: New file. + * sysdeps/ieee754/ldbl-128/ldbl2mpn.c: New file. + + * math/machine/endian.h: Remove. + * sysdeps/i386/fpu/Implies: Remove. + * sysdeps/ieee754/Implies: Remove. + + * math/math_private.h: Move long double macros to math_ldbl.h + header. + 1999-07-12 Ulrich Drepper <drepper@cygnus.com> * sysdeps/posix/getaddrinfo.c (gaih_inet): For non-passive diff --git a/math/machine/endian.h b/math/machine/endian.h deleted file mode 100644 index 8880456..0000000 --- a/math/machine/endian.h +++ /dev/null @@ -1,4 +0,0 @@ -/* math_private.h wants to include <machine/endian.h>; we provide this - file so it can, leaving math_private.h unmodified from the original. */ - -#include <endian.h> diff --git a/math/math_private.h b/math/math_private.h index 906b1da..35e3e4e 100644 --- a/math/math_private.h +++ b/math/math_private.h @@ -17,7 +17,7 @@ #ifndef _MATH_PRIVATE_H_ #define _MATH_PRIVATE_H_ -#include <machine/endian.h> +#include <endian.h> #include <sys/types.h> /* The original fdlibm code used statements like: @@ -147,101 +147,8 @@ do { \ (d) = sf_u.value; \ } while (0) -/* A union which permits us to convert between a long double and - three 32 bit ints. */ - -#if __FLOAT_WORD_ORDER == BIG_ENDIAN - -typedef union -{ - long double value; - struct - { - unsigned int sign_exponent:16; - unsigned int empty:16; - u_int32_t msw; - u_int32_t lsw; - } parts; -} ieee_long_double_shape_type; - -#endif - -#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN - -typedef union -{ - long double value; - struct - { - u_int32_t lsw; - u_int32_t msw; - unsigned int sign_exponent:16; - unsigned int empty:16; - } parts; -} ieee_long_double_shape_type; - -#endif - -/* Get three 32 bit ints from a double. */ - -#define GET_LDOUBLE_WORDS(exp,ix0,ix1,d) \ -do { \ - ieee_long_double_shape_type ew_u; \ - ew_u.value = (d); \ - (exp) = ew_u.parts.sign_exponent; \ - (ix0) = ew_u.parts.msw; \ - (ix1) = ew_u.parts.lsw; \ -} while (0) - -/* Set a double from two 32 bit ints. */ - -#define SET_LDOUBLE_WORDS(d,exp,ix0,ix1) \ -do { \ - ieee_long_double_shape_type iw_u; \ - iw_u.parts.sign_exponent = (exp); \ - iw_u.parts.msw = (ix0); \ - iw_u.parts.lsw = (ix1); \ - (d) = iw_u.value; \ -} while (0) - -/* Get the more significant 32 bits of a long double mantissa. */ - -#define GET_LDOUBLE_MSW(v,d) \ -do { \ - ieee_long_double_shape_type sh_u; \ - sh_u.value = (d); \ - (v) = sh_u.parts.msw; \ -} while (0) - -/* Set the more significant 32 bits of a long double mantissa from an int. */ - -#define SET_LDOUBLE_MSW(d,v) \ -do { \ - ieee_long_double_shape_type sh_u; \ - sh_u.value = (d); \ - sh_u.parts.msw = (v); \ - (d) = sh_u.value; \ -} while (0) - -/* Get int from the exponent of a long double. */ - -#define GET_LDOUBLE_EXP(exp,d) \ -do { \ - ieee_long_double_shape_type ge_u; \ - ge_u.value = (d); \ - (exp) = ge_u.parts.sign_exponent; \ -} while (0) - -/* Set exponent of a long double from an int. */ - -#define SET_LDOUBLE_EXP(d,exp) \ -do { \ - ieee_long_double_shape_type se_u; \ - se_u.value = (d); \ - se_u.parts.sign_exponent = (exp); \ - (d) = se_u.value; \ -} while (0) - +/* Get long double macros from a separate header. */ +#include <math_ldbl.h> /* ieee style elementary functions */ extern double __ieee754_sqrt __P((double)); diff --git a/sysdeps/libm-ieee754/w_acos.c b/math/w_acos.c index 5a1158e..5a1158e 100644 --- a/sysdeps/libm-ieee754/w_acos.c +++ b/math/w_acos.c diff --git a/sysdeps/libm-ieee754/w_acosf.c b/math/w_acosf.c index 28260dd..28260dd 100644 --- a/sysdeps/libm-ieee754/w_acosf.c +++ b/math/w_acosf.c diff --git a/sysdeps/libm-ieee754/w_acosh.c b/math/w_acosh.c index 2b5d60f..2b5d60f 100644 --- a/sysdeps/libm-ieee754/w_acosh.c +++ b/math/w_acosh.c diff --git a/sysdeps/libm-ieee754/w_acoshf.c b/math/w_acoshf.c index f701983..f701983 100644 --- a/sysdeps/libm-ieee754/w_acoshf.c +++ b/math/w_acoshf.c diff --git a/sysdeps/libm-ieee754/w_acoshl.c b/math/w_acoshl.c index a37d4c1..a37d4c1 100644 --- a/sysdeps/libm-ieee754/w_acoshl.c +++ b/math/w_acoshl.c diff --git a/sysdeps/libm-ieee754/w_acosl.c b/math/w_acosl.c index cd9cecf..cd9cecf 100644 --- a/sysdeps/libm-ieee754/w_acosl.c +++ b/math/w_acosl.c diff --git a/sysdeps/libm-ieee754/w_asin.c b/math/w_asin.c index a7ca4ef..a7ca4ef 100644 --- a/sysdeps/libm-ieee754/w_asin.c +++ b/math/w_asin.c diff --git a/sysdeps/libm-ieee754/w_asinf.c b/math/w_asinf.c index d7f7a25..d7f7a25 100644 --- a/sysdeps/libm-ieee754/w_asinf.c +++ b/math/w_asinf.c diff --git a/sysdeps/libm-ieee754/w_asinl.c b/math/w_asinl.c index 0ac3038..0ac3038 100644 --- a/sysdeps/libm-ieee754/w_asinl.c +++ b/math/w_asinl.c diff --git a/sysdeps/libm-ieee754/w_atan2.c b/math/w_atan2.c index 801baa2..801baa2 100644 --- a/sysdeps/libm-ieee754/w_atan2.c +++ b/math/w_atan2.c diff --git a/sysdeps/libm-ieee754/w_atan2f.c b/math/w_atan2f.c index 09caa06..09caa06 100644 --- a/sysdeps/libm-ieee754/w_atan2f.c +++ b/math/w_atan2f.c diff --git a/sysdeps/libm-ieee754/w_atan2l.c b/math/w_atan2l.c index 2897c8c..2897c8c 100644 --- a/sysdeps/libm-ieee754/w_atan2l.c +++ b/math/w_atan2l.c diff --git a/sysdeps/libm-ieee754/w_atanh.c b/math/w_atanh.c index e7995b1..e7995b1 100644 --- a/sysdeps/libm-ieee754/w_atanh.c +++ b/math/w_atanh.c diff --git a/sysdeps/libm-ieee754/w_atanhf.c b/math/w_atanhf.c index 0b24f2c..0b24f2c 100644 --- a/sysdeps/libm-ieee754/w_atanhf.c +++ b/math/w_atanhf.c diff --git a/sysdeps/libm-ieee754/w_atanhl.c b/math/w_atanhl.c index d675fc6..d675fc6 100644 --- a/sysdeps/libm-ieee754/w_atanhl.c +++ b/math/w_atanhl.c diff --git a/sysdeps/libm-ieee754/w_cosh.c b/math/w_cosh.c index 8db25c8..8db25c8 100644 --- a/sysdeps/libm-ieee754/w_cosh.c +++ b/math/w_cosh.c diff --git a/sysdeps/libm-ieee754/w_coshf.c b/math/w_coshf.c index 53ca841..53ca841 100644 --- a/sysdeps/libm-ieee754/w_coshf.c +++ b/math/w_coshf.c diff --git a/sysdeps/libm-ieee754/w_coshl.c b/math/w_coshl.c index 343d572..343d572 100644 --- a/sysdeps/libm-ieee754/w_coshl.c +++ b/math/w_coshl.c diff --git a/sysdeps/libm-ieee754/w_drem.c b/math/w_drem.c index 9e2b1e7..9e2b1e7 100644 --- a/sysdeps/libm-ieee754/w_drem.c +++ b/math/w_drem.c diff --git a/sysdeps/libm-ieee754/w_dremf.c b/math/w_dremf.c index b740ea3..b740ea3 100644 --- a/sysdeps/libm-ieee754/w_dremf.c +++ b/math/w_dremf.c diff --git a/sysdeps/libm-ieee754/w_dreml.c b/math/w_dreml.c index aa73eed..aa73eed 100644 --- a/sysdeps/libm-ieee754/w_dreml.c +++ b/math/w_dreml.c diff --git a/sysdeps/libm-ieee754/w_exp10.c b/math/w_exp10.c index bf0d361..bf0d361 100644 --- a/sysdeps/libm-ieee754/w_exp10.c +++ b/math/w_exp10.c diff --git a/sysdeps/libm-ieee754/w_exp10f.c b/math/w_exp10f.c index f78be79..f78be79 100644 --- a/sysdeps/libm-ieee754/w_exp10f.c +++ b/math/w_exp10f.c diff --git a/sysdeps/libm-ieee754/w_exp10l.c b/math/w_exp10l.c index 7117873..7117873 100644 --- a/sysdeps/libm-ieee754/w_exp10l.c +++ b/math/w_exp10l.c diff --git a/sysdeps/libm-ieee754/w_exp2.c b/math/w_exp2.c index 126aa09..126aa09 100644 --- a/sysdeps/libm-ieee754/w_exp2.c +++ b/math/w_exp2.c diff --git a/sysdeps/libm-ieee754/w_exp2f.c b/math/w_exp2f.c index d2c340d..d2c340d 100644 --- a/sysdeps/libm-ieee754/w_exp2f.c +++ b/math/w_exp2f.c diff --git a/sysdeps/libm-ieee754/w_exp2l.c b/math/w_exp2l.c index 965e9bf..965e9bf 100644 --- a/sysdeps/libm-ieee754/w_exp2l.c +++ b/math/w_exp2l.c diff --git a/sysdeps/libm-ieee754/w_fmod.c b/math/w_fmod.c index 0ceeb98..0ceeb98 100644 --- a/sysdeps/libm-ieee754/w_fmod.c +++ b/math/w_fmod.c diff --git a/sysdeps/libm-ieee754/w_fmodf.c b/math/w_fmodf.c index 9afe5dd..9afe5dd 100644 --- a/sysdeps/libm-ieee754/w_fmodf.c +++ b/math/w_fmodf.c diff --git a/sysdeps/libm-ieee754/w_fmodl.c b/math/w_fmodl.c index 71ed4a9..71ed4a9 100644 --- a/sysdeps/libm-ieee754/w_fmodl.c +++ b/math/w_fmodl.c diff --git a/sysdeps/libm-ieee754/w_hypot.c b/math/w_hypot.c index e91db17..e91db17 100644 --- a/sysdeps/libm-ieee754/w_hypot.c +++ b/math/w_hypot.c diff --git a/sysdeps/libm-ieee754/w_hypotf.c b/math/w_hypotf.c index a7e5c1f..a7e5c1f 100644 --- a/sysdeps/libm-ieee754/w_hypotf.c +++ b/math/w_hypotf.c diff --git a/sysdeps/libm-ieee754/w_hypotl.c b/math/w_hypotl.c index 2ec215f..2ec215f 100644 --- a/sysdeps/libm-ieee754/w_hypotl.c +++ b/math/w_hypotl.c diff --git a/sysdeps/libm-ieee754/w_j0.c b/math/w_j0.c index 5a01876..5a01876 100644 --- a/sysdeps/libm-ieee754/w_j0.c +++ b/math/w_j0.c diff --git a/sysdeps/libm-ieee754/w_j0f.c b/math/w_j0f.c index 32e2eeb..32e2eeb 100644 --- a/sysdeps/libm-ieee754/w_j0f.c +++ b/math/w_j0f.c diff --git a/sysdeps/libm-ieee754/w_j0l.c b/math/w_j0l.c index b74d9dd..b74d9dd 100644 --- a/sysdeps/libm-ieee754/w_j0l.c +++ b/math/w_j0l.c diff --git a/sysdeps/libm-ieee754/w_j1.c b/math/w_j1.c index 39fe854..39fe854 100644 --- a/sysdeps/libm-ieee754/w_j1.c +++ b/math/w_j1.c diff --git a/sysdeps/libm-ieee754/w_j1f.c b/math/w_j1f.c index 2a7c8db..2a7c8db 100644 --- a/sysdeps/libm-ieee754/w_j1f.c +++ b/math/w_j1f.c diff --git a/sysdeps/libm-ieee754/w_j1l.c b/math/w_j1l.c index 49a486c..49a486c 100644 --- a/sysdeps/libm-ieee754/w_j1l.c +++ b/math/w_j1l.c diff --git a/sysdeps/libm-ieee754/w_jn.c b/math/w_jn.c index 85fc383..85fc383 100644 --- a/sysdeps/libm-ieee754/w_jn.c +++ b/math/w_jn.c diff --git a/sysdeps/libm-ieee754/w_jnf.c b/math/w_jnf.c index 63ad335..63ad335 100644 --- a/sysdeps/libm-ieee754/w_jnf.c +++ b/math/w_jnf.c diff --git a/sysdeps/libm-ieee754/w_jnl.c b/math/w_jnl.c index 866e3cd..866e3cd 100644 --- a/sysdeps/libm-ieee754/w_jnl.c +++ b/math/w_jnl.c diff --git a/sysdeps/libm-ieee754/w_lgamma.c b/math/w_lgamma.c index 0cc62a1..0cc62a1 100644 --- a/sysdeps/libm-ieee754/w_lgamma.c +++ b/math/w_lgamma.c diff --git a/sysdeps/libm-ieee754/w_lgamma_r.c b/math/w_lgamma_r.c index f3e7d82..f3e7d82 100644 --- a/sysdeps/libm-ieee754/w_lgamma_r.c +++ b/math/w_lgamma_r.c diff --git a/sysdeps/libm-ieee754/w_lgammaf.c b/math/w_lgammaf.c index 4c64aa4..4c64aa4 100644 --- a/sysdeps/libm-ieee754/w_lgammaf.c +++ b/math/w_lgammaf.c diff --git a/sysdeps/libm-ieee754/w_lgammaf_r.c b/math/w_lgammaf_r.c index 66962ac..66962ac 100644 --- a/sysdeps/libm-ieee754/w_lgammaf_r.c +++ b/math/w_lgammaf_r.c diff --git a/sysdeps/libm-ieee754/w_lgammal.c b/math/w_lgammal.c index 41104e4..41104e4 100644 --- a/sysdeps/libm-ieee754/w_lgammal.c +++ b/math/w_lgammal.c diff --git a/sysdeps/libm-ieee754/w_lgammal_r.c b/math/w_lgammal_r.c index 71f5c00..71f5c00 100644 --- a/sysdeps/libm-ieee754/w_lgammal_r.c +++ b/math/w_lgammal_r.c diff --git a/sysdeps/libm-ieee754/w_log.c b/math/w_log.c index 5f0af79..5f0af79 100644 --- a/sysdeps/libm-ieee754/w_log.c +++ b/math/w_log.c diff --git a/sysdeps/libm-ieee754/w_log10.c b/math/w_log10.c index 8a0a70b..8a0a70b 100644 --- a/sysdeps/libm-ieee754/w_log10.c +++ b/math/w_log10.c diff --git a/sysdeps/libm-ieee754/w_log10f.c b/math/w_log10f.c index f90cb0c..f90cb0c 100644 --- a/sysdeps/libm-ieee754/w_log10f.c +++ b/math/w_log10f.c diff --git a/sysdeps/libm-ieee754/w_log10l.c b/math/w_log10l.c index 0d08616..0d08616 100644 --- a/sysdeps/libm-ieee754/w_log10l.c +++ b/math/w_log10l.c diff --git a/sysdeps/libm-ieee754/w_logf.c b/math/w_logf.c index 9eabe4b..9eabe4b 100644 --- a/sysdeps/libm-ieee754/w_logf.c +++ b/math/w_logf.c diff --git a/sysdeps/libm-ieee754/w_logl.c b/math/w_logl.c index bb979c2..bb979c2 100644 --- a/sysdeps/libm-ieee754/w_logl.c +++ b/math/w_logl.c diff --git a/sysdeps/libm-ieee754/w_pow.c b/math/w_pow.c index 5850651..5850651 100644 --- a/sysdeps/libm-ieee754/w_pow.c +++ b/math/w_pow.c diff --git a/sysdeps/libm-ieee754/w_powf.c b/math/w_powf.c index 32196fd..32196fd 100644 --- a/sysdeps/libm-ieee754/w_powf.c +++ b/math/w_powf.c diff --git a/sysdeps/libm-ieee754/w_powl.c b/math/w_powl.c index 17feb9f..17feb9f 100644 --- a/sysdeps/libm-ieee754/w_powl.c +++ b/math/w_powl.c diff --git a/sysdeps/libm-ieee754/w_remainder.c b/math/w_remainder.c index d85a3fe..d85a3fe 100644 --- a/sysdeps/libm-ieee754/w_remainder.c +++ b/math/w_remainder.c diff --git a/sysdeps/libm-ieee754/w_remainderf.c b/math/w_remainderf.c index 58255f5..58255f5 100644 --- a/sysdeps/libm-ieee754/w_remainderf.c +++ b/math/w_remainderf.c diff --git a/sysdeps/libm-ieee754/w_remainderl.c b/math/w_remainderl.c index 2841401..2841401 100644 --- a/sysdeps/libm-ieee754/w_remainderl.c +++ b/math/w_remainderl.c diff --git a/sysdeps/libm-ieee754/w_scalb.c b/math/w_scalb.c index e5c407a..e5c407a 100644 --- a/sysdeps/libm-ieee754/w_scalb.c +++ b/math/w_scalb.c diff --git a/sysdeps/libm-ieee754/w_scalbf.c b/math/w_scalbf.c index 488a717..488a717 100644 --- a/sysdeps/libm-ieee754/w_scalbf.c +++ b/math/w_scalbf.c diff --git a/sysdeps/libm-ieee754/w_scalbl.c b/math/w_scalbl.c index 3ca8d96..3ca8d96 100644 --- a/sysdeps/libm-ieee754/w_scalbl.c +++ b/math/w_scalbl.c diff --git a/sysdeps/libm-ieee754/w_sinh.c b/math/w_sinh.c index 9b34cd1..9b34cd1 100644 --- a/sysdeps/libm-ieee754/w_sinh.c +++ b/math/w_sinh.c diff --git a/sysdeps/libm-ieee754/w_sinhf.c b/math/w_sinhf.c index a69cf30..a69cf30 100644 --- a/sysdeps/libm-ieee754/w_sinhf.c +++ b/math/w_sinhf.c diff --git a/sysdeps/libm-ieee754/w_sinhl.c b/math/w_sinhl.c index 3e93cc5..3e93cc5 100644 --- a/sysdeps/libm-ieee754/w_sinhl.c +++ b/math/w_sinhl.c diff --git a/sysdeps/libm-ieee754/w_sqrt.c b/math/w_sqrt.c index be15d95..be15d95 100644 --- a/sysdeps/libm-ieee754/w_sqrt.c +++ b/math/w_sqrt.c diff --git a/sysdeps/libm-ieee754/w_sqrtf.c b/math/w_sqrtf.c index f5ccc73..f5ccc73 100644 --- a/sysdeps/libm-ieee754/w_sqrtf.c +++ b/math/w_sqrtf.c diff --git a/sysdeps/libm-ieee754/w_sqrtl.c b/math/w_sqrtl.c index 5873ce9..5873ce9 100644 --- a/sysdeps/libm-ieee754/w_sqrtl.c +++ b/math/w_sqrtl.c diff --git a/sysdeps/libm-ieee754/w_tgamma.c b/math/w_tgamma.c index 2adbc2e..2adbc2e 100644 --- a/sysdeps/libm-ieee754/w_tgamma.c +++ b/math/w_tgamma.c diff --git a/sysdeps/libm-ieee754/w_tgammaf.c b/math/w_tgammaf.c index 152f4be..152f4be 100644 --- a/sysdeps/libm-ieee754/w_tgammaf.c +++ b/math/w_tgammaf.c diff --git a/sysdeps/libm-ieee754/w_tgammal.c b/math/w_tgammal.c index 9efce2b..9efce2b 100644 --- a/sysdeps/libm-ieee754/w_tgammal.c +++ b/math/w_tgammal.c diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c index 1b550ab..0a2efb7 100644 --- a/stdio-common/printf_fp.c +++ b/stdio-common/printf_fp.c @@ -439,9 +439,28 @@ __printf_fp (FILE *fp, { if (scalesize == 0) { - tmpsize = powers->arraysize; - memcpy (tmp, &__tens[powers->arrayoff], - tmpsize * sizeof (mp_limb_t)); +#ifndef __NO_LONG_DOUBLE_MATH + if (LDBL_MANT_DIG > _FPIO_CONST_OFFSET * BITS_PER_MP_LIMB + && info->is_long_double) + { +#define _FPIO_CONST_SHIFT \ + (((LDBL_MANT_DIG + BITS_PER_MP_LIMB - 1) / BITS_PER_MP_LIMB) \ + - _FPIO_CONST_OFFSET) + /* 64bit const offset is not enough for + IEEE quad long double. */ + tmpsize = powers->arraysize + _FPIO_CONST_SHIFT; + memcpy (tmp + _FPIO_CONST_SHIFT, + &__tens[powers->arrayoff], + tmpsize * sizeof (mp_limb_t)); + MPN_ZERO (tmp, _FPIO_CONST_SHIFT); + } + else +#endif + { + tmpsize = powers->arraysize; + memcpy (tmp, &__tens[powers->arrayoff], + tmpsize * sizeof (mp_limb_t)); + } } else { diff --git a/sysdeps/alpha/Implies b/sysdeps/alpha/Implies index 37fee79..2c6af5b 100644 --- a/sysdeps/alpha/Implies +++ b/sysdeps/alpha/Implies @@ -1,3 +1,4 @@ wordsize-64 -# Alpha uses IEEE 754 floating point. -ieee754 +# Alpha uses IEEE 754 single and double precision floating point. +ieee754/flt-32 +ieee754/dbl-64 diff --git a/sysdeps/arm/Implies b/sysdeps/arm/Implies index d6acf04..780c4e2 100644 --- a/sysdeps/arm/Implies +++ b/sysdeps/arm/Implies @@ -1,2 +1,3 @@ wordsize-32 -ieee754 +ieee754/flt-32 +ieee754/dbl-64 diff --git a/sysdeps/generic/e_atanhl.c b/sysdeps/generic/e_atanhl.c new file mode 100644 index 0000000..625d42d --- /dev/null +++ b/sysdeps/generic/e_atanhl.c @@ -0,0 +1,14 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__ieee754_atanhl (long double x) +{ + fputs ("__ieee754_atanhl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +stub_warning (__ieee754_atanhl) +#include <stub-tag.h> diff --git a/sysdeps/generic/e_coshl.c b/sysdeps/generic/e_coshl.c new file mode 100644 index 0000000..0da319b --- /dev/null +++ b/sysdeps/generic/e_coshl.c @@ -0,0 +1,14 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__ieee754_coshl (long double x) +{ + fputs ("__ieee754_coshl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +stub_warning (__ieee754_coshl) +#include <stub-tag.h> diff --git a/sysdeps/libm-ieee754/e_exp10.c b/sysdeps/generic/e_exp10.c index 55d676e..55d676e 100644 --- a/sysdeps/libm-ieee754/e_exp10.c +++ b/sysdeps/generic/e_exp10.c diff --git a/sysdeps/libm-ieee754/e_exp10f.c b/sysdeps/generic/e_exp10f.c index d6cc9dc..d6cc9dc 100644 --- a/sysdeps/libm-ieee754/e_exp10f.c +++ b/sysdeps/generic/e_exp10f.c diff --git a/sysdeps/libm-ieee754/e_exp10l.c b/sysdeps/generic/e_exp10l.c index cf8658b..cf8658b 100644 --- a/sysdeps/libm-ieee754/e_exp10l.c +++ b/sysdeps/generic/e_exp10l.c diff --git a/sysdeps/generic/e_gammal_r.c b/sysdeps/generic/e_gammal_r.c new file mode 100644 index 0000000..16b641b --- /dev/null +++ b/sysdeps/generic/e_gammal_r.c @@ -0,0 +1,14 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__ieee754_gammal_r (long double x, int *signgamp) +{ + fputs ("__ieee754_gammal_r not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +stub_warning (__ieee754_gammal_r) +#include <stub-tag.h> diff --git a/sysdeps/generic/e_hypotl.c b/sysdeps/generic/e_hypotl.c new file mode 100644 index 0000000..07df22e --- /dev/null +++ b/sysdeps/generic/e_hypotl.c @@ -0,0 +1,14 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__ieee754_hypotl (long double x, long double y) +{ + fputs ("__ieee754_hypotl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +stub_warning (__ieee754_hypotl) +#include <stub-tag.h> diff --git a/sysdeps/libm-ieee754/e_scalb.c b/sysdeps/generic/e_scalb.c index d9a326b..d9a326b 100644 --- a/sysdeps/libm-ieee754/e_scalb.c +++ b/sysdeps/generic/e_scalb.c diff --git a/sysdeps/libm-ieee754/e_scalbf.c b/sysdeps/generic/e_scalbf.c index f51057e..f51057e 100644 --- a/sysdeps/libm-ieee754/e_scalbf.c +++ b/sysdeps/generic/e_scalbf.c diff --git a/sysdeps/libm-ieee754/e_scalbl.c b/sysdeps/generic/e_scalbl.c index dccc876..dccc876 100644 --- a/sysdeps/libm-ieee754/e_scalbl.c +++ b/sysdeps/generic/e_scalbl.c diff --git a/sysdeps/generic/e_sinhl.c b/sysdeps/generic/e_sinhl.c new file mode 100644 index 0000000..4cec79c --- /dev/null +++ b/sysdeps/generic/e_sinhl.c @@ -0,0 +1,14 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__ieee754_sinhl (long double x) +{ + fputs ("__ieee754_sinhl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +stub_warning (__ieee754_sinhl) +#include <stub-tag.h> diff --git a/sysdeps/generic/ldbl2mpn.c b/sysdeps/generic/ldbl2mpn.c index e456d59..450f938 100644 --- a/sysdeps/generic/ldbl2mpn.c +++ b/sysdeps/generic/ldbl2mpn.c @@ -1,32 +1 @@ -/* Copyright (C) 1995, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include "gmp.h" -#include "gmp-impl.h" - -/* Convert a `long double' to a multi-precision integer representing the - significand scaled up by the highest possible number of significant bits - of fraction (LDBL_MANT_DIG), and an integral power of two (MPN frexpl). */ - -mp_size_t -__mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, - int *expt, int *is_neg, - double value) -{ -#error "not implemented for this floating point format" -} +/* Empty. Not needed unless ldbl support is in. */ diff --git a/sysdeps/generic/math_ldbl.h b/sysdeps/generic/math_ldbl.h new file mode 100644 index 0000000..83684e6 --- /dev/null +++ b/sysdeps/generic/math_ldbl.h @@ -0,0 +1,5 @@ +#ifndef _MATH_PRIVATE_H +#error "Never use <math_ldbl.h> directly; include <math_private.h> instead." +#endif + +/* This is empty. Any machine using long double type will override this header. */ diff --git a/sysdeps/generic/mpn2ldbl.c b/sysdeps/generic/mpn2ldbl.c index c269ce6..450f938 100644 --- a/sysdeps/generic/mpn2ldbl.c +++ b/sysdeps/generic/mpn2ldbl.c @@ -1,30 +1 @@ -/* Copyright (C) 1995, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include "gmp.h" -#include "gmp-impl.h" -#include <float.h> - -/* Convert a multi-precision integer of the needed number of bits and an - integral power of two to a `long double'. */ - -long double -__mpn_construct_long_double (mp_srcptr frac_ptr, int expt, int negative) -{ -#error "__mpn_construct_long_double not implemented for floating point format" -} +/* Empty. Not needed unless ldbl support is in. */ diff --git a/sysdeps/generic/printf_fphex.c b/sysdeps/generic/printf_fphex.c index 9e9fd07..53e3254 100644 --- a/sysdeps/generic/printf_fphex.c +++ b/sysdeps/generic/printf_fphex.c @@ -106,8 +106,8 @@ __printf_fphex (FILE *fp, const char *special = NULL; /* Buffer for the generated number string for the mantissa. The - maximal size for the mantissa is 64 bits. */ - char numbuf[16]; + maximal size for the mantissa is 128 bits. */ + char numbuf[32]; char *numstr; char *numend; int negative; @@ -229,8 +229,6 @@ __printf_fphex (FILE *fp, return done; } - /* We are handling here only 64 and 80 bit IEEE foating point - numbers. */ if (info->is_long_double == 0 || sizeof (double) == sizeof (long double)) { /* We have 52 bits of mantissa plus one implicit digit. Since @@ -281,64 +279,10 @@ __printf_fphex (FILE *fp, exponent = -(exponent - IEEE754_DOUBLE_BIAS); } } +#ifdef PRINT_FPHEX_LONG_DOUBLE else - { - /* The "strange" 80 bit format on ix86 and m68k has an explicit - leading digit in the 64 bit mantissa. */ - unsigned long long int num; - - assert (sizeof (long double) == 12); - - num = (((unsigned long long int) fpnum.ldbl.ieee.mantissa0) << 32 - | fpnum.ldbl.ieee.mantissa1); - - zero_mantissa = num == 0; - - if (sizeof (unsigned long int) > 6) - numstr = _itoa_word (num, numbuf + sizeof numbuf, 16, - info->spec == 'A'); - else - numstr = _itoa (num, numbuf + sizeof numbuf, 16, info->spec == 'A'); - - /* Fill with zeroes. */ - while (numstr > numbuf + (sizeof numbuf - 64 / 4)) - *--numstr = '0'; - - /* We use a full nibble for the leading digit. */ - leading = *numstr++; - - /* We have 3 bits from the mantissa in the leading nibble. - Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ - exponent = fpnum.ldbl.ieee.exponent; - - if (exponent == 0) - { - if (zero_mantissa) - expnegative = 0; - else - { - /* This is a denormalized number. */ - expnegative = 1; - /* This is a hook for the m68k long double format, where the - exponent bias is the same for normalized and denormalized - numbers. */ -#ifndef LONG_DOUBLE_DENORM_BIAS -# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1) + PRINT_FPHEX_LONG_DOUBLE; #endif - exponent = LONG_DOUBLE_DENORM_BIAS + 3; - } - } - else if (exponent >= IEEE854_LONG_DOUBLE_BIAS + 3) - { - expnegative = 0; - exponent -= IEEE854_LONG_DOUBLE_BIAS + 3; - } - else - { - expnegative = 1; - exponent = -(exponent - (IEEE854_LONG_DOUBLE_BIAS + 3)); - } - } /* Look for trailing zeroes. */ if (! zero_mantissa) diff --git a/sysdeps/generic/s_asinhl.c b/sysdeps/generic/s_asinhl.c new file mode 100644 index 0000000..1d5cf47 --- /dev/null +++ b/sysdeps/generic/s_asinhl.c @@ -0,0 +1,15 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__asinhl(long double x) +{ + fputs ("__asinhl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +weak_alias (__asinhl, asinhl) +stub_warning (asinhl) +#include <stub-tag.h> diff --git a/sysdeps/libm-ieee754/s_cacos.c b/sysdeps/generic/s_cacos.c index 9b00759..9b00759 100644 --- a/sysdeps/libm-ieee754/s_cacos.c +++ b/sysdeps/generic/s_cacos.c diff --git a/sysdeps/libm-ieee754/s_cacosf.c b/sysdeps/generic/s_cacosf.c index 6fb132d..6fb132d 100644 --- a/sysdeps/libm-ieee754/s_cacosf.c +++ b/sysdeps/generic/s_cacosf.c diff --git a/sysdeps/libm-ieee754/s_cacosh.c b/sysdeps/generic/s_cacosh.c index d938c64..d938c64 100644 --- a/sysdeps/libm-ieee754/s_cacosh.c +++ b/sysdeps/generic/s_cacosh.c diff --git a/sysdeps/libm-ieee754/s_cacoshf.c b/sysdeps/generic/s_cacoshf.c index 6aa33e5..6aa33e5 100644 --- a/sysdeps/libm-ieee754/s_cacoshf.c +++ b/sysdeps/generic/s_cacoshf.c diff --git a/sysdeps/libm-ieee754/s_cacoshl.c b/sysdeps/generic/s_cacoshl.c index 1c91e93..1c91e93 100644 --- a/sysdeps/libm-ieee754/s_cacoshl.c +++ b/sysdeps/generic/s_cacoshl.c diff --git a/sysdeps/libm-ieee754/s_cacosl.c b/sysdeps/generic/s_cacosl.c index 40ad812..40ad812 100644 --- a/sysdeps/libm-ieee754/s_cacosl.c +++ b/sysdeps/generic/s_cacosl.c diff --git a/sysdeps/libm-ieee754/s_casin.c b/sysdeps/generic/s_casin.c index 516aea0..516aea0 100644 --- a/sysdeps/libm-ieee754/s_casin.c +++ b/sysdeps/generic/s_casin.c diff --git a/sysdeps/libm-ieee754/s_casinf.c b/sysdeps/generic/s_casinf.c index aaf0d66..aaf0d66 100644 --- a/sysdeps/libm-ieee754/s_casinf.c +++ b/sysdeps/generic/s_casinf.c diff --git a/sysdeps/libm-ieee754/s_casinh.c b/sysdeps/generic/s_casinh.c index da7d1ed..da7d1ed 100644 --- a/sysdeps/libm-ieee754/s_casinh.c +++ b/sysdeps/generic/s_casinh.c diff --git a/sysdeps/libm-ieee754/s_casinhf.c b/sysdeps/generic/s_casinhf.c index e8441f4..e8441f4 100644 --- a/sysdeps/libm-ieee754/s_casinhf.c +++ b/sysdeps/generic/s_casinhf.c diff --git a/sysdeps/libm-ieee754/s_casinhl.c b/sysdeps/generic/s_casinhl.c index 44e07f7..44e07f7 100644 --- a/sysdeps/libm-ieee754/s_casinhl.c +++ b/sysdeps/generic/s_casinhl.c diff --git a/sysdeps/libm-ieee754/s_casinl.c b/sysdeps/generic/s_casinl.c index cc750d4..cc750d4 100644 --- a/sysdeps/libm-ieee754/s_casinl.c +++ b/sysdeps/generic/s_casinl.c diff --git a/sysdeps/libm-ieee754/s_catan.c b/sysdeps/generic/s_catan.c index a3fc9ad..a3fc9ad 100644 --- a/sysdeps/libm-ieee754/s_catan.c +++ b/sysdeps/generic/s_catan.c diff --git a/sysdeps/libm-ieee754/s_catanf.c b/sysdeps/generic/s_catanf.c index 18881cd..18881cd 100644 --- a/sysdeps/libm-ieee754/s_catanf.c +++ b/sysdeps/generic/s_catanf.c diff --git a/sysdeps/libm-ieee754/s_catanh.c b/sysdeps/generic/s_catanh.c index 0cb852a..0cb852a 100644 --- a/sysdeps/libm-ieee754/s_catanh.c +++ b/sysdeps/generic/s_catanh.c diff --git a/sysdeps/libm-ieee754/s_catanhf.c b/sysdeps/generic/s_catanhf.c index ac0ed17..ac0ed17 100644 --- a/sysdeps/libm-ieee754/s_catanhf.c +++ b/sysdeps/generic/s_catanhf.c diff --git a/sysdeps/libm-ieee754/s_catanhl.c b/sysdeps/generic/s_catanhl.c index 22f3d4b..22f3d4b 100644 --- a/sysdeps/libm-ieee754/s_catanhl.c +++ b/sysdeps/generic/s_catanhl.c diff --git a/sysdeps/libm-ieee754/s_catanl.c b/sysdeps/generic/s_catanl.c index b7df5c3..b7df5c3 100644 --- a/sysdeps/libm-ieee754/s_catanl.c +++ b/sysdeps/generic/s_catanl.c diff --git a/sysdeps/generic/s_cbrtl.c b/sysdeps/generic/s_cbrtl.c new file mode 100644 index 0000000..d668e37 --- /dev/null +++ b/sysdeps/generic/s_cbrtl.c @@ -0,0 +1,15 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__cbrtl(long double x) +{ + fputs ("__cbrtl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +weak_alias (__cbrtl, cbrtl) +stub_warning (cbrtl) +#include <stub-tag.h> diff --git a/sysdeps/libm-ieee754/s_ccos.c b/sysdeps/generic/s_ccos.c index f8dfcc8..f8dfcc8 100644 --- a/sysdeps/libm-ieee754/s_ccos.c +++ b/sysdeps/generic/s_ccos.c diff --git a/sysdeps/libm-ieee754/s_ccosf.c b/sysdeps/generic/s_ccosf.c index b090ae5..b090ae5 100644 --- a/sysdeps/libm-ieee754/s_ccosf.c +++ b/sysdeps/generic/s_ccosf.c diff --git a/sysdeps/libm-ieee754/s_ccosh.c b/sysdeps/generic/s_ccosh.c index 394101f..394101f 100644 --- a/sysdeps/libm-ieee754/s_ccosh.c +++ b/sysdeps/generic/s_ccosh.c diff --git a/sysdeps/libm-ieee754/s_ccoshf.c b/sysdeps/generic/s_ccoshf.c index a8043fd..a8043fd 100644 --- a/sysdeps/libm-ieee754/s_ccoshf.c +++ b/sysdeps/generic/s_ccoshf.c diff --git a/sysdeps/libm-ieee754/s_ccoshl.c b/sysdeps/generic/s_ccoshl.c index 9301a9e..9301a9e 100644 --- a/sysdeps/libm-ieee754/s_ccoshl.c +++ b/sysdeps/generic/s_ccoshl.c diff --git a/sysdeps/libm-ieee754/s_ccosl.c b/sysdeps/generic/s_ccosl.c index fdcc7a6..fdcc7a6 100644 --- a/sysdeps/libm-ieee754/s_ccosl.c +++ b/sysdeps/generic/s_ccosl.c diff --git a/sysdeps/libm-ieee754/s_cexp.c b/sysdeps/generic/s_cexp.c index 6ba5b0a..6ba5b0a 100644 --- a/sysdeps/libm-ieee754/s_cexp.c +++ b/sysdeps/generic/s_cexp.c diff --git a/sysdeps/libm-ieee754/s_cexpf.c b/sysdeps/generic/s_cexpf.c index 603e78d..603e78d 100644 --- a/sysdeps/libm-ieee754/s_cexpf.c +++ b/sysdeps/generic/s_cexpf.c diff --git a/sysdeps/libm-ieee754/s_cexpl.c b/sysdeps/generic/s_cexpl.c index 67fa7a0..67fa7a0 100644 --- a/sysdeps/libm-ieee754/s_cexpl.c +++ b/sysdeps/generic/s_cexpl.c diff --git a/sysdeps/libm-ieee754/s_clog.c b/sysdeps/generic/s_clog.c index c14a734..c14a734 100644 --- a/sysdeps/libm-ieee754/s_clog.c +++ b/sysdeps/generic/s_clog.c diff --git a/sysdeps/libm-ieee754/s_clog10.c b/sysdeps/generic/s_clog10.c index 7b2e474..7b2e474 100644 --- a/sysdeps/libm-ieee754/s_clog10.c +++ b/sysdeps/generic/s_clog10.c diff --git a/sysdeps/libm-ieee754/s_clog10f.c b/sysdeps/generic/s_clog10f.c index bc4094b..bc4094b 100644 --- a/sysdeps/libm-ieee754/s_clog10f.c +++ b/sysdeps/generic/s_clog10f.c diff --git a/sysdeps/libm-ieee754/s_clog10l.c b/sysdeps/generic/s_clog10l.c index 186eba2..186eba2 100644 --- a/sysdeps/libm-ieee754/s_clog10l.c +++ b/sysdeps/generic/s_clog10l.c diff --git a/sysdeps/libm-ieee754/s_clogf.c b/sysdeps/generic/s_clogf.c index 9c9aa83..9c9aa83 100644 --- a/sysdeps/libm-ieee754/s_clogf.c +++ b/sysdeps/generic/s_clogf.c diff --git a/sysdeps/libm-ieee754/s_clogl.c b/sysdeps/generic/s_clogl.c index a297ec9..a297ec9 100644 --- a/sysdeps/libm-ieee754/s_clogl.c +++ b/sysdeps/generic/s_clogl.c diff --git a/sysdeps/libm-ieee754/s_cpow.c b/sysdeps/generic/s_cpow.c index 074b38b..074b38b 100644 --- a/sysdeps/libm-ieee754/s_cpow.c +++ b/sysdeps/generic/s_cpow.c diff --git a/sysdeps/libm-ieee754/s_cpowf.c b/sysdeps/generic/s_cpowf.c index fa4541c..fa4541c 100644 --- a/sysdeps/libm-ieee754/s_cpowf.c +++ b/sysdeps/generic/s_cpowf.c diff --git a/sysdeps/libm-ieee754/s_cpowl.c b/sysdeps/generic/s_cpowl.c index 69097d5..69097d5 100644 --- a/sysdeps/libm-ieee754/s_cpowl.c +++ b/sysdeps/generic/s_cpowl.c diff --git a/sysdeps/libm-ieee754/s_cproj.c b/sysdeps/generic/s_cproj.c index fb50bb5..fb50bb5 100644 --- a/sysdeps/libm-ieee754/s_cproj.c +++ b/sysdeps/generic/s_cproj.c diff --git a/sysdeps/libm-ieee754/s_cprojf.c b/sysdeps/generic/s_cprojf.c index b905908..b905908 100644 --- a/sysdeps/libm-ieee754/s_cprojf.c +++ b/sysdeps/generic/s_cprojf.c diff --git a/sysdeps/libm-ieee754/s_cprojl.c b/sysdeps/generic/s_cprojl.c index 13da4b4..13da4b4 100644 --- a/sysdeps/libm-ieee754/s_cprojl.c +++ b/sysdeps/generic/s_cprojl.c diff --git a/sysdeps/libm-ieee754/s_csin.c b/sysdeps/generic/s_csin.c index 6627387..6627387 100644 --- a/sysdeps/libm-ieee754/s_csin.c +++ b/sysdeps/generic/s_csin.c diff --git a/sysdeps/libm-ieee754/s_csinf.c b/sysdeps/generic/s_csinf.c index 31d2f1f..31d2f1f 100644 --- a/sysdeps/libm-ieee754/s_csinf.c +++ b/sysdeps/generic/s_csinf.c diff --git a/sysdeps/libm-ieee754/s_csinh.c b/sysdeps/generic/s_csinh.c index 29a271f..29a271f 100644 --- a/sysdeps/libm-ieee754/s_csinh.c +++ b/sysdeps/generic/s_csinh.c diff --git a/sysdeps/libm-ieee754/s_csinhf.c b/sysdeps/generic/s_csinhf.c index 9c479bb..9c479bb 100644 --- a/sysdeps/libm-ieee754/s_csinhf.c +++ b/sysdeps/generic/s_csinhf.c diff --git a/sysdeps/libm-ieee754/s_csinhl.c b/sysdeps/generic/s_csinhl.c index 471cc7e..471cc7e 100644 --- a/sysdeps/libm-ieee754/s_csinhl.c +++ b/sysdeps/generic/s_csinhl.c diff --git a/sysdeps/libm-ieee754/s_csinl.c b/sysdeps/generic/s_csinl.c index bae8648..bae8648 100644 --- a/sysdeps/libm-ieee754/s_csinl.c +++ b/sysdeps/generic/s_csinl.c diff --git a/sysdeps/libm-ieee754/s_csqrt.c b/sysdeps/generic/s_csqrt.c index a4dedf8..a4dedf8 100644 --- a/sysdeps/libm-ieee754/s_csqrt.c +++ b/sysdeps/generic/s_csqrt.c diff --git a/sysdeps/libm-ieee754/s_csqrtf.c b/sysdeps/generic/s_csqrtf.c index 3bc979f..3bc979f 100644 --- a/sysdeps/libm-ieee754/s_csqrtf.c +++ b/sysdeps/generic/s_csqrtf.c diff --git a/sysdeps/libm-ieee754/s_csqrtl.c b/sysdeps/generic/s_csqrtl.c index b806bc6..b806bc6 100644 --- a/sysdeps/libm-ieee754/s_csqrtl.c +++ b/sysdeps/generic/s_csqrtl.c diff --git a/sysdeps/libm-ieee754/s_ctan.c b/sysdeps/generic/s_ctan.c index f1ce968..f1ce968 100644 --- a/sysdeps/libm-ieee754/s_ctan.c +++ b/sysdeps/generic/s_ctan.c diff --git a/sysdeps/libm-ieee754/s_ctanf.c b/sysdeps/generic/s_ctanf.c index 750d351..750d351 100644 --- a/sysdeps/libm-ieee754/s_ctanf.c +++ b/sysdeps/generic/s_ctanf.c diff --git a/sysdeps/libm-ieee754/s_ctanh.c b/sysdeps/generic/s_ctanh.c index d8825f3..d8825f3 100644 --- a/sysdeps/libm-ieee754/s_ctanh.c +++ b/sysdeps/generic/s_ctanh.c diff --git a/sysdeps/libm-ieee754/s_ctanhf.c b/sysdeps/generic/s_ctanhf.c index fd66648..fd66648 100644 --- a/sysdeps/libm-ieee754/s_ctanhf.c +++ b/sysdeps/generic/s_ctanhf.c diff --git a/sysdeps/libm-ieee754/s_ctanhl.c b/sysdeps/generic/s_ctanhl.c index 5ec06a6..5ec06a6 100644 --- a/sysdeps/libm-ieee754/s_ctanhl.c +++ b/sysdeps/generic/s_ctanhl.c diff --git a/sysdeps/libm-ieee754/s_ctanl.c b/sysdeps/generic/s_ctanl.c index 31ab3b4..31ab3b4 100644 --- a/sysdeps/libm-ieee754/s_ctanl.c +++ b/sysdeps/generic/s_ctanl.c diff --git a/sysdeps/libm-ieee754/s_fdim.c b/sysdeps/generic/s_fdim.c index b45c413..b45c413 100644 --- a/sysdeps/libm-ieee754/s_fdim.c +++ b/sysdeps/generic/s_fdim.c diff --git a/sysdeps/libm-ieee754/s_fdimf.c b/sysdeps/generic/s_fdimf.c index a8d8192..a8d8192 100644 --- a/sysdeps/libm-ieee754/s_fdimf.c +++ b/sysdeps/generic/s_fdimf.c diff --git a/sysdeps/libm-ieee754/s_fdiml.c b/sysdeps/generic/s_fdiml.c index c97a668..c97a668 100644 --- a/sysdeps/libm-ieee754/s_fdiml.c +++ b/sysdeps/generic/s_fdiml.c diff --git a/sysdeps/libm-ieee754/s_fma.c b/sysdeps/generic/s_fma.c index 53974dc..53974dc 100644 --- a/sysdeps/libm-ieee754/s_fma.c +++ b/sysdeps/generic/s_fma.c diff --git a/sysdeps/libm-ieee754/s_fmaf.c b/sysdeps/generic/s_fmaf.c index 44e5e15..44e5e15 100644 --- a/sysdeps/libm-ieee754/s_fmaf.c +++ b/sysdeps/generic/s_fmaf.c diff --git a/sysdeps/libm-ieee754/s_fmal.c b/sysdeps/generic/s_fmal.c index f73751f..f73751f 100644 --- a/sysdeps/libm-ieee754/s_fmal.c +++ b/sysdeps/generic/s_fmal.c diff --git a/sysdeps/libm-ieee754/s_fmax.c b/sysdeps/generic/s_fmax.c index bc6af72..bc6af72 100644 --- a/sysdeps/libm-ieee754/s_fmax.c +++ b/sysdeps/generic/s_fmax.c diff --git a/sysdeps/libm-ieee754/s_fmaxf.c b/sysdeps/generic/s_fmaxf.c index e56193f..e56193f 100644 --- a/sysdeps/libm-ieee754/s_fmaxf.c +++ b/sysdeps/generic/s_fmaxf.c diff --git a/sysdeps/libm-ieee754/s_fmaxl.c b/sysdeps/generic/s_fmaxl.c index 6e1c715..6e1c715 100644 --- a/sysdeps/libm-ieee754/s_fmaxl.c +++ b/sysdeps/generic/s_fmaxl.c diff --git a/sysdeps/libm-ieee754/s_fmin.c b/sysdeps/generic/s_fmin.c index b79e6ec..b79e6ec 100644 --- a/sysdeps/libm-ieee754/s_fmin.c +++ b/sysdeps/generic/s_fmin.c diff --git a/sysdeps/libm-ieee754/s_fminf.c b/sysdeps/generic/s_fminf.c index 72c656e..72c656e 100644 --- a/sysdeps/libm-ieee754/s_fminf.c +++ b/sysdeps/generic/s_fminf.c diff --git a/sysdeps/libm-ieee754/s_fminl.c b/sysdeps/generic/s_fminl.c index 0f06194..0f06194 100644 --- a/sysdeps/libm-ieee754/s_fminl.c +++ b/sysdeps/generic/s_fminl.c diff --git a/sysdeps/libm-ieee754/s_ldexp.c b/sysdeps/generic/s_ldexp.c index 12c336f..12c336f 100644 --- a/sysdeps/libm-ieee754/s_ldexp.c +++ b/sysdeps/generic/s_ldexp.c diff --git a/sysdeps/libm-ieee754/s_ldexpf.c b/sysdeps/generic/s_ldexpf.c index 1ecbe83..1ecbe83 100644 --- a/sysdeps/libm-ieee754/s_ldexpf.c +++ b/sysdeps/generic/s_ldexpf.c diff --git a/sysdeps/libm-ieee754/s_ldexpl.c b/sysdeps/generic/s_ldexpl.c index 123a6b3..123a6b3 100644 --- a/sysdeps/libm-ieee754/s_ldexpl.c +++ b/sysdeps/generic/s_ldexpl.c diff --git a/sysdeps/libm-ieee754/s_nan.c b/sysdeps/generic/s_nan.c index ff3b268..ff3b268 100644 --- a/sysdeps/libm-ieee754/s_nan.c +++ b/sysdeps/generic/s_nan.c diff --git a/sysdeps/libm-ieee754/s_nanf.c b/sysdeps/generic/s_nanf.c index b59040a..b59040a 100644 --- a/sysdeps/libm-ieee754/s_nanf.c +++ b/sysdeps/generic/s_nanf.c diff --git a/sysdeps/libm-ieee754/s_nanl.c b/sysdeps/generic/s_nanl.c index bd42689..bd42689 100644 --- a/sysdeps/libm-ieee754/s_nanl.c +++ b/sysdeps/generic/s_nanl.c diff --git a/sysdeps/libm-ieee754/s_nextafter.c b/sysdeps/generic/s_nextafter.c index b98a161..8b81e56 100644 --- a/sysdeps/libm-ieee754/s_nextafter.c +++ b/sysdeps/generic/s_nextafter.c @@ -81,4 +81,6 @@ weak_alias (__nextafter, nextafter) #ifdef NO_LONG_DOUBLE strong_alias (__nextafter, __nextafterl) weak_alias (__nextafter, nextafterl) +strong_alias (__nextafter, __nexttoward) +weak_alias (__nextafter, nexttoward) #endif diff --git a/sysdeps/generic/s_nexttowardf.c b/sysdeps/generic/s_nexttowardf.c new file mode 100644 index 0000000..f4cf18d --- /dev/null +++ b/sysdeps/generic/s_nexttowardf.c @@ -0,0 +1,79 @@ +/* Single precision version of nexttoward.c. + Conversion to IEEE single float by Jakub Jelinek, jj@ultra.linux.cz. */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* IEEE functions + * nexttowardf(x,y) + * return the next machine floating-point number of x in the + * direction toward y. + * This is for machines which use the same binary type for double and + * long double. + * Special cases: + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + float __nexttowardf(float x, long double y) +#else + float __nexttowardf(x,y) + float x; + long double y; +#endif +{ + int32_t hx,hy,ix,iy; + u_int32_t ly; + + GET_FLOAT_WORD(hx,x); + EXTRACT_WORDS(hy,ly,y); + ix = hx&0x7fffffff; /* |x| */ + iy = hy&0x7fffffff; /* |y| */ + + if(((ix>=0x7f800000) || /* x is nan */ + ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */ + return x+y; + if((long double) x==y) return y; /* x=y, return y */ + if(ix==0) { /* x == 0 */ + float x2; + SET_FLOAT_WORD(x,(u_int32_t)((hy>>32)&0x80000000)|1);/* return +-minsub*/ + x2 = x*x; + if(x2==x) return x2; else return x; /* raise underflow flag */ + } + if(hx>=0) { /* x > 0 */ + if(hy<0||(ix>>23)>(iy>>20)-0x380 + || ((ix>>23)==(iy>>20)-0x380 + && (ix&0x7fffff)>((hy<<3)|(ly>>29))&0x7fffff)) /* x > y, x -= ulp */ + hx -= 1; + else /* x < y, x += ulp */ + hx += 1; + } else { /* x < 0 */ + if(hy>=0||(ix>>23)>(iy>>20)-0x380 + || ((ix>>23)==(iy>>20)-0x380 + && (ix&0x7fffff)>((hy<<3)|(ly>>29))&0x7fffff)) /* x < y, x -= ulp */ + hx -= 1; + else /* x > y, x += ulp */ + hx += 1; + } + hy = hx&0x7f800000; + if(hy>=0x7f800000) return x+x; /* overflow */ + if(hy<0x00800000) { /* underflow */ + float x2 = x*x; + if(x2!=x) { /* raise underflow flag */ + SET_FLOAT_WORD(x2,hx); + return x2; + } + } + SET_FLOAT_WORD(x,hx); + return x; +} +weak_alias (__nexttowardf, nexttowardf) diff --git a/sysdeps/libm-ieee754/s_nexttowardl.c b/sysdeps/generic/s_nexttowardl.c index 73c3610..73c3610 100644 --- a/sysdeps/libm-ieee754/s_nexttowardl.c +++ b/sysdeps/generic/s_nexttowardl.c diff --git a/sysdeps/libm-ieee754/s_significand.c b/sysdeps/generic/s_significand.c index 4ab078c..4ab078c 100644 --- a/sysdeps/libm-ieee754/s_significand.c +++ b/sysdeps/generic/s_significand.c diff --git a/sysdeps/libm-ieee754/s_significandf.c b/sysdeps/generic/s_significandf.c index 2893a4e..2893a4e 100644 --- a/sysdeps/libm-ieee754/s_significandf.c +++ b/sysdeps/generic/s_significandf.c diff --git a/sysdeps/libm-ieee754/s_significandl.c b/sysdeps/generic/s_significandl.c index 6339274..d84e806 100644 --- a/sysdeps/libm-ieee754/s_significandl.c +++ b/sysdeps/generic/s_significandl.c @@ -20,7 +20,7 @@ static char rcsid[] = "$NetBSD: $"; /* * significandl(x) computes just - * scalbl(x, (double) -ilogbl(x)), + * scalbl(x, (long double) -ilogbl(x)), * for exercising the fraction-part(F) IEEE 754-1985 test vector. */ @@ -34,6 +34,6 @@ static char rcsid[] = "$NetBSD: $"; long double x; #endif { - return __ieee754_scalbl(x,(double) -ilogbl(x)); + return __ieee754_scalbl(x,(long double) -ilogbl(x)); } weak_alias (__significandl, significandl) diff --git a/sysdeps/generic/s_tanhl.c b/sysdeps/generic/s_tanhl.c new file mode 100644 index 0000000..bc9a2d7 --- /dev/null +++ b/sysdeps/generic/s_tanhl.c @@ -0,0 +1,15 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__tanhl(long double x) +{ + fputs ("__tanhl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +weak_alias (__tanhl, tanhl) +stub_warning (tanhl) +#include <stub-tag.h> diff --git a/sysdeps/generic/strtold.c b/sysdeps/generic/strtold.c index f1bb2f1..86b2f7f 100644 --- a/sysdeps/generic/strtold.c +++ b/sysdeps/generic/strtold.c @@ -1,31 +1,23 @@ -#include <math.h> +/* Copyright (C) 1999 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -#ifndef __NO_LONG_DOUBLE_MATH -/* The actual implementation for all floating point sizes is in strtod.c. - These macros tell it to produce the `long double' version, `strtold'. */ + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. -# define FLOAT long double -# define FLT LDBL -# ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define STRTOF __strtold_l -# else -# define STRTOF strtold -# endif -# define MPN2FLOAT __mpn_construct_long_double -# define FLOAT_HUGE_VAL HUGE_VALL -# define SET_MANTISSA(flt, mant) \ - do { union ieee854_long_double u; \ - u.d = (flt); \ - if ((mant & 0x7fffffffffffffffULL) == 0) \ - mant = 0x4000000000000000ULL; \ - u.ieee.mantissa0 = (((mant) >> 32) & 0x7fffffff) | 0x80000000; \ - u.ieee.mantissa1 = (mant) & 0xffffffff; \ - (flt) = u.d; \ - } while (0) + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> +#include <stdlib.h> -# include "strtod.c" -#else -# include <stdlib.h> /* There is no `long double' type, use the `double' implementations. */ long double __strtold_internal (const char *nptr, char **endptr, int group) diff --git a/sysdeps/generic/w_expl.c b/sysdeps/generic/w_expl.c new file mode 100644 index 0000000..70096a8 --- /dev/null +++ b/sysdeps/generic/w_expl.c @@ -0,0 +1,13 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__expl(long double x) +{ + fputs ("__expl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +weak_alias (__expl, expl) diff --git a/sysdeps/i386/Implies b/sysdeps/i386/Implies index d6acf04..ac22f59 100644 --- a/sysdeps/i386/Implies +++ b/sysdeps/i386/Implies @@ -1,2 +1,4 @@ wordsize-32 -ieee754 +ieee754/flt-32 +ieee754/dbl-64 +ieee754/ldbl-96 diff --git a/sysdeps/i386/fpu/Implies b/sysdeps/i386/fpu/Implies deleted file mode 100644 index de9b0b2..0000000 --- a/sysdeps/i386/fpu/Implies +++ /dev/null @@ -1,2 +0,0 @@ -# For x86 machines with FPU, use the i387 port of libm by JT Conklin. -libm-i387 diff --git a/sysdeps/libm-i387/e_acos.S b/sysdeps/i386/fpu/e_acos.S index b9d07b1..b9d07b1 100644 --- a/sysdeps/libm-i387/e_acos.S +++ b/sysdeps/i386/fpu/e_acos.S diff --git a/sysdeps/libm-i387/e_acosf.S b/sysdeps/i386/fpu/e_acosf.S index 50b13fd..50b13fd 100644 --- a/sysdeps/libm-i387/e_acosf.S +++ b/sysdeps/i386/fpu/e_acosf.S diff --git a/sysdeps/libm-i387/e_acosh.S b/sysdeps/i386/fpu/e_acosh.S index a3397b3..a3397b3 100644 --- a/sysdeps/libm-i387/e_acosh.S +++ b/sysdeps/i386/fpu/e_acosh.S diff --git a/sysdeps/libm-i387/e_acoshf.S b/sysdeps/i386/fpu/e_acoshf.S index 8aa7895..8aa7895 100644 --- a/sysdeps/libm-i387/e_acoshf.S +++ b/sysdeps/i386/fpu/e_acoshf.S diff --git a/sysdeps/libm-i387/e_acoshl.S b/sysdeps/i386/fpu/e_acoshl.S index 0c81daa..0c81daa 100644 --- a/sysdeps/libm-i387/e_acoshl.S +++ b/sysdeps/i386/fpu/e_acoshl.S diff --git a/sysdeps/libm-i387/e_acosl.S b/sysdeps/i386/fpu/e_acosl.S index d69f056..d69f056 100644 --- a/sysdeps/libm-i387/e_acosl.S +++ b/sysdeps/i386/fpu/e_acosl.S diff --git a/sysdeps/libm-i387/e_asin.S b/sysdeps/i386/fpu/e_asin.S index 945e308..945e308 100644 --- a/sysdeps/libm-i387/e_asin.S +++ b/sysdeps/i386/fpu/e_asin.S diff --git a/sysdeps/libm-i387/e_asinf.S b/sysdeps/i386/fpu/e_asinf.S index d450e9a..d450e9a 100644 --- a/sysdeps/libm-i387/e_asinf.S +++ b/sysdeps/i386/fpu/e_asinf.S diff --git a/sysdeps/libm-i387/e_asinl.S b/sysdeps/i386/fpu/e_asinl.S index 3919fbc..3919fbc 100644 --- a/sysdeps/libm-i387/e_asinl.S +++ b/sysdeps/i386/fpu/e_asinl.S diff --git a/sysdeps/libm-i387/e_atan2.S b/sysdeps/i386/fpu/e_atan2.S index 8df04e4..8df04e4 100644 --- a/sysdeps/libm-i387/e_atan2.S +++ b/sysdeps/i386/fpu/e_atan2.S diff --git a/sysdeps/libm-i387/e_atan2f.S b/sysdeps/i386/fpu/e_atan2f.S index fc6621f..fc6621f 100644 --- a/sysdeps/libm-i387/e_atan2f.S +++ b/sysdeps/i386/fpu/e_atan2f.S diff --git a/sysdeps/libm-i387/e_atan2l.S b/sysdeps/i386/fpu/e_atan2l.S index f58eaa9..f58eaa9 100644 --- a/sysdeps/libm-i387/e_atan2l.S +++ b/sysdeps/i386/fpu/e_atan2l.S diff --git a/sysdeps/libm-i387/e_atanh.S b/sysdeps/i386/fpu/e_atanh.S index 231e96f..231e96f 100644 --- a/sysdeps/libm-i387/e_atanh.S +++ b/sysdeps/i386/fpu/e_atanh.S diff --git a/sysdeps/libm-i387/e_atanhf.S b/sysdeps/i386/fpu/e_atanhf.S index 687d4c9..687d4c9 100644 --- a/sysdeps/libm-i387/e_atanhf.S +++ b/sysdeps/i386/fpu/e_atanhf.S diff --git a/sysdeps/libm-i387/e_atanhl.S b/sysdeps/i386/fpu/e_atanhl.S index 8a2bd11..8a2bd11 100644 --- a/sysdeps/libm-i387/e_atanhl.S +++ b/sysdeps/i386/fpu/e_atanhl.S diff --git a/sysdeps/libm-i387/e_exp.S b/sysdeps/i386/fpu/e_exp.S index 4a75fa1..4a75fa1 100644 --- a/sysdeps/libm-i387/e_exp.S +++ b/sysdeps/i386/fpu/e_exp.S diff --git a/sysdeps/libm-i387/e_exp10.S b/sysdeps/i386/fpu/e_exp10.S index 6bfcdbb..6bfcdbb 100644 --- a/sysdeps/libm-i387/e_exp10.S +++ b/sysdeps/i386/fpu/e_exp10.S diff --git a/sysdeps/libm-i387/e_exp10f.S b/sysdeps/i386/fpu/e_exp10f.S index 4791b99..4791b99 100644 --- a/sysdeps/libm-i387/e_exp10f.S +++ b/sysdeps/i386/fpu/e_exp10f.S diff --git a/sysdeps/libm-i387/e_exp10l.S b/sysdeps/i386/fpu/e_exp10l.S index 71f0da7..71f0da7 100644 --- a/sysdeps/libm-i387/e_exp10l.S +++ b/sysdeps/i386/fpu/e_exp10l.S diff --git a/sysdeps/libm-i387/e_expf.S b/sysdeps/i386/fpu/e_expf.S index 5fd49b8..5fd49b8 100644 --- a/sysdeps/libm-i387/e_expf.S +++ b/sysdeps/i386/fpu/e_expf.S diff --git a/sysdeps/libm-i387/e_expl.S b/sysdeps/i386/fpu/e_expl.S index 2bcdf58..2bcdf58 100644 --- a/sysdeps/libm-i387/e_expl.S +++ b/sysdeps/i386/fpu/e_expl.S diff --git a/sysdeps/libm-i387/e_fmod.S b/sysdeps/i386/fpu/e_fmod.S index 4cf6e92..4cf6e92 100644 --- a/sysdeps/libm-i387/e_fmod.S +++ b/sysdeps/i386/fpu/e_fmod.S diff --git a/sysdeps/libm-i387/e_fmodf.S b/sysdeps/i386/fpu/e_fmodf.S index bbce409..bbce409 100644 --- a/sysdeps/libm-i387/e_fmodf.S +++ b/sysdeps/i386/fpu/e_fmodf.S diff --git a/sysdeps/libm-i387/e_fmodl.S b/sysdeps/i386/fpu/e_fmodl.S index 7ae63a4..7ae63a4 100644 --- a/sysdeps/libm-i387/e_fmodl.S +++ b/sysdeps/i386/fpu/e_fmodl.S diff --git a/sysdeps/libm-i387/e_hypot.S b/sysdeps/i386/fpu/e_hypot.S index 07a3287..07a3287 100644 --- a/sysdeps/libm-i387/e_hypot.S +++ b/sysdeps/i386/fpu/e_hypot.S diff --git a/sysdeps/libm-i387/e_hypotf.S b/sysdeps/i386/fpu/e_hypotf.S index bf5416b..bf5416b 100644 --- a/sysdeps/libm-i387/e_hypotf.S +++ b/sysdeps/i386/fpu/e_hypotf.S diff --git a/sysdeps/libm-i387/e_log.S b/sysdeps/i386/fpu/e_log.S index c7cacdf..c7cacdf 100644 --- a/sysdeps/libm-i387/e_log.S +++ b/sysdeps/i386/fpu/e_log.S diff --git a/sysdeps/libm-i387/e_log10.S b/sysdeps/i386/fpu/e_log10.S index 2c8488c..2c8488c 100644 --- a/sysdeps/libm-i387/e_log10.S +++ b/sysdeps/i386/fpu/e_log10.S diff --git a/sysdeps/libm-i387/e_log10f.S b/sysdeps/i386/fpu/e_log10f.S index 2c07161..2c07161 100644 --- a/sysdeps/libm-i387/e_log10f.S +++ b/sysdeps/i386/fpu/e_log10f.S diff --git a/sysdeps/libm-i387/e_log10l.S b/sysdeps/i386/fpu/e_log10l.S index 6fe7c5a..6fe7c5a 100644 --- a/sysdeps/libm-i387/e_log10l.S +++ b/sysdeps/i386/fpu/e_log10l.S diff --git a/sysdeps/libm-i387/e_logf.S b/sysdeps/i386/fpu/e_logf.S index bdba1d3..bdba1d3 100644 --- a/sysdeps/libm-i387/e_logf.S +++ b/sysdeps/i386/fpu/e_logf.S diff --git a/sysdeps/libm-i387/e_logl.S b/sysdeps/i386/fpu/e_logl.S index bda3ea5..bda3ea5 100644 --- a/sysdeps/libm-i387/e_logl.S +++ b/sysdeps/i386/fpu/e_logl.S diff --git a/sysdeps/libm-i387/e_pow.S b/sysdeps/i386/fpu/e_pow.S index 75ad211..75ad211 100644 --- a/sysdeps/libm-i387/e_pow.S +++ b/sysdeps/i386/fpu/e_pow.S diff --git a/sysdeps/libm-i387/e_powf.S b/sysdeps/i386/fpu/e_powf.S index d7342bf..d7342bf 100644 --- a/sysdeps/libm-i387/e_powf.S +++ b/sysdeps/i386/fpu/e_powf.S diff --git a/sysdeps/libm-i387/e_powl.S b/sysdeps/i386/fpu/e_powl.S index 2e09dcc..2e09dcc 100644 --- a/sysdeps/libm-i387/e_powl.S +++ b/sysdeps/i386/fpu/e_powl.S diff --git a/sysdeps/libm-i387/e_rem_pio2.c b/sysdeps/i386/fpu/e_rem_pio2.c index 1347b04..1347b04 100644 --- a/sysdeps/libm-i387/e_rem_pio2.c +++ b/sysdeps/i386/fpu/e_rem_pio2.c diff --git a/sysdeps/libm-i387/e_rem_pio2f.c b/sysdeps/i386/fpu/e_rem_pio2f.c index 1347b04..1347b04 100644 --- a/sysdeps/libm-i387/e_rem_pio2f.c +++ b/sysdeps/i386/fpu/e_rem_pio2f.c diff --git a/sysdeps/libm-i387/e_rem_pio2l.c b/sysdeps/i386/fpu/e_rem_pio2l.c index 1347b04..1347b04 100644 --- a/sysdeps/libm-i387/e_rem_pio2l.c +++ b/sysdeps/i386/fpu/e_rem_pio2l.c diff --git a/sysdeps/libm-i387/e_remainder.S b/sysdeps/i386/fpu/e_remainder.S index 2f43cb8..2f43cb8 100644 --- a/sysdeps/libm-i387/e_remainder.S +++ b/sysdeps/i386/fpu/e_remainder.S diff --git a/sysdeps/libm-i387/e_remainderf.S b/sysdeps/i386/fpu/e_remainderf.S index 79f8219..79f8219 100644 --- a/sysdeps/libm-i387/e_remainderf.S +++ b/sysdeps/i386/fpu/e_remainderf.S diff --git a/sysdeps/libm-i387/e_remainderl.S b/sysdeps/i386/fpu/e_remainderl.S index 5f50b62..5f50b62 100644 --- a/sysdeps/libm-i387/e_remainderl.S +++ b/sysdeps/i386/fpu/e_remainderl.S diff --git a/sysdeps/libm-i387/e_scalb.S b/sysdeps/i386/fpu/e_scalb.S index 7ff5541..7ff5541 100644 --- a/sysdeps/libm-i387/e_scalb.S +++ b/sysdeps/i386/fpu/e_scalb.S diff --git a/sysdeps/libm-i387/e_scalbf.S b/sysdeps/i386/fpu/e_scalbf.S index 4222eec..4222eec 100644 --- a/sysdeps/libm-i387/e_scalbf.S +++ b/sysdeps/i386/fpu/e_scalbf.S diff --git a/sysdeps/libm-i387/e_scalbl.S b/sysdeps/i386/fpu/e_scalbl.S index 56cc833..56cc833 100644 --- a/sysdeps/libm-i387/e_scalbl.S +++ b/sysdeps/i386/fpu/e_scalbl.S diff --git a/sysdeps/libm-i387/e_sqrt.S b/sysdeps/i386/fpu/e_sqrt.S index 6f253d5..6f253d5 100644 --- a/sysdeps/libm-i387/e_sqrt.S +++ b/sysdeps/i386/fpu/e_sqrt.S diff --git a/sysdeps/libm-i387/e_sqrtf.S b/sysdeps/i386/fpu/e_sqrtf.S index 5ce1ad0..5ce1ad0 100644 --- a/sysdeps/libm-i387/e_sqrtf.S +++ b/sysdeps/i386/fpu/e_sqrtf.S diff --git a/sysdeps/libm-i387/e_sqrtl.S b/sysdeps/i386/fpu/e_sqrtl.S index d47aae5..d47aae5 100644 --- a/sysdeps/libm-i387/e_sqrtl.S +++ b/sysdeps/i386/fpu/e_sqrtl.S diff --git a/sysdeps/libm-i387/k_rem_pio2.c b/sysdeps/i386/fpu/k_rem_pio2.c index 1347b04..1347b04 100644 --- a/sysdeps/libm-i387/k_rem_pio2.c +++ b/sysdeps/i386/fpu/k_rem_pio2.c diff --git a/sysdeps/libm-i387/k_rem_pio2f.c b/sysdeps/i386/fpu/k_rem_pio2f.c index 1347b04..1347b04 100644 --- a/sysdeps/libm-i387/k_rem_pio2f.c +++ b/sysdeps/i386/fpu/k_rem_pio2f.c diff --git a/sysdeps/libm-i387/k_rem_pio2l.c b/sysdeps/i386/fpu/k_rem_pio2l.c index 1347b04..1347b04 100644 --- a/sysdeps/libm-i387/k_rem_pio2l.c +++ b/sysdeps/i386/fpu/k_rem_pio2l.c diff --git a/sysdeps/libm-i387/s_asinh.S b/sysdeps/i386/fpu/s_asinh.S index a4c52cb..a4c52cb 100644 --- a/sysdeps/libm-i387/s_asinh.S +++ b/sysdeps/i386/fpu/s_asinh.S diff --git a/sysdeps/libm-i387/s_asinhf.S b/sysdeps/i386/fpu/s_asinhf.S index a6925c7..a6925c7 100644 --- a/sysdeps/libm-i387/s_asinhf.S +++ b/sysdeps/i386/fpu/s_asinhf.S diff --git a/sysdeps/libm-i387/s_asinhl.S b/sysdeps/i386/fpu/s_asinhl.S index 62e29bc..62e29bc 100644 --- a/sysdeps/libm-i387/s_asinhl.S +++ b/sysdeps/i386/fpu/s_asinhl.S diff --git a/sysdeps/libm-i387/s_atan.S b/sysdeps/i386/fpu/s_atan.S index 7502f6d..7502f6d 100644 --- a/sysdeps/libm-i387/s_atan.S +++ b/sysdeps/i386/fpu/s_atan.S diff --git a/sysdeps/libm-i387/s_atanf.S b/sysdeps/i386/fpu/s_atanf.S index 70232c8..70232c8 100644 --- a/sysdeps/libm-i387/s_atanf.S +++ b/sysdeps/i386/fpu/s_atanf.S diff --git a/sysdeps/libm-i387/s_atanl.S b/sysdeps/i386/fpu/s_atanl.S index 8b07272..8b07272 100644 --- a/sysdeps/libm-i387/s_atanl.S +++ b/sysdeps/i386/fpu/s_atanl.S diff --git a/sysdeps/libm-i387/s_cbrt.S b/sysdeps/i386/fpu/s_cbrt.S index 3f6a017..3f6a017 100644 --- a/sysdeps/libm-i387/s_cbrt.S +++ b/sysdeps/i386/fpu/s_cbrt.S diff --git a/sysdeps/libm-i387/s_cbrtf.S b/sysdeps/i386/fpu/s_cbrtf.S index a14e04e..a14e04e 100644 --- a/sysdeps/libm-i387/s_cbrtf.S +++ b/sysdeps/i386/fpu/s_cbrtf.S diff --git a/sysdeps/libm-i387/s_cbrtl.S b/sysdeps/i386/fpu/s_cbrtl.S index 6a3b9a8..6a3b9a8 100644 --- a/sysdeps/libm-i387/s_cbrtl.S +++ b/sysdeps/i386/fpu/s_cbrtl.S diff --git a/sysdeps/libm-i387/s_ceil.S b/sysdeps/i386/fpu/s_ceil.S index b015912..b015912 100644 --- a/sysdeps/libm-i387/s_ceil.S +++ b/sysdeps/i386/fpu/s_ceil.S diff --git a/sysdeps/libm-i387/s_ceilf.S b/sysdeps/i386/fpu/s_ceilf.S index 352d40d..352d40d 100644 --- a/sysdeps/libm-i387/s_ceilf.S +++ b/sysdeps/i386/fpu/s_ceilf.S diff --git a/sysdeps/libm-i387/s_ceill.S b/sysdeps/i386/fpu/s_ceill.S index 0128966..0128966 100644 --- a/sysdeps/libm-i387/s_ceill.S +++ b/sysdeps/i386/fpu/s_ceill.S diff --git a/sysdeps/libm-i387/s_cexp.S b/sysdeps/i386/fpu/s_cexp.S index 61158d9..61158d9 100644 --- a/sysdeps/libm-i387/s_cexp.S +++ b/sysdeps/i386/fpu/s_cexp.S diff --git a/sysdeps/libm-i387/s_cexpf.S b/sysdeps/i386/fpu/s_cexpf.S index d6dcebc..d6dcebc 100644 --- a/sysdeps/libm-i387/s_cexpf.S +++ b/sysdeps/i386/fpu/s_cexpf.S diff --git a/sysdeps/libm-i387/s_cexpl.S b/sysdeps/i386/fpu/s_cexpl.S index 203a7ee..203a7ee 100644 --- a/sysdeps/libm-i387/s_cexpl.S +++ b/sysdeps/i386/fpu/s_cexpl.S diff --git a/sysdeps/libm-i387/s_copysign.S b/sysdeps/i386/fpu/s_copysign.S index 2520a94..2520a94 100644 --- a/sysdeps/libm-i387/s_copysign.S +++ b/sysdeps/i386/fpu/s_copysign.S diff --git a/sysdeps/libm-i387/s_copysignf.S b/sysdeps/i386/fpu/s_copysignf.S index 57b1a6f..57b1a6f 100644 --- a/sysdeps/libm-i387/s_copysignf.S +++ b/sysdeps/i386/fpu/s_copysignf.S diff --git a/sysdeps/libm-i387/s_copysignl.S b/sysdeps/i386/fpu/s_copysignl.S index 2163e7b..2163e7b 100644 --- a/sysdeps/libm-i387/s_copysignl.S +++ b/sysdeps/i386/fpu/s_copysignl.S diff --git a/sysdeps/libm-i387/s_cos.S b/sysdeps/i386/fpu/s_cos.S index ac8b145..ac8b145 100644 --- a/sysdeps/libm-i387/s_cos.S +++ b/sysdeps/i386/fpu/s_cos.S diff --git a/sysdeps/libm-i387/s_cosf.S b/sysdeps/i386/fpu/s_cosf.S index d8e8090..d8e8090 100644 --- a/sysdeps/libm-i387/s_cosf.S +++ b/sysdeps/i386/fpu/s_cosf.S diff --git a/sysdeps/libm-i387/s_cosl.S b/sysdeps/i386/fpu/s_cosl.S index 61c9010..61c9010 100644 --- a/sysdeps/libm-i387/s_cosl.S +++ b/sysdeps/i386/fpu/s_cosl.S diff --git a/sysdeps/libm-i387/s_exp2.S b/sysdeps/i386/fpu/s_exp2.S index 778c0c0..778c0c0 100644 --- a/sysdeps/libm-i387/s_exp2.S +++ b/sysdeps/i386/fpu/s_exp2.S diff --git a/sysdeps/libm-i387/s_exp2f.S b/sysdeps/i386/fpu/s_exp2f.S index c2d1af1..c2d1af1 100644 --- a/sysdeps/libm-i387/s_exp2f.S +++ b/sysdeps/i386/fpu/s_exp2f.S diff --git a/sysdeps/libm-i387/s_exp2l.S b/sysdeps/i386/fpu/s_exp2l.S index fa1fdc9..fa1fdc9 100644 --- a/sysdeps/libm-i387/s_exp2l.S +++ b/sysdeps/i386/fpu/s_exp2l.S diff --git a/sysdeps/libm-i387/s_expm1.S b/sysdeps/i386/fpu/s_expm1.S index 92beaf0..92beaf0 100644 --- a/sysdeps/libm-i387/s_expm1.S +++ b/sysdeps/i386/fpu/s_expm1.S diff --git a/sysdeps/libm-i387/s_expm1f.S b/sysdeps/i386/fpu/s_expm1f.S index 45a60fe..45a60fe 100644 --- a/sysdeps/libm-i387/s_expm1f.S +++ b/sysdeps/i386/fpu/s_expm1f.S diff --git a/sysdeps/libm-i387/s_expm1l.S b/sysdeps/i386/fpu/s_expm1l.S index 13fa698..13fa698 100644 --- a/sysdeps/libm-i387/s_expm1l.S +++ b/sysdeps/i386/fpu/s_expm1l.S diff --git a/sysdeps/libm-i387/s_fdim.S b/sysdeps/i386/fpu/s_fdim.S index 7a1e2ff..7a1e2ff 100644 --- a/sysdeps/libm-i387/s_fdim.S +++ b/sysdeps/i386/fpu/s_fdim.S diff --git a/sysdeps/libm-i387/s_fdimf.S b/sysdeps/i386/fpu/s_fdimf.S index 7e58f67..7e58f67 100644 --- a/sysdeps/libm-i387/s_fdimf.S +++ b/sysdeps/i386/fpu/s_fdimf.S diff --git a/sysdeps/libm-i387/s_fdiml.S b/sysdeps/i386/fpu/s_fdiml.S index 7a8c18a..7a8c18a 100644 --- a/sysdeps/libm-i387/s_fdiml.S +++ b/sysdeps/i386/fpu/s_fdiml.S diff --git a/sysdeps/libm-i387/s_finite.S b/sysdeps/i386/fpu/s_finite.S index 63c766a..63c766a 100644 --- a/sysdeps/libm-i387/s_finite.S +++ b/sysdeps/i386/fpu/s_finite.S diff --git a/sysdeps/libm-i387/s_finitef.S b/sysdeps/i386/fpu/s_finitef.S index dabb71a..dabb71a 100644 --- a/sysdeps/libm-i387/s_finitef.S +++ b/sysdeps/i386/fpu/s_finitef.S diff --git a/sysdeps/libm-i387/s_finitel.S b/sysdeps/i386/fpu/s_finitel.S index acc5ad4..acc5ad4 100644 --- a/sysdeps/libm-i387/s_finitel.S +++ b/sysdeps/i386/fpu/s_finitel.S diff --git a/sysdeps/libm-i387/s_floor.S b/sysdeps/i386/fpu/s_floor.S index 20a8660..20a8660 100644 --- a/sysdeps/libm-i387/s_floor.S +++ b/sysdeps/i386/fpu/s_floor.S diff --git a/sysdeps/libm-i387/s_floorf.S b/sysdeps/i386/fpu/s_floorf.S index eca93a2..eca93a2 100644 --- a/sysdeps/libm-i387/s_floorf.S +++ b/sysdeps/i386/fpu/s_floorf.S diff --git a/sysdeps/libm-i387/s_floorl.S b/sysdeps/i386/fpu/s_floorl.S index c2bf091..c2bf091 100644 --- a/sysdeps/libm-i387/s_floorl.S +++ b/sysdeps/i386/fpu/s_floorl.S diff --git a/sysdeps/libm-i387/s_fma.S b/sysdeps/i386/fpu/s_fma.S index 2affafc..2affafc 100644 --- a/sysdeps/libm-i387/s_fma.S +++ b/sysdeps/i386/fpu/s_fma.S diff --git a/sysdeps/libm-i387/s_fmaf.S b/sysdeps/i386/fpu/s_fmaf.S index 03c6cc0..03c6cc0 100644 --- a/sysdeps/libm-i387/s_fmaf.S +++ b/sysdeps/i386/fpu/s_fmaf.S diff --git a/sysdeps/libm-i387/s_fmal.S b/sysdeps/i386/fpu/s_fmal.S index c15fca8..c15fca8 100644 --- a/sysdeps/libm-i387/s_fmal.S +++ b/sysdeps/i386/fpu/s_fmal.S diff --git a/sysdeps/libm-i387/s_fmax.S b/sysdeps/i386/fpu/s_fmax.S index 3dbaa13..3dbaa13 100644 --- a/sysdeps/libm-i387/s_fmax.S +++ b/sysdeps/i386/fpu/s_fmax.S diff --git a/sysdeps/libm-i387/s_fmaxf.S b/sysdeps/i386/fpu/s_fmaxf.S index 5dd94a4..5dd94a4 100644 --- a/sysdeps/libm-i387/s_fmaxf.S +++ b/sysdeps/i386/fpu/s_fmaxf.S diff --git a/sysdeps/libm-i387/s_fmaxl.S b/sysdeps/i386/fpu/s_fmaxl.S index d833bd1..d833bd1 100644 --- a/sysdeps/libm-i387/s_fmaxl.S +++ b/sysdeps/i386/fpu/s_fmaxl.S diff --git a/sysdeps/libm-i387/s_fmin.S b/sysdeps/i386/fpu/s_fmin.S index 1ac46c7..1ac46c7 100644 --- a/sysdeps/libm-i387/s_fmin.S +++ b/sysdeps/i386/fpu/s_fmin.S diff --git a/sysdeps/libm-i387/s_fminf.S b/sysdeps/i386/fpu/s_fminf.S index 7dd346d..7dd346d 100644 --- a/sysdeps/libm-i387/s_fminf.S +++ b/sysdeps/i386/fpu/s_fminf.S diff --git a/sysdeps/libm-i387/s_fminl.S b/sysdeps/i386/fpu/s_fminl.S index 883735d..883735d 100644 --- a/sysdeps/libm-i387/s_fminl.S +++ b/sysdeps/i386/fpu/s_fminl.S diff --git a/sysdeps/libm-i387/s_frexp.S b/sysdeps/i386/fpu/s_frexp.S index 6a05f26..6a05f26 100644 --- a/sysdeps/libm-i387/s_frexp.S +++ b/sysdeps/i386/fpu/s_frexp.S diff --git a/sysdeps/libm-i387/s_frexpf.S b/sysdeps/i386/fpu/s_frexpf.S index 1021b97..1021b97 100644 --- a/sysdeps/libm-i387/s_frexpf.S +++ b/sysdeps/i386/fpu/s_frexpf.S diff --git a/sysdeps/libm-i387/s_frexpl.S b/sysdeps/i386/fpu/s_frexpl.S index e3019ce..e3019ce 100644 --- a/sysdeps/libm-i387/s_frexpl.S +++ b/sysdeps/i386/fpu/s_frexpl.S diff --git a/sysdeps/libm-i387/s_ilogb.S b/sysdeps/i386/fpu/s_ilogb.S index 36fb000..36fb000 100644 --- a/sysdeps/libm-i387/s_ilogb.S +++ b/sysdeps/i386/fpu/s_ilogb.S diff --git a/sysdeps/libm-i387/s_ilogbf.S b/sysdeps/i386/fpu/s_ilogbf.S index 54f9d46..54f9d46 100644 --- a/sysdeps/libm-i387/s_ilogbf.S +++ b/sysdeps/i386/fpu/s_ilogbf.S diff --git a/sysdeps/libm-i387/s_ilogbl.S b/sysdeps/i386/fpu/s_ilogbl.S index 1dad93a..1dad93a 100644 --- a/sysdeps/libm-i387/s_ilogbl.S +++ b/sysdeps/i386/fpu/s_ilogbl.S diff --git a/sysdeps/libm-i387/s_isinfl.c b/sysdeps/i386/fpu/s_isinfl.c index f07898f..f07898f 100644 --- a/sysdeps/libm-i387/s_isinfl.c +++ b/sysdeps/i386/fpu/s_isinfl.c diff --git a/sysdeps/libm-i387/s_isnanl.c b/sysdeps/i386/fpu/s_isnanl.c index 6a74b95..6a74b95 100644 --- a/sysdeps/libm-i387/s_isnanl.c +++ b/sysdeps/i386/fpu/s_isnanl.c diff --git a/sysdeps/libm-i387/s_llrint.S b/sysdeps/i386/fpu/s_llrint.S index 6109ec4..6109ec4 100644 --- a/sysdeps/libm-i387/s_llrint.S +++ b/sysdeps/i386/fpu/s_llrint.S diff --git a/sysdeps/libm-i387/s_llrintf.S b/sysdeps/i386/fpu/s_llrintf.S index c1e1c22..c1e1c22 100644 --- a/sysdeps/libm-i387/s_llrintf.S +++ b/sysdeps/i386/fpu/s_llrintf.S diff --git a/sysdeps/libm-i387/s_llrintl.S b/sysdeps/i386/fpu/s_llrintl.S index d894897..d894897 100644 --- a/sysdeps/libm-i387/s_llrintl.S +++ b/sysdeps/i386/fpu/s_llrintl.S diff --git a/sysdeps/libm-i387/s_log1p.S b/sysdeps/i386/fpu/s_log1p.S index 10e8a36..10e8a36 100644 --- a/sysdeps/libm-i387/s_log1p.S +++ b/sysdeps/i386/fpu/s_log1p.S diff --git a/sysdeps/libm-i387/s_log1pf.S b/sysdeps/i386/fpu/s_log1pf.S index df9fdcb..df9fdcb 100644 --- a/sysdeps/libm-i387/s_log1pf.S +++ b/sysdeps/i386/fpu/s_log1pf.S diff --git a/sysdeps/libm-i387/s_log1pl.S b/sysdeps/i386/fpu/s_log1pl.S index 05a17b2..05a17b2 100644 --- a/sysdeps/libm-i387/s_log1pl.S +++ b/sysdeps/i386/fpu/s_log1pl.S diff --git a/sysdeps/libm-i387/s_log2.S b/sysdeps/i386/fpu/s_log2.S index 4632c96..4632c96 100644 --- a/sysdeps/libm-i387/s_log2.S +++ b/sysdeps/i386/fpu/s_log2.S diff --git a/sysdeps/libm-i387/s_log2f.S b/sysdeps/i386/fpu/s_log2f.S index bfdd0ef..bfdd0ef 100644 --- a/sysdeps/libm-i387/s_log2f.S +++ b/sysdeps/i386/fpu/s_log2f.S diff --git a/sysdeps/libm-i387/s_log2l.S b/sysdeps/i386/fpu/s_log2l.S index 184981c..184981c 100644 --- a/sysdeps/libm-i387/s_log2l.S +++ b/sysdeps/i386/fpu/s_log2l.S diff --git a/sysdeps/libm-i387/s_logb.S b/sysdeps/i386/fpu/s_logb.S index f78c091..f78c091 100644 --- a/sysdeps/libm-i387/s_logb.S +++ b/sysdeps/i386/fpu/s_logb.S diff --git a/sysdeps/libm-i387/s_logbf.S b/sysdeps/i386/fpu/s_logbf.S index 91eb3d2..91eb3d2 100644 --- a/sysdeps/libm-i387/s_logbf.S +++ b/sysdeps/i386/fpu/s_logbf.S diff --git a/sysdeps/libm-i387/s_logbl.S b/sysdeps/i386/fpu/s_logbl.S index 5c9a9c1..5c9a9c1 100644 --- a/sysdeps/libm-i387/s_logbl.S +++ b/sysdeps/i386/fpu/s_logbl.S diff --git a/sysdeps/libm-i387/s_lrint.S b/sysdeps/i386/fpu/s_lrint.S index 40956ab..40956ab 100644 --- a/sysdeps/libm-i387/s_lrint.S +++ b/sysdeps/i386/fpu/s_lrint.S diff --git a/sysdeps/libm-i387/s_lrintf.S b/sysdeps/i386/fpu/s_lrintf.S index 2f49bdb..2f49bdb 100644 --- a/sysdeps/libm-i387/s_lrintf.S +++ b/sysdeps/i386/fpu/s_lrintf.S diff --git a/sysdeps/libm-i387/s_lrintl.S b/sysdeps/i386/fpu/s_lrintl.S index 3a06c91..3a06c91 100644 --- a/sysdeps/libm-i387/s_lrintl.S +++ b/sysdeps/i386/fpu/s_lrintl.S diff --git a/sysdeps/libm-i387/s_nearbyint.S b/sysdeps/i386/fpu/s_nearbyint.S index 65ce4f7..65ce4f7 100644 --- a/sysdeps/libm-i387/s_nearbyint.S +++ b/sysdeps/i386/fpu/s_nearbyint.S diff --git a/sysdeps/libm-i387/s_nearbyintf.S b/sysdeps/i386/fpu/s_nearbyintf.S index 090c631..090c631 100644 --- a/sysdeps/libm-i387/s_nearbyintf.S +++ b/sysdeps/i386/fpu/s_nearbyintf.S diff --git a/sysdeps/libm-i387/s_nearbyintl.S b/sysdeps/i386/fpu/s_nearbyintl.S index 2f60af8..2f60af8 100644 --- a/sysdeps/libm-i387/s_nearbyintl.S +++ b/sysdeps/i386/fpu/s_nearbyintl.S diff --git a/sysdeps/libm-i387/s_nextafterl.c b/sysdeps/i386/fpu/s_nextafterl.c index 4596c6b..4596c6b 100644 --- a/sysdeps/libm-i387/s_nextafterl.c +++ b/sysdeps/i386/fpu/s_nextafterl.c diff --git a/sysdeps/libm-i387/s_remquo.S b/sysdeps/i386/fpu/s_remquo.S index 8ada191..8ada191 100644 --- a/sysdeps/libm-i387/s_remquo.S +++ b/sysdeps/i386/fpu/s_remquo.S diff --git a/sysdeps/libm-i387/s_remquof.S b/sysdeps/i386/fpu/s_remquof.S index f60aec9..f60aec9 100644 --- a/sysdeps/libm-i387/s_remquof.S +++ b/sysdeps/i386/fpu/s_remquof.S diff --git a/sysdeps/libm-i387/s_remquol.S b/sysdeps/i386/fpu/s_remquol.S index 115d6e8..115d6e8 100644 --- a/sysdeps/libm-i387/s_remquol.S +++ b/sysdeps/i386/fpu/s_remquol.S diff --git a/sysdeps/libm-i387/s_rint.S b/sysdeps/i386/fpu/s_rint.S index be36c5f..be36c5f 100644 --- a/sysdeps/libm-i387/s_rint.S +++ b/sysdeps/i386/fpu/s_rint.S diff --git a/sysdeps/libm-i387/s_rintf.S b/sysdeps/i386/fpu/s_rintf.S index 2b358c1..2b358c1 100644 --- a/sysdeps/libm-i387/s_rintf.S +++ b/sysdeps/i386/fpu/s_rintf.S diff --git a/sysdeps/libm-i387/s_rintl.S b/sysdeps/i386/fpu/s_rintl.S index fd1ae63..fd1ae63 100644 --- a/sysdeps/libm-i387/s_rintl.S +++ b/sysdeps/i386/fpu/s_rintl.S diff --git a/sysdeps/libm-i387/s_scalbln.c b/sysdeps/i386/fpu/s_scalbln.c index 1009713..1009713 100644 --- a/sysdeps/libm-i387/s_scalbln.c +++ b/sysdeps/i386/fpu/s_scalbln.c diff --git a/sysdeps/libm-i387/s_scalblnf.c b/sysdeps/i386/fpu/s_scalblnf.c index 5e558c3..5e558c3 100644 --- a/sysdeps/libm-i387/s_scalblnf.c +++ b/sysdeps/i386/fpu/s_scalblnf.c diff --git a/sysdeps/libm-i387/s_scalblnl.c b/sysdeps/i386/fpu/s_scalblnl.c index cda2ec1..cda2ec1 100644 --- a/sysdeps/libm-i387/s_scalblnl.c +++ b/sysdeps/i386/fpu/s_scalblnl.c diff --git a/sysdeps/libm-i387/s_scalbn.S b/sysdeps/i386/fpu/s_scalbn.S index ea9e25f..ea9e25f 100644 --- a/sysdeps/libm-i387/s_scalbn.S +++ b/sysdeps/i386/fpu/s_scalbn.S diff --git a/sysdeps/libm-i387/s_scalbnf.S b/sysdeps/i386/fpu/s_scalbnf.S index dc8cfb4..dc8cfb4 100644 --- a/sysdeps/libm-i387/s_scalbnf.S +++ b/sysdeps/i386/fpu/s_scalbnf.S diff --git a/sysdeps/libm-i387/s_scalbnl.S b/sysdeps/i386/fpu/s_scalbnl.S index 295494b..295494b 100644 --- a/sysdeps/libm-i387/s_scalbnl.S +++ b/sysdeps/i386/fpu/s_scalbnl.S diff --git a/sysdeps/libm-i387/s_significand.S b/sysdeps/i386/fpu/s_significand.S index 4859b7e..4859b7e 100644 --- a/sysdeps/libm-i387/s_significand.S +++ b/sysdeps/i386/fpu/s_significand.S diff --git a/sysdeps/libm-i387/s_significandf.S b/sysdeps/i386/fpu/s_significandf.S index 3a2de97..3a2de97 100644 --- a/sysdeps/libm-i387/s_significandf.S +++ b/sysdeps/i386/fpu/s_significandf.S diff --git a/sysdeps/libm-i387/s_significandl.S b/sysdeps/i386/fpu/s_significandl.S index e3a69cb..e3a69cb 100644 --- a/sysdeps/libm-i387/s_significandl.S +++ b/sysdeps/i386/fpu/s_significandl.S diff --git a/sysdeps/libm-i387/s_sin.S b/sysdeps/i386/fpu/s_sin.S index eb22d7e9..eb22d7e9 100644 --- a/sysdeps/libm-i387/s_sin.S +++ b/sysdeps/i386/fpu/s_sin.S diff --git a/sysdeps/libm-i387/s_sincos.S b/sysdeps/i386/fpu/s_sincos.S index fe99f42..fe99f42 100644 --- a/sysdeps/libm-i387/s_sincos.S +++ b/sysdeps/i386/fpu/s_sincos.S diff --git a/sysdeps/libm-i387/s_sincosf.S b/sysdeps/i386/fpu/s_sincosf.S index 5bb13f3..5bb13f3 100644 --- a/sysdeps/libm-i387/s_sincosf.S +++ b/sysdeps/i386/fpu/s_sincosf.S diff --git a/sysdeps/libm-i387/s_sincosl.S b/sysdeps/i386/fpu/s_sincosl.S index 8b6694f..8b6694f 100644 --- a/sysdeps/libm-i387/s_sincosl.S +++ b/sysdeps/i386/fpu/s_sincosl.S diff --git a/sysdeps/libm-i387/s_sinf.S b/sysdeps/i386/fpu/s_sinf.S index a010d60..a010d60 100644 --- a/sysdeps/libm-i387/s_sinf.S +++ b/sysdeps/i386/fpu/s_sinf.S diff --git a/sysdeps/libm-i387/s_sinl.S b/sysdeps/i386/fpu/s_sinl.S index 3e215de..3e215de 100644 --- a/sysdeps/libm-i387/s_sinl.S +++ b/sysdeps/i386/fpu/s_sinl.S diff --git a/sysdeps/libm-i387/s_tan.S b/sysdeps/i386/fpu/s_tan.S index 7b3547a..7b3547a 100644 --- a/sysdeps/libm-i387/s_tan.S +++ b/sysdeps/i386/fpu/s_tan.S diff --git a/sysdeps/libm-i387/s_tanf.S b/sysdeps/i386/fpu/s_tanf.S index 7a75091..7a75091 100644 --- a/sysdeps/libm-i387/s_tanf.S +++ b/sysdeps/i386/fpu/s_tanf.S diff --git a/sysdeps/libm-i387/s_tanl.S b/sysdeps/i386/fpu/s_tanl.S index f2bdd6a..f2bdd6a 100644 --- a/sysdeps/libm-i387/s_tanl.S +++ b/sysdeps/i386/fpu/s_tanl.S diff --git a/sysdeps/libm-i387/s_trunc.S b/sysdeps/i386/fpu/s_trunc.S index 3100d71..3100d71 100644 --- a/sysdeps/libm-i387/s_trunc.S +++ b/sysdeps/i386/fpu/s_trunc.S diff --git a/sysdeps/libm-i387/s_truncf.S b/sysdeps/i386/fpu/s_truncf.S index 275e5f7..275e5f7 100644 --- a/sysdeps/libm-i387/s_truncf.S +++ b/sysdeps/i386/fpu/s_truncf.S diff --git a/sysdeps/libm-i387/s_truncl.S b/sysdeps/i386/fpu/s_truncl.S index 4c0bb0c..4c0bb0c 100644 --- a/sysdeps/libm-i387/s_truncl.S +++ b/sysdeps/i386/fpu/s_truncl.S diff --git a/sysdeps/libm-i387/t_exp.c b/sysdeps/i386/fpu/t_exp.c index fd37963..fd37963 100644 --- a/sysdeps/libm-i387/t_exp.c +++ b/sysdeps/i386/fpu/t_exp.c diff --git a/sysdeps/i386/i686/Implies b/sysdeps/i386/i686/Implies index 5e3b4cb..b5c05ec 100644 --- a/sysdeps/i386/i686/Implies +++ b/sysdeps/i386/i686/Implies @@ -2,4 +2,3 @@ # not really good to use heavily i586 optimized code on a i686. It's # better to use i486/i386 code. i386/i486 -libm-i387/i686 diff --git a/sysdeps/libm-i387/i686/s_fdim.S b/sysdeps/i386/i686/fpu/s_fdim.S index 6f722c5..6f722c5 100644 --- a/sysdeps/libm-i387/i686/s_fdim.S +++ b/sysdeps/i386/i686/fpu/s_fdim.S diff --git a/sysdeps/libm-i387/i686/s_fdimf.S b/sysdeps/i386/i686/fpu/s_fdimf.S index 1bcaf00..1bcaf00 100644 --- a/sysdeps/libm-i387/i686/s_fdimf.S +++ b/sysdeps/i386/i686/fpu/s_fdimf.S diff --git a/sysdeps/libm-i387/i686/s_fdiml.S b/sysdeps/i386/i686/fpu/s_fdiml.S index 9e909ba..9e909ba 100644 --- a/sysdeps/libm-i387/i686/s_fdiml.S +++ b/sysdeps/i386/i686/fpu/s_fdiml.S diff --git a/sysdeps/libm-i387/i686/s_fmax.S b/sysdeps/i386/i686/fpu/s_fmax.S index 3639ba7..3639ba7 100644 --- a/sysdeps/libm-i387/i686/s_fmax.S +++ b/sysdeps/i386/i686/fpu/s_fmax.S diff --git a/sysdeps/libm-i387/i686/s_fmaxf.S b/sysdeps/i386/i686/fpu/s_fmaxf.S index ad948d0..ad948d0 100644 --- a/sysdeps/libm-i387/i686/s_fmaxf.S +++ b/sysdeps/i386/i686/fpu/s_fmaxf.S diff --git a/sysdeps/libm-i387/i686/s_fmaxl.S b/sysdeps/i386/i686/fpu/s_fmaxl.S index 14859b0..14859b0 100644 --- a/sysdeps/libm-i387/i686/s_fmaxl.S +++ b/sysdeps/i386/i686/fpu/s_fmaxl.S diff --git a/sysdeps/libm-i387/i686/s_fmin.S b/sysdeps/i386/i686/fpu/s_fmin.S index 383e957..383e957 100644 --- a/sysdeps/libm-i387/i686/s_fmin.S +++ b/sysdeps/i386/i686/fpu/s_fmin.S diff --git a/sysdeps/libm-i387/i686/s_fminf.S b/sysdeps/i386/i686/fpu/s_fminf.S index f3dae00..f3dae00 100644 --- a/sysdeps/libm-i387/i686/s_fminf.S +++ b/sysdeps/i386/i686/fpu/s_fminf.S diff --git a/sysdeps/libm-i387/i686/s_fminl.S b/sysdeps/i386/i686/fpu/s_fminl.S index f125531..f125531 100644 --- a/sysdeps/libm-i387/i686/s_fminl.S +++ b/sysdeps/i386/i686/fpu/s_fminl.S diff --git a/sysdeps/i960/Implies b/sysdeps/i960/Implies index f8c4079..1d56974 100644 --- a/sysdeps/i960/Implies +++ b/sysdeps/i960/Implies @@ -1,2 +1,3 @@ # i960 family uses IEEE 754 floating point. -ieee754 +ieee754/flt-32 +ieee754/dbl-64 diff --git a/sysdeps/ieee754/Implies b/sysdeps/ieee754/Implies deleted file mode 100644 index 5c9e98b..0000000 --- a/sysdeps/ieee754/Implies +++ /dev/null @@ -1,2 +0,0 @@ -# For all IEEE machines, use Sun's fdlibm code. -libm-ieee754 diff --git a/sysdeps/ieee754/dbl-64/Dist b/sysdeps/ieee754/dbl-64/Dist new file mode 100644 index 0000000..1bb7be35 --- /dev/null +++ b/sysdeps/ieee754/dbl-64/Dist @@ -0,0 +1 @@ +t_exp2.h diff --git a/sysdeps/ieee754/dbl2mpn.c b/sysdeps/ieee754/dbl-64/dbl2mpn.c index f7dead4..f7dead4 100644 --- a/sysdeps/ieee754/dbl2mpn.c +++ b/sysdeps/ieee754/dbl-64/dbl2mpn.c diff --git a/sysdeps/libm-ieee754/e_acos.c b/sysdeps/ieee754/dbl-64/e_acos.c index eb4080a..eb4080a 100644 --- a/sysdeps/libm-ieee754/e_acos.c +++ b/sysdeps/ieee754/dbl-64/e_acos.c diff --git a/sysdeps/libm-ieee754/e_acosh.c b/sysdeps/ieee754/dbl-64/e_acosh.c index 27c29cd..27c29cd 100644 --- a/sysdeps/libm-ieee754/e_acosh.c +++ b/sysdeps/ieee754/dbl-64/e_acosh.c diff --git a/sysdeps/libm-ieee754/e_asin.c b/sysdeps/ieee754/dbl-64/e_asin.c index aa19598..aa19598 100644 --- a/sysdeps/libm-ieee754/e_asin.c +++ b/sysdeps/ieee754/dbl-64/e_asin.c diff --git a/sysdeps/libm-ieee754/e_atan2.c b/sysdeps/ieee754/dbl-64/e_atan2.c index ae7d759..ae7d759 100644 --- a/sysdeps/libm-ieee754/e_atan2.c +++ b/sysdeps/ieee754/dbl-64/e_atan2.c diff --git a/sysdeps/libm-ieee754/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c index fa4fe67..fa4fe67 100644 --- a/sysdeps/libm-ieee754/e_atanh.c +++ b/sysdeps/ieee754/dbl-64/e_atanh.c diff --git a/sysdeps/libm-ieee754/e_cosh.c b/sysdeps/ieee754/dbl-64/e_cosh.c index 65106b9..65106b9 100644 --- a/sysdeps/libm-ieee754/e_cosh.c +++ b/sysdeps/ieee754/dbl-64/e_cosh.c diff --git a/sysdeps/libm-ieee754/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c index ee0b22f..ee0b22f 100644 --- a/sysdeps/libm-ieee754/e_exp.c +++ b/sysdeps/ieee754/dbl-64/e_exp.c diff --git a/sysdeps/libm-ieee754/e_fmod.c b/sysdeps/ieee754/dbl-64/e_fmod.c index 2ce6135..2ce6135 100644 --- a/sysdeps/libm-ieee754/e_fmod.c +++ b/sysdeps/ieee754/dbl-64/e_fmod.c diff --git a/sysdeps/libm-ieee754/e_gamma_r.c b/sysdeps/ieee754/dbl-64/e_gamma_r.c index bd802c2..bd802c2 100644 --- a/sysdeps/libm-ieee754/e_gamma_r.c +++ b/sysdeps/ieee754/dbl-64/e_gamma_r.c diff --git a/sysdeps/libm-ieee754/e_hypot.c b/sysdeps/ieee754/dbl-64/e_hypot.c index 76a77ec..76a77ec 100644 --- a/sysdeps/libm-ieee754/e_hypot.c +++ b/sysdeps/ieee754/dbl-64/e_hypot.c diff --git a/sysdeps/libm-ieee754/e_j0.c b/sysdeps/ieee754/dbl-64/e_j0.c index 55e8294..55e8294 100644 --- a/sysdeps/libm-ieee754/e_j0.c +++ b/sysdeps/ieee754/dbl-64/e_j0.c diff --git a/sysdeps/libm-ieee754/e_j1.c b/sysdeps/ieee754/dbl-64/e_j1.c index daf025f..daf025f 100644 --- a/sysdeps/libm-ieee754/e_j1.c +++ b/sysdeps/ieee754/dbl-64/e_j1.c diff --git a/sysdeps/libm-ieee754/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c index d63d768..d63d768 100644 --- a/sysdeps/libm-ieee754/e_jn.c +++ b/sysdeps/ieee754/dbl-64/e_jn.c diff --git a/sysdeps/libm-ieee754/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c index 92e9556..92e9556 100644 --- a/sysdeps/libm-ieee754/e_lgamma_r.c +++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c diff --git a/sysdeps/libm-ieee754/e_log.c b/sysdeps/ieee754/dbl-64/e_log.c index 851bd30..851bd30 100644 --- a/sysdeps/libm-ieee754/e_log.c +++ b/sysdeps/ieee754/dbl-64/e_log.c diff --git a/sysdeps/libm-ieee754/e_log10.c b/sysdeps/ieee754/dbl-64/e_log10.c index e8a3278..e8a3278 100644 --- a/sysdeps/libm-ieee754/e_log10.c +++ b/sysdeps/ieee754/dbl-64/e_log10.c diff --git a/sysdeps/libm-ieee754/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c index 1e1496f..1e1496f 100644 --- a/sysdeps/libm-ieee754/e_pow.c +++ b/sysdeps/ieee754/dbl-64/e_pow.c diff --git a/sysdeps/libm-ieee754/e_rem_pio2.c b/sysdeps/ieee754/dbl-64/e_rem_pio2.c index a8a8cdb..a8a8cdb 100644 --- a/sysdeps/libm-ieee754/e_rem_pio2.c +++ b/sysdeps/ieee754/dbl-64/e_rem_pio2.c diff --git a/sysdeps/libm-ieee754/e_remainder.c b/sysdeps/ieee754/dbl-64/e_remainder.c index 6418081..6418081 100644 --- a/sysdeps/libm-ieee754/e_remainder.c +++ b/sysdeps/ieee754/dbl-64/e_remainder.c diff --git a/sysdeps/libm-ieee754/e_sinh.c b/sysdeps/ieee754/dbl-64/e_sinh.c index 1701b9b..1701b9b 100644 --- a/sysdeps/libm-ieee754/e_sinh.c +++ b/sysdeps/ieee754/dbl-64/e_sinh.c diff --git a/sysdeps/libm-ieee754/e_sqrt.c b/sysdeps/ieee754/dbl-64/e_sqrt.c index 67da545..67da545 100644 --- a/sysdeps/libm-ieee754/e_sqrt.c +++ b/sysdeps/ieee754/dbl-64/e_sqrt.c diff --git a/sysdeps/libm-ieee754/k_cos.c b/sysdeps/ieee754/dbl-64/k_cos.c index 7e38ef7..7e38ef7 100644 --- a/sysdeps/libm-ieee754/k_cos.c +++ b/sysdeps/ieee754/dbl-64/k_cos.c diff --git a/sysdeps/libm-ieee754/k_rem_pio2.c b/sysdeps/ieee754/dbl-64/k_rem_pio2.c index ccf1633..ccf1633 100644 --- a/sysdeps/libm-ieee754/k_rem_pio2.c +++ b/sysdeps/ieee754/dbl-64/k_rem_pio2.c diff --git a/sysdeps/libm-ieee754/k_sin.c b/sysdeps/ieee754/dbl-64/k_sin.c index 49c5922..49c5922 100644 --- a/sysdeps/libm-ieee754/k_sin.c +++ b/sysdeps/ieee754/dbl-64/k_sin.c diff --git a/sysdeps/libm-ieee754/k_tan.c b/sysdeps/ieee754/dbl-64/k_tan.c index 55dafb8..55dafb8 100644 --- a/sysdeps/libm-ieee754/k_tan.c +++ b/sysdeps/ieee754/dbl-64/k_tan.c diff --git a/sysdeps/ieee754/mpn2dbl.c b/sysdeps/ieee754/dbl-64/mpn2dbl.c index 8145eb9..8145eb9 100644 --- a/sysdeps/ieee754/mpn2dbl.c +++ b/sysdeps/ieee754/dbl-64/mpn2dbl.c diff --git a/sysdeps/libm-ieee754/s_asinh.c b/sysdeps/ieee754/dbl-64/s_asinh.c index 985cfe3..985cfe3 100644 --- a/sysdeps/libm-ieee754/s_asinh.c +++ b/sysdeps/ieee754/dbl-64/s_asinh.c diff --git a/sysdeps/libm-ieee754/s_atan.c b/sysdeps/ieee754/dbl-64/s_atan.c index cad3ba1..cad3ba1 100644 --- a/sysdeps/libm-ieee754/s_atan.c +++ b/sysdeps/ieee754/dbl-64/s_atan.c diff --git a/sysdeps/libm-ieee754/s_cbrt.c b/sysdeps/ieee754/dbl-64/s_cbrt.c index 753049d..753049d 100644 --- a/sysdeps/libm-ieee754/s_cbrt.c +++ b/sysdeps/ieee754/dbl-64/s_cbrt.c diff --git a/sysdeps/libm-ieee754/s_ceil.c b/sysdeps/ieee754/dbl-64/s_ceil.c index 1b352a6..1b352a6 100644 --- a/sysdeps/libm-ieee754/s_ceil.c +++ b/sysdeps/ieee754/dbl-64/s_ceil.c diff --git a/sysdeps/libm-ieee754/s_copysign.c b/sysdeps/ieee754/dbl-64/s_copysign.c index 5e35e69..5e35e69 100644 --- a/sysdeps/libm-ieee754/s_copysign.c +++ b/sysdeps/ieee754/dbl-64/s_copysign.c diff --git a/sysdeps/libm-ieee754/s_cos.c b/sysdeps/ieee754/dbl-64/s_cos.c index 7edb5de..7edb5de 100644 --- a/sysdeps/libm-ieee754/s_cos.c +++ b/sysdeps/ieee754/dbl-64/s_cos.c diff --git a/sysdeps/libm-ieee754/s_erf.c b/sysdeps/ieee754/dbl-64/s_erf.c index d8b6629..d8b6629 100644 --- a/sysdeps/libm-ieee754/s_erf.c +++ b/sysdeps/ieee754/dbl-64/s_erf.c diff --git a/sysdeps/libm-ieee754/s_exp2.c b/sysdeps/ieee754/dbl-64/s_exp2.c index 875d4d6..875d4d6 100644 --- a/sysdeps/libm-ieee754/s_exp2.c +++ b/sysdeps/ieee754/dbl-64/s_exp2.c diff --git a/sysdeps/libm-ieee754/s_expm1.c b/sysdeps/ieee754/dbl-64/s_expm1.c index bfd15b2..bfd15b2 100644 --- a/sysdeps/libm-ieee754/s_expm1.c +++ b/sysdeps/ieee754/dbl-64/s_expm1.c diff --git a/sysdeps/libm-ieee754/s_fabs.c b/sysdeps/ieee754/dbl-64/s_fabs.c index 1abe943..1abe943 100644 --- a/sysdeps/libm-ieee754/s_fabs.c +++ b/sysdeps/ieee754/dbl-64/s_fabs.c diff --git a/sysdeps/libm-ieee754/s_finite.c b/sysdeps/ieee754/dbl-64/s_finite.c index b12ff42..b12ff42 100644 --- a/sysdeps/libm-ieee754/s_finite.c +++ b/sysdeps/ieee754/dbl-64/s_finite.c diff --git a/sysdeps/libm-ieee754/s_floor.c b/sysdeps/ieee754/dbl-64/s_floor.c index 77db9ef..77db9ef 100644 --- a/sysdeps/libm-ieee754/s_floor.c +++ b/sysdeps/ieee754/dbl-64/s_floor.c diff --git a/sysdeps/libm-ieee754/s_fpclassify.c b/sysdeps/ieee754/dbl-64/s_fpclassify.c index 72a1536..72a1536 100644 --- a/sysdeps/libm-ieee754/s_fpclassify.c +++ b/sysdeps/ieee754/dbl-64/s_fpclassify.c diff --git a/sysdeps/libm-ieee754/s_frexp.c b/sysdeps/ieee754/dbl-64/s_frexp.c index 7dbddfd..7dbddfd 100644 --- a/sysdeps/libm-ieee754/s_frexp.c +++ b/sysdeps/ieee754/dbl-64/s_frexp.c diff --git a/sysdeps/libm-ieee754/s_ilogb.c b/sysdeps/ieee754/dbl-64/s_ilogb.c index 820f01c..820f01c 100644 --- a/sysdeps/libm-ieee754/s_ilogb.c +++ b/sysdeps/ieee754/dbl-64/s_ilogb.c diff --git a/sysdeps/libm-ieee754/s_isinf.c b/sysdeps/ieee754/dbl-64/s_isinf.c index 4f063d0..4f063d0 100644 --- a/sysdeps/libm-ieee754/s_isinf.c +++ b/sysdeps/ieee754/dbl-64/s_isinf.c diff --git a/sysdeps/libm-ieee754/s_isnan.c b/sysdeps/ieee754/dbl-64/s_isnan.c index 1aed525..86301e1 100644 --- a/sysdeps/libm-ieee754/s_isnan.c +++ b/sysdeps/ieee754/dbl-64/s_isnan.c @@ -34,7 +34,7 @@ static char rcsid[] = "$NetBSD: s_isnan.c,v 1.8 1995/05/10 20:47:36 jtc Exp $"; hx &= 0x7fffffff; hx |= (u_int32_t)(lx|(-lx))>>31; hx = 0x7ff00000 - hx; - return (int)((u_int32_t)(hx))>>31; + return (int)(((u_int32_t)hx)>>31); } weak_alias (__isnan, isnan) #ifdef NO_LONG_DOUBLE diff --git a/sysdeps/libm-ieee754/s_llrint.c b/sysdeps/ieee754/dbl-64/s_llrint.c index 8e70bcf..8e70bcf 100644 --- a/sysdeps/libm-ieee754/s_llrint.c +++ b/sysdeps/ieee754/dbl-64/s_llrint.c diff --git a/sysdeps/libm-ieee754/s_llround.c b/sysdeps/ieee754/dbl-64/s_llround.c index 92ce10f..92ce10f 100644 --- a/sysdeps/libm-ieee754/s_llround.c +++ b/sysdeps/ieee754/dbl-64/s_llround.c diff --git a/sysdeps/libm-ieee754/s_log1p.c b/sysdeps/ieee754/dbl-64/s_log1p.c index 0a9801a..0a9801a 100644 --- a/sysdeps/libm-ieee754/s_log1p.c +++ b/sysdeps/ieee754/dbl-64/s_log1p.c diff --git a/sysdeps/libm-ieee754/s_log2.c b/sysdeps/ieee754/dbl-64/s_log2.c index 7379ce8..7379ce8 100644 --- a/sysdeps/libm-ieee754/s_log2.c +++ b/sysdeps/ieee754/dbl-64/s_log2.c diff --git a/sysdeps/libm-ieee754/s_logb.c b/sysdeps/ieee754/dbl-64/s_logb.c index 4668cf7..4668cf7 100644 --- a/sysdeps/libm-ieee754/s_logb.c +++ b/sysdeps/ieee754/dbl-64/s_logb.c diff --git a/sysdeps/libm-ieee754/s_lrint.c b/sysdeps/ieee754/dbl-64/s_lrint.c index 8f0d717..8f0d717 100644 --- a/sysdeps/libm-ieee754/s_lrint.c +++ b/sysdeps/ieee754/dbl-64/s_lrint.c diff --git a/sysdeps/libm-ieee754/s_lround.c b/sysdeps/ieee754/dbl-64/s_lround.c index 49be12f..49be12f 100644 --- a/sysdeps/libm-ieee754/s_lround.c +++ b/sysdeps/ieee754/dbl-64/s_lround.c diff --git a/sysdeps/libm-ieee754/s_modf.c b/sysdeps/ieee754/dbl-64/s_modf.c index 7851f675..7851f675 100644 --- a/sysdeps/libm-ieee754/s_modf.c +++ b/sysdeps/ieee754/dbl-64/s_modf.c diff --git a/sysdeps/libm-ieee754/s_nearbyint.c b/sysdeps/ieee754/dbl-64/s_nearbyint.c index 32f5bf9..32f5bf9 100644 --- a/sysdeps/libm-ieee754/s_nearbyint.c +++ b/sysdeps/ieee754/dbl-64/s_nearbyint.c diff --git a/sysdeps/ieee754/dbl-64/s_nexttoward.c b/sysdeps/ieee754/dbl-64/s_nexttoward.c new file mode 100644 index 0000000..c68ba98 --- /dev/null +++ b/sysdeps/ieee754/dbl-64/s_nexttoward.c @@ -0,0 +1 @@ +/* This function is the same as nextafter so we use an alias there. */ diff --git a/sysdeps/libm-ieee754/s_remquo.c b/sysdeps/ieee754/dbl-64/s_remquo.c index 6e32efb..6e32efb 100644 --- a/sysdeps/libm-ieee754/s_remquo.c +++ b/sysdeps/ieee754/dbl-64/s_remquo.c diff --git a/sysdeps/libm-ieee754/s_rint.c b/sysdeps/ieee754/dbl-64/s_rint.c index e5f2412..e5f2412 100644 --- a/sysdeps/libm-ieee754/s_rint.c +++ b/sysdeps/ieee754/dbl-64/s_rint.c diff --git a/sysdeps/libm-ieee754/s_round.c b/sysdeps/ieee754/dbl-64/s_round.c index fdb17f8..fdb17f8 100644 --- a/sysdeps/libm-ieee754/s_round.c +++ b/sysdeps/ieee754/dbl-64/s_round.c diff --git a/sysdeps/libm-ieee754/s_scalbln.c b/sysdeps/ieee754/dbl-64/s_scalbln.c index aa6134f..aa6134f 100644 --- a/sysdeps/libm-ieee754/s_scalbln.c +++ b/sysdeps/ieee754/dbl-64/s_scalbln.c diff --git a/sysdeps/libm-ieee754/s_scalbn.c b/sysdeps/ieee754/dbl-64/s_scalbn.c index 3dbfe8f..3dbfe8f 100644 --- a/sysdeps/libm-ieee754/s_scalbn.c +++ b/sysdeps/ieee754/dbl-64/s_scalbn.c diff --git a/sysdeps/libm-ieee754/s_signbit.c b/sysdeps/ieee754/dbl-64/s_signbit.c index ee34003..ee34003 100644 --- a/sysdeps/libm-ieee754/s_signbit.c +++ b/sysdeps/ieee754/dbl-64/s_signbit.c diff --git a/sysdeps/libm-ieee754/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c index 376c69e..376c69e 100644 --- a/sysdeps/libm-ieee754/s_sin.c +++ b/sysdeps/ieee754/dbl-64/s_sin.c diff --git a/sysdeps/libm-ieee754/s_sincos.c b/sysdeps/ieee754/dbl-64/s_sincos.c index 5bc564b..5bc564b 100644 --- a/sysdeps/libm-ieee754/s_sincos.c +++ b/sysdeps/ieee754/dbl-64/s_sincos.c diff --git a/sysdeps/libm-ieee754/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c index 714cf27..714cf27 100644 --- a/sysdeps/libm-ieee754/s_tan.c +++ b/sysdeps/ieee754/dbl-64/s_tan.c diff --git a/sysdeps/libm-ieee754/s_tanh.c b/sysdeps/ieee754/dbl-64/s_tanh.c index 944f963..944f963 100644 --- a/sysdeps/libm-ieee754/s_tanh.c +++ b/sysdeps/ieee754/dbl-64/s_tanh.c diff --git a/sysdeps/libm-ieee754/s_trunc.c b/sysdeps/ieee754/dbl-64/s_trunc.c index 07b4951..07b4951 100644 --- a/sysdeps/libm-ieee754/s_trunc.c +++ b/sysdeps/ieee754/dbl-64/s_trunc.c diff --git a/sysdeps/libm-ieee754/t_exp.c b/sysdeps/ieee754/dbl-64/t_exp.c index b02b4f5..b02b4f5 100644 --- a/sysdeps/libm-ieee754/t_exp.c +++ b/sysdeps/ieee754/dbl-64/t_exp.c diff --git a/sysdeps/libm-ieee754/t_exp2.h b/sysdeps/ieee754/dbl-64/t_exp2.h index 1fd7333..1fd7333 100644 --- a/sysdeps/libm-ieee754/t_exp2.h +++ b/sysdeps/ieee754/dbl-64/t_exp2.h diff --git a/sysdeps/libm-ieee754/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c index 445c578..445c578 100644 --- a/sysdeps/libm-ieee754/w_exp.c +++ b/sysdeps/ieee754/dbl-64/w_exp.c diff --git a/sysdeps/libm-ieee754/Dist b/sysdeps/ieee754/flt-32/Dist index 4b085470..045ac80 100644 --- a/sysdeps/libm-ieee754/Dist +++ b/sysdeps/ieee754/flt-32/Dist @@ -1,2 +1 @@ -t_exp2.h t_exp2f.h diff --git a/sysdeps/libm-ieee754/e_acosf.c b/sysdeps/ieee754/flt-32/e_acosf.c index 0d85c42..0d85c42 100644 --- a/sysdeps/libm-ieee754/e_acosf.c +++ b/sysdeps/ieee754/flt-32/e_acosf.c diff --git a/sysdeps/libm-ieee754/e_acoshf.c b/sysdeps/ieee754/flt-32/e_acoshf.c index c607f72..c607f72 100644 --- a/sysdeps/libm-ieee754/e_acoshf.c +++ b/sysdeps/ieee754/flt-32/e_acoshf.c diff --git a/sysdeps/libm-ieee754/e_asinf.c b/sysdeps/ieee754/flt-32/e_asinf.c index 5270f31..5270f31 100644 --- a/sysdeps/libm-ieee754/e_asinf.c +++ b/sysdeps/ieee754/flt-32/e_asinf.c diff --git a/sysdeps/libm-ieee754/e_atan2f.c b/sysdeps/ieee754/flt-32/e_atan2f.c index 8b3398c..8b3398c 100644 --- a/sysdeps/libm-ieee754/e_atan2f.c +++ b/sysdeps/ieee754/flt-32/e_atan2f.c diff --git a/sysdeps/libm-ieee754/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c index f26a15b..f26a15b 100644 --- a/sysdeps/libm-ieee754/e_atanhf.c +++ b/sysdeps/ieee754/flt-32/e_atanhf.c diff --git a/sysdeps/libm-ieee754/e_coshf.c b/sysdeps/ieee754/flt-32/e_coshf.c index 223fbee..223fbee 100644 --- a/sysdeps/libm-ieee754/e_coshf.c +++ b/sysdeps/ieee754/flt-32/e_coshf.c diff --git a/sysdeps/libm-ieee754/e_expf.c b/sysdeps/ieee754/flt-32/e_expf.c index e8a9c9d..e8a9c9d 100644 --- a/sysdeps/libm-ieee754/e_expf.c +++ b/sysdeps/ieee754/flt-32/e_expf.c diff --git a/sysdeps/libm-ieee754/e_fmodf.c b/sysdeps/ieee754/flt-32/e_fmodf.c index 47b3123..47b3123 100644 --- a/sysdeps/libm-ieee754/e_fmodf.c +++ b/sysdeps/ieee754/flt-32/e_fmodf.c diff --git a/sysdeps/libm-ieee754/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c index 926905e..926905e 100644 --- a/sysdeps/libm-ieee754/e_gammaf_r.c +++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c diff --git a/sysdeps/libm-ieee754/e_hypotf.c b/sysdeps/ieee754/flt-32/e_hypotf.c index d6b1520..d6b1520 100644 --- a/sysdeps/libm-ieee754/e_hypotf.c +++ b/sysdeps/ieee754/flt-32/e_hypotf.c diff --git a/sysdeps/libm-ieee754/e_j0f.c b/sysdeps/ieee754/flt-32/e_j0f.c index eed171c..eed171c 100644 --- a/sysdeps/libm-ieee754/e_j0f.c +++ b/sysdeps/ieee754/flt-32/e_j0f.c diff --git a/sysdeps/libm-ieee754/e_j1f.c b/sysdeps/ieee754/flt-32/e_j1f.c index e6f14a1..e6f14a1 100644 --- a/sysdeps/libm-ieee754/e_j1f.c +++ b/sysdeps/ieee754/flt-32/e_j1f.c diff --git a/sysdeps/libm-ieee754/e_jnf.c b/sysdeps/ieee754/flt-32/e_jnf.c index 9e5279c..9e5279c 100644 --- a/sysdeps/libm-ieee754/e_jnf.c +++ b/sysdeps/ieee754/flt-32/e_jnf.c diff --git a/sysdeps/libm-ieee754/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c index f744d53..f744d53 100644 --- a/sysdeps/libm-ieee754/e_lgammaf_r.c +++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c diff --git a/sysdeps/libm-ieee754/e_log10f.c b/sysdeps/ieee754/flt-32/e_log10f.c index cea3d91..cea3d91 100644 --- a/sysdeps/libm-ieee754/e_log10f.c +++ b/sysdeps/ieee754/flt-32/e_log10f.c diff --git a/sysdeps/libm-ieee754/e_logf.c b/sysdeps/ieee754/flt-32/e_logf.c index de8f869..de8f869 100644 --- a/sysdeps/libm-ieee754/e_logf.c +++ b/sysdeps/ieee754/flt-32/e_logf.c diff --git a/sysdeps/libm-ieee754/e_powf.c b/sysdeps/ieee754/flt-32/e_powf.c index 4798340..4798340 100644 --- a/sysdeps/libm-ieee754/e_powf.c +++ b/sysdeps/ieee754/flt-32/e_powf.c diff --git a/sysdeps/libm-ieee754/e_rem_pio2f.c b/sysdeps/ieee754/flt-32/e_rem_pio2f.c index 4b8c446..4b8c446 100644 --- a/sysdeps/libm-ieee754/e_rem_pio2f.c +++ b/sysdeps/ieee754/flt-32/e_rem_pio2f.c diff --git a/sysdeps/libm-ieee754/e_remainderf.c b/sysdeps/ieee754/flt-32/e_remainderf.c index 90d0d36..90d0d36 100644 --- a/sysdeps/libm-ieee754/e_remainderf.c +++ b/sysdeps/ieee754/flt-32/e_remainderf.c diff --git a/sysdeps/libm-ieee754/e_sinhf.c b/sysdeps/ieee754/flt-32/e_sinhf.c index 045f6f1..045f6f1 100644 --- a/sysdeps/libm-ieee754/e_sinhf.c +++ b/sysdeps/ieee754/flt-32/e_sinhf.c diff --git a/sysdeps/libm-ieee754/e_sqrtf.c b/sysdeps/ieee754/flt-32/e_sqrtf.c index 7648ef4..7648ef4 100644 --- a/sysdeps/libm-ieee754/e_sqrtf.c +++ b/sysdeps/ieee754/flt-32/e_sqrtf.c diff --git a/sysdeps/libm-ieee754/k_cosf.c b/sysdeps/ieee754/flt-32/k_cosf.c index b232cab..b232cab 100644 --- a/sysdeps/libm-ieee754/k_cosf.c +++ b/sysdeps/ieee754/flt-32/k_cosf.c diff --git a/sysdeps/libm-ieee754/k_rem_pio2f.c b/sysdeps/ieee754/flt-32/k_rem_pio2f.c index 2783480..2783480 100644 --- a/sysdeps/libm-ieee754/k_rem_pio2f.c +++ b/sysdeps/ieee754/flt-32/k_rem_pio2f.c diff --git a/sysdeps/libm-ieee754/k_sinf.c b/sysdeps/ieee754/flt-32/k_sinf.c index 4fec15e..4fec15e 100644 --- a/sysdeps/libm-ieee754/k_sinf.c +++ b/sysdeps/ieee754/flt-32/k_sinf.c diff --git a/sysdeps/libm-ieee754/k_tanf.c b/sysdeps/ieee754/flt-32/k_tanf.c index eb1a670..eb1a670 100644 --- a/sysdeps/libm-ieee754/k_tanf.c +++ b/sysdeps/ieee754/flt-32/k_tanf.c diff --git a/sysdeps/ieee754/mpn2flt.c b/sysdeps/ieee754/flt-32/mpn2flt.c index a409b45..a409b45 100644 --- a/sysdeps/ieee754/mpn2flt.c +++ b/sysdeps/ieee754/flt-32/mpn2flt.c diff --git a/sysdeps/libm-ieee754/s_asinhf.c b/sysdeps/ieee754/flt-32/s_asinhf.c index fac256d..fac256d 100644 --- a/sysdeps/libm-ieee754/s_asinhf.c +++ b/sysdeps/ieee754/flt-32/s_asinhf.c diff --git a/sysdeps/libm-ieee754/s_atanf.c b/sysdeps/ieee754/flt-32/s_atanf.c index a68933f..a68933f 100644 --- a/sysdeps/libm-ieee754/s_atanf.c +++ b/sysdeps/ieee754/flt-32/s_atanf.c diff --git a/sysdeps/libm-ieee754/s_cbrtf.c b/sysdeps/ieee754/flt-32/s_cbrtf.c index fa0fef9..fa0fef9 100644 --- a/sysdeps/libm-ieee754/s_cbrtf.c +++ b/sysdeps/ieee754/flt-32/s_cbrtf.c diff --git a/sysdeps/libm-ieee754/s_ceilf.c b/sysdeps/ieee754/flt-32/s_ceilf.c index 29ccadb..29ccadb 100644 --- a/sysdeps/libm-ieee754/s_ceilf.c +++ b/sysdeps/ieee754/flt-32/s_ceilf.c diff --git a/sysdeps/libm-ieee754/s_copysignf.c b/sysdeps/ieee754/flt-32/s_copysignf.c index a4e84e5..a4e84e5 100644 --- a/sysdeps/libm-ieee754/s_copysignf.c +++ b/sysdeps/ieee754/flt-32/s_copysignf.c diff --git a/sysdeps/libm-ieee754/s_cosf.c b/sysdeps/ieee754/flt-32/s_cosf.c index 86c59d4..86c59d4 100644 --- a/sysdeps/libm-ieee754/s_cosf.c +++ b/sysdeps/ieee754/flt-32/s_cosf.c diff --git a/sysdeps/libm-ieee754/s_erff.c b/sysdeps/ieee754/flt-32/s_erff.c index 774714c..774714c 100644 --- a/sysdeps/libm-ieee754/s_erff.c +++ b/sysdeps/ieee754/flt-32/s_erff.c diff --git a/sysdeps/libm-ieee754/s_exp2f.c b/sysdeps/ieee754/flt-32/s_exp2f.c index 8229885..8229885 100644 --- a/sysdeps/libm-ieee754/s_exp2f.c +++ b/sysdeps/ieee754/flt-32/s_exp2f.c diff --git a/sysdeps/libm-ieee754/s_expm1f.c b/sysdeps/ieee754/flt-32/s_expm1f.c index 375e334..375e334 100644 --- a/sysdeps/libm-ieee754/s_expm1f.c +++ b/sysdeps/ieee754/flt-32/s_expm1f.c diff --git a/sysdeps/libm-ieee754/s_fabsf.c b/sysdeps/ieee754/flt-32/s_fabsf.c index 6b14513..6b14513 100644 --- a/sysdeps/libm-ieee754/s_fabsf.c +++ b/sysdeps/ieee754/flt-32/s_fabsf.c diff --git a/sysdeps/libm-ieee754/s_finitef.c b/sysdeps/ieee754/flt-32/s_finitef.c index baafc31..baafc31 100644 --- a/sysdeps/libm-ieee754/s_finitef.c +++ b/sysdeps/ieee754/flt-32/s_finitef.c diff --git a/sysdeps/libm-ieee754/s_floorf.c b/sysdeps/ieee754/flt-32/s_floorf.c index e8822b0..e8822b0 100644 --- a/sysdeps/libm-ieee754/s_floorf.c +++ b/sysdeps/ieee754/flt-32/s_floorf.c diff --git a/sysdeps/libm-ieee754/s_fpclassifyf.c b/sysdeps/ieee754/flt-32/s_fpclassifyf.c index a6b35cf..a6b35cf 100644 --- a/sysdeps/libm-ieee754/s_fpclassifyf.c +++ b/sysdeps/ieee754/flt-32/s_fpclassifyf.c diff --git a/sysdeps/libm-ieee754/s_frexpf.c b/sysdeps/ieee754/flt-32/s_frexpf.c index a984457..a984457 100644 --- a/sysdeps/libm-ieee754/s_frexpf.c +++ b/sysdeps/ieee754/flt-32/s_frexpf.c diff --git a/sysdeps/libm-ieee754/s_ilogbf.c b/sysdeps/ieee754/flt-32/s_ilogbf.c index e652b93..e652b93 100644 --- a/sysdeps/libm-ieee754/s_ilogbf.c +++ b/sysdeps/ieee754/flt-32/s_ilogbf.c diff --git a/sysdeps/libm-ieee754/s_isinff.c b/sysdeps/ieee754/flt-32/s_isinff.c index efc0935..efc0935 100644 --- a/sysdeps/libm-ieee754/s_isinff.c +++ b/sysdeps/ieee754/flt-32/s_isinff.c diff --git a/sysdeps/libm-ieee754/s_isnanf.c b/sysdeps/ieee754/flt-32/s_isnanf.c index 9ec412f..9ec412f 100644 --- a/sysdeps/libm-ieee754/s_isnanf.c +++ b/sysdeps/ieee754/flt-32/s_isnanf.c diff --git a/sysdeps/libm-ieee754/s_llrintf.c b/sysdeps/ieee754/flt-32/s_llrintf.c index a812377..a812377 100644 --- a/sysdeps/libm-ieee754/s_llrintf.c +++ b/sysdeps/ieee754/flt-32/s_llrintf.c diff --git a/sysdeps/libm-ieee754/s_llroundf.c b/sysdeps/ieee754/flt-32/s_llroundf.c index 9aad81f..9aad81f 100644 --- a/sysdeps/libm-ieee754/s_llroundf.c +++ b/sysdeps/ieee754/flt-32/s_llroundf.c diff --git a/sysdeps/libm-ieee754/s_log1pf.c b/sysdeps/ieee754/flt-32/s_log1pf.c index bd3d576..bd3d576 100644 --- a/sysdeps/libm-ieee754/s_log1pf.c +++ b/sysdeps/ieee754/flt-32/s_log1pf.c diff --git a/sysdeps/libm-ieee754/s_log2f.c b/sysdeps/ieee754/flt-32/s_log2f.c index 2377acd..2377acd 100644 --- a/sysdeps/libm-ieee754/s_log2f.c +++ b/sysdeps/ieee754/flt-32/s_log2f.c diff --git a/sysdeps/libm-ieee754/s_logbf.c b/sysdeps/ieee754/flt-32/s_logbf.c index ade892a..ade892a 100644 --- a/sysdeps/libm-ieee754/s_logbf.c +++ b/sysdeps/ieee754/flt-32/s_logbf.c diff --git a/sysdeps/libm-ieee754/s_lrintf.c b/sysdeps/ieee754/flt-32/s_lrintf.c index 210ffec..210ffec 100644 --- a/sysdeps/libm-ieee754/s_lrintf.c +++ b/sysdeps/ieee754/flt-32/s_lrintf.c diff --git a/sysdeps/libm-ieee754/s_lroundf.c b/sysdeps/ieee754/flt-32/s_lroundf.c index df1d242..df1d242 100644 --- a/sysdeps/libm-ieee754/s_lroundf.c +++ b/sysdeps/ieee754/flt-32/s_lroundf.c diff --git a/sysdeps/libm-ieee754/s_modff.c b/sysdeps/ieee754/flt-32/s_modff.c index e6c22b2..e6c22b2 100644 --- a/sysdeps/libm-ieee754/s_modff.c +++ b/sysdeps/ieee754/flt-32/s_modff.c diff --git a/sysdeps/libm-ieee754/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c index 7d6f262..7d6f262 100644 --- a/sysdeps/libm-ieee754/s_nearbyintf.c +++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c diff --git a/sysdeps/libm-ieee754/s_nextafterf.c b/sysdeps/ieee754/flt-32/s_nextafterf.c index 611742b..611742b 100644 --- a/sysdeps/libm-ieee754/s_nextafterf.c +++ b/sysdeps/ieee754/flt-32/s_nextafterf.c diff --git a/sysdeps/libm-ieee754/s_remquof.c b/sysdeps/ieee754/flt-32/s_remquof.c index 2ffd16c..2ffd16c 100644 --- a/sysdeps/libm-ieee754/s_remquof.c +++ b/sysdeps/ieee754/flt-32/s_remquof.c diff --git a/sysdeps/libm-ieee754/s_rintf.c b/sysdeps/ieee754/flt-32/s_rintf.c index 4e5b409..4e5b409 100644 --- a/sysdeps/libm-ieee754/s_rintf.c +++ b/sysdeps/ieee754/flt-32/s_rintf.c diff --git a/sysdeps/libm-ieee754/s_roundf.c b/sysdeps/ieee754/flt-32/s_roundf.c index 5dc0e36..5dc0e36 100644 --- a/sysdeps/libm-ieee754/s_roundf.c +++ b/sysdeps/ieee754/flt-32/s_roundf.c diff --git a/sysdeps/libm-ieee754/s_scalblnf.c b/sysdeps/ieee754/flt-32/s_scalblnf.c index 4ed4873..4ed4873 100644 --- a/sysdeps/libm-ieee754/s_scalblnf.c +++ b/sysdeps/ieee754/flt-32/s_scalblnf.c diff --git a/sysdeps/libm-ieee754/s_scalbnf.c b/sysdeps/ieee754/flt-32/s_scalbnf.c index 11b77bd..11b77bd 100644 --- a/sysdeps/libm-ieee754/s_scalbnf.c +++ b/sysdeps/ieee754/flt-32/s_scalbnf.c diff --git a/sysdeps/libm-ieee754/s_signbitf.c b/sysdeps/ieee754/flt-32/s_signbitf.c index 85418ea..85418ea 100644 --- a/sysdeps/libm-ieee754/s_signbitf.c +++ b/sysdeps/ieee754/flt-32/s_signbitf.c diff --git a/sysdeps/libm-ieee754/s_sincosf.c b/sysdeps/ieee754/flt-32/s_sincosf.c index 0fd7b0c..0fd7b0c 100644 --- a/sysdeps/libm-ieee754/s_sincosf.c +++ b/sysdeps/ieee754/flt-32/s_sincosf.c diff --git a/sysdeps/libm-ieee754/s_sinf.c b/sysdeps/ieee754/flt-32/s_sinf.c index 76a7c21..76a7c21 100644 --- a/sysdeps/libm-ieee754/s_sinf.c +++ b/sysdeps/ieee754/flt-32/s_sinf.c diff --git a/sysdeps/libm-ieee754/s_tanf.c b/sysdeps/ieee754/flt-32/s_tanf.c index e8f6016..e8f6016 100644 --- a/sysdeps/libm-ieee754/s_tanf.c +++ b/sysdeps/ieee754/flt-32/s_tanf.c diff --git a/sysdeps/libm-ieee754/s_tanhf.c b/sysdeps/ieee754/flt-32/s_tanhf.c index 2a0ca9f..2a0ca9f 100644 --- a/sysdeps/libm-ieee754/s_tanhf.c +++ b/sysdeps/ieee754/flt-32/s_tanhf.c diff --git a/sysdeps/libm-ieee754/s_truncf.c b/sysdeps/ieee754/flt-32/s_truncf.c index feb6b6f..feb6b6f 100644 --- a/sysdeps/libm-ieee754/s_truncf.c +++ b/sysdeps/ieee754/flt-32/s_truncf.c diff --git a/sysdeps/libm-ieee754/t_exp2f.h b/sysdeps/ieee754/flt-32/t_exp2f.h index e15d157..e15d157 100644 --- a/sysdeps/libm-ieee754/t_exp2f.h +++ b/sysdeps/ieee754/flt-32/t_exp2f.h diff --git a/sysdeps/libm-ieee754/w_expf.c b/sysdeps/ieee754/flt-32/w_expf.c index ad38fac..ad38fac 100644 --- a/sysdeps/libm-ieee754/w_expf.c +++ b/sysdeps/ieee754/flt-32/w_expf.c diff --git a/sysdeps/libm-ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c index 2230065..2230065 100644 --- a/sysdeps/libm-ieee754/k_standard.c +++ b/sysdeps/ieee754/k_standard.c diff --git a/sysdeps/ieee754/ldbl-128/e_acoshl.c b/sysdeps/ieee754/ldbl-128/e_acoshl.c new file mode 100644 index 0000000..7f79340 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/e_acoshl.c @@ -0,0 +1,68 @@ +/* e_acoshl.c -- long double version of e_acosh.c. + * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_acoshl(x) + * Method : + * Based on + * acoshl(x) = logl [ x + sqrtl(x*x-1) ] + * we have + * acoshl(x) := logl(x)+ln2, if x is large; else + * acoshl(x) := logl(2x-1/(sqrtl(x*x-1)+x)) if x>2; else + * acoshl(x) := log1pl(t+sqrtl(2.0*t+t*t)); where t=x-1. + * + * Special cases: + * acoshl(x) is NaN with signal if x<1. + * acoshl(NaN) is NaN without signal. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double +#else +static long double +#endif +one = 1.0, +ln2 = 0.6931471805599453094172321214581766L; + +#ifdef __STDC__ + long double __ieee754_acoshl(long double x) +#else + long double __ieee754_acoshl(x) + long double x; +#endif +{ + long double t; + u_int64_t lx; + int64_t hx; + GET_LDOUBLE_WORDS64(hx,lx,x); + if(hx<0x3fff000000000000LL) { /* x < 1 */ + return (x-x)/(x-x); + } else if(hx >=0x401b000000000000LL) { /* x > 2**28 */ + if(hx >=0x7fff000000000000LL) { /* x is inf of NaN */ + return x+x; + } else + return __ieee754_logl(x)+ln2; /* acoshl(huge)=logl(2x) */ + } else if(((hx-0x3fff000000000000LL)|lx)==0) { + return 0.0L; /* acosh(1) = 0 */ + } else if (hx > 0x4000000000000000LL) { /* 2**28 > x > 2 */ + t=x*x; + return __ieee754_logl(2.0L*x-one/(x+__ieee754_sqrtl(t-one))); + } else { /* 1<x<2 */ + t = x-one; + return __log1pl(t+__sqrtl(2.0L*t+t*t)); + } +} diff --git a/sysdeps/ieee754/ldbl-128/e_atan2l.c b/sysdeps/ieee754/ldbl-128/e_atan2l.c new file mode 100644 index 0000000..2e081d3 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/e_atan2l.c @@ -0,0 +1,129 @@ +/* e_atan2l.c -- long double version of e_atan2.c. + * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_atan2l(y,x) + * Method : + * 1. Reduce y to positive by atan2l(y,x)=-atan2l(-y,x). + * 2. Reduce x to positive by (if x and y are unexceptional): + * ARG (x+iy) = arctan(y/x) ... if x > 0, + * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, + * + * Special cases: + * + * ATAN2((anything), NaN ) is NaN; + * ATAN2(NAN , (anything) ) is NaN; + * ATAN2(+-0, +(anything but NaN)) is +-0 ; + * ATAN2(+-0, -(anything but NaN)) is +-pi ; + * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; + * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; + * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; + * ATAN2(+-INF,+INF ) is +-pi/4 ; + * ATAN2(+-INF,-INF ) is +-3pi/4; + * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double +#else +static long double +#endif +tiny = 1.0e-4900L, +zero = 0.0, +pi_o_4 = 7.85398163397448309615660845819875699e-01L, /* 3ffe921fb54442d18469898cc51701b8 */ +pi_o_2 = 1.57079632679489661923132169163975140e+00L, /* 3fff921fb54442d18469898cc51701b8 */ +pi = 3.14159265358979323846264338327950280e+00L, /* 4000921fb54442d18469898cc51701b8 */ +pi_lo = 8.67181013012378102479704402604335225e-35L; /* 3f8dcd129024e088a67cc74020bbea64 */ + +#ifdef __STDC__ + long double __ieee754_atan2l(long double y, long double x) +#else + long double __ieee754_atan2l(y,x) + long double y,x; +#endif +{ + long double z; + int64_t k,m,hx,hy,ix,iy; + u_int64_t lx,ly; + + GET_LDOUBLE_WORDS64(hx,lx,x); + ix = hx&0x7fffffffffffffffLL; + GET_LDOUBLE_WORDS64(hy,ly,y); + iy = hy&0x7fffffffffffffffLL; + if(((ix|((lx|-lx)>>63))>0x7fff000000000000LL)|| + ((iy|((ly|-ly)>>63))>0x7fff000000000000LL)) /* x or y is NaN */ + return x+y; + if((hx-0x3fff000000000000LL|lx)==0) return __atanl(y); /* x=1.0L */ + m = ((hy>>63)&1)|((hx>>62)&2); /* 2*sign(x)+sign(y) */ + + /* when y = 0 */ + if((iy|ly)==0) { + switch(m) { + case 0: + case 1: return y; /* atan(+-0,+anything)=+-0 */ + case 2: return pi+tiny;/* atan(+0,-anything) = pi */ + case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if((ix|lx)==0) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny; + + /* when x is INF */ + if(ix==0x7fff000000000000LL) { + if(iy==0x7fff000000000000LL) { + switch(m) { + case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */ + case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */ + case 2: return 3.0L*pi_o_4+tiny;/*atan(+INF,-INF)*/ + case 3: return -3.0L*pi_o_4-tiny;/*atan(-INF,-INF)*/ + } + } else { + switch(m) { + case 0: return zero ; /* atan(+...,+INF) */ + case 1: return -zero ; /* atan(-...,+INF) */ + case 2: return pi+tiny ; /* atan(+...,-INF) */ + case 3: return -pi-tiny ; /* atan(-...,-INF) */ + } + } + } + /* when y is INF */ + if(iy==0x7fff000000000000LL) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny; + + /* compute y/x */ + k = (iy-ix)>>48; + if(k > 120) z=pi_o_2+0.5L*pi_lo; /* |y/x| > 2**120 */ + else if(hx<0&&k<-120) z=0.0L; /* |y|/x < -2**120 */ + else z=__atanl(fabsl(y/x)); /* safe to do y/x */ + switch (m) { + case 0: return z ; /* atan(+,+) */ + case 1: { + u_int64_t zh; + GET_LDOUBLE_MSW64(zh,z); + SET_LDOUBLE_MSW64(z,zh ^ 0x8000000000000000ULL); + } + return z ; /* atan(-,+) */ + case 2: return pi-(z-pi_lo);/* atan(+,-) */ + default: /* case 3 */ + return (z-pi_lo)-pi;/* atan(-,-) */ + } +} diff --git a/sysdeps/ieee754/ldbl-128/e_fmodl.c b/sysdeps/ieee754/ldbl-128/e_fmodl.c new file mode 100644 index 0000000..1043f69 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/e_fmodl.c @@ -0,0 +1,138 @@ +/* e_fmodl.c -- long double version of e_fmod.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_fmodl(x,y) + * Return x mod y in exact arithmetic + * Method: shift and subtract + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double one = 1.0, Zero[] = {0.0, -0.0,}; +#else +static long double one = 1.0, Zero[] = {0.0, -0.0,}; +#endif + +#ifdef __STDC__ + long double __ieee754_fmodl(long double x, long double y) +#else + long double __ieee754_fmodl(x,y) + long double x,y; +#endif +{ + int64_t n,hx,hy,hz,ix,iy,sx,i; + u_int64_t lx,ly,lz; + + GET_LDOUBLE_WORDS64(hx,lx,x); + GET_LDOUBLE_WORDS64(hy,ly,y); + sx = hx&0x8000000000000000ULL; /* sign of x */ + hx ^=sx; /* |x| */ + hy &= 0x7fffffffffffffffLL; /* |y| */ + + /* purge off exception values */ + if((hy|ly)==0||(hx>=0x7fff000000000000LL)|| /* y=0,or x not finite */ + ((hy|((ly|-ly)>>63))>0x7fff000000000000LL)) /* or y is NaN */ + return (x*y)/(x*y); + if(hx<=hy) { + if((hx<hy)||(lx<ly)) return x; /* |x|<|y| return x */ + if(lx==ly) + return Zero[(u_int64_t)sx>>63]; /* |x|=|y| return x*0*/ + } + + /* determine ix = ilogb(x) */ + if(hx<0x0001000000000000LL) { /* subnormal x */ + if(hx==0) { + for (ix = -16431, i=lx; i>0; i<<=1) ix -=1; + } else { + for (ix = -16382, i=hx<<15; i>0; i<<=1) ix -=1; + } + } else ix = (hx>>48)-0x3fff; + + /* determine iy = ilogb(y) */ + if(hy<0x0001000000000000LL) { /* subnormal y */ + if(hy==0) { + for (iy = -16431, i=ly; i>0; i<<=1) iy -=1; + } else { + for (iy = -16382, i=hy<<15; i>0; i<<=1) iy -=1; + } + } else iy = (hy>>48)-0x3fff; + + /* set up {hx,lx}, {hy,ly} and align y to x */ + if(ix >= -16382) + hx = 0x0001000000000000LL|(0x0000ffffffffffffLL&hx); + else { /* subnormal x, shift x to normal */ + n = -16382-ix; + if(n<=63) { + hx = (hx<<n)|(lx>>(64-n)); + lx <<= n; + } else { + hx = lx<<(n-64); + lx = 0; + } + } + if(iy >= -16382) + hy = 0x0001000000000000LL|(0x0000ffffffffffffLL&hy); + else { /* subnormal y, shift y to normal */ + n = -16382-iy; + if(n<=63) { + hy = (hy<<n)|(ly>>(64-n)); + ly <<= n; + } else { + hy = ly<<(n-64); + ly = 0; + } + } + + /* fix point fmod */ + n = ix - iy; + while(n--) { + hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; + if(hz<0){hx = hx+hx+(lx>>63); lx = lx+lx;} + else { + if((hz|lz)==0) /* return sign(x)*0 */ + return Zero[(u_int64_t)sx>>63]; + hx = hz+hz+(lz>>63); lx = lz+lz; + } + } + hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; + if(hz>=0) {hx=hz;lx=lz;} + + /* convert back to floating value and restore the sign */ + if((hx|lx)==0) /* return sign(x)*0 */ + return Zero[(u_int64_t)sx>>63]; + while(hx<0x0001000000000000LL) { /* normalize x */ + hx = hx+hx+(lx>>63); lx = lx+lx; + iy -= 1; + } + if(iy>= -16382) { /* normalize output */ + hx = ((hx-0x0001000000000000LL)|((iy+16383)<<48)); + SET_LDOUBLE_WORDS64(x,hx|sx,lx); + } else { /* subnormal output */ + n = -16382 - iy; + if(n<=48) { + lx = (lx>>n)|((u_int64_t)hx<<(64-n)); + hx >>= n; + } else if (n<=63) { + lx = (hx<<(64-n))|(lx>>n); hx = sx; + } else { + lx = hx>>(n-64); hx = sx; + } + SET_LDOUBLE_WORDS64(x,hx|sx,lx); + x *= one; /* create necessary signal */ + } + return x; /* exact output */ +} diff --git a/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/sysdeps/ieee754/ldbl-128/e_gammal_r.c new file mode 100644 index 0000000..f77350f --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/e_gammal_r.c @@ -0,0 +1,52 @@ +/* Implementation of gamma function according to ISO C. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> +#include <math_private.h> + + +long double +__ieee754_gammal_r (long double x, int *signgamp) +{ + /* We don't have a real gamma implementation now. We'll use lgamma + and the exp function. But due to the required boundary + conditions we must check some values separately. */ + int64_t hx; + u_int64_t lx; + + GET_LDOUBLE_WORDS64 (hx, lx, x); + + if (((hx & 0x7fffffffffffffffLL) | lx) == 0) + { + /* Return value for x == 0 is NaN with invalid exception. */ + *signgamp = 0; + return x / x; + } + if (hx < 0 && (u_int64_t) hx < 0xffff000000000000ULL && __rintl (x) == x) + { + /* Return value for integer x < 0 is NaN with invalid exception. */ + *signgamp = 0; + return (x - x) / (x - x); + } + + /* XXX FIXME. */ + return __ieee754_expl (__ieee754_lgammal_r (x, signgamp)); +} diff --git a/sysdeps/ieee754/ldbl-128/e_remainderl.c b/sysdeps/ieee754/ldbl-128/e_remainderl.c new file mode 100644 index 0000000..81af247 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/e_remainderl.c @@ -0,0 +1,78 @@ +/* e_fmodl.c -- long double version of e_fmod.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_remainderl(x,p) + * Return : + * returns x REM p = x - [x/p]*p as if in infinite + * precise arithmetic, where [x/p] is the (infinite bit) + * integer nearest x/p (in half way case choose the even one). + * Method : + * Based on fmodl() return x-[x/p]chopped*p exactlp. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double zero = 0.0L; +#else +static long double zero = 0.0L; +#endif + + +#ifdef __STDC__ + long double __ieee754_remainderl(long double x, long double p) +#else + long double __ieee754_remainderl(x,p) + long double x,p; +#endif +{ + int64_t hx,hp; + u_int64_t sx,lx,lp; + long double p_half; + + GET_LDOUBLE_WORDS64(hx,lx,x); + GET_LDOUBLE_WORDS64(hp,lp,p); + sx = hx&0x8000000000000000ULL; + hp &= 0x7fffffffffffffffLL; + hx &= 0x7fffffffffffffffLL; + + /* purge off exception values */ + if((hp|lp)==0) return (x*p)/(x*p); /* p = 0 */ + if((hx>=0x7fff000000000000LL)|| /* x not finite */ + ((hp>=0x7fff000000000000LL)&& /* p is NaN */ + (((hp-0x7fff000000000000LL)|lp)!=0))) + return (x*p)/(x*p); + + + if (hp<=0x7ffdffffffffffffLL) x = __ieee754_fmodl(x,p+p); /* now x < 2p */ + if (((hx-hp)|(lx-lp))==0) return zero*x; + x = fabsl(x); + p = fabsl(p); + if (hp<0x0002000000000000LL) { + if(x+x>p) { + x-=p; + if(x+x>=p) x -= p; + } + } else { + p_half = 0.5L*p; + if(x>p_half) { + x-=p; + if(x>=p_half) x -= p; + } + } + GET_LDOUBLE_MSW64(hx,x); + SET_LDOUBLE_MSW64(x,hx^sx); + return x; +} diff --git a/sysdeps/ieee754/ldbl-128/ieee754.h b/sysdeps/ieee754/ldbl-128/ieee754.h new file mode 100644 index 0000000..c3b2f38 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/ieee754.h @@ -0,0 +1,171 @@ +/* Copyright (C) 1992, 1995, 1996, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _IEEE754_H + +#define _IEEE754_H 1 +#include <features.h> + +#include <endian.h> + +__BEGIN_DECLS + +union ieee754_float + { + float f; + + /* This is the IEEE 754 single-precision format. */ + struct + { +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int negative:1; + unsigned int exponent:8; + unsigned int mantissa:23; +#endif /* Big endian. */ +#if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned int mantissa:23; + unsigned int exponent:8; + unsigned int negative:1; +#endif /* Little endian. */ + } ieee; + + /* This format makes it easier to see if a NaN is a signalling NaN. */ + struct + { +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int negative:1; + unsigned int exponent:8; + unsigned int quiet_nan:1; + unsigned int mantissa:22; +#endif /* Big endian. */ +#if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned int mantissa:22; + unsigned int quiet_nan:1; + unsigned int exponent:8; + unsigned int negative:1; +#endif /* Little endian. */ + } ieee_nan; + }; + +#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */ + + +union ieee754_double + { + double d; + + /* This is the IEEE 754 double-precision format. */ + struct + { +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int negative:1; + unsigned int exponent:11; + /* Together these comprise the mantissa. */ + unsigned int mantissa0:20; + unsigned int mantissa1:32; +#endif /* Big endian. */ +#if __BYTE_ORDER == __LITTLE_ENDIAN + /* Together these comprise the mantissa. */ + unsigned int mantissa1:32; + unsigned int mantissa0:20; + unsigned int exponent:11; + unsigned int negative:1; +#endif /* Little endian. */ + } ieee; + + /* This format makes it easier to see if a NaN is a signalling NaN. */ + struct + { +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int negative:1; + unsigned int exponent:11; + unsigned int quiet_nan:1; + /* Together these comprise the mantissa. */ + unsigned int mantissa0:19; + unsigned int mantissa1:32; +#else + /* Together these comprise the mantissa. */ + unsigned int mantissa1:32; + unsigned int mantissa0:19; + unsigned int quiet_nan:1; + unsigned int exponent:11; + unsigned int negative:1; +#endif + } ieee_nan; + }; + +#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */ + + +union ieee854_long_double + { + long double d; + + /* This is the IEEE 854 quad-precision format. */ + struct + { +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int negative:1; + unsigned int exponent:15; + /* Together these comprise the mantissa. */ + unsigned int mantissa0:16; + unsigned int mantissa1:32; + unsigned int mantissa2:32; + unsigned int mantissa3:32; +#endif /* Big endian. */ +#if __BYTE_ORDER == __LITTLE_ENDIAN + /* Together these comprise the mantissa. */ + unsigned int mantissa3:32; + unsigned int mantissa2:32; + unsigned int mantissa1:32; + unsigned int mantissa0:16; + unsigned int exponent:15; + unsigned int negative:1; +#endif /* Little endian. */ + } ieee; + + /* This format makes it easier to see if a NaN is a signalling NaN. */ + struct + { +#if __BYTE_ORDER == __BIG_ENDIAN + unsigned int negative:1; + unsigned int exponent:15; + unsigned int quiet_nan:1; + /* Together these comprise the mantissa. */ + unsigned int mantissa0:15; + unsigned int mantissa1:32; + unsigned int mantissa2:32; + unsigned int mantissa3:32; +#else + /* Together these comprise the mantissa. */ + unsigned int mantissa3:32; + unsigned int mantissa2:32; + unsigned int mantissa1:32; + unsigned int mantissa0:15; + unsigned int quiet_nan:1; + unsigned int exponent:15; + unsigned int negative:1; +#endif + } ieee_nan; + }; + +#define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */ + +__END_DECLS + +#endif /* ieee754.h */ diff --git a/sysdeps/ieee754/ldbl-128/ldbl2mpn.c b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c new file mode 100644 index 0000000..68ecea8 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c @@ -0,0 +1,137 @@ +/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include "gmp.h" +#include "gmp-impl.h" +#include "longlong.h" +#include <ieee754.h> +#include <float.h> +#include <math.h> +#include <stdlib.h> + +/* Convert a `long double' in IEEE854 quad-precision format to a + multi-precision integer representing the significand scaled up by its + number of bits (113 for long double) and an integral power of two + (MPN frexpl). */ + +mp_size_t +__mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, + int *expt, int *is_neg, + long double value) +{ + union ieee854_long_double u; + u.d = value; + + *is_neg = u.ieee.negative; + *expt = (int) u.ieee.exponent - IEEE854_LONG_DOUBLE_BIAS; + +#if BITS_PER_MP_LIMB == 32 + res_ptr[0] = u.ieee.mantissa3; /* Low-order 32 bits of fraction. */ + res_ptr[1] = u.ieee.mantissa2; + res_ptr[2] = u.ieee.mantissa1; + res_ptr[3] = u.ieee.mantissa0; /* High-order 32 bits. */ + #define N 4 +#elif BITS_PER_MP_LIMB == 64 + /* Hopefully the compiler will combine the two bitfield extracts + and this composition into just the original quadword extract. */ + res_ptr[0] = ((unsigned long int) u.ieee.mantissa2 << 32) | u.ieee.mantissa3; + res_ptr[1] = ((unsigned long int) u.ieee.mantissa0 << 32) | u.ieee.mantissa1; + #define N 2 +#else + #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for" +#endif +/* The format does not fill the last limb. There are some zeros. */ +#define NUM_LEADING_ZEROS (BITS_PER_MP_LIMB \ + - (LDBL_MANT_DIG - ((N - 1) * BITS_PER_MP_LIMB))) + + if (u.ieee.exponent == 0) + { + /* A biased exponent of zero is a special case. + Either it is a zero or it is a denormal number. */ + if (res_ptr[0] == 0 && res_ptr[1] == 0 + && res_ptr[N - 2] == 0 && res_ptr[N - 1] == 0) /* Assumes N<=4. */ + /* It's zero. */ + *expt = 0; + else + { + /* It is a denormal number, meaning it has no implicit leading + one bit, and its exponent is in fact the format minimum. */ + int cnt; + +#if N == 2 + if (res_ptr[N - 1] != 0) + { + count_leading_zeros (cnt, res_ptr[N - 1]); + cnt -= NUM_LEADING_ZEROS; + res_ptr[N - 1] = res_ptr[N - 1] << cnt + | (res_ptr[0] >> (BITS_PER_MP_LIMB - cnt)); + res_ptr[0] <<= cnt; + *expt = LDBL_MIN_EXP - 1 - cnt; + } + else + { + count_leading_zeros (cnt, res_ptr[0]); + if (cnt >= NUM_LEADING_ZEROS) + { + res_ptr[N - 1] = res_ptr[0] << (cnt - NUM_LEADING_ZEROS); + res_ptr[0] = 0; + } + else + { + res_ptr[N - 1] = res_ptr[0] >> (NUM_LEADING_ZEROS - cnt); + res_ptr[0] <<= BITS_PER_MP_LIMB - (NUM_LEADING_ZEROS - cnt); + } + *expt = LDBL_MIN_EXP - 1 + - (BITS_PER_MP_LIMB - NUM_LEADING_ZEROS) - cnt; + } +#else + int j, k, l; + + for (j = N - 1; j > 0; j++) + if (res_ptr[j] != 0) + break; + + count_leading_zeros (cnt, res_ptr[j]); + cnt -= NUM_LEADING_ZEROS; + l = N - 1 - j; + if (cnt < 0) + { + cnt += BITS_PER_MP_LIMB; + l++; + } + if (!cnt) + for (k = N - 1; k >= l; k--) + res_ptr[k] = res_ptr[k-l]; + else + for (k = N - 1; k >= l; k--) + res_ptr[k] = res_ptr[k-l] << cnt + | res_ptr[k-l-1] >> (BITS_PER_MP_LIMB - cnt); + res_ptr[k--] = res_ptr[0] << cnt; + + for (; k >= 0; k--) + res_ptr[k] = 0; + *expt = LDBL_MIN_EXP - 1 - 3 * BITS_PER_MP_LIMB - cnt; +#endif + } + } + else + /* Add the implicit leading one bit for a normalized number. */ + res_ptr[N - 1] |= 1L << (LDBL_MANT_DIG - 1 - ((N - 1) * BITS_PER_MP_LIMB)); + + return N; +} diff --git a/sysdeps/ieee754/ldbl-128/math_ldbl.h b/sysdeps/ieee754/ldbl-128/math_ldbl.h new file mode 100644 index 0000000..aecb20a --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/math_ldbl.h @@ -0,0 +1,82 @@ +#ifndef _MATH_PRIVATE_H_ +#error "Never use <math_ldbl.h> directly; include <math_private.h> instead." +#endif + +/* A union which permits us to convert between a long double and + four 32 bit ints or two 64 bit ints. */ + +#if __FLOAT_WORD_ORDER == BIG_ENDIAN + +typedef union +{ + long double value; + struct + { + u_int64_t msw; + u_int64_t lsw; + } parts64; + struct + { + u_int32_t w0, w1, w2, w3; + } parts32; +} ieee854_long_double_shape_type; + +#endif + +#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN + +typedef union +{ + long double value; + struct + { + u_int64_t lsw; + u_int64_t msw; + } parts64; + struct + { + u_int32_t w3, w2, w1, w0; + } parts32; +} ieee854_long_double_shape_type; + +#endif + +/* Get two 64 bit ints from a long double. */ + +#define GET_LDOUBLE_WORDS64(ix0,ix1,d) \ +do { \ + ieee854_long_double_shape_type qw_u; \ + qw_u.value = (d); \ + (ix0) = qw_u.parts64.msw; \ + (ix1) = qw_u.parts64.lsw; \ +} while (0) + +/* Set a long double from two 64 bit ints. */ + +#define SET_LDOUBLE_WORDS64(d,ix0,ix1) \ +do { \ + ieee854_long_double_shape_type qw_u; \ + qw_u.parts64.msw = (ix0); \ + qw_u.parts64.lsw = (ix1); \ + (d) = qw_u.value; \ +} while (0) + +/* Get the more significant 64 bits of a long double mantissa. */ + +#define GET_LDOUBLE_MSW64(v,d) \ +do { \ + ieee854_long_double_shape_type sh_u; \ + sh_u.value = (d); \ + (v) = sh_u.parts64.msw; \ +} while (0) + +/* Set the more significant 64 bits of a long double mantissa from an int. */ + +#define SET_LDOUBLE_MSW64(d,v) \ +do { \ + ieee854_long_double_shape_type sh_u; \ + sh_u.value = (d); \ + sh_u.parts64.msw = (v); \ + (d) = sh_u.value; \ +} while (0) + diff --git a/sysdeps/ieee754/ldbl-128/mpn2ldbl.c b/sysdeps/ieee754/ldbl-128/mpn2ldbl.c new file mode 100644 index 0000000..d9cc452 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/mpn2ldbl.c @@ -0,0 +1,51 @@ +/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include "gmp.h" +#include "gmp-impl.h" +#include <ieee754.h> +#include <float.h> +#include <math.h> + +/* Convert a multi-precision integer of the needed number of bits (113 for + long double) and an integral power of two to a `long double' in IEEE854 + quad-precision format. */ + +long double +__mpn_construct_long_double (mp_srcptr frac_ptr, int expt, int sign) +{ + union ieee854_long_double u; + + u.ieee.negative = sign; + u.ieee.exponent = expt + IEEE854_LONG_DOUBLE_BIAS; +#if BITS_PER_MP_LIMB == 32 + u.ieee.mantissa3 = frac_ptr[0]; + u.ieee.mantissa2 = frac_ptr[1]; + u.ieee.mantissa1 = frac_ptr[2]; + u.ieee.mantissa0 = frac_ptr[3] & ((1 << (LDBL_MANT_DIG - 96)) - 1); +#elif BITS_PER_MP_LIMB == 64 + u.ieee.mantissa3 = frac_ptr[0] & ((1L << 32) - 1); + u.ieee.mantissa2 = frac_ptr[0] >> 32; + u.ieee.mantissa1 = frac_ptr[1] & ((1L << 32) - 1); + u.ieee.mantissa0 = (frac_ptr[1] >> 32) & ((1 << (LDBL_MANT_DIG - 96)) - 1); +#else + #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for" +#endif + + return u.d; +} diff --git a/sysdeps/ieee754/ldbl-128/printf_fphex.c b/sysdeps/ieee754/ldbl-128/printf_fphex.c new file mode 100644 index 0000000..e25d668 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/printf_fphex.c @@ -0,0 +1,84 @@ +/* Print floating point number in hexadecimal notation according to + ISO C 9X. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#define PRINT_FPHEX_LONG_DOUBLE \ +do { \ + /* We have 112 bits of mantissa plus one implicit digit. Since \ + 112 bits are representable without rest using hexadecimal \ + digits we use only the implicit digits for the number before \ + the decimal point. */ \ + unsigned long long int num0, num1; \ + \ + assert (sizeof (long double) == 16); \ + \ + num0 = (((unsigned long long int) fpnum.ldbl.ieee.mantissa0) << 32 \ + | fpnum.ldbl.ieee.mantissa1); \ + num1 = (((unsigned long long int) fpnum.ldbl.ieee.mantissa2) << 32 \ + | fpnum.ldbl.ieee.mantissa3); \ + \ + zero_mantissa = (num0|num1) == 0; \ + \ + if (sizeof (unsigned long int) > 6) \ + numstr = _itoa_word (num1, numbuf + sizeof numbuf, 16, \ + info->spec == 'A'); \ + else \ + numstr = _itoa (num1, numbuf + sizeof numbuf, 16, \ + info->spec == 'A'); \ + \ + while (numstr > numbuf + (sizeof numbuf - 64 / 4)) \ + *--numstr = '0'; \ + \ + if (sizeof (unsigned long int) > 6) \ + numstr = _itoa_word (num0, numstr, 16, info->spec == 'A'); \ + else \ + numstr = _itoa (num0, numstr, 16, info->spec == 'A'); \ + \ + /* Fill with zeroes. */ \ + while (numstr > numbuf + (sizeof numbuf - 112 / 4)) \ + *--numstr = '0'; \ + \ + leading = fpnum.ldbl.ieee.exponent == 0 ? '0' : '1'; \ + \ + exponent = fpnum.ldbl.ieee.exponent; \ + \ + if (exponent == 0) \ + { \ + if (zero_mantissa) \ + expnegative = 0; \ + else \ + { \ + /* This is a denormalized number. */ \ + expnegative = 1; \ + exponent = IEEE854_LONG_DOUBLE_BIAS - 1; \ + } \ + } \ + else if (exponent >= IEEE854_LONG_DOUBLE_BIAS) \ + { \ + expnegative = 0; \ + exponent -= IEEE854_LONG_DOUBLE_BIAS; \ + } \ + else \ + { \ + expnegative = 1; \ + exponent = -(exponent - IEEE854_LONG_DOUBLE_BIAS); \ + } \ +} while (0) + +#include <sysdeps/generic/printf_fphex.c> diff --git a/sysdeps/ieee754/ldbl-128/s_ceill.c b/sysdeps/ieee754/ldbl-128/s_ceill.c new file mode 100644 index 0000000..f241554 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_ceill.c @@ -0,0 +1,84 @@ +/* s_ceill.c -- long double version of s_ceil.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * ceill(x) + * Return x rounded toward -inf to integral value + * Method: + * Bit twiddling. + * Exception: + * Inexact flag raised if x not equal to ceil(x). + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double huge = 1.0e4930; +#else +static long double huge = 1.0e4930; +#endif + +#ifdef __STDC__ + long double __ceill(long double x) +#else + long double __ceill(x) + long double x; +#endif +{ + int64_t i0,i1,j0; + u_int64_t i,j; + GET_LDOUBLE_WORDS64(i0,i1,x); + j0 = ((i0>>48)&0x7fff)-0x3fff; + if(j0<48) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0<0) {i0=0x8000000000000000ULL;i1=0;} + else if((i0|i1)!=0) { i0=0x3fff000000000000ULL;i1=0;} + } + } else { + i = (0x7fffffffffffffffULL)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0>0) i0 += (0x0001000000000000LL)>>j0; + i0 &= (~i); i1=0; + } + } + } else if (j0>111) { + if(j0==0x4000) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = -1ULL>>(j0-48); + if((i1&i)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0>0) { + if(j0==48) i0+=1; + else { + j = i1+(1LL<<(112-j0)); + if(j<i1) i0 +=1 ; /* got a carry */ + i1=j; + } + } + i1 &= (~i); + } + } + SET_LDOUBLE_WORDS64(x,i0,i1); + return x; +} +weak_alias (__ceill, ceill) diff --git a/sysdeps/ieee754/ldbl-128/s_copysignl.c b/sysdeps/ieee754/ldbl-128/s_copysignl.c new file mode 100644 index 0000000..cece4f2 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_copysignl.c @@ -0,0 +1,43 @@ +/* s_copysignl.c -- long double version of s_copysign.c. + * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * copysignl(long double x, long double y) + * copysignl(x,y) returns a value with the magnitude of x and + * with the sign bit of y. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + long double __copysignl(long double x, long double y) +#else + long double __copysignl(x,y) + long double x,y; +#endif +{ + u_int64_t hx,hy; + GET_LDOUBLE_MSW64(hx,x); + GET_LDOUBLE_MSW64(hy,y); + SET_LDOUBLE_MSW64(x,(hx&0x7fffffffffffffffULL) + |(hy&0x8000000000000000ULL)); + return x; +} +weak_alias (__copysignl, copysignl) diff --git a/sysdeps/ieee754/ldbl-128/s_cosl.c b/sysdeps/ieee754/ldbl-128/s_cosl.c new file mode 100644 index 0000000..d1258b2 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_cosl.c @@ -0,0 +1,83 @@ +/* s_cosl.c -- long double version of s_cos.c. + * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* cosl(x) + * Return cosine function of x. + * + * kernel function: + * __kernel_sinl ... sine function on [-pi/4,pi/4] + * __kernel_cosl ... cosine function on [-pi/4,pi/4] + * __ieee754_rem_pio2l ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + long double __cosl(long double x) +#else + long double __cosl(x) + long double x; +#endif +{ + long double y[2],z=0.0L; + int64_t n, ix; + + /* High word of x. */ + GET_LDOUBLE_MSW64(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffffffffffffLL; + if(ix <= 0x3ffe921fb54442d1LL) + return __kernel_cosl(x,z); + + /* cos(Inf or NaN) is NaN */ + else if (ix>=0x7fff000000000000LL) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2l(x,y); + switch(n&3) { + case 0: return __kernel_cosl(y[0],y[1]); + case 1: return -__kernel_sinl(y[0],y[1],1); + case 2: return -__kernel_cosl(y[0],y[1]); + default: + return __kernel_sinl(y[0],y[1],1); + } + } +} +weak_alias (__cosl, cosl) diff --git a/sysdeps/ieee754/ldbl-128/s_fabsl.c b/sysdeps/ieee754/ldbl-128/s_fabsl.c new file mode 100644 index 0000000..c0fd05a --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_fabsl.c @@ -0,0 +1,39 @@ +/* s_fabsl.c -- long double version of s_fabs.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * fabsl(x) returns the absolute value of x. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + long double __fabsl(long double x) +#else + long double __fabsl(x) + long double x; +#endif +{ + u_int64_t hx; + GET_LDOUBLE_MSW64(hx,x); + SET_LDOUBLE_MSW64(x,hx&0x7fffffffffffffffLL); + return x; +} +weak_alias (__fabsl, fabsl) diff --git a/sysdeps/ieee754/ldbl-128/s_finitel.c b/sysdeps/ieee754/ldbl-128/s_finitel.c new file mode 100644 index 0000000..dd176c1 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_finitel.c @@ -0,0 +1,40 @@ +/* s_finitel.c -- long double version of s_finite.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * finitel(x) returns 1 is x is finite, else 0; + * no branching! + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + int __finitel(long double x) +#else + int __finitel(x) + long double x; +#endif +{ + int64_t hx; + GET_LDOUBLE_MSW64(hx,x); + return (int)((u_int64_t)((hx&0x7fffffffffffffffLL) + -0x7fff000000000000LL)>>63); +} +weak_alias (__finitel, finitel) diff --git a/sysdeps/ieee754/ldbl-128/s_floorl.c b/sysdeps/ieee754/ldbl-128/s_floorl.c new file mode 100644 index 0000000..c9b8b70 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_floorl.c @@ -0,0 +1,85 @@ +/* s_floorl.c -- long double version of s_floor.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * floorl(x) + * Return x rounded toward -inf to integral value + * Method: + * Bit twiddling. + * Exception: + * Inexact flag raised if x not equal to floor(x). + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double huge = 1.0e4930; +#else +static long double huge = 1.0e4930; +#endif + +#ifdef __STDC__ + long double __floorl(long double x) +#else + long double __floorl(x) + long double x; +#endif +{ + int64_t i0,i1,j0; + u_int64_t i,j; + GET_LDOUBLE_WORDS64(i0,i1,x); + j0 = ((i0>>48)&0x7fff)-0x3fff; + if(j0<48) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0>=0) {i0=i1=0;} + else if(((i0&0x7fffffffffffffffLL)|i1)!=0) + { i0=0xbfff000000000000ULL;i1=0;} + } + } else { + i = (0x7fffffffffffffffULL)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) i0 += (0x0001000000000000LL)>>j0; + i0 &= (~i); i1=0; + } + } + } else if (j0>111) { + if(j0==0x4000) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = -1ULL>>(j0-48); + if((i1&i)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) { + if(j0==48) i0+=1; + else { + j = i1+(1LL<<(112-j0)); + if(j<i1) i0 +=1 ; /* got a carry */ + i1=j; + } + } + i1 &= (~i); + } + } + SET_LDOUBLE_WORDS64(x,i0,i1); + return x; +} +weak_alias (__floorl, floorl) diff --git a/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c new file mode 100644 index 0000000..868c3c4 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c @@ -0,0 +1,44 @@ +/* Return classification value corresponding to argument. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + + +int +__fpclassifyl (long double x) +{ + u_int64_t hx, lx; + int retval = FP_NORMAL; + + GET_LDOUBLE_WORDS64 (hx, lx, x); + lx |= (hx & 0x0000ffffffffffffLL); + hx &= 0x7fff000000000000LL; + if ((hx | lx) == 0) + retval = FP_ZERO; + else if (hx == 0) + retval = FP_SUBNORMAL; + else if (hx == 0x7fff000000000000LL) + retval = lx != 0 ? FP_NAN : FP_INFINITE; + + return retval; +} diff --git a/sysdeps/ieee754/ldbl-128/s_frexpl.c b/sysdeps/ieee754/ldbl-128/s_frexpl.c new file mode 100644 index 0000000..6dbb60e --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_frexpl.c @@ -0,0 +1,63 @@ +/* s_frexpl.c -- long double version of s_frexp.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * for non-zero x + * x = frexpl(arg,&exp); + * return a long double fp quantity x such that 0.5 <= |x| <1.0 + * and the corresponding binary exponent "exp". That is + * arg = x*2^exp. + * If arg is inf, 0.0, or NaN, then frexpl(arg,&exp) returns arg + * with *exp=0. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double +#else +static long double +#endif +two114 = 2.0769187434139310514121985316880384E+34L; /* 0x4071000000000000, 0 */ + +#ifdef __STDC__ + long double __frexpl(long double x, int *eptr) +#else + long double __frexpl(x, eptr) + long double x; int *eptr; +#endif +{ + u_int64_t hx, lx, ix; + GET_LDOUBLE_WORDS64(hx,lx,x); + ix = 0x7fffffffffffffffULL&hx; + *eptr = 0; + if(ix>=0x7fff000000000000ULL||((ix|lx)==0)) return x; /* 0,inf,nan */ + if (ix<0x0001000000000000ULL) { /* subnormal */ + x *= two114; + GET_LDOUBLE_MSW64(hx,x); + ix = hx&0x7fffffffffffffffULL; + *eptr = -114; + } + *eptr += (ix>>48)-16382; + hx = (hx&0x8000ffffffffffffULL) | 0x3ffe000000000000ULL; + SET_LDOUBLE_MSW64(x,hx); + return x; +} +weak_alias (__frexpl, frexpl) diff --git a/sysdeps/ieee754/ldbl-128/s_ilogbl.c b/sysdeps/ieee754/ldbl-128/s_ilogbl.c new file mode 100644 index 0000000..d2acfd3 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_ilogbl.c @@ -0,0 +1,55 @@ +/* s_ilogbl.c -- long double version of s_ilogb.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* ilogbl(long double x) + * return the binary exponent of non-zero x + * ilogbl(0) = 0x80000001 + * ilogbl(inf/NaN) = 0x7fffffff (no signal is raised) + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + int __ilogbl(long double x) +#else + int __ilogbl(x) + long double x; +#endif +{ + int64_t hx,lx; + int ix; + + GET_LDOUBLE_WORDS64(hx,lx,x); + hx &= 0x7fffffffffffffffLL; + if(hx <= 0x0001000000000000LL) { + if((hx|lx)==0) + return FP_ILOGB0; /* ilogbl(0) = FP_ILOGB0 */ + else /* subnormal x */ + if(hx==0) { + for (ix = -16431; lx>0; lx<<=1) ix -=1; + } else { + for (ix = -16382, hx<<=15; hx>0; hx<<=1) ix -=1; + } + return ix; + } + else if (hx<0x7fff000000000000LL) return (hx>>48)-0x3fff; + else return FP_ILOGBNAN; +} +weak_alias (__ilogbl, ilogbl) diff --git a/sysdeps/ieee754/ldbl-128/s_isinfl.c b/sysdeps/ieee754/ldbl-128/s_isinfl.c new file mode 100644 index 0000000..038c294 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_isinfl.c @@ -0,0 +1,28 @@ +/* + * Written by J.T. Conklin <jtc@netbsd.org>. + * Change for long double by Jakub Jelinek <jj@ultra.linux.cz> + * Public domain. + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * isinfl(x) returns 1 if x is inf, -1 if x is -inf, else 0; + * no branching! + */ + +#include "math.h" +#include "math_private.h" + +int +__isinfl (long double x) +{ + int64_t hx,lx; + GET_LDOUBLE_WORDS64(hx,lx,x); + lx |= (hx & 0x7fffffffffffffffLL) ^ 0x7fff000000000000LL; + lx |= -lx; + return ~(lx >> 63) & (hx >> 62); +} +weak_alias (__isinfl, isinfl) diff --git a/sysdeps/ieee754/ldbl-128/s_isnanl.c b/sysdeps/ieee754/ldbl-128/s_isnanl.c new file mode 100644 index 0000000..d2fb403 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_isnanl.c @@ -0,0 +1,42 @@ +/* s_isnanl.c -- long double version of s_isnan.c. + * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * isnanl(x) returns 1 is x is nan, else 0; + * no branching! + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + int __isnanl(long double x) +#else + int __isnanl(x) + long double x; +#endif +{ + int64_t hx,lx; + GET_LDOUBLE_WORDS64(hx,lx,x); + hx &= 0x7fffffffffffffffLL; + hx |= (u_int64_t)(lx|(-lx))>>63; + hx = 0x7fff000000000000LL - hx; + return (int)((u_int64_t)hx>>63); +} +weak_alias (__isnanl, isnanl) diff --git a/sysdeps/ieee754/ldbl-128/s_llrintl.c b/sysdeps/ieee754/ldbl-128/s_llrintl.c new file mode 100644 index 0000000..389a65d --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_llrintl.c @@ -0,0 +1,75 @@ +/* Round argument to nearest integral value according to current rounding + direction. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + +static const long double two112[2] = +{ + 5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */ + -5.19229685853482762853049632922009600E+33L /* 0xC06F000000000000, 0 */ +}; + +long long int +__llrintl (long double x) +{ + int32_t j0; + u_int64_t i0,i1; + volatile long double w; + long double t; + long long int result; + int sx; + + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + sx = i0 >> 63; + i0 &= 0x0000ffffffffffffLL; + i0 |= 0x0001000000000000LL; + + if (j0 < (int32_t) (8 * sizeof (long long int)) - 1) + { + if (j0 < -1) + return 0; + w = two112[sx] + x; + t = w - two112[sx]; + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + i0 &= 0x0000ffffffffffffLL; + i0 |= 0x0001000000000000LL; + + if (j0 <= 48) + result = i0 >> (48 - j0); + else + result = ((long long int) i0 << (j0 - 48)) | (i1 >> (112 - j0)); + } + else + { + /* The number is too large. It is left implementation defined + what happens. */ + return (long long int) x; + } + + return sx ? -result : result; +} + +weak_alias (__llrintl, llrintl) diff --git a/sysdeps/ieee754/ldbl-128/s_llroundl.c b/sysdeps/ieee754/ldbl-128/s_llroundl.c new file mode 100644 index 0000000..82395a7 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_llroundl.c @@ -0,0 +1,74 @@ +/* Round long double value to long long int. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + + +long long int +__llroundl (long double x) +{ + int64_t j0; + u_int64_t i1, i0; + long long int result; + int sign; + + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + sign = (i0 & 0x8000000000000000ULL) != 0 ? -1 : 1; + i0 &= 0x0000ffffffffffffLL; + i0 |= 0x0001000000000000LL; + + if (j0 < 48) + { + if (j0 < 0) + return j0 < -1 ? 0 : sign; + else + { + i0 += 0x0000800000000000LL >> j0; + result = i0 >> (48 - j0); + } + } + else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1) + { + if (j0 >= 112) + result = ((long long int) i0 << (j0 - 48)) | (i1 << (j0 - 112)); + else + { + u_int64_t j = i1 + (0x8000000000000000ULL >> (j0 - 48)); + if (j < i1) + ++i0; + + result = ((long long int) i0 << (j0 - 48)) | (j >> (112 - j0)); + } + } + else + { + /* The number is too large. It is left implementation defined + what happens. */ + return (long long int) x; + } + + return sign * result; +} + +weak_alias (__llroundl, llroundl) diff --git a/sysdeps/ieee754/ldbl-128/s_logbl.c b/sysdeps/ieee754/ldbl-128/s_logbl.c new file mode 100644 index 0000000..1fda289 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_logbl.c @@ -0,0 +1,46 @@ +/* s_logbl.c -- long double version of s_logb.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * long double logbl(x) + * IEEE 754 logb. Included to pass IEEE test suite. Not recommend. + * Use ilogb instead. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + long double __logbl(long double x) +#else + long double __logbl(x) + long double x; +#endif +{ + int64_t lx,hx; + GET_LDOUBLE_WORDS64(hx,lx,x); + hx &= 0x7fffffffffffffffLL; /* high |x| */ + if((hx|lx)==0) return -1.0/fabs(x); + if(hx>=0x7fff000000000000LL) return x*x; + if((hx>>=48)==0) /* IEEE 754 logb */ + return -16382.0; + else + return (long double) (hx-0x3fff); +} +weak_alias (__logbl, logbl) diff --git a/sysdeps/ieee754/ldbl-128/s_lrintl.c b/sysdeps/ieee754/ldbl-128/s_lrintl.c new file mode 100644 index 0000000..434aa31 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_lrintl.c @@ -0,0 +1,91 @@ +/* Round argument to nearest integral value according to current rounding + direction. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + +static const long double two112[2] = +{ + 5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */ + -5.19229685853482762853049632922009600E+33L /* 0xC06F000000000000, 0 */ +}; + +long int +__lrintl (long double x) +{ + int32_t j0; + u_int64_t i0,i1; + volatile long double w; + long double t; + long int result; + int sx; + + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + sx = i0 >> 63; + i0 &= 0x0000ffffffffffffLL; + i0 |= 0x0001000000000000LL; + + if (j0 < 48) + { + if (j0 < -1) + return 0; + else + { + w = two112[sx] + x; + t = w - two112[sx]; + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + i0 &= 0x0000ffffffffffffLL; + i0 |= 0x0001000000000000LL; + + result = i0 >> (48 - j0); + } + } + else if (j0 < (int32_t) (8 * sizeof (long int)) - 1) + { + if (j0 >= 112) + result = ((long int) i0 << (j0 - 48)) | (i1 << (j0 - 112)); + else + { + w = two112[sx] + x; + t = w - two112[sx]; + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + i0 &= 0x0000ffffffffffffLL; + i0 |= 0x0001000000000000LL; + + result = ((long int) i0 << (j0 - 48)) | (i1 >> (112 - j0)); + } + } + else + { + /* The number is too large. It is left implementation defined + what happens. */ + return (long int) x; + } + + return sx ? -result : result; +} + +weak_alias (__lrintl, lrintl) diff --git a/sysdeps/ieee754/ldbl-128/s_lroundl.c b/sysdeps/ieee754/ldbl-128/s_lroundl.c new file mode 100644 index 0000000..ea82f4c --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_lroundl.c @@ -0,0 +1,74 @@ +/* Round long double value to long int. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + + +long int +__lroundl (long double x) +{ + int64_t j0; + u_int64_t i1, i0; + long int result; + int sign; + + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + sign = (i0 & 0x8000000000000000ULL) != 0 ? -1 : 1; + i0 &= 0x0000ffffffffffffLL; + i0 |= 0x0001000000000000LL; + + if (j0 < 48) + { + if (j0 < 0) + return j0 < -1 ? 0 : sign; + else + { + i0 += 0x0000800000000000LL >> j0; + result = i0 >> (48 - j0); + } + } + else if (j0 < (int32_t) (8 * sizeof (long int)) - 1) + { + if (j0 >= 112) + result = ((long int) i0 << (j0 - 48)) | (i1 << (j0 - 112)); + else + { + u_int64_t j = i1 + (0x8000000000000000ULL >> (j0 - 48)); + if (j < i1) + ++i0; + + result = ((long int) i0 << (j0 - 48)) | (j >> (112 - j0)); + } + } + else + { + /* The number is too large. It is left implementation defined + what happens. */ + return (long int) x; + } + + return sign * result; +} + +weak_alias (__lroundl, lroundl) diff --git a/sysdeps/ieee754/ldbl-128/s_modfl.c b/sysdeps/ieee754/ldbl-128/s_modfl.c new file mode 100644 index 0000000..63d66e7 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_modfl.c @@ -0,0 +1,88 @@ +/* s_modfl.c -- long double version of s_modf.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * modfl(long double x, long double *iptr) + * return fraction part of x, and return x's integral part in *iptr. + * Method: + * Bit twiddling. + * + * Exception: + * No exception. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double one = 1.0; +#else +static long double one = 1.0; +#endif + +#ifdef __STDC__ + long double __modfl(long double x, long double *iptr) +#else + long double __modfl(x, iptr) + long double x,*iptr; +#endif +{ + int64_t i0,i1,j0; + u_int64_t i; + GET_LDOUBLE_WORDS64(i0,i1,x); + j0 = ((i0>>48)&0x7fff)-0x3fff; /* exponent of x */ + if(j0<48) { /* integer part in high x */ + if(j0<0) { /* |x|<1 */ + /* *iptr = +-0 */ + SET_LDOUBLE_WORDS64(*iptr,i0&0x8000000000000000ULL,0); + return x; + } else { + i = (0x0000ffffffffffffLL)>>j0; + if(((i0&i)|i1)==0) { /* x is integral */ + *iptr = x; + /* return +-0 */ + SET_LDOUBLE_WORDS64(x,i0&0x8000000000000000ULL,0); + return x; + } else { + SET_LDOUBLE_WORDS64(*iptr,i0&(~i),0); + return x - *iptr; + } + } + } else if (j0>111) { /* no fraction part */ + *iptr = x*one; + /* We must handle NaNs separately. */ + if (j0 == 0x4000 && ((i0 & 0x0000ffffffffffffLL) | i1)) + return x*one; + /* return +-0 */ + SET_LDOUBLE_WORDS64(x,i0&0x8000000000000000ULL,0); + return x; + } else { /* fraction part in low x */ + i = -1ULL>>(j0-48); + if((i1&i)==0) { /* x is integral */ + *iptr = x; + /* return +-0 */ + SET_LDOUBLE_WORDS64(x,i0&0x8000000000000000ULL,0); + return x; + } else { + SET_LDOUBLE_WORDS64(*iptr,i0,i1&(~i)); + return x - *iptr; + } + } +} +weak_alias (__modfl, modfl) diff --git a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c new file mode 100644 index 0000000..bea3183 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c @@ -0,0 +1,93 @@ +/* s_nearbyintl.c -- long double version of s_nearbyint.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * nearbyintl(x) + * Return x rounded to integral value according to the prevailing + * rounding mode. + * Method: + * Using floating addition. + * Exception: + * Inexact flag raised if x not equal to rintl(x). + */ + +#include <fenv.h> +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double +#else +static long double +#endif +TWO112[2]={ + 5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */ + -5.19229685853482762853049632922009600E+33L /* 0xC06F000000000000, 0 */ +}; + +#ifdef __STDC__ + long double __nearbyintl(long double x) +#else + long double __nearbyintl(x) + long double x; +#endif +{ + fenv_t env; + int64_t i0,j0,sx; + u_int64_t i,i1; + long double w,t; + GET_LDOUBLE_WORDS64(i0,i1,x); + sx = (((u_int64_t)i0)>>63); + j0 = ((i0>>48)&0x7fff)-0x3fff; + if(j0<48) { + if(j0<0) { + if(((i0&0x7fffffffffffffffLL)|i1)==0) return x; + i1 |= (i0&0x0000ffffffffffffLL); + i0 &= 0xffffe00000000000ULL; + i0 |= ((i1|-i1)>>16)&0x0000800000000000LL; + SET_LDOUBLE_MSW64(x,i0); + feholdexcept (&env); + w = TWO112[sx]+x; + t = w-TWO112[sx]; + fesetenv (&env); + GET_LDOUBLE_MSW64(i0,t); + SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63)); + return t; + } else { + i = (0x0000ffffffffffffLL)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + i>>=1; + if(((i0&i)|i1)!=0) { + if(j0==47) i1 = 0x4000000000000000ULL; else + i0 = (i0&(~i))|((0x0000200000000000LL)>>j0); + } + } + } else if (j0>111) { + if(j0==0x4000) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = -1ULL>>(j0-48); + if((i1&i)==0) return x; /* x is integral */ + i>>=1; + if((i1&i)!=0) i1 = (i1&(~i))|((0x4000000000000000LL)>>(j0-48)); + } + SET_LDOUBLE_WORDS64(x,i0,i1); + feholdexcept (&env); + w = TWO112[sx]+x; + t = w-TWO112[sx]; + fesetenv (&env); + return t; +} +weak_alias (__nearbyintl, nearbyintl) diff --git a/sysdeps/ieee754/ldbl-128/s_nextafterl.c b/sysdeps/ieee754/ldbl-128/s_nextafterl.c new file mode 100644 index 0000000..d3df668 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_nextafterl.c @@ -0,0 +1,85 @@ +/* s_nextafterl.c -- long double version of s_nextafter.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* IEEE functions + * nextafterl(x,y) + * return the next machine floating-point number of x in the + * direction toward y. + * Special cases: + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + long double __nextafterl(long double x, long double y) +#else + long double __nextafterl(x,y) + long double x,y; +#endif +{ + int64_t hx,hy,ix,iy; + u_int64_t lx,ly; + + GET_LDOUBLE_WORDS64(hx,lx,x); + GET_LDOUBLE_WORDS64(hy,ly,y); + ix = hx&0x7fffffffffffffffLL; /* |x| */ + iy = hy&0x7fffffffffffffffLL; /* |y| */ + + if(((ix>=0x7fff000000000000LL)&&((ix-0x7fff000000000000LL)|lx)!=0) || /* x is nan */ + ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0)) /* y is nan */ + return x+y; + if(x==y) return y; /* x=y, return y */ + if((ix|lx)==0) { /* x == 0 */ + SET_LDOUBLE_WORDS64(x,hy&0x8000000000000000ULL,1);/* return +-minsubnormal */ + y = x*x; + if(y==x) return y; else return x; /* raise underflow flag */ + } + if(hx>=0) { /* x > 0 */ + if(hx>hy||((hx==hy)&&(lx>ly))) { /* x > y, x -= ulp */ + if(lx==0) hx--; + lx--; + } else { /* x < y, x += ulp */ + lx++; + if(lx==0) hx++; + } + } else { /* x < 0 */ + if(hy>=0||hx>hy||((hx==hy)&&(lx>ly))){/* x < y, x -= ulp */ + if(lx==0) hx--; + lx--; + } else { /* x > y, x += ulp */ + lx++; + if(lx==0) hx++; + } + } + hy = hx&0x7fff000000000000LL; + if(hy==0x7fff000000000000LL) return x+x;/* overflow */ + if(hy==0) { /* underflow */ + y = x*x; + if(y!=x) { /* raise underflow flag */ + SET_LDOUBLE_WORDS64(y,hx,lx); + return y; + } + } + SET_LDOUBLE_WORDS64(x,hx,lx); + return x; +} +weak_alias (__nextafterl, nextafterl) +strong_alias (__nextafterl, __nexttowardl) +weak_alias (__nextafterl, nexttowardl) diff --git a/sysdeps/ieee754/ldbl-128/s_nexttoward.c b/sysdeps/ieee754/ldbl-128/s_nexttoward.c new file mode 100644 index 0000000..f121be2 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_nexttoward.c @@ -0,0 +1,97 @@ +/* s_nexttoward.c + * Conversion from s_nextafter.c by Ulrich Drepper, Cygnus Support, + * drepper@cygnus.com and Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* IEEE functions + * nexttoward(x,y) + * return the next machine floating-point number of x in the + * direction toward y. + * Special cases: + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + double __nexttoward(double x, long double y) +#else + double __nexttoward(x,y) + double x; + long double y; +#endif +{ + int32_t hx,ix; + int64_t hy,iy; + u_int32_t lx; + u_int64_t ly; + + EXTRACT_WORDS(hx,lx,x); + GET_LDOUBLE_WORDS64(hy,ly,y); + ix = hx&0x7fffffff; /* |x| */ + iy = hy&0x7fffffffffffffffLL; /* |y| */ + + if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */ + ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0)) + /* y is nan */ + return x+y; + if((long double) x==y) return x; /* x=y, return x */ + if((ix|lx)==0) { /* x == 0 */ + double x2; + INSERT_WORDS(x,(u_int32_t)((hy>>32)&0x80000000),1);/* return +-minsub */ + x2 = x*x; + if(x2==x) return x2; else return x; /* raise underflow flag */ + } + if(hx>=0) { /* x > 0 */ + if (hy<0||(ix>>20)>(iy>>48)-0x3c00 + || ((ix>>20)==(iy>>48)-0x3c00 + && (((((int64_t)hx)<<28)|(lx>>4))>(hy&0x0000ffffffffffffLL) + || (((((int64_t)hx)<<28)|(lx>>4))==(hy&0x0000ffffffffffffLL) + && (lx&0xf)>(ly>>60))))) { /* x > y, x -= ulp */ + if(lx==0) hx -= 1; + lx -= 1; + } else { /* x < y, x += ulp */ + lx += 1; + if(lx==0) hx += 1; + } + } else { /* x < 0 */ + if (hy>=0||(ix>>20)>(iy>>48)-0x3c00 + || ((ix>>20)==(iy>>48)-0x3c00 + && (((((int64_t)hx)<<28)|(lx>>4))>(hy&0x0000ffffffffffffLL) + || (((((int64_t)hx)<<28)|(lx>>4))==(hy&0x0000ffffffffffffLL) + && (lx&0xf)>(ly>>60))))) { /* x < y, x -= ulp */ + if(lx==0) hx -= 1; + lx -= 1; + } else { /* x > y, x += ulp */ + lx += 1; + if(lx==0) hx += 1; + } + } + hy = hx&0x7ff00000; + if(hy>=0x7ff00000) return x+x; /* overflow */ + if(hy<0x00100000) { /* underflow */ + double x2 = x*x; + if(x2!=x) { /* raise underflow flag */ + INSERT_WORDS(x2,hx,lx); + return x2; + } + } + INSERT_WORDS(x,hx,lx); + return x; +} +weak_alias (__nexttoward, nexttoward) diff --git a/sysdeps/ieee754/ldbl-128/s_nexttowardf.c b/sysdeps/ieee754/ldbl-128/s_nexttowardf.c new file mode 100644 index 0000000..1a22e01 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_nexttowardf.c @@ -0,0 +1,81 @@ +/* s_nexttowardf.c -- float version of s_nextafter.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com + * and Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + float __nexttowardf(float x, long double y) +#else + float __nexttowardf(x,y) + float x; + long double y; +#endif +{ + int32_t hx,ix; + int64_t hy,iy; + u_int64_t ly; + + GET_FLOAT_WORD(hx,x); + GET_LDOUBLE_WORDS64(hy,ly,y); + ix = hx&0x7fffffff; /* |x| */ + iy = hy&0x7fffffffffffffffLL; /* |y| */ + + if((ix>0x7f800000) || /* x is nan */ + ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0)) + /* y is nan */ + return x+y; + if((long double) x==y) return y; /* x=y, return y */ + if(ix==0) { /* x == 0 */ + float x2; + SET_FLOAT_WORD(x,(u_int32_t)((hy>>32)&0x80000000)|1);/* return +-minsub*/ + x2 = x*x; + if(x2==x) return x2; else return x; /* raise underflow flag */ + } + if(hx>=0) { /* x > 0 */ + if(hy<0||(ix>>23)>(iy>>48)-0x3f80 + || ((ix>>23)==(iy>>48)-0x3f80 + && (ix&0x7fffff)>((hy>>25)&0x7fffff))) {/* x > y, x -= ulp */ + hx -= 1; + } else { /* x < y, x += ulp */ + hx += 1; + } + } else { /* x < 0 */ + if(hy>=0||(ix>>23)>(iy>>48)-0x3f80 + || ((ix>>23)==(iy>>48)-0x3f80 + && (ix&0x7fffff)>((hy>>25)&0x7fffff))) {/* x < y, x -= ulp */ + hx -= 1; + } else { /* x > y, x += ulp */ + hx += 1; + } + } + hy = hx&0x7f800000; + if(hy>=0x7f800000) return x+x; /* overflow */ + if(hy<0x00800000) { /* underflow */ + float x2 = x*x; + if(x2!=x) { /* raise underflow flag */ + SET_FLOAT_WORD(x2,hx); + return x2; + } + } + SET_FLOAT_WORD(x,hx); + return x; +} +weak_alias (__nexttowardf, nexttowardf) diff --git a/sysdeps/ieee754/ldbl-128/s_remquol.c b/sysdeps/ieee754/ldbl-128/s_remquol.c new file mode 100644 index 0000000..0d26958 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_remquol.c @@ -0,0 +1,110 @@ +/* Compute remainder and a congruent to the quotient. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + + +static const long double zero = 0.0; + + +long double +__remquol (long double x, long double y, int *quo) +{ + int64_t hx,hy; + u_int64_t sx,lx,ly; + int cquo,qs; + + GET_LDOUBLE_WORDS64 (hx, lx, x); + GET_LDOUBLE_WORDS64 (hy, ly, y); + sx = hx & 0x8000000000000000ULL; + qs = sx ^ (hy & 0x8000000000000000ULL); + hy &= 0x7fffffffffffffffLL; + hx &= 0x7fffffffffffffffLL; + + /* Purge off exception values. */ + if ((hy | ly) == 0) + return (x * y) / (x * y); /* y = 0 */ + if ((hx >= 0x7fff000000000000LL) /* x not finite */ + || ((hy >= 0x7fff000000000000LL) /* y is NaN */ + && (((hy - 0x7fff000000000000LL) | ly) != 0))) + return (x * y) / (x * y); + + if (hy <= 0x7ffbffffffffffffLL) + x = __ieee754_fmodl (x, 8 * y); /* now x < 8y */ + + if (((hx - hy) | (lx - ly)) == 0) + { + *quo = qs ? -1 : 1; + return zero * x; + } + + x = fabsl (x); + y = fabsl (y); + cquo = 0; + + if (x >= 4 * y) + { + x -= 4 * y; + cquo += 4; + } + if (x >= 2 * y) + { + x -= 2 * y; + cquo += 2; + } + + if (hy < 0x0002000000000000LL) + { + if (x + x > y) + { + x -= y; + ++cquo; + if (x + x >= y) + { + x -= y; + ++cquo; + } + } + } + else + { + long double y_half = 0.5L * y; + if (x > y_half) + { + x -= y; + ++cquo; + if (x >= y_half) + { + x -= y; + ++cquo; + } + } + } + + *quo = qs ? -cquo : cquo; + + if (sx) + x = -x; + return x; +} +weak_alias (__remquol, remquol) diff --git a/sysdeps/ieee754/ldbl-128/s_rintl.c b/sysdeps/ieee754/ldbl-128/s_rintl.c new file mode 100644 index 0000000..c3fc3ba --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_rintl.c @@ -0,0 +1,90 @@ +/* s_rintl.c -- long double version of s_rint.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * rintl(x) + * Return x rounded to integral value according to the prevailing + * rounding mode. + * Method: + * Using floating addition. + * Exception: + * Inexact flag raised if x not equal to rintl(x). + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double +#else +static long double +#endif +TWO112[2]={ + 5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */ + -5.19229685853482762853049632922009600E+33L /* 0xC06F000000000000, 0 */ +}; + +#ifdef __STDC__ + long double __rintl(long double x) +#else + long double __rintl(x) + long double x; +#endif +{ + int64_t i0,j0,sx; + u_int64_t i,i1; + long double w,t; + GET_LDOUBLE_WORDS64(i0,i1,x); + sx = (((u_int64_t)i0)>>63); + j0 = ((i0>>48)&0x7fff)-0x3fff; + if(j0<48) { + if(j0<0) { + if(((i0&0x7fffffffffffffffLL)|i1)==0) return x; + i1 |= (i0&0x0000ffffffffffffLL); + i0 &= 0xffffe00000000000ULL; + i0 |= ((i1|-i1)>>16)&0x0000800000000000LL; + SET_LDOUBLE_MSW64(x,i0); + w = TWO112[sx]+x; + t = w-TWO112[sx]; + GET_LDOUBLE_MSW64(i0,t); + SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63)); + return t; + } else { + i = (0x0000ffffffffffffLL)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + i>>=1; + if(((i0&i)|i1)!=0) { + if(j0==47) i1 = 0x4000000000000000ULL; else + i0 = (i0&(~i))|((0x0000200000000000LL)>>j0); + } + } + } else if (j0>111) { + if(j0==0x4000) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = -1ULL>>(j0-48); + if((i1&i)==0) return x; /* x is integral */ + i>>=1; + if((i1&i)!=0) i1 = (i1&(~i))|((0x4000000000000000LL)>>(j0-48)); + } + SET_LDOUBLE_WORDS64(x,i0,i1); + w = TWO112[sx]+x; + return w-TWO112[sx]; +} +weak_alias (__rintl, rintl) diff --git a/sysdeps/ieee754/ldbl-128/s_roundl.c b/sysdeps/ieee754/ldbl-128/s_roundl.c new file mode 100644 index 0000000..f9fff48 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_roundl.c @@ -0,0 +1,94 @@ +/* Round long double to integer away from zero. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + + +static const long double huge = 1.0E4930L; + + +long double +__roundl (long double x) +{ + int32_t j0; + u_int64_t se, i1, i0; + + GET_LDOUBLE_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + if (j0 < 31) + { + if (j0 < 0) + { + if (huge + x > 0.0) + { + i0 &= 0x8000000000000000ULL; + if (j0 == -1) + i0 |= 0x3fff000000000000LL; + i1 = 0; + } + } + else + { + u_int64_t i = 0x0000ffffffffffffLL >> j0; + if (((i0 & i) | i1) == 0) + /* X is integral. */ + return x; + if (huge + x > 0.0) + { + /* Raise inexact if x != 0. */ + i0 += 0x0000800000000000LL >> j0; + i0 &= ~i; + i1 = 0; + } + } + } + else if (j0 > 111) + { + if (j0 == 0x4000) + /* Inf or NaN. */ + return x + x; + else + return x; + } + else + { + u_int64_t i = -1ULL >> (j0 - 48); + if ((i1 & i) == 0) + /* X is integral. */ + return x; + + if (huge + x > 0.0) + { + /* Raise inexact if x != 0. */ + u_int64_t j = i1 + (1LL << (111 - j0)); + if (j < i1) + i0 += 1; + i1 = j; + } + i1 &= ~i; + } + + SET_LDOUBLE_WORDS64 (x, i0, i1); + return x; +} +weak_alias (__roundl, roundl) diff --git a/sysdeps/ieee754/ldbl-128/s_scalblnl.c b/sysdeps/ieee754/ldbl-128/s_scalblnl.c new file mode 100644 index 0000000..5e8b58b --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_scalblnl.c @@ -0,0 +1,70 @@ +/* s_scalblnl.c -- long double version of s_scalbn.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* @(#)s_scalbn.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * scalblnl (long double x, long int n) + * scalblnl(x,n) returns x* 2**n computed by exponent + * manipulation rather than by actually performing an + * exponentiation or a multiplication. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double +#else +static long double +#endif +two114 = 2.0769187434139310514121985316880384E+34L, /* 0x4071000000000000, 0 */ +twom114 = 4.8148248609680896326399448564623183E-35L, /* 0x3F8D000000000000, 0 */ +huge = 1.0E+4900L, +tiny = 1.0E-4900L; + +#ifdef __STDC__ + long double __scalblnl (long double x, long int n) +#else + long double __scalblnl (x,n) + long double x; long int n; +#endif +{ + int64_t k,hx,lx; + GET_LDOUBLE_WORDS64(hx,lx,x); + k = (hx>>48)&0x7fff; /* extract exponent */ + if (k==0) { /* 0 or subnormal x */ + if ((lx|(hx&0x7fffffffffffffffULL))==0) return x; /* +-0 */ + x *= two114; + GET_LDOUBLE_MSW64(hx,x); + k = ((hx>>48)&0x7fff) - 114; + } + if (k==0x7fff) return x+x; /* NaN or Inf */ + k = k+n; + if (n> 50000 || k > 0x7ffe) + return huge*__copysignl(huge,x); /* overflow */ + if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow*/ + if (k > 0) /* normal result */ + {SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); return x;} + if (k <= -114) + return tiny*__copysignl(tiny,x); /*underflow*/ + k += 114; /* subnormal result */ + SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); + return x*twom114; +} +weak_alias (__scalblnl, scalblnl) diff --git a/sysdeps/ieee754/ldbl-128/s_scalbnl.c b/sysdeps/ieee754/ldbl-128/s_scalbnl.c new file mode 100644 index 0000000..c54f064 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_scalbnl.c @@ -0,0 +1,70 @@ +/* s_scalbnl.c -- long double version of s_scalbn.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* @(#)s_scalbn.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * scalbnl (long double x, int n) + * scalbnl(x,n) returns x* 2**n computed by exponent + * manipulation rather than by actually performing an + * exponentiation or a multiplication. + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ +static const long double +#else +static long double +#endif +two114 = 2.0769187434139310514121985316880384E+34L, /* 0x4071000000000000, 0 */ +twom114 = 4.8148248609680896326399448564623183E-35L, /* 0x3F8D000000000000, 0 */ +huge = 1.0E+4900L, +tiny = 1.0E-4900L; + +#ifdef __STDC__ + long double __scalbnl (long double x, int n) +#else + long double __scalbnl (x,n) + long double x; int n; +#endif +{ + int64_t k,hx,lx; + GET_LDOUBLE_WORDS64(hx,lx,x); + k = (hx>>48)&0x7fff; /* extract exponent */ + if (k==0) { /* 0 or subnormal x */ + if ((lx|(hx&0x7fffffffffffffffULL))==0) return x; /* +-0 */ + x *= two114; + GET_LDOUBLE_MSW64(hx,x); + k = ((hx>>48)&0x7fff) - 114; + } + if (k==0x7fff) return x+x; /* NaN or Inf */ + k = k+n; + if (n> 50000 || k > 0x7ffe) + return huge*__copysignl(huge,x); /* overflow */ + if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow*/ + if (k > 0) /* normal result */ + {SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); return x;} + if (k <= -114) + return tiny*__copysignl(tiny,x); /*underflow*/ + k += 114; /* subnormal result */ + SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); + return x*twom114; +} +weak_alias (__scalbnl, scalbnl) diff --git a/sysdeps/ieee754/ldbl-128/s_signbitl.c b/sysdeps/ieee754/ldbl-128/s_signbitl.c new file mode 100644 index 0000000..52a0afb --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_signbitl.c @@ -0,0 +1,32 @@ +/* Return nonzero value if number is negative. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + +int +__signbitl (long double x) +{ + int64_t e; + + GET_LDOUBLE_MSW64 (e, x); + return e < 0; +} diff --git a/sysdeps/ieee754/ldbl-128/s_sincosl.c b/sysdeps/ieee754/ldbl-128/s_sincosl.c new file mode 100644 index 0000000..2d74e72 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_sincosl.c @@ -0,0 +1,77 @@ +/* Compute sine and cosine of argument. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + +/* Note: We should probably introduce __kernel_sincosl to speed things up, + because __kernel_{cos,sin}l sometimes compute both sine and cosine. */ + +void +__sincosl (long double x, long double *sinx, long double *cosx) +{ + int64_t ix; + + /* High word of x. */ + GET_LDOUBLE_MSW64 (ix, x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffffffffffffLL; + if (ix <= 0x3ffe921fb54442d1LL) + { + *sinx = __kernel_sinl (x, 0.0, 0); + *cosx = __kernel_cosl (x, 0.0); + } + else if (ix >= 0x7fff000000000000LL) + { + /* sin(Inf or NaN) is NaN */ + *sinx = *cosx = x - x; + } + else + { + /* Argument reduction needed. */ + long double y[2]; + int n; + + n = __ieee754_rem_pio2l (x, y); + switch (n & 3) + { + case 0: + *sinx = __kernel_sinl (y[0], y[1], 1); + *cosx = __kernel_cosl (y[0], y[1]); + break; + case 1: + *sinx = __kernel_cosl (y[0], y[1]); + *cosx = -__kernel_sinl (y[0], y[1], 1); + break; + case 2: + *sinx = -__kernel_sinl (y[0], y[1], 1); + *cosx = -__kernel_cosl (y[0], y[1]); + break; + default: + *sinx = -__kernel_cosl (y[0], y[1]); + *cosx = __kernel_sinl (y[0], y[1], 1); + break; + } + } +} +weak_alias (__sincosl, sincosl) diff --git a/sysdeps/ieee754/ldbl-128/s_sinl.c b/sysdeps/ieee754/ldbl-128/s_sinl.c new file mode 100644 index 0000000..446a75f --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_sinl.c @@ -0,0 +1,83 @@ +/* s_sinl.c -- long double version of s_sin.c. + * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* sinl(x) + * Return sine function of x. + * + * kernel function: + * __kernel_sinl ... sine function on [-pi/4,pi/4] + * __kernel_cosl ... cose function on [-pi/4,pi/4] + * __ieee754_rem_pio2l ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + long double __sinl(long double x) +#else + long double __sinl(x) + long double x; +#endif +{ + long double y[2],z=0.0L; + int64_t n, ix; + + /* High word of x. */ + GET_LDOUBLE_MSW64(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffffffffffffLL; + if(ix <= 0x3ffe921fb54442d1LL) + return __kernel_sinl(x,z,0); + + /* sin(Inf or NaN) is NaN */ + else if (ix>=0x7fff000000000000LL) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2l(x,y); + switch(n&3) { + case 0: return __kernel_sinl(y[0],y[1],1); + case 1: return __kernel_cosl(y[0],y[1]); + case 2: return -__kernel_sinl(y[0],y[1],1); + default: + return -__kernel_cosl(y[0],y[1]); + } + } +} +weak_alias (__sinl, sinl) diff --git a/sysdeps/ieee754/ldbl-128/s_tanl.c b/sysdeps/ieee754/ldbl-128/s_tanl.c new file mode 100644 index 0000000..ea9d053 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_tanl.c @@ -0,0 +1,77 @@ +/* s_tanl.c -- long double version of s_tan.c. + * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. + */ + +/* @(#)s_tan.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* tanl(x) + * Return tangent function of x. + * + * kernel function: + * __kernel_tanl ... tangent function on [-pi/4,pi/4] + * __ieee754_rem_pio2l ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "math.h" +#include "math_private.h" + +#ifdef __STDC__ + long double __tanl(long double x) +#else + long double __tanl(x) + long double x; +#endif +{ + long double y[2],z=0.0L; + int64_t n, ix; + + /* High word of x. */ + GET_LDOUBLE_MSW64(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffffffffffffLL; + if(ix <= 0x3ffe921fb54442d1LL) return __kernel_tanl(x,z,1); + + /* tanl(Inf or NaN) is NaN */ + else if (ix>=0x7fff000000000000LL) return x-x; /* NaN */ + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2l(x,y); + return __kernel_tanl(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even + -1 -- n odd */ + } +} +weak_alias (__tanl, tanl) diff --git a/sysdeps/ieee754/ldbl-128/s_truncl.c b/sysdeps/ieee754/ldbl-128/s_truncl.c new file mode 100644 index 0000000..bbff5a4 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/s_truncl.c @@ -0,0 +1,57 @@ +/* Truncate argument to nearest integral value not larger than the argument. + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and + Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +#include "math_private.h" + + +long double +__truncl (long double x) +{ + int32_t j0; + u_int64_t i0, i1, sx; + + GET_LDOUBLE_WORDS64 (i0, i1, x); + sx = i0 & 0x8000000000000000ULL; + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; + if (j0 < 48) + { + if (j0 < 0) + /* The magnitude of the number is < 1 so the result is +-0. */ + SET_LDOUBLE_WORDS64 (x, sx, 0); + else + SET_LDOUBLE_WORDS64 (x, i0 & ~(0x0000ffffffffffffLL >> j0), 0); + } + else if (j0 > 111) + { + if (j0 == 0x4000) + /* x is inf or NaN. */ + return x + x; + } + else + { + SET_LDOUBLE_WORDS64 (x, i0, i1 & ~(0xffffffffffffffffULL >> (j0 - 48))); + } + + return x; +} +weak_alias (__truncl, truncl) diff --git a/sysdeps/ieee754/ldbl-128/strtold.c b/sysdeps/ieee754/ldbl-128/strtold.c new file mode 100644 index 0000000..32049fc --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/strtold.c @@ -0,0 +1,42 @@ +/* Copyright (C) 1999 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +/* The actual implementation for all floating point sizes is in strtod.c. + These macros tell it to produce the `long double' version, `strtold'. */ + +# define FLOAT long double +# define FLT LDBL +# ifdef USE_IN_EXTENDED_LOCALE_MODEL +# define STRTOF __strtold_l +# else +# define STRTOF strtold +# endif +# define MPN2FLOAT __mpn_construct_long_double +# define FLOAT_HUGE_VAL HUGE_VALL +# define SET_MANTISSA(flt, mant) \ + do { union ieee854_long_double u; \ + u.d = (flt); \ + u.ieee.mantissa0 = 0x8000; \ + u.ieee.mantissa1 = 0; \ + u.ieee.mantissa2 = ((mant) >> 32); \ + u.ieee.mantissa3 = (mant) & 0xffffffff; \ + (flt) = u.d; \ + } while (0) + +# include "strtod.c" diff --git a/sysdeps/libm-ieee754/e_acoshl.c b/sysdeps/ieee754/ldbl-96/e_acoshl.c index a60704a..a60704a 100644 --- a/sysdeps/libm-ieee754/e_acoshl.c +++ b/sysdeps/ieee754/ldbl-96/e_acoshl.c diff --git a/sysdeps/libm-ieee754/e_atan2l.c b/sysdeps/ieee754/ldbl-96/e_atan2l.c index aff7a3d..aff7a3d 100644 --- a/sysdeps/libm-ieee754/e_atan2l.c +++ b/sysdeps/ieee754/ldbl-96/e_atan2l.c diff --git a/sysdeps/libm-ieee754/e_atanhl.c b/sysdeps/ieee754/ldbl-96/e_atanhl.c index fdcd1e9..fdcd1e9 100644 --- a/sysdeps/libm-ieee754/e_atanhl.c +++ b/sysdeps/ieee754/ldbl-96/e_atanhl.c diff --git a/sysdeps/libm-ieee754/e_coshl.c b/sysdeps/ieee754/ldbl-96/e_coshl.c index 6af846c..6af846c 100644 --- a/sysdeps/libm-ieee754/e_coshl.c +++ b/sysdeps/ieee754/ldbl-96/e_coshl.c diff --git a/sysdeps/libm-ieee754/e_gammal_r.c b/sysdeps/ieee754/ldbl-96/e_gammal_r.c index 1049924..1049924 100644 --- a/sysdeps/libm-ieee754/e_gammal_r.c +++ b/sysdeps/ieee754/ldbl-96/e_gammal_r.c diff --git a/sysdeps/libm-ieee754/e_hypotl.c b/sysdeps/ieee754/ldbl-96/e_hypotl.c index 1a40c55..1a40c55 100644 --- a/sysdeps/libm-ieee754/e_hypotl.c +++ b/sysdeps/ieee754/ldbl-96/e_hypotl.c diff --git a/sysdeps/libm-ieee754/e_remainderl.c b/sysdeps/ieee754/ldbl-96/e_remainderl.c index e721a6e..e721a6e 100644 --- a/sysdeps/libm-ieee754/e_remainderl.c +++ b/sysdeps/ieee754/ldbl-96/e_remainderl.c diff --git a/sysdeps/libm-ieee754/e_sinhl.c b/sysdeps/ieee754/ldbl-96/e_sinhl.c index 4f9cfe2..4f9cfe2 100644 --- a/sysdeps/libm-ieee754/e_sinhl.c +++ b/sysdeps/ieee754/ldbl-96/e_sinhl.c diff --git a/sysdeps/ieee754/ldbl2mpn.c b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c index e95895c..78e0b70 100644 --- a/sysdeps/ieee754/ldbl2mpn.c +++ b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c @@ -24,8 +24,6 @@ #include <math.h> #include <stdlib.h> -#ifndef __NO_LONG_DOUBLE_MATH - /* Convert a `long double' in IEEE854 standard double-precision format to a multi-precision integer representing the significand scaled up by its number of bits (64 for long double) and an integral power of two @@ -95,5 +93,3 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, return N; } - -#endif /* __NO_LONG_DOUBLE_MATH */ diff --git a/sysdeps/ieee754/ldbl-96/math_ldbl.h b/sysdeps/ieee754/ldbl-96/math_ldbl.h new file mode 100644 index 0000000..dccc4a1 --- /dev/null +++ b/sysdeps/ieee754/ldbl-96/math_ldbl.h @@ -0,0 +1,98 @@ +#ifndef _MATH_PRIVATE_H_ +#error "Never use <math_ldbl.h> directly; include <math_private.h> instead." +#endif + +/* A union which permits us to convert between a long double and + three 32 bit ints. */ + +#if __FLOAT_WORD_ORDER == BIG_ENDIAN + +typedef union +{ + long double value; + struct + { + unsigned int sign_exponent:16; + unsigned int empty:16; + u_int32_t msw; + u_int32_t lsw; + } parts; +} ieee_long_double_shape_type; + +#endif + +#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN + +typedef union +{ + long double value; + struct + { + u_int32_t lsw; + u_int32_t msw; + unsigned int sign_exponent:16; + unsigned int empty:16; + } parts; +} ieee_long_double_shape_type; + +#endif + +/* Get three 32 bit ints from a double. */ + +#define GET_LDOUBLE_WORDS(exp,ix0,ix1,d) \ +do { \ + ieee_long_double_shape_type ew_u; \ + ew_u.value = (d); \ + (exp) = ew_u.parts.sign_exponent; \ + (ix0) = ew_u.parts.msw; \ + (ix1) = ew_u.parts.lsw; \ +} while (0) + +/* Set a double from two 32 bit ints. */ + +#define SET_LDOUBLE_WORDS(d,exp,ix0,ix1) \ +do { \ + ieee_long_double_shape_type iw_u; \ + iw_u.parts.sign_exponent = (exp); \ + iw_u.parts.msw = (ix0); \ + iw_u.parts.lsw = (ix1); \ + (d) = iw_u.value; \ +} while (0) + +/* Get the more significant 32 bits of a long double mantissa. */ + +#define GET_LDOUBLE_MSW(v,d) \ +do { \ + ieee_long_double_shape_type sh_u; \ + sh_u.value = (d); \ + (v) = sh_u.parts.msw; \ +} while (0) + +/* Set the more significant 32 bits of a long double mantissa from an int. */ + +#define SET_LDOUBLE_MSW(d,v) \ +do { \ + ieee_long_double_shape_type sh_u; \ + sh_u.value = (d); \ + sh_u.parts.msw = (v); \ + (d) = sh_u.value; \ +} while (0) + +/* Get int from the exponent of a long double. */ + +#define GET_LDOUBLE_EXP(exp,d) \ +do { \ + ieee_long_double_shape_type ge_u; \ + ge_u.value = (d); \ + (exp) = ge_u.parts.sign_exponent; \ +} while (0) + +/* Set exponent of a long double from an int. */ + +#define SET_LDOUBLE_EXP(d,exp) \ +do { \ + ieee_long_double_shape_type se_u; \ + se_u.value = (d); \ + se_u.parts.sign_exponent = (exp); \ + (d) = se_u.value; \ +} while (0) diff --git a/sysdeps/ieee754/mpn2ldbl.c b/sysdeps/ieee754/ldbl-96/mpn2ldbl.c index 7802355..1f049ba 100644 --- a/sysdeps/ieee754/mpn2ldbl.c +++ b/sysdeps/ieee754/ldbl-96/mpn2ldbl.c @@ -22,8 +22,6 @@ #include <float.h> #include <math.h> -#ifndef __NO_LONG_DOUBLE_MATH - /* Convert a multi-precision integer of the needed number of bits (64 for long double) and an integral power of two to a `long double' in IEEE854 extended-precision format. */ @@ -47,5 +45,3 @@ __mpn_construct_long_double (mp_srcptr frac_ptr, int expt, int sign) return u.d; } - -#endif /* __NO_LONG_DOUBLE_MATH */ diff --git a/sysdeps/ieee754/ldbl-96/printf_fphex.c b/sysdeps/ieee754/ldbl-96/printf_fphex.c new file mode 100644 index 0000000..8dfa387 --- /dev/null +++ b/sysdeps/ieee754/ldbl-96/printf_fphex.c @@ -0,0 +1,61 @@ +#ifndef LONG_DOUBLE_DENORM_BIAS +# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1) +#endif + +#define PRINT_FPHEX_LONG_DOUBLE \ +do { \ + /* The "strange" 80 bit format on ix86 and m68k has an explicit \ + leading digit in the 64 bit mantissa. */ \ + unsigned long long int num; \ + \ + assert (sizeof (long double) == 12); \ + \ + num = (((unsigned long long int) fpnum.ldbl.ieee.mantissa0) << 32 \ + | fpnum.ldbl.ieee.mantissa1); \ + \ + zero_mantissa = num == 0; \ + \ + if (sizeof (unsigned long int) > 6) \ + numstr = _itoa_word (num, numbuf + sizeof numbuf, 16, \ + info->spec == 'A'); \ + else \ + numstr = _itoa (num, numbuf + sizeof numbuf, 16, info->spec == 'A'); \ + \ + /* Fill with zeroes. */ \ + while (numstr > numbuf + (sizeof numbuf - 64 / 4)) \ + *--numstr = '0'; \ + \ + /* We use a full nibble for the leading digit. */ \ + leading = *numstr++; \ + \ + /* We have 3 bits from the mantissa in the leading nibble. \ + Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \ + exponent = fpnum.ldbl.ieee.exponent; \ + \ + if (exponent == 0) \ + { \ + if (zero_mantissa) \ + expnegative = 0; \ + else \ + { \ + /* This is a denormalized number. */ \ + expnegative = 1; \ + /* This is a hook for the m68k long double format, where the \ + exponent bias is the same for normalized and denormalized \ + numbers. */ \ + exponent = LONG_DOUBLE_DENORM_BIAS + 3; \ + } \ + } \ + else if (exponent >= IEEE854_LONG_DOUBLE_BIAS + 3) \ + { \ + expnegative = 0; \ + exponent -= IEEE854_LONG_DOUBLE_BIAS + 3; \ + } \ + else \ + { \ + expnegative = 1; \ + exponent = -(exponent - (IEEE854_LONG_DOUBLE_BIAS + 3)); \ + } \ +} while (0) + +#include <sysdeps/generic/printf_fphex.c> diff --git a/sysdeps/libm-ieee754/s_asinhl.c b/sysdeps/ieee754/ldbl-96/s_asinhl.c index 6eb434c..6eb434c 100644 --- a/sysdeps/libm-ieee754/s_asinhl.c +++ b/sysdeps/ieee754/ldbl-96/s_asinhl.c diff --git a/sysdeps/libm-ieee754/s_cbrtl.c b/sysdeps/ieee754/ldbl-96/s_cbrtl.c index 1d021b7..1d021b7 100644 --- a/sysdeps/libm-ieee754/s_cbrtl.c +++ b/sysdeps/ieee754/ldbl-96/s_cbrtl.c diff --git a/sysdeps/libm-ieee754/s_ceill.c b/sysdeps/ieee754/ldbl-96/s_ceill.c index d53f395..d53f395 100644 --- a/sysdeps/libm-ieee754/s_ceill.c +++ b/sysdeps/ieee754/ldbl-96/s_ceill.c diff --git a/sysdeps/libm-ieee754/s_copysignl.c b/sysdeps/ieee754/ldbl-96/s_copysignl.c index 9976575..9976575 100644 --- a/sysdeps/libm-ieee754/s_copysignl.c +++ b/sysdeps/ieee754/ldbl-96/s_copysignl.c diff --git a/sysdeps/libm-ieee754/s_cosl.c b/sysdeps/ieee754/ldbl-96/s_cosl.c index 9765f7f..9765f7f 100644 --- a/sysdeps/libm-ieee754/s_cosl.c +++ b/sysdeps/ieee754/ldbl-96/s_cosl.c diff --git a/sysdeps/libm-ieee754/s_fabsl.c b/sysdeps/ieee754/ldbl-96/s_fabsl.c index f717050..f717050 100644 --- a/sysdeps/libm-ieee754/s_fabsl.c +++ b/sysdeps/ieee754/ldbl-96/s_fabsl.c diff --git a/sysdeps/libm-ieee754/s_finitel.c b/sysdeps/ieee754/ldbl-96/s_finitel.c index 6e444e9..6e444e9 100644 --- a/sysdeps/libm-ieee754/s_finitel.c +++ b/sysdeps/ieee754/ldbl-96/s_finitel.c diff --git a/sysdeps/libm-ieee754/s_floorl.c b/sysdeps/ieee754/ldbl-96/s_floorl.c index fb0c37e..fb0c37e 100644 --- a/sysdeps/libm-ieee754/s_floorl.c +++ b/sysdeps/ieee754/ldbl-96/s_floorl.c diff --git a/sysdeps/libm-ieee754/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-96/s_fpclassifyl.c index 4df0b44..4df0b44 100644 --- a/sysdeps/libm-ieee754/s_fpclassifyl.c +++ b/sysdeps/ieee754/ldbl-96/s_fpclassifyl.c diff --git a/sysdeps/libm-ieee754/s_frexpl.c b/sysdeps/ieee754/ldbl-96/s_frexpl.c index 7a49bc3..7a49bc3 100644 --- a/sysdeps/libm-ieee754/s_frexpl.c +++ b/sysdeps/ieee754/ldbl-96/s_frexpl.c diff --git a/sysdeps/libm-ieee754/s_ilogbl.c b/sysdeps/ieee754/ldbl-96/s_ilogbl.c index d44229d..d44229d 100644 --- a/sysdeps/libm-ieee754/s_ilogbl.c +++ b/sysdeps/ieee754/ldbl-96/s_ilogbl.c diff --git a/sysdeps/libm-ieee754/s_isinfl.c b/sysdeps/ieee754/ldbl-96/s_isinfl.c index 6f7c07c..6f7c07c 100644 --- a/sysdeps/libm-ieee754/s_isinfl.c +++ b/sysdeps/ieee754/ldbl-96/s_isinfl.c diff --git a/sysdeps/libm-ieee754/s_isnanl.c b/sysdeps/ieee754/ldbl-96/s_isnanl.c index ba53faa..0a7ff38 100644 --- a/sysdeps/libm-ieee754/s_isnanl.c +++ b/sysdeps/ieee754/ldbl-96/s_isnanl.c @@ -39,6 +39,6 @@ static char rcsid[] = "$NetBSD: $"; lx |= hx & 0x7fffffff; se |= (u_int32_t)(lx|(-lx))>>31; se = 0xfffe - se; - return (int)((u_int32_t)(se))>>16; + return (int)(((u_int32_t)(se))>>31); } weak_alias (__isnanl, isnanl) diff --git a/sysdeps/libm-ieee754/s_llrintl.c b/sysdeps/ieee754/ldbl-96/s_llrintl.c index 2aeaa1e..2aeaa1e 100644 --- a/sysdeps/libm-ieee754/s_llrintl.c +++ b/sysdeps/ieee754/ldbl-96/s_llrintl.c diff --git a/sysdeps/libm-ieee754/s_llroundl.c b/sysdeps/ieee754/ldbl-96/s_llroundl.c index 4a537c8..4a537c8 100644 --- a/sysdeps/libm-ieee754/s_llroundl.c +++ b/sysdeps/ieee754/ldbl-96/s_llroundl.c diff --git a/sysdeps/libm-ieee754/s_logbl.c b/sysdeps/ieee754/ldbl-96/s_logbl.c index 2cd9d10..2cd9d10 100644 --- a/sysdeps/libm-ieee754/s_logbl.c +++ b/sysdeps/ieee754/ldbl-96/s_logbl.c diff --git a/sysdeps/libm-ieee754/s_lrintl.c b/sysdeps/ieee754/ldbl-96/s_lrintl.c index 673cf3d..673cf3d 100644 --- a/sysdeps/libm-ieee754/s_lrintl.c +++ b/sysdeps/ieee754/ldbl-96/s_lrintl.c diff --git a/sysdeps/libm-ieee754/s_lroundl.c b/sysdeps/ieee754/ldbl-96/s_lroundl.c index 3bdac83..3bdac83 100644 --- a/sysdeps/libm-ieee754/s_lroundl.c +++ b/sysdeps/ieee754/ldbl-96/s_lroundl.c diff --git a/sysdeps/libm-ieee754/s_modfl.c b/sysdeps/ieee754/ldbl-96/s_modfl.c index ad16ef6..fb1b3ac 100644 --- a/sysdeps/libm-ieee754/s_modfl.c +++ b/sysdeps/ieee754/ldbl-96/s_modfl.c @@ -74,7 +74,7 @@ static long double one = 1.0; i = ((u_int32_t)(0xffffffff))>>(j0-32); if((i1&i)==0) { /* x is integral */ *iptr = x; - INSERT_WORDS(x,se&0x8000,0); /* return +-0 */ + SET_LDOUBLE_WORDS(x,se&0x8000,0,0); /* return +-0 */ return x; } else { SET_LDOUBLE_WORDS(*iptr,se,i0,i1&(~i)); diff --git a/sysdeps/libm-ieee754/s_nearbyintl.c b/sysdeps/ieee754/ldbl-96/s_nearbyintl.c index 3b0715e..92c3ebf 100644 --- a/sysdeps/libm-ieee754/s_nearbyintl.c +++ b/sysdeps/ieee754/ldbl-96/s_nearbyintl.c @@ -72,13 +72,8 @@ TWO63[2]={ if(((i0&i)|i1)==0) return x; /* x is integral */ i>>=1; if(((i0&i)|i1)!=0) { - if(j0==31) i1 = 0x40000000; else + if (j0==30) i1 = 0x40000000; else i0 = (i0&(~i))|((0x20000000)>>j0); - /* Shouldn't this be - if (j0 >= 30) i1 = 0x80000000 >> (j0 - 30); - i0 = (i0&(~i))|((0x20000000)>>j0); - If yes, this should be correct in s_rint and - s_rintf, too. -- drepper@cygnus.com */ } } } else if (j0>62) { diff --git a/sysdeps/libm-ieee754/s_nextafterl.c b/sysdeps/ieee754/ldbl-96/s_nextafterl.c index aea57e3..aea57e3 100644 --- a/sysdeps/libm-ieee754/s_nextafterl.c +++ b/sysdeps/ieee754/ldbl-96/s_nextafterl.c diff --git a/sysdeps/libm-ieee754/s_nexttoward.c b/sysdeps/ieee754/ldbl-96/s_nexttoward.c index 0bb57d8..debbb86 100644 --- a/sysdeps/libm-ieee754/s_nexttoward.c +++ b/sysdeps/ieee754/ldbl-96/s_nexttoward.c @@ -55,8 +55,8 @@ static char rcsid[] = "$NetBSD: $"; if(x2==x) return x2; else return x; /* raise underflow flag */ } if(hx>=0) { /* x > 0 */ - if (esy>=0x8000||((ix>>20)&0x7ff)>iy - || (((ix>>20)&0x7ff)==iy + if (esy>=0x8000||((ix>>20)&0x7ff)>iy-0x3c00 + || (((ix>>20)&0x7ff)==iy-0x3c00 && (((hx<<11)|(lx>>21))>(hy&0x7fffffff) || (((hx<<11)|(lx>>21))==(hy&0x7fffffff) && (lx<<11)>ly)))) { /* x > y, x -= ulp */ @@ -67,8 +67,8 @@ static char rcsid[] = "$NetBSD: $"; if(lx==0) hx += 1; } } else { /* x < 0 */ - if (esy<0x8000||((ix>>20)&0x7ff)>iy - || (((ix>>20)&0x7ff)==iy + if (esy<0x8000||((ix>>20)&0x7ff)>iy-0x3c00 + || (((ix>>20)&0x7ff)==iy-0x3c00 && (((hx<<11)|(lx>>21))>(hy&0x7fffffff) || (((hx<<11)|(lx>>21))==(hy&0x7fffffff) && (lx<<11)>ly)))) {/* x < y, x -= ulp */ diff --git a/sysdeps/libm-ieee754/s_nexttowardf.c b/sysdeps/ieee754/ldbl-96/s_nexttowardf.c index 71a2898..b7e9f00 100644 --- a/sysdeps/libm-ieee754/s_nexttowardf.c +++ b/sysdeps/ieee754/ldbl-96/s_nexttowardf.c @@ -47,16 +47,16 @@ static char rcsid[] = "$NetBSD: $"; if(x2==x) return x2; else return x; /* raise underflow flag */ } if(hx>=0) { /* x > 0 */ - if(esy>=0x8000||((ix>>23)&0xff)>iy - || (((ix>>23)&0xff)==iy + if(esy>=0x8000||((ix>>23)&0xff)>iy-0x3f80 + || (((ix>>23)&0xff)==iy-0x3f80 && ((ix&0x7fffff)<<8)>(hy&0x7fffffff))) {/* x > y, x -= ulp */ hx -= 1; } else { /* x < y, x += ulp */ hx += 1; } } else { /* x < 0 */ - if(esy<0x8000||((ix>>23)&0xff)>iy - || (((ix>>23)&0xff)==iy + if(esy<0x8000||((ix>>23)&0xff)>iy-0x3f80 + || (((ix>>23)&0xff)==iy-0x3f80 && ((ix&0x7fffff)<<8)>(hy&0x7fffffff))) {/* x < y, x -= ulp */ hx -= 1; } else { /* x > y, x += ulp */ diff --git a/sysdeps/libm-ieee754/s_remquol.c b/sysdeps/ieee754/ldbl-96/s_remquol.c index 88ff298..88ff298 100644 --- a/sysdeps/libm-ieee754/s_remquol.c +++ b/sysdeps/ieee754/ldbl-96/s_remquol.c diff --git a/sysdeps/libm-ieee754/s_rintl.c b/sysdeps/ieee754/ldbl-96/s_rintl.c index 4e957d8..9d4777d 100644 --- a/sysdeps/libm-ieee754/s_rintl.c +++ b/sysdeps/ieee754/ldbl-96/s_rintl.c @@ -71,13 +71,8 @@ TWO63[2]={ if(((i0&i)|i1)==0) return x; /* x is integral */ i>>=1; if(((i0&i)|i1)!=0) { - if(j0==31) i1 = 0x40000000; else + if(j0==30) i1 = 0x40000000; else i0 = (i0&(~i))|((0x20000000)>>j0); - /* Shouldn't this be - if (j0 >= 30) i1 = 0x80000000 >> (j0 - 30); - i0 = (i0&(~i))|((0x20000000)>>j0); - If yes, this should be correct in s_rint and - s_rintf, too. -- drepper@cygnus.com */ } } } else if (j0>62) { diff --git a/sysdeps/libm-ieee754/s_roundl.c b/sysdeps/ieee754/ldbl-96/s_roundl.c index d7482b9..d7482b9 100644 --- a/sysdeps/libm-ieee754/s_roundl.c +++ b/sysdeps/ieee754/ldbl-96/s_roundl.c diff --git a/sysdeps/libm-ieee754/s_scalblnl.c b/sysdeps/ieee754/ldbl-96/s_scalblnl.c index b885fbc..8e556fa 100644 --- a/sysdeps/libm-ieee754/s_scalblnl.c +++ b/sysdeps/ieee754/ldbl-96/s_scalblnl.c @@ -64,7 +64,7 @@ tiny = 1.0e-4900L; {SET_LDOUBLE_EXP(x,(es&0x8000)|k); return x;} if (k <= -63) return tiny*__copysignl(tiny,x); /*underflow*/ - k += 54; /* subnormal result */ + k += 63; /* subnormal result */ SET_LDOUBLE_EXP(x,(es&0x8000)|k); return x*twom63; } diff --git a/sysdeps/libm-ieee754/s_scalbnl.c b/sysdeps/ieee754/ldbl-96/s_scalbnl.c index 32e4fb8..34c52e7 100644 --- a/sysdeps/libm-ieee754/s_scalbnl.c +++ b/sysdeps/ieee754/ldbl-96/s_scalbnl.c @@ -64,7 +64,7 @@ tiny = 1.0e-4900L; {SET_LDOUBLE_EXP(x,(es&0x8000)|k); return x;} if (k <= -63) return tiny*__copysignl(tiny,x); /*underflow*/ - k += 54; /* subnormal result */ + k += 63; /* subnormal result */ SET_LDOUBLE_EXP(x,(es&0x8000)|k); return x*twom63; } diff --git a/sysdeps/libm-ieee754/s_signbitl.c b/sysdeps/ieee754/ldbl-96/s_signbitl.c index b12fdef..b12fdef 100644 --- a/sysdeps/libm-ieee754/s_signbitl.c +++ b/sysdeps/ieee754/ldbl-96/s_signbitl.c diff --git a/sysdeps/libm-ieee754/s_sincosl.c b/sysdeps/ieee754/ldbl-96/s_sincosl.c index 78c78d5..78c78d5 100644 --- a/sysdeps/libm-ieee754/s_sincosl.c +++ b/sysdeps/ieee754/ldbl-96/s_sincosl.c diff --git a/sysdeps/libm-ieee754/s_sinl.c b/sysdeps/ieee754/ldbl-96/s_sinl.c index 4fd4880..4fd4880 100644 --- a/sysdeps/libm-ieee754/s_sinl.c +++ b/sysdeps/ieee754/ldbl-96/s_sinl.c diff --git a/sysdeps/libm-ieee754/s_tanhl.c b/sysdeps/ieee754/ldbl-96/s_tanhl.c index 1e3dc3b..1e3dc3b 100644 --- a/sysdeps/libm-ieee754/s_tanhl.c +++ b/sysdeps/ieee754/ldbl-96/s_tanhl.c diff --git a/sysdeps/libm-ieee754/s_tanl.c b/sysdeps/ieee754/ldbl-96/s_tanl.c index 97a0b27..97a0b27 100644 --- a/sysdeps/libm-ieee754/s_tanl.c +++ b/sysdeps/ieee754/ldbl-96/s_tanl.c diff --git a/sysdeps/libm-ieee754/s_truncl.c b/sysdeps/ieee754/ldbl-96/s_truncl.c index 59c3b9c..59c3b9c 100644 --- a/sysdeps/libm-ieee754/s_truncl.c +++ b/sysdeps/ieee754/ldbl-96/s_truncl.c diff --git a/sysdeps/ieee754/ldbl-96/strtold.c b/sysdeps/ieee754/ldbl-96/strtold.c new file mode 100644 index 0000000..cabb787 --- /dev/null +++ b/sysdeps/ieee754/ldbl-96/strtold.c @@ -0,0 +1,42 @@ +/* Copyright (C) 1999 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <math.h> + +/* The actual implementation for all floating point sizes is in strtod.c. + These macros tell it to produce the `long double' version, `strtold'. */ + +# define FLOAT long double +# define FLT LDBL +# ifdef USE_IN_EXTENDED_LOCALE_MODEL +# define STRTOF __strtold_l +# else +# define STRTOF strtold +# endif +# define MPN2FLOAT __mpn_construct_long_double +# define FLOAT_HUGE_VAL HUGE_VALL +# define SET_MANTISSA(flt, mant) \ + do { union ieee854_long_double u; \ + u.d = (flt); \ + if ((mant & 0x7fffffffffffffffULL) == 0) \ + mant = 0x4000000000000000ULL; \ + u.ieee.mantissa0 = (((mant) >> 32) & 0x7fffffff) | 0x80000000; \ + u.ieee.mantissa1 = (mant) & 0xffffffff; \ + (flt) = u.d; \ + } while (0) + +# include "strtod.c" diff --git a/sysdeps/libm-ieee754/w_expl.c b/sysdeps/ieee754/ldbl-96/w_expl.c index b8152ce..b8152ce 100644 --- a/sysdeps/libm-ieee754/w_expl.c +++ b/sysdeps/ieee754/ldbl-96/w_expl.c diff --git a/sysdeps/libm-ieee754/s_lib_version.c b/sysdeps/ieee754/s_lib_version.c index 121bdaa..121bdaa 100644 --- a/sysdeps/libm-ieee754/s_lib_version.c +++ b/sysdeps/ieee754/s_lib_version.c diff --git a/sysdeps/libm-ieee754/s_matherr.c b/sysdeps/ieee754/s_matherr.c index 1ad3eb3..1ad3eb3 100644 --- a/sysdeps/libm-ieee754/s_matherr.c +++ b/sysdeps/ieee754/s_matherr.c diff --git a/sysdeps/libm-ieee754/s_signgam.c b/sysdeps/ieee754/s_signgam.c index 021b0ff..021b0ff 100644 --- a/sysdeps/libm-ieee754/s_signgam.c +++ b/sysdeps/ieee754/s_signgam.c diff --git a/sysdeps/m68k/Implies b/sysdeps/m68k/Implies index 09dd873..b64e753 100644 --- a/sysdeps/m68k/Implies +++ b/sysdeps/m68k/Implies @@ -1,3 +1,5 @@ wordsize-32 # 68k uses IEEE 754 floating point. -ieee754 +ieee754/flt-32 +ieee754/dbl-64 +ieee754/ldbl-96 diff --git a/sysdeps/m68k/printf_fphex.c b/sysdeps/m68k/printf_fphex.c index 0e68b16..d021a09 100644 --- a/sysdeps/m68k/printf_fphex.c +++ b/sysdeps/m68k/printf_fphex.c @@ -1,2 +1,2 @@ #define LONG_DOUBLE_DENORM_BIAS IEEE854_LONG_DOUBLE_BIAS -#include <sysdeps/generic/printf_fphex.c> +#include <sysdeps/ieee754/ldbl-96/printf_fphex.c> diff --git a/sysdeps/m68k/strtold.c b/sysdeps/m68k/strtold.c index dd7fbce..f756488 100644 --- a/sysdeps/m68k/strtold.c +++ b/sysdeps/m68k/strtold.c @@ -1,2 +1,2 @@ #define DENORM_EXP (MIN_EXP - 1) -#include <sysdeps/generic/strtold.c> +#include <sysdeps/ieee754/ldbl-96/strtold.c> diff --git a/sysdeps/mips/Implies b/sysdeps/mips/Implies index 5aeb9ae..9f60963 100644 --- a/sysdeps/mips/Implies +++ b/sysdeps/mips/Implies @@ -1,3 +1,4 @@ wordsize-32 # MIPS uses IEEE 754 floating point. -ieee754 +ieee754/flt-32 +ieee754/dbl-64 diff --git a/sysdeps/mips/mips64/Implies b/sysdeps/mips/mips64/Implies index 06b9091..25106df 100644 --- a/sysdeps/mips/mips64/Implies +++ b/sysdeps/mips/mips64/Implies @@ -1,3 +1,4 @@ wordsize-64 # MIPS uses IEEE 754 floating point. -ieee754 +ieee754/flt-32 +ieee754/dbl-64 diff --git a/sysdeps/powerpc/Implies b/sysdeps/powerpc/Implies index d6acf04..780c4e2 100644 --- a/sysdeps/powerpc/Implies +++ b/sysdeps/powerpc/Implies @@ -1,2 +1,3 @@ wordsize-32 -ieee754 +ieee754/flt-32 +ieee754/dbl-64 diff --git a/sysdeps/sparc/Implies b/sysdeps/sparc/Implies deleted file mode 100644 index da719e1..0000000 --- a/sysdeps/sparc/Implies +++ /dev/null @@ -1,2 +0,0 @@ -# SPARC uses IEEE 754 floating point. -ieee754 diff --git a/sysdeps/sparc/fpu/bits/mathdef.h b/sysdeps/sparc/fpu/bits/mathdef.h index c1727b6..5294ad4 100644 --- a/sysdeps/sparc/fpu/bits/mathdef.h +++ b/sysdeps/sparc/fpu/bits/mathdef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,6 +20,8 @@ # error "Never use <bits/mathdef.h> directly; include <math.h> instead" #endif +#include <bits/wordsize.h> + /* FIXME! This file describes properties of the compiler, not the machine; it should not be part of libc! */ @@ -74,7 +76,12 @@ typedef double double_t; #endif /* ISO C 9X */ #ifndef __NO_LONG_DOUBLE_MATH -/* Signal that we do not really have a `long double'. The disables the - declaration of all the `long double' function variants. */ -# define __NO_LONG_DOUBLE_MATH 1 + +# if __WORDSIZE == 32 +/* Signal that in 32bit ABI we do not really have a `long double'. + The disables the declaration of all the `long double' function + variants. */ +# define __NO_LONG_DOUBLE_MATH 1 +# endif + #endif diff --git a/sysdeps/sparc/fpu/bits/mathinline.h b/sysdeps/sparc/fpu/bits/mathinline.h new file mode 100644 index 0000000..9017be3 --- /dev/null +++ b/sysdeps/sparc/fpu/bits/mathinline.h @@ -0,0 +1,211 @@ +/* Inline math functions for SPARC. + Copyright (C) 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jj@ultra.linux.cz>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _MATH_H +# error "Never use <bits/mathinline.h> directly; include <math.h> instead." +#endif + +#include <bits/wordsize.h> + +#if defined __GNUC__ + +#ifdef __USE_ISOC9X + +#if __WORDSIZE == 32 + +# define __unordered_cmp(x, y) \ + (__extension__ \ + ({ unsigned __r; \ + if (sizeof(x) == 4 && sizeof(y) == 4) \ + { \ + float __x = (x); float __y = (y); \ + __asm__("fcmps %1,%2; st %%fsr, %0" : "=m" (__r) : "f" (__x), \ + "f" (__y) : "cc"); \ + } \ + else \ + { \ + double __x = (x); double __y = (y); \ + __asm__("fcmpd\t%1,%2\n\tst\t%%fsr,%0" : "=m" (__r) : "f" (__x), \ + "f" (__y) : "cc"); \ + } \ + __r; })) + +# define isgreater(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (2 << 10)) +# define isgreaterequal(x, y) ((__unordered_cmp (x, y) & (1 << 10)) == 0) +# define isless(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (1 << 10)) +# define islessequal(x, y) ((__unordered_cmp (x, y) & (2 << 10)) == 0) +# define islessgreater(x, y) (((__unordered_cmp (x, y) + (1 << 10)) & (2 << 10)) != 0) +# define isunordered(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (3 << 10)) + +#else /* sparc64 */ + +# define __unordered_v9cmp(x, y, op, qop) \ + (__extension__ \ + ({ unsigned __r; \ + if (sizeof(x) == 4 && sizeof(y) == 4) \ + { \ + float __x = (x); float __y = (y); \ + __asm__("fcmps\t%%fcc3,%1,%2\n\tmov" ## op ## "\t%%fcc3,1,%0" \ + : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ + } \ + else if (sizeof(x) <= 8 && sizeof(y) <= 8) \ + { \ + double __x = (x); double __y = (y); \ + __asm__("fcmpd\t%%fcc3,%1,%2\n\tmov" ## op ## "\t%%fcc3,1,%0" \ + : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ + } \ + else \ + { \ + long double __x = (x); long double __y = (y); \ + extern int _Qp_cmp(const long double *a, const long double *b); \ + __r = qop; \ + } \ + __r; })) + +# define isgreater(x, y) __unordered_v9cmp(x, y, "g", _Qp_cmp (&__x, &__y) == 2) +# define isgreaterequal(x, y) __unordered_v9cmp(x, y, "ge", (_Qp_cmp (&__x, &__y) & 1) == 0) +# define isless(x, y) __unordered_v9cmp(x, y, "l", _Qp_cmp (&__x, &__y) == 1) +# define islessequal(x, y) __unordered_v9cmp(x, y, "le", (_Qp_cmp (&__x, &__y) & 2) == 0) +# define islessgreater(x, y) __unordered_v9cmp(x, y, "lg", ((_Qp_cmp (&__x, &__y) + 1) & 2) != 0) +# define isunordered(x, y) __unordered_v9cmp(x, y, "u", _Qp_cmp (&__x, &__y) == 3) + +#endif /* sparc64 */ + +#endif /* __USE_ISOC9X */ + +#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) && defined __OPTIMIZE__ + +#ifdef __cplusplus +# define __MATH_INLINE __inline +#else +# define __MATH_INLINE extern __inline +#endif /* __cplusplus */ + +/* The gcc, version 2.7 or below, has problems with all this inlining + code. So disable it for this version of the compiler. */ + +# if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 7)) + /* Test for negative number. Used in the signbit() macro. */ +__MATH_INLINE int +__signbitf (float __x) +{ + __extension__ union { float __f; int __i; } __u = { __f: __x }; + return __u.__i < 0; +} + +__MATH_INLINE int +__signbit (double __x) +{ + __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; + return __u.__i[0] < 0; +} + +__MATH_INLINE int +__signbitl (long double __x) +{ + if (sizeof(long double) == 8) + { + __extension__ union { long double __l; int __i[2]; } __u = { __l: __x }; + return __u.__i[0] < 0; + } + else + { + __extension__ union { long double __l; int __i[4]; } __u = { __l: __x }; + return __u.__i[0] < 0; + } +} + +__MATH_INLINE double +sqrt(double __x) +{ + register double __r; + __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x)); + return __r; +} + +__MATH_INLINE float +sqrtf(float __x) +{ + register float __r; + __asm ("fsqrts %1,%0" : "=f" (__r) : "f" (__x)); + return __r; +} + +#if __WORDSIZE == 64 +__MATH_INLINE long double +sqrtl(long double __x) +{ + long double __r; + extern void _Qp_sqrt(long double *, __const__ long double *); + _Qp_sqrt(&__r, &__x); + return __r; +} +#endif /* sparc64 */ + +/* This code is used internally in the GNU libc. */ +#ifdef __LIBC_INTERNAL_MATH_INLINES +__MATH_INLINE double +__ieee754_sqrt(double __x) +{ + register double __r; + __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x)); + return __r; +} + +__MATH_INLINE float +__ieee754_sqrtf(float __x) +{ + register float __r; + __asm ("fsqrts %1,%0" : "=f" (__r) : "f" (__x)); + return __r; +} + +#if __WORDSIZE == 64 +__MATH_INLINE long double +__ieee754_sqrtl(long double __x) +{ + long double __r; + extern void _Qp_sqrt(long double *, __const__ long double *); + _Qp_sqrt(&__r, &__x); + return __r; +} +#endif /* sparc64 */ +#endif /* __LIBC_INTERNAL_MATH_INLINES */ +#endif /* gcc 2.8+ */ + +#ifdef __USE_ISOC9X + +__MATH_INLINE double fdim (double __x, double __y); +__MATH_INLINE double +fdim (double __x, double __y) +{ + return __x < __y ? 0 : __x - __y; +} + +__MATH_INLINE float fdimf (float __x, float __y); +__MATH_INLINE float +fdimf (float __x, float __y) +{ + return __x < __y ? 0 : __x - __y; +} + +#endif /* __USE_ISOC9X */ +#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */ +#endif /* __GNUC__ */ diff --git a/sysdeps/sparc/sparc32/Implies b/sysdeps/sparc/sparc32/Implies index 39a34c5..ae984a8 100644 --- a/sysdeps/sparc/sparc32/Implies +++ b/sysdeps/sparc/sparc32/Implies @@ -1 +1,4 @@ wordsize-32 +# SPARC uses IEEE 754 floating point. +ieee754/flt-32 +ieee754/dbl-64 diff --git a/sysdeps/sparc/bits/wordsize.h b/sysdeps/sparc/sparc32/bits/wordsize.h index 2ad12e1..2ad12e1 100644 --- a/sysdeps/sparc/bits/wordsize.h +++ b/sysdeps/sparc/sparc32/bits/wordsize.h diff --git a/sysdeps/sparc/sparc32/fpu/bits/huge_val.h b/sysdeps/sparc/sparc32/fpu/bits/huge_val.h new file mode 100644 index 0000000..673d6f0 --- /dev/null +++ b/sysdeps/sparc/sparc32/fpu/bits/huge_val.h @@ -0,0 +1,100 @@ +/* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity). + Used by <stdlib.h> and <math.h> functions for overflow. + Copyright (C) 1992, 1995, 1996, 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _MATH_H +# error "Never use <bits/huge_val.h> directly; include <math.h> instead." +#endif + +#include <features.h> +#include <bits/wordsize.h> + +/* IEEE positive infinity (-HUGE_VAL is negative infinity). */ + +#ifdef __GNUC__ + +# define HUGE_VAL \ + (__extension__ \ + ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \ + { __l: 0x7ff0000000000000ULL }).__d) + +#else /* not GCC */ + +typedef union { unsigned char __c[8]; double __d; } __huge_val_t; + +# define __HUGE_VAL_bytes { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 } + +static __huge_val_t __huge_val = { __HUGE_VAL_bytes }; +# define HUGE_VAL (__huge_val.__d) + +#endif /* GCC. */ + + +/* ISO C 9X extensions: (float) HUGE_VALF and (long double) HUGE_VALL. */ + +#ifdef __USE_ISOC9X + +# ifdef __GNUC__ + +# define HUGE_VALF \ + (__extension__ \ + ((union { unsigned __l __attribute__((__mode__(__SI__))); float __d; }) \ + { __l: 0x7f800000UL }).__d) + +# else /* not GCC */ + +typedef union { unsigned char __c[4]; float __f; } __huge_valf_t; + +# define __HUGE_VALF_bytes { 0x7f, 0x80, 0, 0 } + +static __huge_valf_t __huge_valf = { __HUGE_VALF_bytes }; +# define HUGE_VALF (__huge_valf.__f) + +# endif /* GCC. */ + +#if __WORDSIZE == 32 + +/* Sparc32 has IEEE 754 64bit long double */ +# define HUGE_VALL HUGE_VAL + +#else + +/* Sparc64 uses IEEE 754 128bit long double */ + +#ifdef __GNUC__ + +# define HUGE_VALL \ + (__extension__ \ + ((union { struct { unsigned long __h, __l; } __i; long double __d; }) \ + { __i: { __h: 0x7fff000000000000UL, __l: 0 } }).__d) + +#else /* not GCC */ + +typedef union { unsigned char __c[16]; long double __d; } __huge_vall_t; + +# define __HUGE_VALL_bytes { 0x7f, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes }; +# define HUGE_VALL (__huge_vall.__d) + +#endif /* GCC. */ + +#endif + +#endif /* __USE_ISOC9X. */ diff --git a/sysdeps/sparc/sparc64/Implies b/sysdeps/sparc/sparc64/Implies index a8cae95..5b293ba 100644 --- a/sysdeps/sparc/sparc64/Implies +++ b/sysdeps/sparc/sparc64/Implies @@ -1 +1,5 @@ wordsize-64 +# SPARC uses IEEE 754 floating point. +ieee754/flt-32 +ieee754/dbl-64 +ieee754/ldbl-128 diff --git a/sysdeps/sparc/sparc64/Makefile b/sysdeps/sparc/sparc64/Makefile index 656274d..312e59e 100644 --- a/sysdeps/sparc/sparc64/Makefile +++ b/sysdeps/sparc/sparc64/Makefile @@ -1,11 +1,2 @@ -# The Sparc`long double' is a distinct type we support. -#long-double-fcts = yes - -# But the support for ieee quads is so bad we just skip the whole thing. -# XXX This is only a temporary hack. -omit-long-double-fcts = yes - -# But we do need these few functions to even link stdio proggies -ifeq ($(subdir),math) -sysdep_routines += s_isinfl s_isnanl s_finitel s_signbitl -endif +# The Sparc `long double' is a distinct type we support. +long-double-fcts = yes diff --git a/sysdeps/sparc/sparc64/addmul_1.S b/sysdeps/sparc/sparc64/addmul_1.S index 6782db7..db8f536 100644 --- a/sysdeps/sparc/sparc64/addmul_1.S +++ b/sysdeps/sparc/sparc64/addmul_1.S @@ -1,7 +1,7 @@ /* SPARC v9 __mpn_addmul_1 -- Multiply a limb vector with a single limb and add the product to a second limb vector. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1999 Free Software Foundation, Inc. This file is part of the GNU MP Library. @@ -31,29 +31,26 @@ ENTRY(__mpn_addmul_1) - !#PROLOGUE# 0 save %sp,-192,%sp - !#PROLOGUE# 1 sub %g0,%i2,%o7 - sllx %o7,3,%g5 - sub %i1,%g5,%o3 - sub %i0,%g5,%o4 mov 0,%o0 ! zero cy_limb - + sllx %o7,3,%o7 + sethi %hi(0x80000000),%o2 srl %i3,0,%o1 ! extract low 32 bits of s2_limb + sub %i1,%o7,%o3 srlx %i3,32,%i3 ! extract high 32 bits of s2_limb - mov 1,%o2 - sllx %o2,32,%o2 ! o2 = 0x100000000 + sub %i0,%o7,%o4 + add %o2,%o2,%o2 ! o2 = 0x100000000 ! hi ! ! mid-1 ! ! mid-2 ! ! lo ! 1: - sllx %o7,3,%g1 - ldx [%o3+%g1],%g5 + ldx [%o3+%o7],%g5 srl %g5,0,%i0 ! zero hi bits + ldx [%o4+%o7],%l1 srlx %g5,32,%g5 mulx %o1,%i0,%i4 ! lo product mulx %i3,%i0,%i1 ! mid-1 product @@ -64,25 +61,24 @@ ENTRY(__mpn_addmul_1) addcc %i1,%l2,%i1 ! add mid products mov 0,%l0 ! we need the carry from that add... movcs %xcc,%o2,%l0 ! ...compute it and... + sllx %i1,32,%i0 ! align low bits of mid product add %i5,%l0,%i5 ! ...add to bit 32 of the hi product - sllx %i1,32,%i0 ! align low bits of mid product srl %i4,0,%g5 ! zero high 32 bits of lo product add %i0,%g5,%i0 ! combine into low 64 bits of result srlx %i1,32,%i1 ! extract high bits of mid product... + addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result add %i5,%i1,%i1 ! ...and add them to the high result - addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result mov 0,%g5 movcs %xcc,1,%g5 - add %o7,1,%o7 - ldx [%o4+%g1],%l1 addcc %l1,%i0,%i0 - movcs %xcc,1,%g5 - stx %i0,[%o4+%g1] - brnz %o7,1b + stx %i0,[%o4+%o7] + add %g5,1,%l1 + movcs %xcc,%l1,%g5 + addcc %o7,8,%o7 + bne,pt %xcc,1b add %i1,%g5,%o0 ! compute new cy_limb - mov %o0,%i0 jmpl %i7+8, %g0 - restore + restore %o0,%g0,%o0 END(__mpn_addmul_1) diff --git a/sysdeps/sparc/sparc64/bits/wordsize.h b/sysdeps/sparc/sparc64/bits/wordsize.h new file mode 100644 index 0000000..2ad12e1 --- /dev/null +++ b/sysdeps/sparc/sparc64/bits/wordsize.h @@ -0,0 +1,7 @@ +/* Determine the wordsize from the preprocessor defines. */ + +#if defined __sparc_v9__ || defined __arch64__ || defined __sparcv9 +# define __WORDSIZE 64 +#else +# define __WORDSIZE 32 +#endif diff --git a/sysdeps/sparc/sparc64/fpu/bits/huge_val.h b/sysdeps/sparc/sparc64/fpu/bits/huge_val.h new file mode 100644 index 0000000..673d6f0 --- /dev/null +++ b/sysdeps/sparc/sparc64/fpu/bits/huge_val.h @@ -0,0 +1,100 @@ +/* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity). + Used by <stdlib.h> and <math.h> functions for overflow. + Copyright (C) 1992, 1995, 1996, 1997, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _MATH_H +# error "Never use <bits/huge_val.h> directly; include <math.h> instead." +#endif + +#include <features.h> +#include <bits/wordsize.h> + +/* IEEE positive infinity (-HUGE_VAL is negative infinity). */ + +#ifdef __GNUC__ + +# define HUGE_VAL \ + (__extension__ \ + ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \ + { __l: 0x7ff0000000000000ULL }).__d) + +#else /* not GCC */ + +typedef union { unsigned char __c[8]; double __d; } __huge_val_t; + +# define __HUGE_VAL_bytes { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 } + +static __huge_val_t __huge_val = { __HUGE_VAL_bytes }; +# define HUGE_VAL (__huge_val.__d) + +#endif /* GCC. */ + + +/* ISO C 9X extensions: (float) HUGE_VALF and (long double) HUGE_VALL. */ + +#ifdef __USE_ISOC9X + +# ifdef __GNUC__ + +# define HUGE_VALF \ + (__extension__ \ + ((union { unsigned __l __attribute__((__mode__(__SI__))); float __d; }) \ + { __l: 0x7f800000UL }).__d) + +# else /* not GCC */ + +typedef union { unsigned char __c[4]; float __f; } __huge_valf_t; + +# define __HUGE_VALF_bytes { 0x7f, 0x80, 0, 0 } + +static __huge_valf_t __huge_valf = { __HUGE_VALF_bytes }; +# define HUGE_VALF (__huge_valf.__f) + +# endif /* GCC. */ + +#if __WORDSIZE == 32 + +/* Sparc32 has IEEE 754 64bit long double */ +# define HUGE_VALL HUGE_VAL + +#else + +/* Sparc64 uses IEEE 754 128bit long double */ + +#ifdef __GNUC__ + +# define HUGE_VALL \ + (__extension__ \ + ((union { struct { unsigned long __h, __l; } __i; long double __d; }) \ + { __i: { __h: 0x7fff000000000000UL, __l: 0 } }).__d) + +#else /* not GCC */ + +typedef union { unsigned char __c[16]; long double __d; } __huge_vall_t; + +# define __HUGE_VALL_bytes { 0x7f, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes }; +# define HUGE_VALL (__huge_vall.__d) + +#endif /* GCC. */ + +#endif + +#endif /* __USE_ISOC9X. */ |