mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-23 23:47:22 +08:00
1f8e5847df
The current gamma, gamma_r, gammaf and gammaf_r functions return |gamma(x)| instead of ln(|gamma(x)|) due to a change made back in 2002 to the __ieee754_gamma_r implementation. This patch fixes that, making all of these functions map too their lgamma equivalents. To fix the underlying bug, the __ieee754_gamma functions have been changed to return gamma(x), removing the _r variants as those are no longer necessary. Their names have been changed to __ieee754_tgamma to avoid potential confusion from users. Now that the __ieee754_tgamma functions return the correctly signed value, the tgamma functions have been modified to use them. libm.a now exposes the following gamma functions: ln(|gamma(x)|): __ieee754_lgamma_r __ieee754_lgammaf_r lgamma lgamma_r gamma gamma_r lgammaf lgammaf_r gammaf gammaf_r lgammal (on machines where long double is double) gamma(x): __ieee754_tgamma __ieee754_tgammaf tgamma tgammaf tgammal (on machines where long double is double) Additional aliases for any of the above functions can be added if necessary; in particular, I'm not sure if we need to include __ieee754_gamma*_r functions (which would return ln(|(gamma(x)|). Signed-off-by: Keith Packard <keithp@keithp.com> ---- v2: Switch commit message to ASCII
85 lines
2.4 KiB
Makefile
85 lines
2.4 KiB
Makefile
## Process this file with automake to generate Makefile.in
|
|
|
|
AUTOMAKE_OPTIONS = cygnus
|
|
|
|
INCLUDES = -I$(srcdir)/../common $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
|
|
|
|
src = k_standard.c k_rem_pio2.c \
|
|
k_cos.c k_sin.c k_tan.c \
|
|
e_acos.c e_acosh.c e_asin.c e_atan2.c \
|
|
e_atanh.c e_cosh.c e_exp.c e_fmod.c \
|
|
e_tgamma.c e_hypot.c e_j0.c \
|
|
e_j1.c e_jn.c er_lgamma.c \
|
|
e_log.c e_log10.c e_pow.c e_rem_pio2.c e_remainder.c \
|
|
e_scalb.c e_sinh.c e_sqrt.c \
|
|
w_acos.c w_acosh.c w_asin.c w_atan2.c \
|
|
w_atanh.c w_cosh.c w_exp.c w_fmod.c \
|
|
w_gamma.c wr_gamma.c w_hypot.c w_j0.c \
|
|
w_j1.c w_jn.c w_lgamma.c wr_lgamma.c \
|
|
w_log.c w_log10.c w_pow.c w_remainder.c \
|
|
w_scalb.c w_sinh.c w_sqrt.c \
|
|
w_sincos.c \
|
|
w_drem.c \
|
|
s_asinh.c s_atan.c s_ceil.c \
|
|
s_cos.c s_erf.c s_fabs.c s_floor.c \
|
|
s_frexp.c s_ldexp.c \
|
|
s_signif.c s_sin.c \
|
|
s_tan.c s_tanh.c \
|
|
w_exp2.c w_tgamma.c
|
|
|
|
fsrc = kf_rem_pio2.c \
|
|
kf_cos.c kf_sin.c kf_tan.c \
|
|
ef_acos.c ef_acosh.c ef_asin.c ef_atan2.c \
|
|
ef_atanh.c ef_cosh.c ef_exp.c ef_fmod.c \
|
|
ef_tgamma.c ef_hypot.c ef_j0.c \
|
|
ef_j1.c ef_jn.c erf_lgamma.c \
|
|
ef_log.c ef_log10.c ef_pow.c ef_rem_pio2.c ef_remainder.c \
|
|
ef_scalb.c ef_sinh.c ef_sqrt.c \
|
|
wf_acos.c wf_acosh.c wf_asin.c wf_atan2.c \
|
|
wf_atanh.c wf_cosh.c wf_exp.c wf_fmod.c \
|
|
wf_gamma.c wrf_gamma.c wf_hypot.c wf_j0.c \
|
|
wf_j1.c wf_jn.c wf_lgamma.c wrf_lgamma.c \
|
|
wf_log.c wf_log10.c wf_pow.c wf_remainder.c \
|
|
wf_scalb.c wf_sinh.c wf_sqrt.c \
|
|
wf_sincos.c \
|
|
wf_drem.c \
|
|
sf_asinh.c sf_atan.c sf_ceil.c \
|
|
sf_cos.c sf_erf.c sf_fabs.c sf_floor.c \
|
|
sf_frexp.c sf_ldexp.c \
|
|
sf_signif.c sf_sin.c \
|
|
sf_tan.c sf_tanh.c \
|
|
wf_exp2.c wf_tgamma.c \
|
|
wf_log2.c
|
|
|
|
lsrc = el_hypot.c
|
|
|
|
libmath_la_LDFLAGS = -Xcompiler -nostdlib
|
|
|
|
if USE_LIBTOOL
|
|
noinst_LTLIBRARIES = libmath.la
|
|
libmath_la_SOURCES = $(src) $(fsrc) $(lsrc)
|
|
noinst_DATA = objectlist.awk.in
|
|
else
|
|
noinst_LIBRARIES = lib.a
|
|
lib_a_SOURCES = $(src) $(fsrc) $(lsrc)
|
|
lib_a_CFLAGS = $(AM_CFLAGS)
|
|
noinst_DATA =
|
|
endif # USE_LIBTOOL
|
|
|
|
include $(srcdir)/../../Makefile.shared
|
|
|
|
CHEWOUT_FILES = w_acos.def w_acosh.def w_asin.def s_asinh.def \
|
|
s_atan.def w_atan2.def w_atanh.def w_j0.def \
|
|
w_cosh.def s_erf.def w_exp.def w_exp2.def \
|
|
s_fabs.def s_floor.def w_fmod.def s_frexp.def \
|
|
w_gamma.def w_hypot.def s_ldexp.def w_log.def \
|
|
w_log10.def \
|
|
w_pow.def w_remainder.def s_sin.def w_sinh.def \
|
|
w_sqrt.def s_tan.def s_tanh.def
|
|
|
|
CHAPTERS = math.tex
|
|
|
|
# A partial dependency list.
|
|
|
|
$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h $(srcdir)/../common/fdlibm.h
|