From e0500490bc92e6e851df6f007b1f0943db305846 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Thu, 17 May 2007 18:50:57 +0000 Subject: [PATCH] 2007-05-17 Yaakov Selkowitz users.sourceforge.net> * libm/common/Makefile.am: Add support for exp10, exp10f, pow10, and pow10f functions. * libm/common/Makefile.in: Regenerated. * libm/common/s_pow10.c: New file. * libm/common/sf_pow10.c: Ditto. * libm/common/s_exp10.c: Ditto. * libm/common/sf_exp10.c: Ditto. * libc/include/math.h [!pow10]: New pow10 prototype. [!pow10f]: New pow10f prototype. [!exp10]: New exp10 prototype. [!exp10f]: New exp10f prototype. --- newlib/ChangeLog | 14 +++++ newlib/libc/include/math.h | 16 +++++ newlib/libm/common/Makefile.am | 36 ++++++----- newlib/libm/common/Makefile.in | 111 +++++++++++++++++++++------------ newlib/libm/common/s_exp10.c | 80 ++++++++++++++++++++++++ newlib/libm/common/s_pow10.c | 79 +++++++++++++++++++++++ newlib/libm/common/sf_exp10.c | 47 ++++++++++++++ newlib/libm/common/sf_pow10.c | 47 ++++++++++++++ 8 files changed, 374 insertions(+), 56 deletions(-) create mode 100644 newlib/libm/common/s_exp10.c create mode 100644 newlib/libm/common/s_pow10.c create mode 100644 newlib/libm/common/sf_exp10.c create mode 100644 newlib/libm/common/sf_pow10.c diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 13b93d974..47d5eda38 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,17 @@ +2007-05-17 Yaakov Selkowitz users.sourceforge.net> + + * libm/common/Makefile.am: Add support for exp10, exp10f, + pow10, and pow10f functions. + * libm/common/Makefile.in: Regenerated. + * libm/common/s_pow10.c: New file. + * libm/common/sf_pow10.c: Ditto. + * libm/common/s_exp10.c: Ditto. + * libm/common/sf_exp10.c: Ditto. + * libc/include/math.h [!pow10]: New pow10 prototype. + [!pow10f]: New pow10f prototype. + [!exp10]: New exp10 prototype. + [!exp10f]: New exp10f prototype. + 2007-05-17 Charles Wilson * stdio/tmpfile.c: Include . diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h index f161fe7ba..d8987cb48 100644 --- a/newlib/libc/include/math.h +++ b/newlib/libc/include/math.h @@ -233,6 +233,14 @@ extern double fmin _PARAMS((double, double)); extern double fma _PARAMS((double, double, double)); extern void sincos _PARAMS((double, double *, double *)); +/* GNU extensions */ +# ifndef exp10 +extern double exp10 _PARAMS((double)); +# endif +# ifndef pow10 +extern double pow10 _PARAMS((double)); +# endif + #ifndef __math_68881 extern double log1p _PARAMS((double)); extern double expm1 _PARAMS((double)); @@ -335,6 +343,14 @@ extern float log1pf _PARAMS((float)); extern float expm1f _PARAMS((float)); extern void sincosf _PARAMS((float, float *, float *)); +/* GNU extensions */ +# ifndef exp10f +extern float exp10f _PARAMS((float)); +# endif +# ifndef pow10f +extern float pow10f _PARAMS((float)); +# endif + #ifndef _REENT_ONLY extern float acoshf _PARAMS((float)); extern float atanhf _PARAMS((float)); diff --git a/newlib/libm/common/Makefile.am b/newlib/libm/common/Makefile.am index 1f2f98c43..f79a67c55 100644 --- a/newlib/libm/common/Makefile.am +++ b/newlib/libm/common/Makefile.am @@ -5,18 +5,18 @@ AUTOMAKE_OPTIONS = cygnus INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) src = s_finite.c s_copysign.c s_modf.c s_scalbn.c \ - s_cbrt.c s_expm1.c s_ilogb.c s_infconst.c \ + s_cbrt.c s_exp10.c s_expm1.c s_ilogb.c s_infconst.c \ s_infinity.c s_isinf.c s_isinfd.c s_isnan.c s_isnand.c \ - s_log1p.c s_nan.c s_nextafter.c \ + s_log1p.c s_nan.c s_nextafter.c s_pow10.c \ s_rint.c s_logb.c s_matherr.c s_lib_ver.c \ s_fdim.c s_fma.c s_fmax.c s_fmin.c s_fpclassify.c s_lrint.c \ s_lround.c s_nearbyint.c s_remquo.c s_round.c s_scalbln.c \ s_signbit.c s_trunc.c fsrc = sf_finite.c sf_copysign.c sf_modf.c sf_scalbn.c \ - sf_cbrt.c sf_expm1.c sf_ilogb.c \ + sf_cbrt.c sf_exp10.c sf_expm1.c sf_ilogb.c \ sf_infinity.c sf_isinf.c sf_isinff.c sf_isnan.c sf_isnanf.c \ - sf_log1p.c sf_nan.c sf_nextafter.c \ + sf_log1p.c sf_nan.c sf_nextafter.c sf_pow10.c \ sf_rint.c sf_logb.c \ sf_fdim.c sf_fma.c sf_fmax.c sf_fmin.c sf_fpclassify.c sf_lrint.c \ sf_lround.c sf_nearbyint.c sf_remquo.c sf_round.c \ @@ -37,9 +37,9 @@ endif # USE_LIBTOOL include $(srcdir)/../../Makefile.shared -chobj = scbrt.def scopysign.def sexpm1.def silogb.def \ +chobj = scbrt.def scopysign.def sexp10.def sexpm1.def silogb.def \ sinfinity.def sisnan.def slog1p.def smatherr.def smodf.def \ - snan.def snextafter.def sscalbn.def + snan.def snextafter.def spow10.def sscalbn.def SUFFIXES = .def @@ -58,18 +58,10 @@ CLEANFILES = $(chobj) *.ref # Texinfo does not appear to support underscores in file names, so we # name the .def files without underscores. -smodf.def: s_modf.c - $(CHEW) < $(srcdir)/s_modf.c >$@ 2>/dev/null - touch stmp-def - scopysign.def: s_copysign.c $(CHEW) < $(srcdir)/s_copysign.c >$@ 2>/dev/null touch stmp-def -sscalbn.def: s_scalbn.c - $(CHEW) < $(srcdir)/s_scalbn.c >$@ 2>/dev/null - touch stmp-def - scbrt.def: s_cbrt.c $(CHEW) < $(srcdir)/s_cbrt.c >$@ 2>/dev/null touch stmp-def @@ -78,8 +70,8 @@ serf.def: s_erf.c $(CHEW) < $(srcdir)/s_serf.c >$@ 2>/dev/null touch stmp-def -sexpn.def: s_expm.c - $(CHEW) < $(srcdir)/s_expn.c >$@ 2>/dev/null +sexp10.def: s_exp10.c + $(CHEW) < $(srcdir)/s_exp10.c >$@ 2>/dev/null touch stmp-def sexpm1.def: s_expm1.c @@ -102,6 +94,10 @@ slog1p.def: s_log1p.c $(CHEW) < $(srcdir)/s_log1p.c >$@ 2>/dev/null touch stmp-def +smodf.def: s_modf.c + $(CHEW) < $(srcdir)/s_modf.c >$@ 2>/dev/null + touch stmp-def + smatherr.def: s_matherr.c $(CHEW) < $(srcdir)/s_matherr.c >$@ 2>/dev/null touch stmp-def @@ -114,6 +110,14 @@ snextafter.def: s_nextafter.c $(CHEW) < $(srcdir)/s_nextafter.c >$@ 2>/dev/null touch stmp-def +spow10.def: s_pow10.c + $(CHEW) < $(srcdir)/s_pow10.c >$@ 2>/dev/null + touch stmp-def + +sscalbn.def: s_scalbn.c + $(CHEW) < $(srcdir)/s_scalbn.c >$@ 2>/dev/null + touch stmp-def + # A partial dependency list. $(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h fdlibm.h diff --git a/newlib/libm/common/Makefile.in b/newlib/libm/common/Makefile.in index 0c5a100bc..7ab97845d 100644 --- a/newlib/libm/common/Makefile.in +++ b/newlib/libm/common/Makefile.in @@ -55,12 +55,13 @@ lib_a_AR = $(AR) $(ARFLAGS) lib_a_LIBADD = am__objects_1 = lib_a-s_finite.$(OBJEXT) lib_a-s_copysign.$(OBJEXT) \ lib_a-s_modf.$(OBJEXT) lib_a-s_scalbn.$(OBJEXT) \ - lib_a-s_cbrt.$(OBJEXT) lib_a-s_expm1.$(OBJEXT) \ - lib_a-s_ilogb.$(OBJEXT) lib_a-s_infconst.$(OBJEXT) \ - lib_a-s_infinity.$(OBJEXT) lib_a-s_isinf.$(OBJEXT) \ - lib_a-s_isinfd.$(OBJEXT) lib_a-s_isnan.$(OBJEXT) \ - lib_a-s_isnand.$(OBJEXT) lib_a-s_log1p.$(OBJEXT) \ - lib_a-s_nan.$(OBJEXT) lib_a-s_nextafter.$(OBJEXT) \ + lib_a-s_cbrt.$(OBJEXT) lib_a-s_exp10.$(OBJEXT) \ + lib_a-s_expm1.$(OBJEXT) lib_a-s_ilogb.$(OBJEXT) \ + lib_a-s_infconst.$(OBJEXT) lib_a-s_infinity.$(OBJEXT) \ + lib_a-s_isinf.$(OBJEXT) lib_a-s_isinfd.$(OBJEXT) \ + lib_a-s_isnan.$(OBJEXT) lib_a-s_isnand.$(OBJEXT) \ + lib_a-s_log1p.$(OBJEXT) lib_a-s_nan.$(OBJEXT) \ + lib_a-s_nextafter.$(OBJEXT) lib_a-s_pow10.$(OBJEXT) \ lib_a-s_rint.$(OBJEXT) lib_a-s_logb.$(OBJEXT) \ lib_a-s_matherr.$(OBJEXT) lib_a-s_lib_ver.$(OBJEXT) \ lib_a-s_fdim.$(OBJEXT) lib_a-s_fma.$(OBJEXT) \ @@ -72,12 +73,13 @@ am__objects_1 = lib_a-s_finite.$(OBJEXT) lib_a-s_copysign.$(OBJEXT) \ lib_a-s_trunc.$(OBJEXT) am__objects_2 = lib_a-sf_finite.$(OBJEXT) lib_a-sf_copysign.$(OBJEXT) \ lib_a-sf_modf.$(OBJEXT) lib_a-sf_scalbn.$(OBJEXT) \ - lib_a-sf_cbrt.$(OBJEXT) lib_a-sf_expm1.$(OBJEXT) \ - lib_a-sf_ilogb.$(OBJEXT) lib_a-sf_infinity.$(OBJEXT) \ - lib_a-sf_isinf.$(OBJEXT) lib_a-sf_isinff.$(OBJEXT) \ - lib_a-sf_isnan.$(OBJEXT) lib_a-sf_isnanf.$(OBJEXT) \ - lib_a-sf_log1p.$(OBJEXT) lib_a-sf_nan.$(OBJEXT) \ - lib_a-sf_nextafter.$(OBJEXT) lib_a-sf_rint.$(OBJEXT) \ + lib_a-sf_cbrt.$(OBJEXT) lib_a-sf_exp10.$(OBJEXT) \ + lib_a-sf_expm1.$(OBJEXT) lib_a-sf_ilogb.$(OBJEXT) \ + lib_a-sf_infinity.$(OBJEXT) lib_a-sf_isinf.$(OBJEXT) \ + lib_a-sf_isinff.$(OBJEXT) lib_a-sf_isnan.$(OBJEXT) \ + lib_a-sf_isnanf.$(OBJEXT) lib_a-sf_log1p.$(OBJEXT) \ + lib_a-sf_nan.$(OBJEXT) lib_a-sf_nextafter.$(OBJEXT) \ + lib_a-sf_pow10.$(OBJEXT) lib_a-sf_rint.$(OBJEXT) \ lib_a-sf_logb.$(OBJEXT) lib_a-sf_fdim.$(OBJEXT) \ lib_a-sf_fma.$(OBJEXT) lib_a-sf_fmax.$(OBJEXT) \ lib_a-sf_fmin.$(OBJEXT) lib_a-sf_fpclassify.$(OBJEXT) \ @@ -91,19 +93,20 @@ lib_a_OBJECTS = $(am_lib_a_OBJECTS) LTLIBRARIES = $(noinst_LTLIBRARIES) libcommon_la_LIBADD = am__objects_3 = s_finite.lo s_copysign.lo s_modf.lo s_scalbn.lo \ - s_cbrt.lo s_expm1.lo s_ilogb.lo s_infconst.lo s_infinity.lo \ - s_isinf.lo s_isinfd.lo s_isnan.lo s_isnand.lo s_log1p.lo \ - s_nan.lo s_nextafter.lo s_rint.lo s_logb.lo s_matherr.lo \ - s_lib_ver.lo s_fdim.lo s_fma.lo s_fmax.lo s_fmin.lo \ - s_fpclassify.lo s_lrint.lo s_lround.lo s_nearbyint.lo \ - s_remquo.lo s_round.lo s_scalbln.lo s_signbit.lo s_trunc.lo + s_cbrt.lo s_exp10.lo s_expm1.lo s_ilogb.lo s_infconst.lo \ + s_infinity.lo s_isinf.lo s_isinfd.lo s_isnan.lo s_isnand.lo \ + s_log1p.lo s_nan.lo s_nextafter.lo s_pow10.lo s_rint.lo \ + s_logb.lo s_matherr.lo s_lib_ver.lo s_fdim.lo s_fma.lo \ + s_fmax.lo s_fmin.lo s_fpclassify.lo s_lrint.lo s_lround.lo \ + s_nearbyint.lo s_remquo.lo s_round.lo s_scalbln.lo \ + s_signbit.lo s_trunc.lo am__objects_4 = sf_finite.lo sf_copysign.lo sf_modf.lo sf_scalbn.lo \ - sf_cbrt.lo sf_expm1.lo sf_ilogb.lo sf_infinity.lo sf_isinf.lo \ - sf_isinff.lo sf_isnan.lo sf_isnanf.lo sf_log1p.lo sf_nan.lo \ - sf_nextafter.lo sf_rint.lo sf_logb.lo sf_fdim.lo sf_fma.lo \ - sf_fmax.lo sf_fmin.lo sf_fpclassify.lo sf_lrint.lo \ - sf_lround.lo sf_nearbyint.lo sf_remquo.lo sf_round.lo \ - sf_scalbln.lo sf_trunc.lo + sf_cbrt.lo sf_exp10.lo sf_expm1.lo sf_ilogb.lo sf_infinity.lo \ + sf_isinf.lo sf_isinff.lo sf_isnan.lo sf_isnanf.lo sf_log1p.lo \ + sf_nan.lo sf_nextafter.lo sf_pow10.lo sf_rint.lo sf_logb.lo \ + sf_fdim.lo sf_fma.lo sf_fmax.lo sf_fmin.lo sf_fpclassify.lo \ + sf_lrint.lo sf_lround.lo sf_nearbyint.lo sf_remquo.lo \ + sf_round.lo sf_scalbln.lo sf_trunc.lo @USE_LIBTOOL_TRUE@am_libcommon_la_OBJECTS = $(am__objects_3) \ @USE_LIBTOOL_TRUE@ $(am__objects_4) libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS) @@ -244,18 +247,18 @@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = cygnus INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) src = s_finite.c s_copysign.c s_modf.c s_scalbn.c \ - s_cbrt.c s_expm1.c s_ilogb.c s_infconst.c \ + s_cbrt.c s_exp10.c s_expm1.c s_ilogb.c s_infconst.c \ s_infinity.c s_isinf.c s_isinfd.c s_isnan.c s_isnand.c \ - s_log1p.c s_nan.c s_nextafter.c \ + s_log1p.c s_nan.c s_nextafter.c s_pow10.c \ s_rint.c s_logb.c s_matherr.c s_lib_ver.c \ s_fdim.c s_fma.c s_fmax.c s_fmin.c s_fpclassify.c s_lrint.c \ s_lround.c s_nearbyint.c s_remquo.c s_round.c s_scalbln.c \ s_signbit.c s_trunc.c fsrc = sf_finite.c sf_copysign.c sf_modf.c sf_scalbn.c \ - sf_cbrt.c sf_expm1.c sf_ilogb.c \ + sf_cbrt.c sf_exp10.c sf_expm1.c sf_ilogb.c \ sf_infinity.c sf_isinf.c sf_isinff.c sf_isnan.c sf_isnanf.c \ - sf_log1p.c sf_nan.c sf_nextafter.c \ + sf_log1p.c sf_nan.c sf_nextafter.c sf_pow10.c \ sf_rint.c sf_logb.c \ sf_fdim.c sf_fma.c sf_fmax.c sf_fmin.c sf_fpclassify.c sf_lrint.c \ sf_lround.c sf_nearbyint.c sf_remquo.c sf_round.c \ @@ -269,9 +272,9 @@ libcommon_la_LDFLAGS = -Xcompiler -nostdlib @USE_LIBTOOL_FALSE@noinst_LIBRARIES = lib.a @USE_LIBTOOL_FALSE@lib_a_SOURCES = $(src) $(fsrc) @USE_LIBTOOL_FALSE@lib_a_CFLAGS = $(AM_CFLAGS) -chobj = scbrt.def scopysign.def sexpm1.def silogb.def \ +chobj = scbrt.def scopysign.def sexp10.def sexpm1.def silogb.def \ sinfinity.def sisnan.def slog1p.def smatherr.def smodf.def \ - snan.def snextafter.def sscalbn.def + snan.def snextafter.def spow10.def sscalbn.def SUFFIXES = .def CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str @@ -374,6 +377,12 @@ lib_a-s_cbrt.o: s_cbrt.c lib_a-s_cbrt.obj: s_cbrt.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cbrt.obj `if test -f 's_cbrt.c'; then $(CYGPATH_W) 's_cbrt.c'; else $(CYGPATH_W) '$(srcdir)/s_cbrt.c'; fi` +lib_a-s_exp10.o: s_exp10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_exp10.o `test -f 's_exp10.c' || echo '$(srcdir)/'`s_exp10.c + +lib_a-s_exp10.obj: s_exp10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_exp10.obj `if test -f 's_exp10.c'; then $(CYGPATH_W) 's_exp10.c'; else $(CYGPATH_W) '$(srcdir)/s_exp10.c'; fi` + lib_a-s_expm1.o: s_expm1.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_expm1.o `test -f 's_expm1.c' || echo '$(srcdir)/'`s_expm1.c @@ -440,6 +449,12 @@ lib_a-s_nextafter.o: s_nextafter.c lib_a-s_nextafter.obj: s_nextafter.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nextafter.obj `if test -f 's_nextafter.c'; then $(CYGPATH_W) 's_nextafter.c'; else $(CYGPATH_W) '$(srcdir)/s_nextafter.c'; fi` +lib_a-s_pow10.o: s_pow10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_pow10.o `test -f 's_pow10.c' || echo '$(srcdir)/'`s_pow10.c + +lib_a-s_pow10.obj: s_pow10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_pow10.obj `if test -f 's_pow10.c'; then $(CYGPATH_W) 's_pow10.c'; else $(CYGPATH_W) '$(srcdir)/s_pow10.c'; fi` + lib_a-s_rint.o: s_rint.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_rint.o `test -f 's_rint.c' || echo '$(srcdir)/'`s_rint.c @@ -572,6 +587,12 @@ lib_a-sf_cbrt.o: sf_cbrt.c lib_a-sf_cbrt.obj: sf_cbrt.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_cbrt.obj `if test -f 'sf_cbrt.c'; then $(CYGPATH_W) 'sf_cbrt.c'; else $(CYGPATH_W) '$(srcdir)/sf_cbrt.c'; fi` +lib_a-sf_exp10.o: sf_exp10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_exp10.o `test -f 'sf_exp10.c' || echo '$(srcdir)/'`sf_exp10.c + +lib_a-sf_exp10.obj: sf_exp10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_exp10.obj `if test -f 'sf_exp10.c'; then $(CYGPATH_W) 'sf_exp10.c'; else $(CYGPATH_W) '$(srcdir)/sf_exp10.c'; fi` + lib_a-sf_expm1.o: sf_expm1.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_expm1.o `test -f 'sf_expm1.c' || echo '$(srcdir)/'`sf_expm1.c @@ -632,6 +653,12 @@ lib_a-sf_nextafter.o: sf_nextafter.c lib_a-sf_nextafter.obj: sf_nextafter.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nextafter.obj `if test -f 'sf_nextafter.c'; then $(CYGPATH_W) 'sf_nextafter.c'; else $(CYGPATH_W) '$(srcdir)/sf_nextafter.c'; fi` +lib_a-sf_pow10.o: sf_pow10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_pow10.o `test -f 'sf_pow10.c' || echo '$(srcdir)/'`sf_pow10.c + +lib_a-sf_pow10.obj: sf_pow10.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_pow10.obj `if test -f 'sf_pow10.c'; then $(CYGPATH_W) 'sf_pow10.c'; else $(CYGPATH_W) '$(srcdir)/sf_pow10.c'; fi` + lib_a-sf_rint.o: sf_rint.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_rint.o `test -f 'sf_rint.c' || echo '$(srcdir)/'`sf_rint.c @@ -879,18 +906,10 @@ doc: $(chobj) # Texinfo does not appear to support underscores in file names, so we # name the .def files without underscores. -smodf.def: s_modf.c - $(CHEW) < $(srcdir)/s_modf.c >$@ 2>/dev/null - touch stmp-def - scopysign.def: s_copysign.c $(CHEW) < $(srcdir)/s_copysign.c >$@ 2>/dev/null touch stmp-def -sscalbn.def: s_scalbn.c - $(CHEW) < $(srcdir)/s_scalbn.c >$@ 2>/dev/null - touch stmp-def - scbrt.def: s_cbrt.c $(CHEW) < $(srcdir)/s_cbrt.c >$@ 2>/dev/null touch stmp-def @@ -899,8 +918,8 @@ serf.def: s_erf.c $(CHEW) < $(srcdir)/s_serf.c >$@ 2>/dev/null touch stmp-def -sexpn.def: s_expm.c - $(CHEW) < $(srcdir)/s_expn.c >$@ 2>/dev/null +sexp10.def: s_exp10.c + $(CHEW) < $(srcdir)/s_exp10.c >$@ 2>/dev/null touch stmp-def sexpm1.def: s_expm1.c @@ -923,6 +942,10 @@ slog1p.def: s_log1p.c $(CHEW) < $(srcdir)/s_log1p.c >$@ 2>/dev/null touch stmp-def +smodf.def: s_modf.c + $(CHEW) < $(srcdir)/s_modf.c >$@ 2>/dev/null + touch stmp-def + smatherr.def: s_matherr.c $(CHEW) < $(srcdir)/s_matherr.c >$@ 2>/dev/null touch stmp-def @@ -935,6 +958,14 @@ snextafter.def: s_nextafter.c $(CHEW) < $(srcdir)/s_nextafter.c >$@ 2>/dev/null touch stmp-def +spow10.def: s_pow10.c + $(CHEW) < $(srcdir)/s_pow10.c >$@ 2>/dev/null + touch stmp-def + +sscalbn.def: s_scalbn.c + $(CHEW) < $(srcdir)/s_scalbn.c >$@ 2>/dev/null + touch stmp-def + # A partial dependency list. $(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h fdlibm.h diff --git a/newlib/libm/common/s_exp10.c b/newlib/libm/common/s_exp10.c new file mode 100644 index 000000000..12f30036e --- /dev/null +++ b/newlib/libm/common/s_exp10.c @@ -0,0 +1,80 @@ +/* @(#)s_exp10.c 5.1 93/09/24 */ +/* Modified from s_exp2.c by Yaakov Selkowitz 2007. */ + +/* + * ==================================================== + * 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. + * ==================================================== + */ + +/* +FUNCTION + <>, <>---exponential +INDEX + exp10 +INDEX + exp10f + +ANSI_SYNOPSIS + #include + double exp10(double <[x]>); + float exp10f(float <[x]>); + +TRAD_SYNOPSIS + #include + double exp10(<[x]>); + double <[x]>; + + float exp10f(<[x]>); + float <[x]>; + +DESCRIPTION + <> and <> calculate 10 ^ <[x]>, that is, + @ifnottex + 10 raised to the power <[x]>. + @end ifnottex + @tex + $10^x$ + @end tex + + You can use the (non-ANSI) function <> to specify + error handling for these functions. + +RETURNS + On success, <> and <> return the calculated value. + If the result underflows, the returned value is <<0>>. If the + result overflows, the returned value is <>. In + either case, <> is set to <>. + +PORTABILITY + <> and <> are GNU extensions. + +*/ + +/* + * wrapper exp10(x) + */ + +#undef exp10 +#include "fdlibm.h" +#include +#include + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double exp10(double x) /* wrapper exp10 */ +#else + double exp10(x) /* wrapper exp10 */ + double x; +#endif +{ + return pow(10.0, x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/s_pow10.c b/newlib/libm/common/s_pow10.c new file mode 100644 index 000000000..16ec0046a --- /dev/null +++ b/newlib/libm/common/s_pow10.c @@ -0,0 +1,79 @@ +/* @(#)s_pow10.c 5.1 93/09/24 */ +/* Modification from s_exp10.c Yaakov Selkowitz 2007. */ + +/* + * ==================================================== + * 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. + * ==================================================== + */ + +/* +FUNCTION + <>, <>---exponential +INDEX + pow10 +INDEX + pow10f + +ANSI_SYNOPSIS + #include + double pow10(double <[x]>); + float pow10f(float <[x]>); + +TRAD_SYNOPSIS + #include + double pow10(<[x]>); + double <[x]>; + + float pow10f(<[x]>); + float <[x]>; + +DESCRIPTION + <> and <> calculate 10 ^ <[x]>, that is, + @ifnottex + 10 raised to the power <[x]>. + @end ifnottex + @tex + $10^x$ + @end tex + + You can use the (non-ANSI) function <> to specify + error handling for these functions. + +RETURNS + On success, <> and <> return the calculated value. + If the result underflows, the returned value is <<0>>. If the + result overflows, the returned value is <>. In + either case, <> is set to <>. + +PORTABILITY + <> and <> are GNU extensions. +*/ + +/* + * wrapper pow10(x) + */ + +#undef pow10 +#include "fdlibm.h" +#include +#include + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double pow10(double x) /* wrapper pow10 */ +#else + double pow10(x) /* wrapper pow10 */ + double x; +#endif +{ + return pow(10.0, x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_exp10.c b/newlib/libm/common/sf_exp10.c new file mode 100644 index 000000000..eb70a9c52 --- /dev/null +++ b/newlib/libm/common/sf_exp10.c @@ -0,0 +1,47 @@ +/* sf_exp10.c -- float version of s_exp10.c. + * Modification of sf_exp2.c by Yaakov Selkowitz 2007. + */ + +/* + * ==================================================== + * 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. + * ==================================================== + */ + +/* + * wrapper exp10f(x) + */ + +#undef exp10f +#include "fdlibm.h" +#include +#include + +#ifdef __STDC__ + float exp10f(float x) /* wrapper exp10f */ +#else + float exp10f(x) /* wrapper exp10f */ + float x; +#endif +{ + return powf(10.0, x); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double exp10(double x) +#else + double exp10(x) + double x; +#endif +{ + return (double) exp10f((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_pow10.c b/newlib/libm/common/sf_pow10.c new file mode 100644 index 000000000..116afac7e --- /dev/null +++ b/newlib/libm/common/sf_pow10.c @@ -0,0 +1,47 @@ +/* sf_pow10.c -- float version of s_pow10.c. + * Modification of sf_pow10.c by Yaakov Selkowitz 2007. + */ + +/* + * ==================================================== + * 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. + * ==================================================== + */ + +/* + * wrapper pow10f(x) + */ + +#undef pow10f +#include "fdlibm.h" +#include +#include + +#ifdef __STDC__ + float pow10f(float x) /* wrapper pow10f */ +#else + float pow10f(x) /* wrapper pow10f */ + float x; +#endif +{ + return powf(10.0, x); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double pow10(double x) +#else + double pow10(x) + double x; +#endif +{ + return (double) pow10f((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */