+2007-05-17 Yaakov Selkowitz <yselkowitz <at> 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 <cygwin@...>
* stdio/tmpfile.c: Include <sys/stat.h>.
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));
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));
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 \
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
# 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
$(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
$(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
$(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
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) \
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) \
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)
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 \
@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
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
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
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
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
# 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
$(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
$(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
$(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
--- /dev/null
+/* @(#)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
+ <<exp10>>, <<exp10f>>---exponential
+INDEX
+ exp10
+INDEX
+ exp10f
+
+ANSI_SYNOPSIS
+ #include <math.h>
+ double exp10(double <[x]>);
+ float exp10f(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include <math.h>
+ double exp10(<[x]>);
+ double <[x]>;
+
+ float exp10f(<[x]>);
+ float <[x]>;
+
+DESCRIPTION
+ <<exp10>> and <<exp10f>> 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 <<matherr>> to specify
+ error handling for these functions.
+
+RETURNS
+ On success, <<exp10>> and <<exp10f>> return the calculated value.
+ If the result underflows, the returned value is <<0>>. If the
+ result overflows, the returned value is <<HUGE_VAL>>. In
+ either case, <<errno>> is set to <<ERANGE>>.
+
+PORTABILITY
+ <<exp10>> and <<exp10f>> are GNU extensions.
+
+*/
+
+/*
+ * wrapper exp10(x)
+ */
+
+#undef exp10
+#include "fdlibm.h"
+#include <errno.h>
+#include <math.h>
+
+#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) */
--- /dev/null
+/* @(#)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
+ <<pow10>>, <<pow10f>>---exponential
+INDEX
+ pow10
+INDEX
+ pow10f
+
+ANSI_SYNOPSIS
+ #include <math.h>
+ double pow10(double <[x]>);
+ float pow10f(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include <math.h>
+ double pow10(<[x]>);
+ double <[x]>;
+
+ float pow10f(<[x]>);
+ float <[x]>;
+
+DESCRIPTION
+ <<pow10>> and <<pow10f>> 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 <<matherr>> to specify
+ error handling for these functions.
+
+RETURNS
+ On success, <<pow10>> and <<pow10f>> return the calculated value.
+ If the result underflows, the returned value is <<0>>. If the
+ result overflows, the returned value is <<HUGE_VAL>>. In
+ either case, <<errno>> is set to <<ERANGE>>.
+
+PORTABILITY
+ <<pow10>> and <<pow10f>> are GNU extensions.
+*/
+
+/*
+ * wrapper pow10(x)
+ */
+
+#undef pow10
+#include "fdlibm.h"
+#include <errno.h>
+#include <math.h>
+
+#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) */
--- /dev/null
+/* 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 <errno.h>
+#include <math.h>
+
+#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) */
--- /dev/null
+/* 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 <errno.h>
+#include <math.h>
+
+#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) */