]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Update gnulib files.
authorSimon Josefsson <simon@josefsson.org>
Wed, 21 Mar 2012 08:17:16 +0000 (09:17 +0100)
committerSimon Josefsson <simon@josefsson.org>
Wed, 21 Mar 2012 08:18:30 +0000 (09:18 +0100)
19 files changed:
gl/Makefile.am
gl/fpucw.h
gl/glthread/threadlib.c [moved from gl/tests/glthread/threadlib.c with 100% similarity]
gl/isnanf-nolibm.h
gl/m4/frexpl.m4
gl/m4/gnulib-comp.m4
gl/m4/ldexpl.m4
gl/m4/math_h.m4
gl/m4/timer_time.m4
gl/math.in.h
gl/tests/Makefile.am
gl/tests/macros.h
gl/tests/randomd.c [new file with mode: 0644]
gl/tests/randoml.c [new file with mode: 0644]
gl/tests/test-frexp.c
gl/tests/test-frexp.h [new file with mode: 0644]
gl/tests/test-frexpl.c
gl/tests/test-math.c
maint.mk

index 1d46f424fef6405abbbfd3bf5e694cfa1ce5df20..5f2c06469f4656349aa23109056de5f31383075e 100644 (file)
@@ -23,7 +23,7 @@
 # Generated by gnulib-tool.
 # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files accept alloca alphasort argp base64 bind byteswap c-ctype close connect error extensions func gendocs getaddrinfo getpass getsubopt gettext gettime havelib inet_ntop inet_pton lib-msvc-compat lib-symbol-versions listen maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html progname read-file recv recvfrom scandir select send sendto servent setsockopt shutdown snprintf socket sockets socklen stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r timer-time timespec u64 unistd valgrind-tests vasprintf version-etc version-etc-fsf vfprintf-posix vprintf-posix vsnprintf warnings
 
-AUTOMAKE_OPTIONS = 1.5 gnits
+AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
 
 SUBDIRS =
 noinst_HEADERS =
@@ -60,6 +60,7 @@ libgnu_la_LDFLAGS += $(LIB_CLOCK_GETTIME)
 libgnu_la_LDFLAGS += $(LIB_SELECT)
 libgnu_la_LDFLAGS += $(LIB_TIMER_TIME)
 libgnu_la_LDFLAGS += $(LTLIBINTL)
+libgnu_la_LDFLAGS += $(LTLIBTHREAD)
 libgnu_la_LDFLAGS += $(SERVENT_LIB)
 
 ## begin gnulib module accept
@@ -717,6 +718,9 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \
              -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \
              -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \
+             -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \
+             -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \
+             -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \
              -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \
              -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \
              -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \
@@ -728,6 +732,12 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \
              -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \
              -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \
+             -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \
+             -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \
+             -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \
+             -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \
+             -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \
+             -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \
              -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \
              -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \
              -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \
@@ -742,6 +752,9 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \
              -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \
              -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \
+             -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \
+             -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \
+             -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \
              -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \
              -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \
              -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \
@@ -751,10 +764,17 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \
              -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \
              -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \
+             -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \
              -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \
              -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \
              -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \
              -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \
+             -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \
+             -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \
+             -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \
+             -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \
+             -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \
+             -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \
              -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \
              -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \
              -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \
@@ -788,14 +808,18 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_ATANF''@|$(HAVE_ATANF)|g' \
              -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \
              -e 's|@''HAVE_ATAN2F''@|$(HAVE_ATAN2F)|g' \
+             -e 's|@''HAVE_CBRT''@|$(HAVE_CBRT)|g' \
+             -e 's|@''HAVE_CBRTF''@|$(HAVE_CBRTF)|g' \
+             -e 's|@''HAVE_CBRTL''@|$(HAVE_CBRTL)|g' \
              -e 's|@''HAVE_COPYSIGN''@|$(HAVE_COPYSIGN)|g' \
-             -e 's|@''HAVE_COPYSIGNF''@|$(HAVE_COPYSIGNF)|g' \
              -e 's|@''HAVE_COPYSIGNL''@|$(HAVE_COPYSIGNL)|g' \
              -e 's|@''HAVE_COSF''@|$(HAVE_COSF)|g' \
              -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \
              -e 's|@''HAVE_COSHF''@|$(HAVE_COSHF)|g' \
              -e 's|@''HAVE_EXPF''@|$(HAVE_EXPF)|g' \
              -e 's|@''HAVE_EXPL''@|$(HAVE_EXPL)|g' \
+             -e 's|@''HAVE_EXPM1''@|$(HAVE_EXPM1)|g' \
+             -e 's|@''HAVE_EXPM1F''@|$(HAVE_EXPM1F)|g' \
              -e 's|@''HAVE_FABSF''@|$(HAVE_FABSF)|g' \
              -e 's|@''HAVE_FABSL''@|$(HAVE_FABSL)|g' \
              -e 's|@''HAVE_FMA''@|$(HAVE_FMA)|g' \
@@ -804,6 +828,8 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_FMODF''@|$(HAVE_FMODF)|g' \
              -e 's|@''HAVE_FMODL''@|$(HAVE_FMODL)|g' \
              -e 's|@''HAVE_FREXPF''@|$(HAVE_FREXPF)|g' \
+             -e 's|@''HAVE_HYPOTF''@|$(HAVE_HYPOTF)|g' \
+             -e 's|@''HAVE_HYPOTL''@|$(HAVE_HYPOTL)|g' \
              -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \
              -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \
              -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \
@@ -812,14 +838,15 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_LOGL''@|$(HAVE_LOGL)|g' \
              -e 's|@''HAVE_LOG10F''@|$(HAVE_LOG10F)|g' \
              -e 's|@''HAVE_LOG10L''@|$(HAVE_LOG10L)|g' \
+             -e 's|@''HAVE_LOG1P''@|$(HAVE_LOG1P)|g' \
+             -e 's|@''HAVE_LOG1PF''@|$(HAVE_LOG1PF)|g' \
+             -e 's|@''HAVE_LOG1PL''@|$(HAVE_LOG1PL)|g' \
              -e 's|@''HAVE_MODFF''@|$(HAVE_MODFF)|g' \
              -e 's|@''HAVE_MODFL''@|$(HAVE_MODFL)|g' \
              -e 's|@''HAVE_POWF''@|$(HAVE_POWF)|g' \
              -e 's|@''HAVE_REMAINDER''@|$(HAVE_REMAINDER)|g' \
              -e 's|@''HAVE_REMAINDERF''@|$(HAVE_REMAINDERF)|g' \
-             -e 's|@''HAVE_REMAINDERL''@|$(HAVE_REMAINDERL)|g' \
              -e 's|@''HAVE_RINT''@|$(HAVE_RINT)|g' \
-             -e 's|@''HAVE_RINTF''@|$(HAVE_RINTF)|g' \
              -e 's|@''HAVE_RINTL''@|$(HAVE_RINTL)|g' \
              -e 's|@''HAVE_SINF''@|$(HAVE_SINF)|g' \
              -e 's|@''HAVE_SINL''@|$(HAVE_SINL)|g' \
@@ -832,10 +859,17 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
              -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
              -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
+             -e 's|@''HAVE_DECL_CBRTF''@|$(HAVE_DECL_CBRTF)|g' \
+             -e 's|@''HAVE_DECL_CBRTL''@|$(HAVE_DECL_CBRTL)|g' \
              -e 's|@''HAVE_DECL_CEILF''@|$(HAVE_DECL_CEILF)|g' \
              -e 's|@''HAVE_DECL_CEILL''@|$(HAVE_DECL_CEILL)|g' \
+             -e 's|@''HAVE_DECL_COPYSIGNF''@|$(HAVE_DECL_COPYSIGNF)|g' \
              -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
              -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
+             -e 's|@''HAVE_DECL_EXP2''@|$(HAVE_DECL_EXP2)|g' \
+             -e 's|@''HAVE_DECL_EXP2F''@|$(HAVE_DECL_EXP2F)|g' \
+             -e 's|@''HAVE_DECL_EXP2L''@|$(HAVE_DECL_EXP2L)|g' \
+             -e 's|@''HAVE_DECL_EXPM1L''@|$(HAVE_DECL_EXPM1L)|g' \
              -e 's|@''HAVE_DECL_FLOORF''@|$(HAVE_DECL_FLOORF)|g' \
              -e 's|@''HAVE_DECL_FLOORL''@|$(HAVE_DECL_FLOORL)|g' \
              -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
@@ -843,7 +877,12 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \
              -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
              -e 's|@''HAVE_DECL_LOG10L''@|$(HAVE_DECL_LOG10L)|g' \
+             -e 's|@''HAVE_DECL_LOG2''@|$(HAVE_DECL_LOG2)|g' \
+             -e 's|@''HAVE_DECL_LOG2F''@|$(HAVE_DECL_LOG2F)|g' \
+             -e 's|@''HAVE_DECL_LOG2L''@|$(HAVE_DECL_LOG2L)|g' \
              -e 's|@''HAVE_DECL_REMAINDER''@|$(HAVE_DECL_REMAINDER)|g' \
+             -e 's|@''HAVE_DECL_REMAINDERL''@|$(HAVE_DECL_REMAINDERL)|g' \
+             -e 's|@''HAVE_DECL_RINTF''@|$(HAVE_DECL_RINTF)|g' \
              -e 's|@''HAVE_DECL_ROUND''@|$(HAVE_DECL_ROUND)|g' \
              -e 's|@''HAVE_DECL_ROUNDF''@|$(HAVE_DECL_ROUNDF)|g' \
              -e 's|@''HAVE_DECL_ROUNDL''@|$(HAVE_DECL_ROUNDL)|g' \
@@ -854,9 +893,15 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
              -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
          | \
-         sed -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \
+         sed -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \
+             -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \
+             -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \
              -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
              -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
+             -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \
+             -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \
+             -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \
+             -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \
              -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \
              -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \
              -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
@@ -871,11 +916,23 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
              -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
              -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \
+             -e 's|@''REPLACE_HYPOT''@|$(REPLACE_HYPOT)|g' \
+             -e 's|@''REPLACE_HYPOTF''@|$(REPLACE_HYPOTF)|g' \
+             -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \
              -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
              -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \
              -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \
              -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
              -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
+             -e 's|@''REPLACE_LOG''@|$(REPLACE_LOG)|g' \
+             -e 's|@''REPLACE_LOGF''@|$(REPLACE_LOGF)|g' \
+             -e 's|@''REPLACE_LOGL''@|$(REPLACE_LOGL)|g' \
+             -e 's|@''REPLACE_LOG1P''@|$(REPLACE_LOG1P)|g' \
+             -e 's|@''REPLACE_LOG1PF''@|$(REPLACE_LOG1PF)|g' \
+             -e 's|@''REPLACE_LOG1PL''@|$(REPLACE_LOG1PL)|g' \
+             -e 's|@''REPLACE_LOG2''@|$(REPLACE_LOG2)|g' \
+             -e 's|@''REPLACE_LOG2F''@|$(REPLACE_LOG2F)|g' \
+             -e 's|@''REPLACE_LOG2L''@|$(REPLACE_LOG2L)|g' \
              -e 's|@''REPLACE_MODF''@|$(REPLACE_MODF)|g' \
              -e 's|@''REPLACE_MODFF''@|$(REPLACE_MODFF)|g' \
              -e 's|@''REPLACE_MODFL''@|$(REPLACE_MODFL)|g' \
@@ -888,6 +945,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
              -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
              -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
+             -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
              -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \
              -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \
              -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
@@ -2192,6 +2250,14 @@ EXTRA_DIST += sysexits.in.h
 
 ## end   gnulib module sysexits
 
+## begin gnulib module threadlib
+
+libgnu_la_SOURCES += glthread/threadlib.c
+
+EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+
+## end   gnulib module threadlib
+
 ## begin gnulib module time
 
 BUILT_SOURCES += time.h
index a62c51daba638a3770e5dcad8016aec595d38079..23e4c81411805b52a65a40a9de4c932f0727e06e 100644 (file)
@@ -30,7 +30,8 @@
 
    On some platforms, such as NetBSD, the default precision is set to
    "double precision".  This means that 'long double' instructions will operate
-   only as 'double', i.e. lead wrong results.
+   only as 'double', i.e. lead to wrong results.  Similarly on FreeBSD 6.4, at
+   least for the division of 'long double' numbers.
 
    The FPU control word is under control of the application, i.e. it is
    not required to be set either way by the ABI.  (In fact, the i386 ABI
index 52703870a2e109eb0f8319cea6a69f07e7697286..9d550e0977507d46b507415647ff597f31ac4cf0 100644 (file)
 # elif defined isnan
 #  undef isnanf
 #  define isnanf(x) isnan ((float)(x))
+# else
+   /* Get declaration of isnanf(), if not declared in <math.h>.  */
+#  if defined __sgi
+   /* We can't include <ieeefp.h>, because it conflicts with our definition of
+      isnand.  Therefore declare isnanf separately.  */
+extern int isnanf (float x);
+#  endif
 # endif
 #else
 /* Test whether X is a NaN.  */
index 8e71420a304b9ffb0b9284b45c3f1c5c2c8e113a..9df87ab82f90f6682fd65ed7ffa5997c8ff8d550 100644 (file)
@@ -1,4 +1,4 @@
-# frexpl.m4 serial 18
+# frexpl.m4 serial 19
 dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -8,9 +8,14 @@ AC_DEFUN([gl_FUNC_FREXPL],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
   AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+
+  dnl Persuade glibc <math.h> to declare frexpl().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   dnl Check whether it's declared.
   dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
   AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include <math.h>]])
+
   FREXPL_LIBM=
   if test $HAVE_DECL_FREXPL = 1; then
     gl_CHECK_FREXPL_NO_LIBM
index db4b7893e872097b5d147f9c490513aac02a07f5..461d7e5babc11e205c0b5c1f16168df706ee7dff 100644 (file)
@@ -38,6 +38,7 @@ AC_DEFUN([gl_EARLY],
   m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
   m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
   AC_REQUIRE([gl_PROG_AR_RANLIB])
+  AC_REQUIRE([AM_PROG_CC_C_O])
   # Code from module accept:
   # Code from module accept-tests:
   # Code from module alloca:
@@ -807,6 +808,7 @@ AC_PROG_MKDIR_P
 gl_HEADER_SYS_UIO
 AC_PROG_MKDIR_P
 gl_SYSEXITS
+gl_THREADLIB
 gl_HEADER_TIME_H
 gl_TIME_R
 if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
@@ -1004,7 +1006,6 @@ gl_UNISTD_MODULE_INDICATOR([symlink])
 gl_SYS_IOCTL_H
 AC_PROG_MKDIR_P
 AC_CHECK_FUNCS_ONCE([shutdown])
-gl_THREADLIB
 gl_FUNC_UNSETENV
 if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
   AC_LIBOBJ([unsetenv])
@@ -1186,6 +1187,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/gettext.h
   lib/gettime.c
   lib/gettimeofday.c
+  lib/glthread/threadlib.c
   lib/inet_ntop.c
   lib/inet_pton.c
   lib/intprops.h
@@ -1480,6 +1482,8 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/macros.h
   tests/minus-zero.h
   tests/nan.h
+  tests/randomd.c
+  tests/randoml.c
   tests/signature.h
   tests/test-accept.c
   tests/test-alloca-opt.c
@@ -1506,6 +1510,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-fputc.c
   tests/test-fread.c
   tests/test-frexp.c
+  tests/test-frexp.h
   tests/test-frexpl.c
   tests/test-fseek.c
   tests/test-fseek.sh
@@ -1649,7 +1654,6 @@ AC_DEFUN([gl_FILE_LIST], [
   tests=lib/getpagesize.c
   tests=lib/glthread/lock.c
   tests=lib/glthread/lock.h
-  tests=lib/glthread/threadlib.c
   tests=lib/ignore-value.h
   tests=lib/inttypes.in.h
   tests=lib/ioctl.c
index 9c9ec6705e019ccb20f6d2be271dddad62ddeb06..11f20ca2a8dc6ea091f407466b93721916b8bc70 100644 (file)
@@ -1,4 +1,4 @@
-# ldexpl.m4 serial 14
+# ldexpl.m4 serial 15
 dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -9,9 +9,14 @@ AC_DEFUN([gl_FUNC_LDEXPL],
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
   AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
   AC_REQUIRE([gl_FUNC_ISNANL]) dnl for ISNANL_LIBM
+
+  dnl Persuade glibc <math.h> to declare ldexpl().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   dnl Check whether it's declared.
   dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
   AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include <math.h>]])
+
   LDEXPL_LIBM=
   if test $HAVE_DECL_LDEXPL = 1; then
     gl_CHECK_LDEXPL_NO_LIBM
index 6f9389dc1864baec51b7a8d025a4e2c98e0d2980..ff1654ec7f9cfa3e4a63c9884b020d7cc03ecafb 100644 (file)
@@ -1,4 +1,4 @@
-# math_h.m4 serial 71
+# math_h.m4 serial 104
 dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -40,10 +40,13 @@ AC_DEFUN([gl_MATH_H],
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[#include <math.h>]],
     [acosf acosl asinf asinl atanf atanl
-     ceilf ceill copysign copysignf copysignl cosf cosl coshf
-     expf expl fabsf fabsl floorf floorl fma fmaf fmal
-     fmod fmodf fmodl frexpf frexpl
-     ldexpf ldexpl logb logf logl log10f log10l modf modff modfl powf
+     cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf
+     expf expl exp2 exp2f exp2l expm1 expm1f expm1l
+     fabsf fabsl floorf floorl fma fmaf fmal
+     fmod fmodf fmodl frexpf frexpl hypotf hypotl
+     ldexpf ldexpl
+     logb log logf logl log10f log10l log1p log1pf log1pl log2 log2f log2l
+     modf modff modfl powf
      remainder remainderf remainderl
      rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
      tanf tanl tanhf trunc truncf truncl])
@@ -67,6 +70,9 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   GNULIB_ATANF=0;      AC_SUBST([GNULIB_ATANF])
   GNULIB_ATANL=0;      AC_SUBST([GNULIB_ATANL])
   GNULIB_ATAN2F=0;     AC_SUBST([GNULIB_ATAN2F])
+  GNULIB_CBRT=0;       AC_SUBST([GNULIB_CBRT])
+  GNULIB_CBRTF=0;      AC_SUBST([GNULIB_CBRTF])
+  GNULIB_CBRTL=0;      AC_SUBST([GNULIB_CBRTL])
   GNULIB_CEIL=0;       AC_SUBST([GNULIB_CEIL])
   GNULIB_CEILF=0;      AC_SUBST([GNULIB_CEILF])
   GNULIB_CEILL=0;      AC_SUBST([GNULIB_CEILL])
@@ -78,6 +84,12 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   GNULIB_COSHF=0;      AC_SUBST([GNULIB_COSHF])
   GNULIB_EXPF=0;       AC_SUBST([GNULIB_EXPF])
   GNULIB_EXPL=0;       AC_SUBST([GNULIB_EXPL])
+  GNULIB_EXP2=0;       AC_SUBST([GNULIB_EXP2])
+  GNULIB_EXP2F=0;      AC_SUBST([GNULIB_EXP2F])
+  GNULIB_EXP2L=0;      AC_SUBST([GNULIB_EXP2L])
+  GNULIB_EXPM1=0;      AC_SUBST([GNULIB_EXPM1])
+  GNULIB_EXPM1F=0;     AC_SUBST([GNULIB_EXPM1F])
+  GNULIB_EXPM1L=0;     AC_SUBST([GNULIB_EXPM1L])
   GNULIB_FABSF=0;      AC_SUBST([GNULIB_FABSF])
   GNULIB_FABSL=0;      AC_SUBST([GNULIB_FABSL])
   GNULIB_FLOOR=0;      AC_SUBST([GNULIB_FLOOR])
@@ -92,6 +104,9 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   GNULIB_FREXPF=0;     AC_SUBST([GNULIB_FREXPF])
   GNULIB_FREXP=0;      AC_SUBST([GNULIB_FREXP])
   GNULIB_FREXPL=0;     AC_SUBST([GNULIB_FREXPL])
+  GNULIB_HYPOT=0;      AC_SUBST([GNULIB_HYPOT])
+  GNULIB_HYPOTF=0;     AC_SUBST([GNULIB_HYPOTF])
+  GNULIB_HYPOTL=0;     AC_SUBST([GNULIB_HYPOTL])
   GNULIB_ISFINITE=0;   AC_SUBST([GNULIB_ISFINITE])
   GNULIB_ISINF=0;      AC_SUBST([GNULIB_ISINF])
   GNULIB_ISNAN=0;      AC_SUBST([GNULIB_ISNAN])
@@ -101,10 +116,17 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   GNULIB_LDEXPF=0;     AC_SUBST([GNULIB_LDEXPF])
   GNULIB_LDEXPL=0;     AC_SUBST([GNULIB_LDEXPL])
   GNULIB_LOGB=0;       AC_SUBST([GNULIB_LOGB])
+  GNULIB_LOG=0;        AC_SUBST([GNULIB_LOG])
   GNULIB_LOGF=0;       AC_SUBST([GNULIB_LOGF])
   GNULIB_LOGL=0;       AC_SUBST([GNULIB_LOGL])
   GNULIB_LOG10F=0;     AC_SUBST([GNULIB_LOG10F])
   GNULIB_LOG10L=0;     AC_SUBST([GNULIB_LOG10L])
+  GNULIB_LOG1P=0;      AC_SUBST([GNULIB_LOG1P])
+  GNULIB_LOG1PF=0;     AC_SUBST([GNULIB_LOG1PF])
+  GNULIB_LOG1PL=0;     AC_SUBST([GNULIB_LOG1PL])
+  GNULIB_LOG2=0;       AC_SUBST([GNULIB_LOG2])
+  GNULIB_LOG2F=0;      AC_SUBST([GNULIB_LOG2F])
+  GNULIB_LOG2L=0;      AC_SUBST([GNULIB_LOG2L])
   GNULIB_MODF=0;       AC_SUBST([GNULIB_MODF])
   GNULIB_MODFF=0;      AC_SUBST([GNULIB_MODFF])
   GNULIB_MODFL=0;      AC_SUBST([GNULIB_MODFL])
@@ -138,14 +160,18 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   HAVE_ATANF=1;                AC_SUBST([HAVE_ATANF])
   HAVE_ATANL=1;                AC_SUBST([HAVE_ATANL])
   HAVE_ATAN2F=1;               AC_SUBST([HAVE_ATAN2F])
+  HAVE_CBRT=1;                 AC_SUBST([HAVE_CBRT])
+  HAVE_CBRTF=1;                AC_SUBST([HAVE_CBRTF])
+  HAVE_CBRTL=1;                AC_SUBST([HAVE_CBRTL])
   HAVE_COPYSIGN=1;             AC_SUBST([HAVE_COPYSIGN])
-  HAVE_COPYSIGNF=1;            AC_SUBST([HAVE_COPYSIGNF])
   HAVE_COPYSIGNL=1;            AC_SUBST([HAVE_COPYSIGNL])
   HAVE_COSF=1;                 AC_SUBST([HAVE_COSF])
   HAVE_COSL=1;                 AC_SUBST([HAVE_COSL])
   HAVE_COSHF=1;                AC_SUBST([HAVE_COSHF])
   HAVE_EXPF=1;                 AC_SUBST([HAVE_EXPF])
   HAVE_EXPL=1;                 AC_SUBST([HAVE_EXPL])
+  HAVE_EXPM1=1;                AC_SUBST([HAVE_EXPM1])
+  HAVE_EXPM1F=1;               AC_SUBST([HAVE_EXPM1F])
   HAVE_FABSF=1;                AC_SUBST([HAVE_FABSF])
   HAVE_FABSL=1;                AC_SUBST([HAVE_FABSL])
   HAVE_FMA=1;                  AC_SUBST([HAVE_FMA])
@@ -154,6 +180,8 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   HAVE_FMODF=1;                AC_SUBST([HAVE_FMODF])
   HAVE_FMODL=1;                AC_SUBST([HAVE_FMODL])
   HAVE_FREXPF=1;               AC_SUBST([HAVE_FREXPF])
+  HAVE_HYPOTF=1;               AC_SUBST([HAVE_HYPOTF])
+  HAVE_HYPOTL=1;               AC_SUBST([HAVE_HYPOTL])
   HAVE_ISNANF=1;               AC_SUBST([HAVE_ISNANF])
   HAVE_ISNAND=1;               AC_SUBST([HAVE_ISNAND])
   HAVE_ISNANL=1;               AC_SUBST([HAVE_ISNANL])
@@ -162,14 +190,15 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   HAVE_LOGL=1;                 AC_SUBST([HAVE_LOGL])
   HAVE_LOG10F=1;               AC_SUBST([HAVE_LOG10F])
   HAVE_LOG10L=1;               AC_SUBST([HAVE_LOG10L])
+  HAVE_LOG1P=1;                AC_SUBST([HAVE_LOG1P])
+  HAVE_LOG1PF=1;               AC_SUBST([HAVE_LOG1PF])
+  HAVE_LOG1PL=1;               AC_SUBST([HAVE_LOG1PL])
   HAVE_MODFF=1;                AC_SUBST([HAVE_MODFF])
   HAVE_MODFL=1;                AC_SUBST([HAVE_MODFL])
   HAVE_POWF=1;                 AC_SUBST([HAVE_POWF])
   HAVE_REMAINDER=1;            AC_SUBST([HAVE_REMAINDER])
   HAVE_REMAINDERF=1;           AC_SUBST([HAVE_REMAINDERF])
-  HAVE_REMAINDERL=1;           AC_SUBST([HAVE_REMAINDERL])
   HAVE_RINT=1;                 AC_SUBST([HAVE_RINT])
-  HAVE_RINTF=1;                AC_SUBST([HAVE_RINTF])
   HAVE_RINTL=1;                AC_SUBST([HAVE_RINTL])
   HAVE_SINF=1;                 AC_SUBST([HAVE_SINF])
   HAVE_SINL=1;                 AC_SUBST([HAVE_SINL])
@@ -182,10 +211,17 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   HAVE_DECL_ACOSL=1;           AC_SUBST([HAVE_DECL_ACOSL])
   HAVE_DECL_ASINL=1;           AC_SUBST([HAVE_DECL_ASINL])
   HAVE_DECL_ATANL=1;           AC_SUBST([HAVE_DECL_ATANL])
+  HAVE_DECL_CBRTF=1;           AC_SUBST([HAVE_DECL_CBRTF])
+  HAVE_DECL_CBRTL=1;           AC_SUBST([HAVE_DECL_CBRTL])
   HAVE_DECL_CEILF=1;           AC_SUBST([HAVE_DECL_CEILF])
   HAVE_DECL_CEILL=1;           AC_SUBST([HAVE_DECL_CEILL])
+  HAVE_DECL_COPYSIGNF=1;       AC_SUBST([HAVE_DECL_COPYSIGNF])
   HAVE_DECL_COSL=1;            AC_SUBST([HAVE_DECL_COSL])
   HAVE_DECL_EXPL=1;            AC_SUBST([HAVE_DECL_EXPL])
+  HAVE_DECL_EXP2=1;            AC_SUBST([HAVE_DECL_EXP2])
+  HAVE_DECL_EXP2F=1;           AC_SUBST([HAVE_DECL_EXP2F])
+  HAVE_DECL_EXP2L=1;           AC_SUBST([HAVE_DECL_EXP2L])
+  HAVE_DECL_EXPM1L=1;          AC_SUBST([HAVE_DECL_EXPM1L])
   HAVE_DECL_FLOORF=1;          AC_SUBST([HAVE_DECL_FLOORF])
   HAVE_DECL_FLOORL=1;          AC_SUBST([HAVE_DECL_FLOORL])
   HAVE_DECL_FREXPL=1;          AC_SUBST([HAVE_DECL_FREXPL])
@@ -193,7 +229,12 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   HAVE_DECL_LOGB=1;            AC_SUBST([HAVE_DECL_LOGB])
   HAVE_DECL_LOGL=1;            AC_SUBST([HAVE_DECL_LOGL])
   HAVE_DECL_LOG10L=1;          AC_SUBST([HAVE_DECL_LOG10L])
+  HAVE_DECL_LOG2=1;            AC_SUBST([HAVE_DECL_LOG2])
+  HAVE_DECL_LOG2F=1;           AC_SUBST([HAVE_DECL_LOG2F])
+  HAVE_DECL_LOG2L=1;           AC_SUBST([HAVE_DECL_LOG2L])
   HAVE_DECL_REMAINDER=1;       AC_SUBST([HAVE_DECL_REMAINDER])
+  HAVE_DECL_REMAINDERL=1;      AC_SUBST([HAVE_DECL_REMAINDERL])
+  HAVE_DECL_RINTF=1;           AC_SUBST([HAVE_DECL_RINTF])
   HAVE_DECL_ROUND=1;           AC_SUBST([HAVE_DECL_ROUND])
   HAVE_DECL_ROUNDF=1;          AC_SUBST([HAVE_DECL_ROUNDF])
   HAVE_DECL_ROUNDL=1;          AC_SUBST([HAVE_DECL_ROUNDL])
@@ -203,9 +244,15 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   HAVE_DECL_TRUNC=1;           AC_SUBST([HAVE_DECL_TRUNC])
   HAVE_DECL_TRUNCF=1;          AC_SUBST([HAVE_DECL_TRUNCF])
   HAVE_DECL_TRUNCL=1;          AC_SUBST([HAVE_DECL_TRUNCL])
+  REPLACE_CBRTF=0;             AC_SUBST([REPLACE_CBRTF])
+  REPLACE_CBRTL=0;             AC_SUBST([REPLACE_CBRTL])
   REPLACE_CEIL=0;              AC_SUBST([REPLACE_CEIL])
   REPLACE_CEILF=0;             AC_SUBST([REPLACE_CEILF])
   REPLACE_CEILL=0;             AC_SUBST([REPLACE_CEILL])
+  REPLACE_EXPM1=0;             AC_SUBST([REPLACE_EXPM1])
+  REPLACE_EXPM1F=0;            AC_SUBST([REPLACE_EXPM1F])
+  REPLACE_EXP2=0;              AC_SUBST([REPLACE_EXP2])
+  REPLACE_EXP2L=0;             AC_SUBST([REPLACE_EXP2L])
   REPLACE_FABSL=0;             AC_SUBST([REPLACE_FABSL])
   REPLACE_FLOOR=0;             AC_SUBST([REPLACE_FLOOR])
   REPLACE_FLOORF=0;            AC_SUBST([REPLACE_FLOORF])
@@ -220,10 +267,22 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   REPLACE_FREXP=0;             AC_SUBST([REPLACE_FREXP])
   REPLACE_FREXPL=0;            AC_SUBST([REPLACE_FREXPL])
   REPLACE_HUGE_VAL=0;          AC_SUBST([REPLACE_HUGE_VAL])
+  REPLACE_HYPOT=0;             AC_SUBST([REPLACE_HYPOT])
+  REPLACE_HYPOTF=0;            AC_SUBST([REPLACE_HYPOTF])
+  REPLACE_HYPOTL=0;            AC_SUBST([REPLACE_HYPOTL])
   REPLACE_ISFINITE=0;          AC_SUBST([REPLACE_ISFINITE])
   REPLACE_ISINF=0;             AC_SUBST([REPLACE_ISINF])
   REPLACE_ISNAN=0;             AC_SUBST([REPLACE_ISNAN])
   REPLACE_LDEXPL=0;            AC_SUBST([REPLACE_LDEXPL])
+  REPLACE_LOG=0;               AC_SUBST([REPLACE_LOG])
+  REPLACE_LOGF=0;              AC_SUBST([REPLACE_LOGF])
+  REPLACE_LOGL=0;              AC_SUBST([REPLACE_LOGL])
+  REPLACE_LOG1P=0;             AC_SUBST([REPLACE_LOG1P])
+  REPLACE_LOG1PF=0;            AC_SUBST([REPLACE_LOG1PF])
+  REPLACE_LOG1PL=0;            AC_SUBST([REPLACE_LOG1PL])
+  REPLACE_LOG2=0;              AC_SUBST([REPLACE_LOG2])
+  REPLACE_LOG2F=0;             AC_SUBST([REPLACE_LOG2F])
+  REPLACE_LOG2L=0;             AC_SUBST([REPLACE_LOG2L])
   REPLACE_MODF=0;              AC_SUBST([REPLACE_MODF])
   REPLACE_MODFF=0;             AC_SUBST([REPLACE_MODFF])
   REPLACE_MODFL=0;             AC_SUBST([REPLACE_MODFL])
@@ -236,6 +295,7 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   REPLACE_ROUNDL=0;            AC_SUBST([REPLACE_ROUNDL])
   REPLACE_SIGNBIT=0;           AC_SUBST([REPLACE_SIGNBIT])
   REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
+  REPLACE_SQRTL=0;             AC_SUBST([REPLACE_SQRTL])
   REPLACE_TRUNC=0;             AC_SUBST([REPLACE_TRUNC])
   REPLACE_TRUNCF=0;            AC_SUBST([REPLACE_TRUNCF])
   REPLACE_TRUNCL=0;            AC_SUBST([REPLACE_TRUNCL])
index 62767593393d71a5c4f28b467abf254fa126388f..d6e0efeb61b5235dc29e8ec51c5120dade5cd582 100644 (file)
@@ -11,6 +11,7 @@ AC_DEFUN([gl_TIMER_TIME],
   dnl Based on clock_time.m4. See details there.
 
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([gl_THREADLIB])
 
   LIB_TIMER_TIME=
   AC_SUBST([LIB_TIMER_TIME])
@@ -18,6 +19,21 @@ AC_DEFUN([gl_TIMER_TIME],
     AC_SEARCH_LIBS([timer_settime], [rt posix4],
                    [test "$ac_cv_search_timer_settime" = "none required" ||
                     LIB_TIMER_TIME=$ac_cv_search_timer_settime])
+    dnl GLIBC uses threads to emulate posix timers when kernel support
+    dnl is not available (like Linux < 2.6 or when used with kFreeBSD)
+    dnl Now the pthread lib is linked automatically in the normal case,
+    dnl but when linking statically, it needs to be explicitly specified.
+    AC_EGREP_CPP([Thread],
+      [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
+  Thread emulation available
+ #endif
+#endif
+      ],
+      [LIB_TIMER_TIME="$LIBMULTITHREAD $LIB_TIMER_TIME"])
     AC_CHECK_FUNCS([timer_settime])
   LIBS=$gl_saved_libs
 ])
index ce527102d9fe45a1871bb19d59f847d32c25f012..4b2ce87ac2532590e771fe720ec4cd882c2b265e 100644 (file)
@@ -141,10 +141,43 @@ _NaN ()
 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
    than a floating point constant.  */
 #if @REPLACE_HUGE_VAL@
+# undef HUGE_VALF
+# define HUGE_VALF (1.0f / 0.0f)
 # undef HUGE_VAL
 # define HUGE_VAL (1.0 / 0.0)
+# undef HUGE_VALL
+# define HUGE_VALL (1.0L / 0.0L)
 #endif
 
+/* HUGE_VALF is a 'float' Infinity.  */
+#ifndef HUGE_VALF
+# if defined _MSC_VER
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f.  */
+#  define HUGE_VALF (1e25f * 1e25f)
+# else
+#  define HUGE_VALF (1.0f / 0.0f)
+# endif
+#endif
+
+/* HUGE_VAL is a 'double' Infinity.  */
+#ifndef HUGE_VAL
+# if defined _MSC_VER
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0.  */
+#  define HUGE_VAL (1e250 * 1e250)
+# else
+#  define HUGE_VAL (1.0 / 0.0)
+# endif
+#endif
+
+/* HUGE_VALL is a 'long double' Infinity.  */
+#ifndef HUGE_VALL
+# if defined _MSC_VER
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L.  */
+#  define HUGE_VALL (1e250L * 1e250L)
+# else
+#  define HUGE_VALL (1.0L / 0.0L)
+# endif
+#endif
 
 #if @GNULIB_ACOSF@
 # if !@HAVE_ACOSF@
@@ -172,7 +205,7 @@ _GL_CXXALIASWARN (acosl);
 # undef acosl
 # if HAVE_RAW_DECL_ACOSL
 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module acosl for portability");
 # endif
 #endif
 
@@ -203,7 +236,7 @@ _GL_CXXALIASWARN (asinl);
 # undef asinl
 # if HAVE_RAW_DECL_ASINL
 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module asinl for portability");
 # endif
 #endif
 
@@ -234,7 +267,7 @@ _GL_CXXALIASWARN (atanl);
 # undef atanl
 # if HAVE_RAW_DECL_ATANL
 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module atanl for portability");
 # endif
 #endif
 
@@ -255,6 +288,67 @@ _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
 #endif
 
 
+#if @GNULIB_CBRTF@
+# if @REPLACE_CBRTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef cbrtf
+#   define cbrtf rpl_cbrtf
+#  endif
+_GL_FUNCDECL_RPL (cbrtf, float, (float x));
+_GL_CXXALIAS_RPL (cbrtf, float, (float x));
+# else
+#  if !@HAVE_DECL_CBRTF@
+_GL_FUNCDECL_SYS (cbrtf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (cbrtf, float, (float x));
+# endif
+_GL_CXXALIASWARN (cbrtf);
+#elif defined GNULIB_POSIXCHECK
+# undef cbrtf
+# if HAVE_RAW_DECL_CBRTF
+_GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
+                 "use gnulib module cbrtf for portability");
+# endif
+#endif
+
+#if @GNULIB_CBRT@
+# if !@HAVE_CBRT@
+_GL_FUNCDECL_SYS (cbrt, double, (double x));
+# endif
+_GL_CXXALIAS_SYS (cbrt, double, (double x));
+_GL_CXXALIASWARN (cbrt);
+#elif defined GNULIB_POSIXCHECK
+# undef cbrt
+# if HAVE_RAW_DECL_CBRT
+_GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
+                 "use gnulib module cbrt for portability");
+# endif
+#endif
+
+#if @GNULIB_CBRTL@
+# if @REPLACE_CBRTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef cbrtl
+#   define cbrtl rpl_cbrtl
+#  endif
+_GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
+_GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
+# else
+#  if !@HAVE_DECL_CBRTL@
+_GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (cbrtl);
+#elif defined GNULIB_POSIXCHECK
+# undef cbrtl
+# if HAVE_RAW_DECL_CBRTL
+_GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
+                 "use gnulib module cbrtl for portability");
+# endif
+#endif
+
+
 #if @GNULIB_CEILF@
 # if @REPLACE_CEILF@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -318,7 +412,7 @@ _GL_WARN_ON_USE (ceill, "ceill is unportable - "
 
 
 #if @GNULIB_COPYSIGNF@
-# if !@HAVE_COPYSIGNF@
+# if !@HAVE_DECL_COPYSIGNF@
 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
 # endif
 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
@@ -386,7 +480,7 @@ _GL_CXXALIASWARN (cosl);
 # undef cosl
 # if HAVE_RAW_DECL_COSL
 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module cosl for portability");
 # endif
 #endif
 
@@ -433,7 +527,131 @@ _GL_CXXALIASWARN (expl);
 # undef expl
 # if HAVE_RAW_DECL_EXPL
 _GL_WARN_ON_USE (expl, "expl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module expl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_EXP2F@
+# if !@HAVE_DECL_EXP2F@
+_GL_FUNCDECL_SYS (exp2f, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (exp2f, float, (float x));
+_GL_CXXALIASWARN (exp2f);
+#elif defined GNULIB_POSIXCHECK
+# undef exp2f
+# if HAVE_RAW_DECL_EXP2F
+_GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
+                 "use gnulib module exp2f for portability");
+# endif
+#endif
+
+#if @GNULIB_EXP2@
+# if @REPLACE_EXP2@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef exp2
+#   define exp2 rpl_exp2
+#  endif
+_GL_FUNCDECL_RPL (exp2, double, (double x));
+_GL_CXXALIAS_RPL (exp2, double, (double x));
+# else
+#  if !@HAVE_DECL_EXP2@
+_GL_FUNCDECL_SYS (exp2, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (exp2, double, (double x));
+# endif
+_GL_CXXALIASWARN (exp2);
+#elif defined GNULIB_POSIXCHECK
+# undef exp2
+# if HAVE_RAW_DECL_EXP2
+_GL_WARN_ON_USE (exp2, "exp2 is unportable - "
+                 "use gnulib module exp2 for portability");
+# endif
+#endif
+
+#if @GNULIB_EXP2L@
+# if @REPLACE_EXP2L@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef exp2l
+#   define exp2l rpl_exp2l
+#  endif
+_GL_FUNCDECL_RPL (exp2l, long double, (long double x));
+_GL_CXXALIAS_RPL (exp2l, long double, (long double x));
+# else
+#  if !@HAVE_DECL_EXP2L@
+#   undef exp2l
+_GL_FUNCDECL_SYS (exp2l, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (exp2l, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (exp2l);
+#elif defined GNULIB_POSIXCHECK
+# undef exp2l
+# if HAVE_RAW_DECL_EXP2L
+_GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
+                 "use gnulib module exp2l for portability");
+# endif
+#endif
+
+
+#if @GNULIB_EXPM1F@
+# if @REPLACE_EXPM1F@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef expm1f
+#   define expm1f rpl_expm1f
+#  endif
+_GL_FUNCDECL_RPL (expm1f, float, (float x));
+_GL_CXXALIAS_RPL (expm1f, float, (float x));
+# else
+#  if !@HAVE_EXPM1F@
+_GL_FUNCDECL_SYS (expm1f, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (expm1f, float, (float x));
+# endif
+_GL_CXXALIASWARN (expm1f);
+#elif defined GNULIB_POSIXCHECK
+# undef expm1f
+# if HAVE_RAW_DECL_EXPM1F
+_GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
+                 "use gnulib module expm1f for portability");
+# endif
+#endif
+
+#if @GNULIB_EXPM1@
+# if @REPLACE_EXPM1@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef expm1
+#   define expm1 rpl_expm1
+#  endif
+_GL_FUNCDECL_RPL (expm1, double, (double x));
+_GL_CXXALIAS_RPL (expm1, double, (double x));
+# else
+#  if !@HAVE_EXPM1@
+_GL_FUNCDECL_SYS (expm1, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (expm1, double, (double x));
+# endif
+_GL_CXXALIASWARN (expm1);
+#elif defined GNULIB_POSIXCHECK
+# undef expm1
+# if HAVE_RAW_DECL_EXPM1
+_GL_WARN_ON_USE (expm1, "expm1 is unportable - "
+                 "use gnulib module expm1 for portability");
+# endif
+#endif
+
+#if @GNULIB_EXPM1L@
+# if !@HAVE_DECL_EXPM1L@
+#  undef expm1l
+_GL_FUNCDECL_SYS (expm1l, long double, (long double x));
+# endif
+_GL_CXXALIAS_SYS (expm1l, long double, (long double x));
+_GL_CXXALIASWARN (expm1l);
+#elif defined GNULIB_POSIXCHECK
+# undef expm1l
+# if HAVE_RAW_DECL_EXPM1L
+_GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
+                 "use gnulib module expm1l for portability");
 # endif
 #endif
 
@@ -598,6 +816,7 @@ _GL_CXXALIAS_RPL (fmal, long double,
                   (long double x, long double y, long double z));
 # else
 #  if !@HAVE_FMAL@
+#   undef fmal
 _GL_FUNCDECL_SYS (fmal, long double,
                   (long double x, long double y, long double z));
 #  endif
@@ -775,6 +994,76 @@ _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
 #endif
 
 
+/* Return sqrt(x^2+y^2).  */
+#if @GNULIB_HYPOTF@
+# if @REPLACE_HYPOTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef hypotf
+#   define hypotf rpl_hypotf
+#  endif
+_GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
+_GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
+# else
+#  if !@HAVE_HYPOTF@
+_GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
+#  endif
+_GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
+# endif
+_GL_CXXALIASWARN (hypotf);
+#elif defined GNULIB_POSIXCHECK
+# undef hypotf
+# if HAVE_RAW_DECL_HYPOTF
+_GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
+                 "use gnulib module hypotf for portability");
+# endif
+#endif
+
+/* Return sqrt(x^2+y^2).  */
+#if @GNULIB_HYPOT@
+# if @REPLACE_HYPOT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef hypot
+#   define hypot rpl_hypot
+#  endif
+_GL_FUNCDECL_RPL (hypot, double, (double x, double y));
+_GL_CXXALIAS_RPL (hypot, double, (double x, double y));
+# else
+_GL_CXXALIAS_SYS (hypot, double, (double x, double y));
+# endif
+_GL_CXXALIASWARN (hypot);
+#elif defined GNULIB_POSIXCHECK
+# undef hypot
+# if HAVE_RAW_DECL_HYPOT
+_GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
+                 "use gnulib module hypot for portability");
+# endif
+#endif
+
+/* Return sqrt(x^2+y^2).  */
+#if @GNULIB_HYPOTL@
+# if @REPLACE_HYPOTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef hypotl
+#   define hypotl rpl_hypotl
+#  endif
+_GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
+_GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
+# else
+#  if !@HAVE_HYPOTL@
+_GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
+#  endif
+_GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
+# endif
+_GL_CXXALIASWARN (hypotl);
+#elif defined GNULIB_POSIXCHECK
+# undef hypotl
+# if HAVE_RAW_DECL_HYPOTL
+_GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
+                 "use gnulib module hypotl for portability");
+# endif
+#endif
+
+
 /* Return x * 2^exp.  */
 #if @GNULIB_LDEXPF@
 # if !@HAVE_LDEXPF@
@@ -833,11 +1122,20 @@ _GL_WARN_ON_USE (logb, "logb is unportable - "
 
 
 #if @GNULIB_LOGF@
-# if !@HAVE_LOGF@
-#  undef logf
+# if @REPLACE_LOGF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef logf
+#   define logf rpl_logf
+#  endif
+_GL_FUNCDECL_RPL (logf, float, (float x));
+_GL_CXXALIAS_RPL (logf, float, (float x));
+# else
+#  if !@HAVE_LOGF@
+#   undef logf
 _GL_FUNCDECL_SYS (logf, float, (float x));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (logf, float, (float x));
+# endif
 _GL_CXXALIASWARN (logf);
 #elif defined GNULIB_POSIXCHECK
 # undef logf
@@ -847,18 +1145,47 @@ _GL_WARN_ON_USE (logf, "logf is unportable - "
 # endif
 #endif
 
+#if @GNULIB_LOG@
+# if @REPLACE_LOG@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log
+#   define log rpl_log
+#  endif
+_GL_FUNCDECL_RPL (log, double, (double x));
+_GL_CXXALIAS_RPL (log, double, (double x));
+# else
+_GL_CXXALIAS_SYS (log, double, (double x));
+# endif
+_GL_CXXALIASWARN (log);
+#elif defined GNULIB_POSIXCHECK
+# undef log
+# if HAVE_RAW_DECL_LOG
+_GL_WARN_ON_USE (log, "log has portability problems - "
+                 "use gnulib module log for portability");
+# endif
+#endif
+
 #if @GNULIB_LOGL@
-# if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
-#  undef logl
+# if @REPLACE_LOGL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef logl
+#   define logl rpl_logl
+#  endif
+_GL_FUNCDECL_RPL (logl, long double, (long double x));
+_GL_CXXALIAS_RPL (logl, long double, (long double x));
+# else
+#  if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
+#   undef logl
 _GL_FUNCDECL_SYS (logl, long double, (long double x));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (logl, long double, (long double x));
+# endif
 _GL_CXXALIASWARN (logl);
 #elif defined GNULIB_POSIXCHECK
 # undef logl
 # if HAVE_RAW_DECL_LOGL
 _GL_WARN_ON_USE (logl, "logl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module logl for portability");
 # endif
 #endif
 
@@ -894,6 +1221,148 @@ _GL_WARN_ON_USE (log10l, "log10l is unportable - "
 #endif
 
 
+#if @GNULIB_LOG1PF@
+# if @REPLACE_LOG1PF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log1pf
+#   define log1pf rpl_log1pf
+#  endif
+_GL_FUNCDECL_RPL (log1pf, float, (float x));
+_GL_CXXALIAS_RPL (log1pf, float, (float x));
+# else
+#  if !@HAVE_LOG1PF@
+_GL_FUNCDECL_SYS (log1pf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (log1pf, float, (float x));
+# endif
+_GL_CXXALIASWARN (log1pf);
+#elif defined GNULIB_POSIXCHECK
+# undef log1pf
+# if HAVE_RAW_DECL_LOG1PF
+_GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
+                 "use gnulib module log1pf for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG1P@
+# if @REPLACE_LOG1P@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log1p
+#   define log1p rpl_log1p
+#  endif
+_GL_FUNCDECL_RPL (log1p, double, (double x));
+_GL_CXXALIAS_RPL (log1p, double, (double x));
+# else
+#  if !@HAVE_LOG1P@
+_GL_FUNCDECL_SYS (log1p, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (log1p, double, (double x));
+# endif
+_GL_CXXALIASWARN (log1p);
+#elif defined GNULIB_POSIXCHECK
+# undef log1p
+# if HAVE_RAW_DECL_LOG1P
+_GL_WARN_ON_USE (log1p, "log1p has portability problems - "
+                 "use gnulib module log1p for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG1PL@
+# if @REPLACE_LOG1PL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log1pl
+#   define log1pl rpl_log1pl
+#  endif
+_GL_FUNCDECL_RPL (log1pl, long double, (long double x));
+_GL_CXXALIAS_RPL (log1pl, long double, (long double x));
+# else
+#  if !@HAVE_LOG1PL@
+_GL_FUNCDECL_SYS (log1pl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (log1pl, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (log1pl);
+#elif defined GNULIB_POSIXCHECK
+# undef log1pl
+# if HAVE_RAW_DECL_LOG1PL
+_GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
+                 "use gnulib module log1pl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_LOG2F@
+# if @REPLACE_LOG2F@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log2f
+#   define log2f rpl_log2f
+#  endif
+_GL_FUNCDECL_RPL (log2f, float, (float x));
+_GL_CXXALIAS_RPL (log2f, float, (float x));
+# else
+#  if !@HAVE_DECL_LOG2F@
+#   undef log2f
+_GL_FUNCDECL_SYS (log2f, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (log2f, float, (float x));
+# endif
+_GL_CXXALIASWARN (log2f);
+#elif defined GNULIB_POSIXCHECK
+# undef log2f
+# if HAVE_RAW_DECL_LOG2F
+_GL_WARN_ON_USE (log2f, "log2f is unportable - "
+                 "use gnulib module log2f for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG2@
+# if @REPLACE_LOG2@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log2
+#   define log2 rpl_log2
+#  endif
+_GL_FUNCDECL_RPL (log2, double, (double x));
+_GL_CXXALIAS_RPL (log2, double, (double x));
+# else
+#  if !@HAVE_DECL_LOG2@
+#   undef log2
+_GL_FUNCDECL_SYS (log2, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (log2, double, (double x));
+# endif
+_GL_CXXALIASWARN (log2);
+#elif defined GNULIB_POSIXCHECK
+# undef log2
+# if HAVE_RAW_DECL_LOG2
+_GL_WARN_ON_USE (log2, "log2 is unportable - "
+                 "use gnulib module log2 for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG2L@
+# if @REPLACE_LOG2L@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log2l
+#   define log2l rpl_log2l
+#  endif
+_GL_FUNCDECL_RPL (log2l, long double, (long double x));
+_GL_CXXALIAS_RPL (log2l, long double, (long double x));
+# else
+#  if !@HAVE_DECL_LOG2L@
+_GL_FUNCDECL_SYS (log2l, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (log2l, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (log2l);
+#elif defined GNULIB_POSIXCHECK
+# undef log2l
+# if HAVE_RAW_DECL_LOG2L
+_GL_WARN_ON_USE (log2l, "log2l is unportable - "
+                 "use gnulib module log2l for portability");
+# endif
+#endif
+
+
 #if @GNULIB_MODFF@
 # if @REPLACE_MODFF@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -1036,7 +1505,8 @@ _GL_WARN_ON_USE (remainder, "remainder is unportable - "
 _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
 _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
 # else
-#  if !@HAVE_REMAINDERL@
+#  if !@HAVE_DECL_REMAINDERL@
+#   undef remainderl
 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
 #  endif
 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
@@ -1052,7 +1522,7 @@ _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
 
 
 #if @GNULIB_RINTF@
-# if !@HAVE_RINTF@
+# if !@HAVE_DECL_RINTF@
 _GL_FUNCDECL_SYS (rintf, float, (float x));
 # endif
 _GL_CXXALIAS_SYS (rintf, float, (float x));
@@ -1150,6 +1620,7 @@ _GL_FUNCDECL_RPL (roundl, long double, (long double x));
 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
 # else
 #  if !@HAVE_DECL_ROUNDL@
+#   undef roundl
 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
 #  endif
 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
@@ -1190,7 +1661,7 @@ _GL_CXXALIASWARN (sinl);
 # undef sinl
 # if HAVE_RAW_DECL_SINL
 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module sinl for portability");
 # endif
 #endif
 
@@ -1227,17 +1698,26 @@ _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
 #endif
 
 #if @GNULIB_SQRTL@
-# if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
-#  undef sqrtl
+# if @REPLACE_SQRTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef sqrtl
+#   define sqrtl rpl_sqrtl
+#  endif
+_GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
+_GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
+# else
+#  if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
+#   undef sqrtl
 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
+# endif
 _GL_CXXALIASWARN (sqrtl);
 #elif defined GNULIB_POSIXCHECK
 # undef sqrtl
 # if HAVE_RAW_DECL_SQRTL
 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module sqrtl for portability");
 # endif
 #endif
 
@@ -1268,7 +1748,7 @@ _GL_CXXALIASWARN (tanl);
 # undef tanl
 # if HAVE_RAW_DECL_TANL
 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module tanl for portability");
 # endif
 #endif
 
index c3c8f3cdafa892f50b72874ec2b8cf59a1e2fb60..f73d26b408618be1ce6054fc80d3b89643c61126 100644 (file)
@@ -298,8 +298,8 @@ EXTRA_DIST += test-fread.c signature.h macros.h
 
 TESTS += test-frexp-nolibm
 check_PROGRAMS += test-frexp-nolibm
-test_frexp_nolibm_SOURCES = test-frexp.c
-EXTRA_DIST += test-frexp.c minus-zero.h infinity.h nan.h signature.h macros.h
+test_frexp_nolibm_SOURCES = test-frexp.c randomd.c
+EXTRA_DIST += test-frexp.c test-frexp.h minus-zero.h infinity.h nan.h signature.h macros.h randomd.c
 
 ## end   gnulib module frexp-nolibm-tests
 
@@ -307,8 +307,8 @@ EXTRA_DIST += test-frexp.c minus-zero.h infinity.h nan.h signature.h macros.h
 
 TESTS += test-frexpl-nolibm
 check_PROGRAMS += test-frexpl-nolibm
-test_frexpl_nolibm_SOURCES = test-frexpl.c
-EXTRA_DIST += test-frexpl.c minus-zero.h infinity.h nan.h signature.h macros.h
+test_frexpl_nolibm_SOURCES = test-frexpl.c randoml.c
+EXTRA_DIST += test-frexpl.c test-frexp.h minus-zero.h infinity.h nan.h signature.h macros.h randoml.c
 
 ## end   gnulib module frexpl-nolibm-tests
 
@@ -675,7 +675,7 @@ EXTRA_DIST += test-malloca.c
 
 TESTS += test-math
 check_PROGRAMS += test-math
-EXTRA_DIST += test-math.c
+EXTRA_DIST += test-math.c macros.h
 
 ## end   gnulib module math-tests
 
@@ -1276,14 +1276,6 @@ EXTRA_DIST += test-init.sh
 
 ## end   gnulib module test-framework-sh-tests
 
-## begin gnulib module threadlib
-
-libtests_a_SOURCES += glthread/threadlib.c
-
-EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
-
-## end   gnulib module threadlib
-
 ## begin gnulib module time-tests
 
 TESTS += test-time
index 77a92f8db8ec6d912e237bc0e346f96bba61f726..478004c1d2344fac7756ca6672abbf0638a929e7 100644 (file)
@@ -66,3 +66,8 @@
 /* STREQ (str1, str2)
    Return true if two strings compare equal.  */
 #define STREQ(a, b) (strcmp (a, b) == 0)
+
+/* Some numbers in the interval [0,1).  */
+extern const float randomf[1000];
+extern const double randomd[1000];
+extern const long double randoml[1000];
diff --git a/gl/tests/randomd.c b/gl/tests/randomd.c
new file mode 100644 (file)
index 0000000..0bef8b6
--- /dev/null
@@ -0,0 +1,1028 @@
+/* Some random 'double' numbers used by gnulib tests.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "macros.h"
+
+/* Some numbers in the interval [0,1).  */
+
+const double randomd[1000] =
+{
+  /* Some not so random numbers at the beginning.  */
+  0.0,
+  /* Then some numbers generated by GNU clisp.  */
+  0.89255299921822260894833866359,
+  0.56160033401164667976788987953,
+  0.51743003502243816003616725706,
+  0.78419011286685927826225711525,
+  0.64400370685467819470063888148,
+  0.38151255107934048933308886009,
+  0.279822118770531878839000163945,
+  0.51983544681375980919751125922,
+  0.314601557551148376372971500376,
+  0.44551938964685651088492647794,
+  0.44235192503793823441729544512,
+  0.0040120762636767874958681841509,
+  0.57608572759464216512285032474,
+  0.69151953350396585566714564265,
+  0.65634190642598148152780718322,
+  0.68520459394253807590733184567,
+  0.60728078832107635628786818115,
+  0.376679934380311318950949959986,
+  0.48893422455419005003224231708,
+  0.59664228319132670346209747371,
+  0.70162191594290728927555900075,
+  0.70981089000005327192380201706,
+  0.480574069305863387682360414433,
+  0.369264627455974856929910550376,
+  0.42224495444170593700839286742,
+  0.96974027194201320964041066537,
+  0.69950081092902694549973698004,
+  0.366921803754944985368022837045,
+  0.19460757354611588216534077527,
+  0.046437559879825520495822908204,
+  0.57694149138457596563075731094,
+  0.49632733844850578203860859535,
+  0.80735347459453553970910033766,
+  0.210271595033975357161360058967,
+  0.176539870249396534142059724214,
+  0.75320267419158828905982021879,
+  0.09535042912249636739069790414,
+  0.41433965906065337672703334968,
+  0.62189345390648146852641556292,
+  0.322595610794052908153116342595,
+  0.173860860827838938281708881865,
+  0.55258425878412963601205794028,
+  0.066559056629606284504735241978,
+  0.0193835990781649263368095562556,
+  0.127101629778251450428653553143,
+  0.9603475517586241593077319367,
+  0.68429794014738591042302507235,
+  0.0139808909843634026741151214975,
+  0.0036035679428138856395527711611,
+  0.072656401341518399752950821809,
+  0.229562863635014486626281702425,
+  0.88337277579960676546469424767,
+  0.88850212167800818244030104263,
+  0.208063225990716089095767541316,
+  0.268304917462565269805874454916,
+  0.3195427196271617997151392088,
+  0.59101407246003811289573881403,
+  0.972093867752368095080492689,
+  0.409246208960242309650511849637,
+  0.84250639316418167849010246997,
+  0.063842712141624332977179722113,
+  0.96470327141354888687046060373,
+  0.43109879978424216966175314888,
+  0.14551248610248934836482236208,
+  0.84819094513299136408788493212,
+  0.41166757935215520377191731704,
+  0.96020915727830366672170130175,
+  0.55313106883839046701902022583,
+  0.9796595451013758579218900134,
+  0.74222694300533435700276764516,
+  0.117294243075539310976051880564,
+  0.32216824750097146958151447387,
+  0.59090211400137031908131441,
+  0.116841680533127258304897076543,
+  0.83595865401141052310417569507,
+  0.249488155772987988074361149176,
+  0.67896015287499211280971531326,
+  0.72256498621401843299673078876,
+  0.327315362968271601258667297595,
+  0.37438214921868498405279953481,
+  0.76929694812658272272027330778,
+  0.44282297788821568912463681727,
+  0.59517407740270913902014268964,
+  0.346217547960702024419571713567,
+  0.68339868731911838904373225224,
+  0.057507087039986776837238366719,
+  0.1189343986186977384509521024,
+  0.65646666532916174831489781194,
+  0.80925124288745606089697795707,
+  0.61302937875769552609444313984,
+  0.64367434863387777107222872563,
+  0.059228300879437554416166010005,
+  0.76899237494115809397158171526,
+  0.335797991302131791511629123206,
+  0.72923178692628392090326699514,
+  0.79300056654108221012876564405,
+  0.58866760551158502690719665335,
+  0.65249222174748700395779659047,
+  0.79573528799715877963614353006,
+  0.101363067664632247385474166088,
+  0.392494669960902131436398643207,
+  0.37323453200630776302168616197,
+  0.29857554596542776498065634631,
+  0.9796202149626312305197715787,
+  0.58770219934833805722677794788,
+  0.126574575737099431915356308504,
+  0.51086682994362911961448609847,
+  0.26221303911946316754295166201,
+  0.87331402410090670707406246035,
+  0.08604799064198292716037672196,
+  0.77880380648915901962140523059,
+  0.34131646312914811415381942246,
+  0.422787222735822749759714960156,
+  0.16550478231620269333824890372,
+  0.84087065799129220871741135711,
+  0.96561976597443996963329538915,
+  0.059890627133354026356081805998,
+  0.09359839900604706997291172522,
+  0.61463026659668017286248279853,
+  0.220582135665522265733252389516,
+  0.30146695094150797543070759948,
+  0.406591688270652513808216198946,
+  0.206959751707199812083987569348,
+  0.71382992952779021033600406503,
+  0.98971690700151825984363090029,
+  0.86339958328134745391858859595,
+  0.70037828363249257457230217791,
+  0.97380974339470107231135690474,
+  0.9184635965630883290893011311,
+  0.418605216026507942885819265225,
+  0.61793227858714759711625818653,
+  0.67394880797682685081908511723,
+  0.98871101941805039780826467279,
+  0.65973593853137069988371349845,
+  0.93348525072186907424189028727,
+  0.59164378220465485142298641014,
+  0.95303768733773138214124075961,
+  0.88667310242538944858141870801,
+  0.83785319781204861623008709825,
+  0.54026788227426708201242457367,
+  0.74842599257855801522259951132,
+  0.286624102305531463268442510375,
+  0.41180484980938874161376712508,
+  0.22754664620316922947541651384,
+  0.62360609793949755240041318939,
+  0.3311618194042077047850111557,
+  0.315407885695867020730009836503,
+  0.215221706711430951961780213436,
+  0.168600630933631406101821024413,
+  0.62661489373200405241464923618,
+  0.95357070304277219756741072036,
+  0.5186418766697788447635039428,
+  0.70772930521061953327927296944,
+  0.410376884797056150221504703145,
+  0.39705302343406249619577860633,
+  0.79215885822696034431481699125,
+  0.157831717946112504384603002152,
+  0.26892306298536012837855426922,
+  0.15697088614321016223211167568,
+  0.41395315712905823355235182393,
+  0.043977876945327860015049914653,
+  0.91453495544799358550673657283,
+  0.46230093259088633973148827911,
+  0.79479146768024434444120965094,
+  0.1466704986407674407377422815,
+  0.093614591443204076599999803382,
+  0.66061870961706149406527099303,
+  0.087462146328394574476138187113,
+  0.79683664444310818297700615557,
+  0.39732728185755441060070738751,
+  0.141934473990413594291362391075,
+  0.63111751995951919258061547632,
+  0.78521985432793823024330967029,
+  0.53307346282606806792796696141,
+  0.61679109370763781010143645189,
+  0.40696293619387120891515025426,
+  0.68670343879278712242412028794,
+  0.0115112936831136012901340526452,
+  0.70866056737692430987650236649,
+  0.75378980574358943122474800795,
+  0.17133202766710894969283150847,
+  0.36771201738922655520549864974,
+  0.64614182581953931840374311331,
+  0.354495602088990708111406368474,
+  0.96418771817934443444348833491,
+  0.51633426669933834634574104246,
+  0.064671329812306055349433587193,
+  0.084335079914541732137341401384,
+  0.98578018340150609333535890283,
+  0.32988119060114570391488875477,
+  0.70568290443337103364762141207,
+  0.7501960060851696034137148851,
+  0.141312840936106004164373056114,
+  0.60721022154106372815080238296,
+  0.49179275887283771965744826261,
+  0.85530668893284708999269819019,
+  0.09730053915339358769067661488,
+  0.48817911888023094845428570434,
+  0.37116312252354470380676793579,
+  0.61870369881699387959990992873,
+  0.381874188039839457469043174076,
+  0.68193837613090719561872304949,
+  0.4773618313988618747215621251,
+  0.152383599292709764750406667286,
+  0.54317522808228983459963725598,
+  0.363848788591302782268887022354,
+  0.0105589810271147011378412305973,
+  0.55582445068669939957392951111,
+  0.99910376130213936748996659383,
+  0.90286867348280161480903197439,
+  0.48268382934936288156485037692,
+  0.0976084557356802030533675394,
+  0.29004949962481398455881920169,
+  0.99169758897256717005011514856,
+  0.20722895154834288274430061308,
+  0.50294863638464584121275744208,
+  0.71094033855350495714847377558,
+  0.94078709219520224551350834268,
+  0.48088262771516317628650315489,
+  0.80538698628980761175811796611,
+  0.83495029615293903361580945571,
+  0.67996381940825251937974905761,
+  0.57936805772275234468590364926,
+  0.41778137764942046281708286844,
+  0.161602687591454506771276482303,
+  0.093910625156097743113739432334,
+  0.45716763620641108625606409874,
+  0.96455075374827233820027584808,
+  0.5179966880512917274934448216,
+  0.046797382046060065926143985952,
+  0.83673567319931334127111064225,
+  0.44224504444533247245974476514,
+  0.73281179385894336737033582786,
+  0.5642490153724193432309549673,
+  0.83700200507325250303481208805,
+  0.152714941779871552944298597052,
+  0.38606607994977770238226473985,
+  0.0155140917516105439042442246577,
+  0.51621537013393688713546096688,
+  0.311969390991657895966526156064,
+  0.83890647777450698803932943984,
+  0.54370750820133482930695388638,
+  0.98636765788772465929756760473,
+  0.77334255661128878905675504339,
+  0.57070354296508751519811368688,
+  0.8365252076669013372866223481,
+  0.344601601940890721182485798794,
+  0.92658930620470543221158939208,
+  0.72724523363899270076210273102,
+  0.413672082025645586061788451734,
+  0.5132836422023222169840403333,
+  0.82135610583961360173883281975,
+  0.423835065039748889417547786563,
+  0.87083598844595488941471761572,
+  0.59009392451459866513886634656,
+  0.206124826643305920436961792363,
+  0.288685540685143988030522421633,
+  0.7944357933456167153993184889,
+  0.090945230657758780394996530608,
+  0.52981750421369669363095418817,
+  0.091368944984485824360107751981,
+  0.81824925769562351657564377069,
+  0.083315412912658535228751011063,
+  0.59602276778799576464600065047,
+  0.52258035262146456789454411102,
+  0.394692074165738897132014378974,
+  0.92031214264405188928824363967,
+  0.32812665356161216265971156268,
+  0.79754299890007289545033977389,
+  0.3029021512227565310021437326,
+  0.81425785760698537744367921928,
+  0.85199399843570233736733560413,
+  0.096629890212080240754541391968,
+  0.60643798959967098211181910285,
+  0.75368518979236587723780129098,
+  0.451368813651510369666120626045,
+  0.86189868235067352904955566961,
+  0.239506411296874624231401913963,
+  0.143392266376287906568670938457,
+  0.035585084401323981008798496622,
+  0.89407531932950775763701297226,
+  0.56699767164913732414312190205,
+  0.6107715946195223295493238966,
+  0.980870588312723808697191463,
+  0.37603666613089681502774907483,
+  0.19565477083291620146833762404,
+  0.70326913680165706368122461762,
+  0.98247770640436619202690080984,
+  0.54911931698472764719220618506,
+  0.96749331150477343995263612791,
+  0.9349501605275792139661332597,
+  0.067704019779021886031495084945,
+  0.52883185005352261786874768842,
+  0.03879817199556086106868125058,
+  0.011268895714104342862021635882,
+  0.86781395233112768504418642287,
+  0.73610697666830606371057497872,
+  0.22595829849389174304359852447,
+  0.95990840938724981323147621815,
+  0.5938079875208820675776232526,
+  0.78655922365792476391655372464,
+  0.51099073264725007373467108776,
+  0.66474884887866769539664215292,
+  0.88640025828226102852258218854,
+  0.39889893489572927635368967129,
+  0.76340426725003756852384366924,
+  0.485534753598641026618647825146,
+  0.55957578573824837450384728978,
+  0.50840543283094885180866842941,
+  0.0102415845792896532313226969615,
+  0.74666891036262398733922051708,
+  0.49044748088989431070743849791,
+  0.184017043174756439606592004597,
+  0.0225210121470402648790231578307,
+  0.096909683465740960387467976065,
+  0.0521874432095560437920256545446,
+  0.108114343037383115951564617563,
+  0.77430486784405922952977031491,
+  0.73286432949907824441702845144,
+  0.083559249182272369453587951223,
+  0.074541345541671560054508020717,
+  0.55130541064331728019681677403,
+  0.101450912226971008587146654246,
+  0.74564503962660370005995595861,
+  0.55903832180264925580029280922,
+  0.86098138284846671753408133719,
+  0.76146956314354797691373262733,
+  0.5569854467166466965564479865,
+  0.61138555623626762560168304163,
+  0.93778268377974305185411499629,
+  0.106728342608615813606903105742,
+  0.51139895550624845300079248199,
+  0.8826404150665399364200384063,
+  0.79849755952621824621632991954,
+  0.60058338183244813128378689372,
+  0.57271235605091257806409062354,
+  0.134476676178095582804914204515,
+  0.62710051406343298533266304307,
+  0.21517566131268423511744492316,
+  0.87763268502269127056352092234,
+  0.259516013975152388767641295316,
+  0.54026961752737864438921779715,
+  0.0321012344232942464157113655476,
+  0.047765687217921465801489989111,
+  0.17851281529041807770891682623,
+  0.67864372391481596436180177405,
+  0.27188630999531652193578141334,
+  0.76570352378902765382129471855,
+  0.55727605717645959087760838806,
+  0.40035295538031700787360193533,
+  0.65772683660586524086245866733,
+  0.87515739410383285146563935658,
+  0.51637173718066431535845791928,
+  0.32843440805452173782945632394,
+  0.46789250836790673252530282969,
+  0.153916136058705475580104911632,
+  0.38115724589238346986896925035,
+  0.96911901452270741576104655076,
+  0.327510878721849788805057952285,
+  0.52921188196053063832762822112,
+  0.357891066893689952162669812174,
+  0.8109495999496825638917226258,
+  0.87378695338223548954000159812,
+  0.071735687760291841872657613394,
+  0.22099818521305441851106524174,
+  0.61319403424123059973018445501,
+  0.49185069904977836269777464774,
+  0.8465618819298531473261910176,
+  0.88263955123256235889766657732,
+  0.264605739218701311737446373095,
+  0.157257748694727606809000832224,
+  0.61172692557424578980817509135,
+  0.89224381101792427145783648267,
+  0.049436313890546252030141534714,
+  0.78472068655126867546237630366,
+  0.94890896727672958163705440614,
+  0.61244719025309458330037069759,
+  0.69652639673616920270100103049,
+  0.82306805868313923466426022855,
+  0.4619352653236511042512479492,
+  0.248913888569715263431474781448,
+  0.64972077945521993267494748532,
+  0.058989138867897862567374093665,
+  0.97969837050674699927934092348,
+  0.112860503606029382332397067852,
+  0.9148268966080465389473749031,
+  0.80522292073416096202056634334,
+  0.80810563925192214527344776336,
+  0.082994810842601316055993203972,
+  0.58154183958194788097113770541,
+  0.91401321304178026032151961143,
+  0.064162440925738934087179609749,
+  0.15233762499249088696399602351,
+  0.05051666992337641462246832006,
+  0.138526581114846840617440323377,
+  0.3330645447918149831766264793,
+  0.217487368997014213919568641696,
+  0.61893770768550649722673903221,
+  0.48128956859001312165262121487,
+  0.67074178502738313699688470847,
+  0.74389636308055141796746779725,
+  0.78623735396470085242463142878,
+  0.74044466560335570728816983391,
+  0.44977042205766449238521848558,
+  0.04936658918716696558210777333,
+  0.46898154881467544198433735515,
+  0.86577421926732888331279455256,
+  0.351697801257336354285066689416,
+  0.44607679846684358775746123434,
+  0.68542184287580537292736482205,
+  0.044146424753083577398366558491,
+  0.84496717026871403905274974765,
+  0.20398318496314438897842101827,
+  0.75107700174605698650069666924,
+  0.178571061661964354577482608798,
+  0.67178502534981979941629966218,
+  0.90847842600882488644789391115,
+  0.073076683947302775918335357377,
+  0.33981323802799502107773228774,
+  0.88205531070102240708858032672,
+  0.52395959911163033140017417074,
+  0.339537812421755656306362620887,
+  0.54102447887624739438002987695,
+  0.99615637434542139613844677579,
+  0.91178029521112995461052949527,
+  0.75825739605806537625994927603,
+  0.20376049709427102495755901889,
+  0.414724980644126108685694310425,
+  0.33340705339227162790042902392,
+  0.63442350111338002489027718102,
+  0.79083735924049231993808201264,
+  0.7022290803727963570326957922,
+  0.073051026670174816217706335151,
+  0.50842348505687696224462184336,
+  0.32363091931107924009593033016,
+  0.097074638787613630803324174721,
+  0.79231345620836950165162896374,
+  0.46134517653790366185204412042,
+  0.87767180094474465071641454817,
+  0.30504377737897498569142680272,
+  0.96430402804903305707372788262,
+  0.58722709934909516402891605024,
+  0.36287829330987989626587492725,
+  0.341369045118572012709880807167,
+  0.18622546427505557603629823709,
+  0.71794779555885705340742601105,
+  0.098775720656078510422828040021,
+  0.94170390436210924588938028149,
+  0.6256516749208606216856038288,
+  0.84990648194056707180867958453,
+  0.24897158268824763099382644974,
+  0.67126976686560821454618204853,
+  0.18287142221906188751198231263,
+  0.58301735289988287890086250316,
+  0.39451451502323596545833498888,
+  0.64778726863510310777659172018,
+  0.344060647976610102257104623935,
+  0.8543225374577925606075052273,
+  0.41721025737118350088955048104,
+  0.346301150923723212219486824146,
+  0.430145349151890094004681136873,
+  0.083653676599147505357408467754,
+  0.89927285917733406113015320169,
+  0.87717630249665962395834008139,
+  0.114609060439245285884826496387,
+  0.19079403943711412757743782207,
+  0.095752662525740063245815699042,
+  0.79249438764728213221559489213,
+  0.36889557473162465630046043798,
+  0.076691690566591062968137595944,
+  0.82502767429905549906741868154,
+  0.7665582347663079379259164121,
+  0.40329445688627141530172819257,
+  0.76025417855373928649612014969,
+  0.67742016809536470259225177395,
+  0.56458198627250149175789836481,
+  0.78923506303765674533158921804,
+  0.242546191857944356752822856477,
+  0.5429792204847717222270173404,
+  0.7269010821579782458839227112,
+  0.68884017933657182784660476876,
+  0.037868346502260087811459749823,
+  0.5900507745679403546108564628,
+  0.2867946536016681954708929644,
+  0.47061390957475445523849010039,
+  0.51289737877965767076806069599,
+  0.422963220866519099525024712084,
+  0.056516063514784913538055836342,
+  0.77559606292381102490968685122,
+  0.44812023547000818124896526252,
+  0.8496368064876247362896528731,
+  0.272242276648834925536741986616,
+  0.21366791927514210787832263868,
+  0.458126557153035507756298880855,
+  0.59095285049337797286946531198,
+  0.41387171106200290943847880691,
+  0.040527832792286543640976926214,
+  0.84749051864346812142321430329,
+  0.6591922374100337646083630177,
+  0.30504037894556796180304594549,
+  0.69588062596190762407598122745,
+  0.54615362946297678668402889519,
+  0.27179536774730804380125320985,
+  0.16312965572910266758089041195,
+  0.60443803311418335000528681396,
+  0.76221957063947757300487766314,
+  0.0012561481228798307955579245318,
+  0.38477311712200424042679172286,
+  0.86336953839931184684851388121,
+  0.85132017314817690655384788334,
+  0.79741410166633177181313320738,
+  0.81142674213295830272567127246,
+  0.90095974521916505411272740187,
+  0.461262866736651478343958282766,
+  0.163149749038393754125992055513,
+  0.079563568933303239293664877234,
+  0.0076308467066608702534098522771,
+  0.74020408989686798939059759005,
+  0.68004244363120265645245845544,
+  0.99423282025586676895879517721,
+  0.256512790150101579655974619204,
+  0.15841489307390214447222985222,
+  0.53156533193583516285295078457,
+  0.51195175518666885397864463638,
+  0.2688502522458221215136352473,
+  0.290743998007688539265414246556,
+  0.375642431327791011131765421904,
+  0.73366824563603699669790620984,
+  0.89031055476039433366324605036,
+  0.63269458446317741594059410575,
+  0.79677646360837164675956632,
+  0.91096051787867659208019728176,
+  0.056411022047894420770349313174,
+  0.7117937367428418076554349793,
+  0.494496454398059649677550547185,
+  0.9944698091905991687808626336,
+  0.195654008095567563746040882677,
+  0.33245249703376584453346565181,
+  0.91671965905832444523554539619,
+  0.104159073216349402499760928077,
+  0.78250381705179599027513221262,
+  0.82221952254403323129879405024,
+  0.25404653774104883427079980313,
+  0.89334850648967094099280368977,
+  0.2721479244387740074938025269,
+  0.58627710421889854554604323774,
+  0.80740872172002770008164688167,
+  0.295213737773499230779293451686,
+  0.366266263469556210902410635735,
+  0.72189449997560167388059780325,
+  0.91339160960295327548014703572,
+  0.27978723834100283634925494393,
+  0.44312275285067091147157546317,
+  0.88264479919648468925459438057,
+  0.74860386620420068665117140949,
+  0.97534502025842784289380076051,
+  0.183653687608870314454061893335,
+  0.14143760686328530307343938507,
+  0.7794390875763962068165432699,
+  0.79988123088296718350409621263,
+  0.91344402454829897860268279997,
+  0.3003753710559256572305330721,
+  0.92236868180619898327118824659,
+  0.85128995509445007265453349716,
+  0.51226586850988855988005111668,
+  0.59328586801467434659081264762,
+  0.131543061349700789237108200816,
+  0.97962864281984756641024957818,
+  0.80003961712390827564285728721,
+  0.07332191035039234849987853587,
+  0.33710892945255754021249327366,
+  0.237798240512212115424045579506,
+  0.050628096786899757905464602857,
+  0.36368141580193860149061967396,
+  0.074547282281222729072803274018,
+  0.32013351651022219595136046535,
+  0.50087363542319392259892635316,
+  0.95534128322832584718763016378,
+  0.63089810554419660091974256912,
+  0.45937043591639452731937380837,
+  0.77794827072126710252068287081,
+  0.5833967217973934570703322242,
+  0.89948711130168823436943591707,
+  0.88448792344727137087709578749,
+  0.75774410588649351850782212564,
+  0.51545850808454807305763364038,
+  0.89535564141616759448334976604,
+  0.433876155086630438489414332084,
+  0.263145194001722566517185175524,
+  0.094513715303174637696079970882,
+  0.0067905149976316075236601623182,
+  0.3746548325271489972742277758,
+  0.81418012245523025207375976459,
+  0.7382555515800124086679648947,
+  0.71505454385778976492869269043,
+  0.7698698840252614242858413632,
+  0.53096667868591647121855295207,
+  0.5913146508318579789498085478,
+  0.82865413011200335887487636747,
+  0.246477924915753655378269255135,
+  0.7718625116939460952174295485,
+  0.33088224685104582360581424038,
+  0.077396220323469426942810035952,
+  0.399851739373243384531661374094,
+  0.74828949567652386217126904324,
+  0.55533476993642340021791702209,
+  0.475356366587838670689554086714,
+  0.99199926249299355831492581518,
+  0.60739053074816626181185925167,
+  0.94570422855790142383862352906,
+  0.67410117583869264525962136333,
+  0.99340016295179621471645098914,
+  0.30521664837678549625426072163,
+  0.82786899862234431119578444516,
+  0.0246054418785779831964997687095,
+  0.33057040500642957115284791089,
+  0.325865542252271051046671982904,
+  0.116469964535698881624567000313,
+  0.38792519202192930208550481713,
+  0.147033252049062199325747990948,
+  0.333360890210745561370686771174,
+  0.267717098935309378552279527125,
+  0.473606191830554736751491306975,
+  0.69379726024488030302072707274,
+  0.39866105325920152799379542147,
+  0.075996151521605600512218326895,
+  0.43692155239290098173990417979,
+  0.63183509185797834489905365016,
+  0.327726835190132824885685947736,
+  0.82769389015654780671213364517,
+  0.38036542617183448008870457384,
+  0.06416363778906221378580326597,
+  0.95989693996326393340364540321,
+  0.77473792948077472252492320019,
+  0.73353080354752465520384745159,
+  0.79531316211939777703706647305,
+  0.31887745411495362933791547194,
+  0.5504233366621661345254817397,
+  0.133841546560512334978343647306,
+  0.93323316393590598213508657757,
+  0.219534116905903225236593922786,
+  0.352227557302752346568799070044,
+  0.50699048681296139093781410327,
+  0.56063256677949754339755086295,
+  0.97859418495668224120337606178,
+  0.43217748779939454097021337034,
+  0.6118800794139137562939270606,
+  0.8826339041571606455078384688,
+  0.190654349423411314990846249777,
+  0.0272323818569649486990095499454,
+  0.13501820915175992368033644254,
+  0.34430252524220055863712676536,
+  0.135013324503164182485257894453,
+  0.83301344777287732687815180326,
+  0.71146270180847724757833953093,
+  0.059584725284656364940760846576,
+  0.124388342467555907606115942139,
+  0.86760011350010388002288781466,
+  0.43443235444248399222879725088,
+  0.62257025564267773540408523682,
+  0.42224480338939459869117553607,
+  0.122203729563367693705179104655,
+  0.86763329805228175173701751082,
+  0.61852711996472568821866689006,
+  0.9981036801779161471700405786,
+  0.177126618334123901292041594724,
+  0.37033568941002233661950847289,
+  0.81720705981865203019383851894,
+  0.194752883553301253160228353622,
+  0.5399475493930702257701115294,
+  0.21555050095259535717046390477,
+  0.031480898918419061738395489394,
+  0.0108626235742996694506893658131,
+  0.29439861659506237876675916168,
+  0.25969803792963051605662393213,
+  0.64305111681301349941082616522,
+  0.398301763391130971280749586885,
+  0.82959279528518208376169366062,
+  0.494452121232255582677051524076,
+  0.032046850110252624668328949032,
+  0.304808216164121089322038632124,
+  0.43743086801077933536332835933,
+  0.067635143022119684849606244687,
+  0.062601171413915686472972559687,
+  0.80704249768256597155262089974,
+  0.049090587901867220876053770281,
+  0.14290280489067737067786839775,
+  0.85153414385190808252068833198,
+  0.052035578866778404379096518691,
+  0.84803461110488710482683367176,
+  0.323391780352303842858779454674,
+  0.52713499343541339922976296515,
+  0.91034109375479019837692785976,
+  0.106146556890642346491650008212,
+  0.291532189474064930184344798145,
+  0.330494959183718721493342551525,
+  0.6236537208920888603043773443,
+  0.89122121355780761549659392994,
+  0.51799810738861013193016943087,
+  0.249256177739037963581221438965,
+  0.76322106809612787470242640888,
+  0.97852511972383831461233976406,
+  0.52255677693690499607690355455,
+  0.4450034860583097087122794844,
+  0.79114162250324775713725095404,
+  0.94756217345536380876998110362,
+  0.58677918818329126036021764787,
+  0.84845252924877884299669190981,
+  0.30081720041370757827674016113,
+  0.27920525653128846538023076229,
+  0.33471466998109052439193176801,
+  0.77432114969973711331784009482,
+  0.79975078898170550460312445454,
+  0.90029380309155505829673878957,
+  0.22735855793472972935624370264,
+  0.83917898101167717908999667914,
+  0.96001063929762371813642857618,
+  0.80557845129235602137075744771,
+  0.227828260252387705994553631692,
+  0.45514459312672738783331856798,
+  0.6996049090759249573037751274,
+  0.76407211467383802388153449844,
+  0.35750763601712374361686514082,
+  0.090157662209549066428683554241,
+  0.95043897530001474792481472865,
+  0.97262166470012788338731033975,
+  0.203045895422423613196589718133,
+  0.217437635156560627036179586425,
+  0.5222956932204809424910993278,
+  0.52865060708104384493756729767,
+  0.97715373213739469800445297208,
+  0.5740174414400501666597490431,
+  0.172348314420047937640907870932,
+  0.57197038071649167881433868039,
+  0.26289948915209002196358225729,
+  0.177903112174726341611524884074,
+  0.74917239660013094610681443816,
+  0.59837085384984040836442442706,
+  0.065070324689375259831989322427,
+  0.44807493892928848916566949155,
+  0.59027783360778386064107723777,
+  0.122058971772529617939528531479,
+  0.18965096763129552013799044806,
+  0.179455202785822708296801760066,
+  0.032170979041981235014758366854,
+  0.297222966386620738492021519056,
+  0.91323423393143490893801153646,
+  0.75998869946268189685327906564,
+  0.83934073246383862944110864099,
+  0.17898779712956184324621175982,
+  0.480986398855505957279379560397,
+  0.60860751560721289727164165043,
+  0.298927282590269088379100218673,
+  0.77935020447343759584143119835,
+  0.480545242963934573648858250607,
+  0.85619790637736236353631524289,
+  0.96488893882602300700764346564,
+  0.36351865634843046736230405883,
+  0.82895257550724293657223335349,
+  0.79749691055514662573933190753,
+  0.20106705267868388883102752272,
+  0.33623918491977977623116871123,
+  0.93256466340279772952587363977,
+  0.88648669501682764515636262464,
+  0.47662235152771500250187825963,
+  0.52659238455883068245922982067,
+  0.94111676559395948458425469814,
+  0.323317713690175795284098362026,
+  0.34796405933091263994264450729,
+  0.52445433363119391822452105405,
+  0.525140277317638922334264421,
+  0.64469482443585357444532895759,
+  0.33472685924872903603447879104,
+  0.42400458791646499703641118014,
+  0.8222662798441265944554029489,
+  0.75524567154228028735673060411,
+  0.90790601849806560799894333131,
+  0.75164241313793249434488428193,
+  0.38724602290468111557712203885,
+  0.36352513950081020449187506395,
+  0.078398790907179055722325452963,
+  0.5003676822199407758422514133,
+  0.86055044548361328714384972985,
+  0.66748567445598821900669819042,
+  0.95450644393912187127659765969,
+  0.9536501355878008523425355652,
+  0.56207573012593503802043957099,
+  0.99057795680550440527031916411,
+  0.056136908924222021770088579728,
+  0.89322960593560085272815946927,
+  0.19380351076299398770342941398,
+  0.036881975481577328074706357897,
+  0.38834900979665334617449710449,
+  0.77196507761008668275581490587,
+  0.87539115393397618421355963533,
+  0.9131721846286054396553858461,
+  0.62245648254908013430163665866,
+  0.56021174819199355559539089633,
+  0.86987294559046384230921358438,
+  0.474584307464076041054198211805,
+  0.37224942408757353492416873571,
+  0.198307276357215222087716993615,
+  0.81633548414328354008913860616,
+  0.071192681637945014051745371309,
+  0.227203421058334439883665388655,
+  0.50527083273847576806586104904,
+  0.25911353175247232791676189983,
+  0.103567996992606824957067451526,
+  0.98316826751311017109085781757,
+  0.99206610065531611133123425907,
+  0.63838444880264351660305680771,
+  0.90013304139719692321619239255,
+  0.541419881593941428911392944,
+  0.434681681520065487913409442927,
+  0.0277935905905462584654818408167,
+  0.28736085880215502013374946299,
+  0.204706679291990486471085620508,
+  0.29639415300325412139805373353,
+  0.316818074164048785111401123944,
+  0.58068268044073033182148412246,
+  0.137736206950094621238996907006,
+  0.80907996549523150166492783923,
+  0.73799561611209772635015717353,
+  0.84013433924397440368969968592,
+  0.46126521311414726401422152854,
+  0.78013716447507497359555980298,
+  0.83405708922951231042933175851,
+  0.6366367969739079258896472192,
+  0.77353748358406402598000037557,
+  0.17489624725635947111471117775,
+  0.80267952648428412026314875447,
+  0.80437106861315296029137160672,
+  0.62834462177566783487584779777,
+  0.31539602345858033626133832055,
+  0.50541890853061839219557074283,
+  0.0195874476781850222509795360627,
+  0.011676447193909007242643314705,
+  0.85675479754070644130150816794,
+  0.09391269154749661204040398199,
+  0.369625667102334643216258483376,
+  0.84311577046357953313746551837,
+  0.66438426715728382263582851036,
+  0.70530906415261448155650458603,
+  0.446783684004800041373395690117,
+  0.75627790284213576819810990131,
+  0.57190285913753158265774292274,
+  0.97785681370875218892539297465,
+  0.0244503386494348881614690746194,
+  0.48528430854909558202793141933,
+  0.89436155397807056672243211894,
+  0.40757489194485346255194449191,
+  0.91772837786834838909335779229,
+  0.28020326531649972709359017096,
+  0.28847822326776188982020803144,
+  0.93193769743225684077624356649,
+  0.58336147304815741644785105161,
+  0.4004241800179331174134885947,
+  0.265790823692672203607418801725,
+  0.4137092141145146388568879939,
+  0.0255090449126572366852573357318,
+  0.47601725598948555645487446626,
+  0.69141516452580797436419291497,
+  0.187709862166242786826507443003,
+  0.31177816288567708916778389045,
+  0.79635247302484103596788484137,
+  0.14648403361265752358955335086,
+  0.0088027047060531475573345163528,
+  0.90053967411241805345616039474,
+  0.373822238382428585287035417224,
+  0.94303097002109978273901800507,
+  0.037263906643698883423150604649,
+  0.98416823398276433881119247311,
+  0.257766562836474661728601317803,
+  0.09336855716941364387765222813,
+  0.057604551843195630210060755775,
+  0.37732024813036636644231432449,
+  0.437099108019093398068604946814,
+  0.0298274889889844501626534131975,
+  0.54161045457572229928359302347,
+  0.354192069739745951755754451894,
+  0.9952629304832433588789284291,
+  0.61362350596285189174752077338,
+  0.23176197923774029736185020682,
+  0.259000332877923815426717028414,
+  0.77171708810079063604185854121,
+  0.87278431247491539306511051532,
+  0.386310463821549823085972724515,
+  0.19043920209178263945663905422,
+  0.77200547833114724875436606573,
+  0.2683024354984293205497398925,
+  0.144270112550972640008446091075,
+  0.36996280314557984925474224612,
+  0.163548224543250866742712583905,
+  0.54541238293503241055380526708,
+  0.54270760938500008382580072956,
+  0.7374073253240524865446763851,
+  0.93470960326436177572863031654,
+  0.71417607213823278615975270201,
+  0.65837463356664939532769528292,
+  0.433323451649582925271830911365,
+  0.79664580661766246494864588315,
+  0.392079017934601610514677836005,
+  0.212454387416532999103471570235,
+  0.198678082418012501322802116335,
+  0.61525672800559338657275986197,
+  0.99339589895181138684928419014,
+  0.53563057949945927383392076793,
+  0.68817192513245948798192690082,
+  0.59671938169380086666866042956,
+  0.5686075254645125832635026196,
+  0.25860953535454698758704936914,
+  0.60779864941995215785819783969,
+  0.46515241662568547274625942204,
+  0.8756966078479474164213834749,
+  0.89153160343113076353740745469,
+  0.57055911159151577684982200009,
+  0.39366246576557783924065683256,
+  0.53789676931469921495851209609,
+  0.95842028586447684249630374944,
+  0.25218284880717367924827402845,
+  0.23718965807272971860203662735,
+  0.334222632819004380754702693406,
+  0.6370849366068287810411454729,
+  0.722665796162802454203702773,
+  0.50216248905279887048328225791,
+  0.34529823309520970630714708672,
+  0.45098892404492692601908443802,
+  0.64640019115293913591196874603,
+  0.137077316379736192931987264458,
+  0.29368115076039970149731521521,
+  0.20091822953913855557804069085,
+  0.066267083813833718511605782276,
+  0.88094596104423280074202839474,
+  0.071730322265966936504743175424,
+  0.69735904142296779896396736035,
+  0.91352594564083795862432502567,
+  0.13244220377041278512040316988,
+  0.6283911312781029516331064494,
+  0.34896540167805105781090114462,
+  0.6795367801751911186206756471,
+  0.74898526486791573083377925403,
+  0.71700182398199203349731046015,
+  0.121142833366516620257163901501,
+  0.32678002036857151533698078636,
+  0.327511655875027224450064555456,
+  0.0079152053645354575349489795814,
+  0.84748954479623021059675156738,
+  0.75041561033954009809301550159,
+  0.41101693712463238996746228193,
+  0.90155864029338267639417046915,
+  0.35464670537047753945618208157,
+  0.68848712573944472430623590326,
+  0.08893193373618063124738179594,
+  0.58932830480784385636485098641,
+  0.0501618828375381577588978271165,
+  0.9451968329901169788400753848,
+  0.074994725566097580721185016702,
+  0.191860088196691871607965261685,
+  0.67853841063536805868885844477,
+  0.179445375284033906887325905976,
+  0.84157620913886056000430779083,
+  0.7377942162322144186341324232,
+  0.231126715579023126062082806996,
+  0.127662509645324778320005407937,
+  0.63062414859560283674777403205,
+  0.55283326072907470543330204975,
+  0.81243486031688046850257374808,
+  0.299095175225750536694802628506,
+  0.34284433830834748530634854762,
+  0.92098838107935607957057329632,
+  0.6334432153537539286206936299,
+  0.49203336326915182548719200464,
+  0.70089872986754081776092540042,
+  0.410346112246289262244008861334,
+  0.689375704219352519232614571,
+  0.53543492718830214408075484368,
+  0.78985504761729292283075540625,
+  0.66802245726332267870092702429,
+  0.75600588548341120124374250114,
+  0.83217485519464083512235296359,
+  0.77758150309412736979136465746,
+  0.067382141804836913185384124002,
+  0.7289836962356747770023887674,
+  0.453434776313686590560640460504,
+  0.3160796148757468204057886796,
+  0.0098933475787107681104048511314,
+  0.3620064234142809735084479026,
+  0.85993179373877360456391909506,
+  0.90684883450763884954227285187,
+  0.75959171037325548903969803948,
+  0.91219881792279148536349496306,
+  0.97175430264940118917041244436,
+  0.292364544897748356834218017667,
+  0.126096590956329503351026499397,
+  0.058210669685805595156500555938,
+  0.207143479048534791976348255132,
+  0.202837039257860939456824357966,
+  0.459137240079351948795601640776,
+  0.65480905235794807223708347609
+};
diff --git a/gl/tests/randoml.c b/gl/tests/randoml.c
new file mode 100644 (file)
index 0000000..b48d49c
--- /dev/null
@@ -0,0 +1,1028 @@
+/* Some random 'long double' numbers used by gnulib tests.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "macros.h"
+
+/* Some numbers in the interval [0,1).  */
+
+const long double randoml[1000] =
+{
+  /* Some not so random numbers at the beginning.  */
+  0.0L,
+  /* Then some numbers generated by GNU clisp.  */
+  0.709874756135422554674614242046304686448L,
+  0.486497838502717923110029188864352615388L,
+  0.474019570990182753146861083750226106848L,
+  0.998821069612940336401792152067298257397L,
+  0.68230324395444341476284133813649237509L,
+  0.0812383212795450007980350531141537177532L,
+  0.43131112016001535977175708439191217567L,
+  0.1596337172541222285215378906083607753005L,
+  0.0447361192177328171952931546845870270203L,
+  0.669148550486018286115665314826153614017L,
+  0.398752708644620313955955676251505325896L,
+  0.600019492390024166744893736290881101244L,
+  0.78337397012688890834008412364808365851L,
+  0.747414410152603863408503379239564644402L,
+  0.550615721371501982864462175362996180322L,
+  0.0073983673767251687422683917248311760491L,
+  0.693846360902780799478892082407382699085L,
+  0.751592057901191172906159475240427353057L,
+  0.74000578784995401707243054106755282117L,
+  0.847264623235961908747497547605068838836L,
+  0.917431426585209425652777605148791919017L,
+  0.267532476015101748449269162884835638528L,
+  0.486834088208986505203048715784492259319L,
+  0.4580154564181484580770749178538567666L,
+  0.391521076582874764982597286237947922907L,
+  0.69173131929214083677828129436922728366L,
+  0.995268639187054867212755710743514657877L,
+  0.553189251912843822062196619876802699895L,
+  0.632300552505301947698796653386744186037L,
+  0.445572801006840927064646197943103543344L,
+  0.993634311396905276414701816228609517838L,
+  0.611582274481091436495638926486363711255L,
+  0.017611091105275929341544154464243038417L,
+  0.598936378040443270534796418637146416803L,
+  0.939730325871014729497001074244817030738L,
+  0.385712528561693907444911228190200940125L,
+  0.48796444333495738271693214259711532603L,
+  0.508634972895891442259656591497940133962L,
+  0.88453398179301716552318999435310293852L,
+  0.509099535482633468613040057130206639612L,
+  0.333677997666677081186230843198919594355L,
+  0.82715349353996770180499230535973424237L,
+  0.0372593663309767971914036990047894757662L,
+  0.932828780275931267421133064996449298348L,
+  0.486099261359133830842098860485004683725L,
+  0.987156392631551825781809767746170502002L,
+  0.824739790678073493124786291053674093535L,
+  0.671869573118280976952523743592826377585L,
+  0.48088844444394888967684860088619551899L,
+  0.017233021606613044454327510797750273989L,
+  0.988102711714879869326666071903065279145L,
+  0.091615081537455465573860363408517029583L,
+  0.0113278995312253231106729997476313183323L,
+  0.294349528513080028346115860151112891433L,
+  0.0097058790914280197566968241982258935964L,
+  0.715113281550035710673074854712220192465L,
+  0.739627170474553083453358265804562580162L,
+  0.588476045636558489860462119645353521893L,
+  0.91330346819098343970944232526748274664L,
+  0.281457572112513183673653575304242456425L,
+  0.784192391468991402261628322552430383283L,
+  0.504857923842698553133786835061714061812L,
+  0.230410937725986177704701374433825197397L,
+  0.535805811877939822805608704986961969659L,
+  0.0508287955596506952822240797812703550548L,
+  0.179399756999629053194209501169297540332L,
+  0.675837373242984020977236431747771655704L,
+  0.981496523455084073391380532008173135055L,
+  0.325845075647804753424852268729037997407L,
+  0.832630951427200447589084239299500129776L,
+  0.825354056334755646582091209610369762364L,
+  0.574731012869980895104127749738122205757L,
+  0.799028354294603017571131513193291020045L,
+  0.537721586879667191016369071169775496218L,
+  0.83846801885738807298552515294277869191L,
+  0.0922901597877978587435698953162723703674L,
+  0.434458505758559675954739433438496373717L,
+  0.308017320632506922735963882703835222897L,
+  0.0192693232310748837390370764187488626234L,
+  0.65275462537999797862908920689650691667L,
+  0.357130585286320841741290333260811815153L,
+  0.359562085720204868627653630044659240449L,
+  0.758320826841831017712067337815543048118L,
+  0.62169722559489484088614873429559348682L,
+  0.17335411409874538731529771306978631118L,
+  0.154077331752487118534287271363344964006L,
+  0.148559174998934930922746358844164455867L,
+  0.881316225913391098839630896554038163768L,
+  0.89289796752480477623907740261818685845L,
+  0.57786655574695620371527391411424563834L,
+  0.318175774295281868509200498351278930862L,
+  0.194978302204782205514236430086515458283L,
+  0.87084962252516402992532937666368998137L,
+  0.362113882465068209502300826516448793743L,
+  0.273446496762640462316848141032810658473L,
+  0.1471399192242189033406154289397228481905L,
+  0.937157507052090331728212622934524925056L,
+  0.600045430164287985733450402316667890373L,
+  0.794478865621258499047814379367829521507L,
+  0.889115878933706260333129391997704491913L,
+  0.631825206206982866021784416451887594472L,
+  0.966422225095067311240936396545408962515L,
+  0.676845470105427028205320649846678927664L,
+  0.671163783319728784750606328490914935783L,
+  0.213726274743505026386536996423761328083L,
+  0.99483340496284948345969144891145513965L,
+  0.362072360280863974302182899205431874295L,
+  0.89135316959373017710710890812308229361L,
+  0.861008403776277958081202417380537907424L,
+  0.518258469677886348298849030872657409393L,
+  0.74995117457421590827489329835282465567L,
+  0.141688060236646135992059548400562463963L,
+  0.231055693687838328234866575264314255906L,
+  0.128367320195147852998795956530756587271L,
+  0.735643745226188370911313880883935933086L,
+  0.481951681233521227023903083881246017963L,
+  0.29797778097740396719094352844253033076L,
+  0.259026843185033526978277511857498182853L,
+  0.76454793636766387350530239448634042225L,
+  0.921742101320371872828332060575170679558L,
+  0.135594574885855893452962438848740230435L,
+  0.249482789438500604376469100084029356821L,
+  0.447893460512394580798054060401740249162L,
+  0.841167533365717681130523968098862274883L,
+  0.063885342343669943206116658917625959392L,
+  0.49268569222220133343083683720155184169L,
+  0.0320364278163828327673837310979596079469L,
+  0.83067006037141488187036282222404336846L,
+  0.32687090604018629599351990634445890267L,
+  0.524229581985562678867475657633756672726L,
+  0.26442137331545990230136529620604338964L,
+  0.1804465247704923307363156457827584866855L,
+  0.219897692414720290686302976466475627349L,
+  0.657372240957848561373923532613997515665L,
+  0.94917951707325275578037456019158874452L,
+  0.999935336870950506894538846120127792282L,
+  0.334292387732229479489367107895450895382L,
+  0.519605753222230586160238890634421180626L,
+  0.2353320030331258205431171147281090084686L,
+  0.697837952881171466097464830413620278996L,
+  0.337355949172173312279209733133367570558L,
+  0.59624609578396787690174902306338541087L,
+  0.430566868363073838098964774826687118822L,
+  0.303143768470597821848720008902412356097L,
+  0.45566572082779255052299434804712613961L,
+  0.63651052470632278377988990008643926753L,
+  0.88355849548999550762491205909993278845L,
+  0.857627182143034336666679544569747793963L,
+  0.579654405386150422035981447661995358225L,
+  0.527551502180559045145630115424486189773L,
+  0.227798290812497436015108334865799792168L,
+  0.860285575656798735433746383563482660567L,
+  0.657434642899561800145850990323893418457L,
+  0.991915916857419346367596676050775541352L,
+  0.0299053482258395117883768309912517801074L,
+  0.494186962160200346319995839440170254278L,
+  0.795837941248740362154274095100822390282L,
+  0.213898349709271555518444444268604992712L,
+  0.635385838537788174234352352696939407706L,
+  0.1161960540496013767418067989853615145483L,
+  0.236636716576793997613161803474856412323L,
+  0.250257128320679509772248555959408855321L,
+  0.754809883956726591031066199439807350575L,
+  0.240047496212680591313028855365466345707L,
+  0.125918185384015376472834932789271923263L,
+  0.830761928512260978768305988740912711273L,
+  0.0833746595456954680423678981938324373477L,
+  0.993235018876045312632920249583820095078L,
+  0.74457886551486005017424251252790500917L,
+  0.904041666312003998553971236017433817041L,
+  0.99682247674917724207607173416904094376L,
+  0.778185258630194559195184600522592063632L,
+  0.617908428541966249479693433082678846704L,
+  0.034201434638706652764862810175677292771L,
+  0.1166825963578175046863759835887066398776L,
+  0.618184997077951045734597662867931774914L,
+  0.67223166229200793562043589747700629457L,
+  0.50367723015643325152991864733820551338L,
+  0.287805524504497224349445840278160308547L,
+  0.418530565562949537953621246456529701546L,
+  0.356577284504836083965140033686046682705L,
+  0.727797226876543100474285620953868682292L,
+  0.261158535215243995918166290296126543963L,
+  0.1233681715943113445590872776925938156L,
+  0.397342365090131218507373938120760734013L,
+  0.33651833905580176460704582099080050591L,
+  0.124851176251609572087737060478799388707L,
+  0.49869389018540295598691678028277690211L,
+  0.603921102513219725593707198424421456834L,
+  0.0288068305492076274901316515486696644854L,
+  0.27635950491121559708402485015430409745L,
+  0.0219820746750707161670181537628175322048L,
+  0.893266704905772978187424688068554761406L,
+  0.055131714446612192984065196401480701447L,
+  0.478917803887421452005543212818108274705L,
+  0.1089109338581245135310441557812062287244L,
+  0.451355129465699006367714322379179082201L,
+  0.933539696310061306235683130737189659555L,
+  0.295046527696521751967458467625754033345L,
+  0.657654030109877699469191835246373699585L,
+  0.699519422709288537538980841108763784234L,
+  0.754780411476609088293217972311402262028L,
+  0.940185229424181440596885768821586612845L,
+  0.641206442188302531301220212171259413504L,
+  0.483623421775598486212538785028426545698L,
+  0.1819507033406890598006456890391145571876L,
+  0.3493992184159313422014002142021878866L,
+  0.2282143482135155999703670773974654680736L,
+  0.65404355620292102948676570623901452325L,
+  0.000126697620991797753719907018394969483701L,
+  0.000128697615694221449450257101713351917085L,
+  0.66277677565136622936757573048183355679L,
+  0.954427508631091518542647272554320259L,
+  0.821452416615550557725422642536361482673L,
+  0.783949133156224682132225528942727293192L,
+  0.883688268329322182794294084718215227776L,
+  0.887198477924019626901140168907684736036L,
+  0.301153686936585019868640358522761168745L,
+  0.97031160152938862140377079439908121466L,
+  0.613591225576913510391808189718881180802L,
+  0.973773801885628446394837963774216539007L,
+  0.969946092528631153860793542995840284225L,
+  0.0552318705490405481104532089875456066346L,
+  0.398506652226642658353465649824893657953L,
+  0.577466681084525459648007205600389579233L,
+  0.538305717497527581210294472297571817608L,
+  0.0378969572225333661087665511893845011475L,
+  0.82821208446292402852221418490682507414L,
+  0.207039760611344134455359310666092356869L,
+  0.278071434395492049592363658721835175976L,
+  0.418157919791356829061560807874478279737L,
+  0.917935426878916775097393966246600470752L,
+  0.968879316988430839484738642933327229065L,
+  0.836847484003257581736597938908686488306L,
+  0.95787762740618523171012745852536482523L,
+  0.381833463284092269744674988738521423563L,
+  0.585758801118634412354899474049588357203L,
+  0.590675098878457580254555486356030743515L,
+  0.999102261786447498899644398829003134788L,
+  0.278723779765613710807952395929736248799L,
+  0.150160483677965826860533794972733497469L,
+  0.39044191915595120943090707935299688844L,
+  0.882025297705744570797306391637391855587L,
+  0.26053886056730883704893455389142056588L,
+  0.530123960707389279621444598593626923328L,
+  0.307497951588709795568291546230129131789L,
+  0.755712717002473210112772528495042985208L,
+  0.403971099596680128749039001982260210321L,
+  0.0955902605698226580325595772471302440213L,
+  0.733946822526846681865131682504158670327L,
+  0.824558199580936798107294631591949429405L,
+  0.355777480091076251706346214380424670616L,
+  0.183210308747040172107746729630689571628L,
+  0.943081072447366944673610412439697363267L,
+  0.823437046917209496498923793615721213912L,
+  0.272212671889142468847791216625072718846L,
+  0.467586497114075237282436742306271250655L,
+  0.965430243779957305809196327799423550657L,
+  0.264527585376739963287684763043832918263L,
+  0.78305929918791974277407705060017330726L,
+  0.1569161089271269079867408493909342109635L,
+  0.385890512318945048667111881493883277209L,
+  0.748768801714747310036929893375463390286L,
+  0.9607241213632062657075501565333113635L,
+  0.681005349771442926258254424282975745535L,
+  0.417404611754855157969846623218352380733L,
+  0.384922954690351156114438668003273806442L,
+  0.0248688875333777009659560293287195312336L,
+  0.289622732329138351547499030028075517487L,
+  0.356660798938142089830284922931103513564L,
+  0.1092119220339924538904809107210351902013L,
+  0.263044604533896828574983495057823392153L,
+  0.72916056882229781356884933113775509031L,
+  0.277279616044198734111166028359400949283L,
+  0.448496025651349045553194567962243478962L,
+  0.397797975606664545700620422788810306397L,
+  0.915573317477921170464219734057440942223L,
+  0.565957191780698852582910000301549192135L,
+  0.0199640867363067059474765492007910956547L,
+  0.380718754942963039702539139065633248878L,
+  0.271561535356661429325107452975658450244L,
+  0.65703383768996023094650337496290243735L,
+  0.810303462640169412310932301780031244584L,
+  0.34389677270659068303923976829417662132L,
+  0.1459701849396526086771469906702178205394L,
+  0.0709566883230581731990192048699199874356L,
+  0.0273188133279639766234319338307950998466L,
+  0.189257375093862859152281617127963424911L,
+  0.483370049027267515091110020077746913052L,
+  0.6121051307445822901845022667347352688L,
+  0.0669683489197768142011855877890933175548L,
+  0.0462440353376468071116256899031962430102L,
+  0.66179099750239749196171922709429044667L,
+  0.331447780875915347204488922360787127231L,
+  0.88878630766137716878808504113561041651L,
+  0.57831688009568937419273238575083437733L,
+  0.1665758643537997337473156606765968668944L,
+  0.609499751553850514507525575752744468325L,
+  0.842660412678850878529299409778020570114L,
+  0.868735885617006579468607975714721515953L,
+  0.518323673739076029376626898444587264186L,
+  0.465048961779768578307935679739067346325L,
+  0.739933063031511059934522150792493137138L,
+  0.366097491036976922528977805725731033037L,
+  0.622890978255856721366594654155975719428L,
+  0.945120241233001881267096151974150875442L,
+  0.711795000549305806399598132955701848342L,
+  0.120093380051693652573317820347038096902L,
+  0.461420048084338423641881546847056927696L,
+  0.201645977777376722385295339631509175754L,
+  0.1479402104137110360277226090924965371445L,
+  0.287960179369955828242600303166176042591L,
+  0.788362667534075941033937374958276358103L,
+  0.610312055398887641020833805884097007991L,
+  0.758450801974187424825814780682156814865L,
+  0.64208882693968320907867911523798381855L,
+  0.255468285690834138126389042932304445888L,
+  0.0370478385689831649949675007793815537737L,
+  0.551880617631056560992613768623601574096L,
+  0.559262357532227558112085482526038868046L,
+  0.129705275018847798920129782613409588523L,
+  0.1076289463968801831500602693982998566697L,
+  0.272506325706516323678193293634687081578L,
+  0.721990855538151706841764025895777805643L,
+  0.523084042169573467351077180119310086396L,
+  0.0858615712848179826840482241961243288956L,
+  0.589714739430299853251893655400362103563L,
+  0.512412326166823937685402214713910254025L,
+  0.802350747297003067442509635888112412853L,
+  0.715817091619681167941132068164905209087L,
+  0.0824951218034037355816988555328185436778L,
+  0.829228234554153070848595829448989414728L,
+  0.59652037694553054648270061009002150308L,
+  0.133585725647906582691822880117773950377L,
+  0.812005216254498654412124509257882599085L,
+  0.808142463854396488512203093936737654517L,
+  0.570217922503074432494487309472855783614L,
+  0.704017977813333280013384719294741845102L,
+  0.0251797587779118690185681150429720019843L,
+  0.676272439608475367571481578590700290242L,
+  0.880796414989798318500723261307937258554L,
+  0.387922631107753361553377889431536170676L,
+  0.282350224157064849683455744598629321323L,
+  0.721001172978128539392551761867898599807L,
+  0.98720056526474911920598612334425157851L,
+  0.9951900286811655251775209231187451065L,
+  0.051844546479017627818996668613208776283L,
+  0.103738972117399718145836730690615155693L,
+  0.228544758674525285763674099492074936604L,
+  0.429309402103194762341587536897342160049L,
+  0.564535575507982971760351294178163523416L,
+  0.999063571593237112671743187500362701266L,
+  0.340374156369508513494787137157934959152L,
+  0.778748988242111504661479799747122556733L,
+  0.471307010869691772647781526213794708743L,
+  0.289707428078962269353959639691462373973L,
+  0.826577651264033230456965284610788939828L,
+  0.860667694131974131835140122175480202008L,
+  0.596405567348984902495263677852931818947L,
+  0.79786093770390728560184577433203234578L,
+  0.85492142888696693237980696048371212203L,
+  0.57242705004809831263405538576519171441L,
+  0.829648119655355629047392239460860046016L,
+  0.783260316181642610272420809845230036294L,
+  0.0941718863377651336163202407301145871807L,
+  0.156372209579300482444127671309443664823L,
+  0.95045258077372510217507306087908380692L,
+  0.1885289021059534081345247308001373861575L,
+  0.660776653890123229320677431688026234587L,
+  0.2333507388961794003755022400755269739225L,
+  0.926661255852332295794894190183342387092L,
+  0.862240624886232672002503279536846219655L,
+  0.093072473040365648693897225471155002338L,
+  0.210437952956145192084247103889970459783L,
+  0.98112543168220233380555460117617724093L,
+  0.740174391774267645790688716222038485627L,
+  0.0209886798500615011013258311339617682421L,
+  0.41833754096087514377582590206105535614L,
+  0.469019942905167330505858885046130048223L,
+  0.715228143253914303084091910768414947468L,
+  0.949215045400946624794326433082702896278L,
+  0.0839262379919984011512905346130401074556L,
+  0.358856470231875479544116669678510859691L,
+  0.676461324144301815445903930221360844898L,
+  0.321802718137104975636543941512529575137L,
+  0.993411285955596090334951526803325817472L,
+  0.860164319140927797258503749506400508873L,
+  0.94773452678939638468420772776729628408L,
+  0.786167026315331965750413583155691260173L,
+  0.45156944204188755542678210840170293585L,
+  0.490807428869058127589400400723875752095L,
+  0.1064150484458768919266881304357565451445L,
+  0.324460881496927069927267886879512784128L,
+  0.892536276084459403262968666925514247957L,
+  0.626906362142556286375622503025155623158L,
+  0.912617117728752553677432546319200457076L,
+  0.670287539555608481364011494943625670644L,
+  0.247614513279178220157281399165275150246L,
+  0.328334024179281412037962820247065990969L,
+  0.829445540957824174480776183273738605512L,
+  0.1787214688659462728637669907628671276175L,
+  0.925570168885833135397413435137754040344L,
+  0.98275386432184844551191217367555375122L,
+  0.364711512670624901280733420446798813805L,
+  0.0676060703890593392691073615176801081634L,
+  0.01088522590112897075539168583333589679446L,
+  0.0611693052224598303672047526429160913973L,
+  0.214589347780615411637055343786045569195L,
+  0.698097005257153990899739747284349971478L,
+  0.0354356066334430559162358810601367856981L,
+  0.0279531560831790454930326667914520406377L,
+  0.939682879995515407044885888120427639943L,
+  0.312419879113847025637130107480365284706L,
+  0.429063186024752762548549652686423948472L,
+  0.198325752893057589388425455067795077316L,
+  0.653970278037364931023007417819508007502L,
+  0.396811027519564931158159336303275106925L,
+  0.50451059823222344440248588902992099958L,
+  0.0862505815838354201964323759027263746603L,
+  0.957096030216378795442646824371057760147L,
+  0.587610162738417619467784731999441435863L,
+  0.582187586992416238476426545279573456436L,
+  0.535716130421670802716666237861890374707L,
+  0.090478847153957807764386571203708454605L,
+  0.788473620511487574655894325144660477707L,
+  0.610237648835883657058234607228408957708L,
+  0.678372723016422015853594971922211368707L,
+  0.0477042323920128297852928999674240977938L,
+  0.916676966783686851658830754268116450562L,
+  0.385373716764729378193009393283577714611L,
+  0.51049308234047313597601380814795899816L,
+  0.1196704708003806819299545192341910042065L,
+  0.446475706132336496196697021305914636716L,
+  0.22995164195921866005337396330755244987L,
+  0.632225374693904589951305492826903497058L,
+  0.1049567841702419598059377515889392050297L,
+  0.66749284825574584532432314559877621928L,
+  0.730750212627697291852996268443402535667L,
+  0.44210748459007730373853303409845654876L,
+  0.165882407048533464405922485111215401752L,
+  0.326102079042974476137893383568312181916L,
+  0.894926469777796621626659556932174565354L,
+  0.829811268916354531033773068150153342864L,
+  0.0607253283595596933368529290946492114805L,
+  0.0677752868787034912813695724240479638585L,
+  0.82861506635734784945473366382511846348L,
+  0.160085543323090657960949278634908144601L,
+  0.232569451519550129004668131405568301759L,
+  0.848363194546104528297512566450812116666L,
+  0.793640414525406609723674517332020118566L,
+  0.0908665486135344605492576594616215607582L,
+  0.98524892289773367881284955458176900047L,
+  0.232277847265217861619371474795084074907L,
+  0.2478103820537262599906715455471023544214L,
+  0.518524645780409202282547691600231775584L,
+  0.726858378884955244314303315523158335615L,
+  0.245545705017836867827662773158398435754L,
+  0.2242602776132220616213985660229694803996L,
+  0.69321599409749039262414070240230983052L,
+  0.0112978587458533729787299027903363211672L,
+  0.201700091442640051051557572594860881596L,
+  0.1553158804742445432796353137546288871905L,
+  0.297307958467221836656545818754009116053L,
+  0.858321137590160233755873079497950982112L,
+  0.66848174756798322137180974713907803341L,
+  0.996344263106353369755981871581860505522L,
+  0.0298469963581545313060582891253178820216L,
+  0.5825562269883888340326171333296281312L,
+  0.493316240919863194534203651249074989694L,
+  0.25506115557073666386519530923416434445L,
+  0.990037777634583670683401168871182857585L,
+  0.111966792328779238876716387539738843995L,
+  0.555536981182848652400091282463345207445L,
+  0.281763605895317871765768390877174374161L,
+  0.902702281907817546029803311979267829958L,
+  0.526223239446627547666226037912343453756L,
+  0.663322588876953268851644820272004691035L,
+  0.925956679854174995001911256195736125327L,
+  0.978687628923344717267490649565202182013L,
+  0.295452218109470204949110043833472171496L,
+  0.763317372768444290934585368155544717374L,
+  0.41484295515622153189510360412010755096L,
+  0.95319138766107113957717501566306191772L,
+  0.449833295238493367386837134824022661087L,
+  0.380903660964162496124546078818966824203L,
+  0.0591435603332779390763767398658188273838L,
+  0.594973116752510574186847848340951992488L,
+  0.66051154347057943107777082783767373976L,
+  0.9590947364014878778361002605613544034L,
+  0.141719503437180601174660143271258240733L,
+  0.72942088503531365739564056985302156428L,
+  0.96229479992042091317494337141213026865L,
+  0.51401712994901482942061876482808737646L,
+  0.09446204537625467018781365109090483186L,
+  0.568441523568450417056301286402539600564L,
+  0.598604342726174263070596195546293250945L,
+  0.774951017988365558347613104226790833317L,
+  0.81892086730816467017537310019875247387L,
+  0.890143355483709851496792149649550808793L,
+  0.2191477338352410954693547610221317715285L,
+  0.726897475480314385643181203422499653L,
+  0.756138778886812022822443490226271392144L,
+  0.36128016023552084266898937740898271179L,
+  0.410782581318000192446155911986931996913L,
+  0.223641334296034708685419059866928946095L,
+  0.0611617201563377229556630546893173872466L,
+  0.0454251140845604672274274573289906520655L,
+  0.292039969549662442463090760177927466818L,
+  0.0892783972345646734854765244000589132126L,
+  0.98769280749877429524697464655962686569L,
+  0.889843464657722517503667653048728011052L,
+  0.651776307404858375062718114948328477704L,
+  0.87617575855504123004785690824244025026L,
+  0.338359170956885135997817905734588127076L,
+  0.734032684330295341291816774804886223887L,
+  0.862422342223053851459695185679195132964L,
+  0.197333977370262353727756586852240555633L,
+  0.586060335783457129849055206578505427124L,
+  0.132898852938756538479400358451026471607L,
+  0.548298096092246267871555639877296879195L,
+  0.301119859270324657077136364646995297056L,
+  0.02186689635349189676964089313754648484195L,
+  0.037538023766844046167768352700498359816L,
+  0.739462465806194132819844936199304370748L,
+  0.306338591475158278790432712666553704959L,
+  0.0349382326130091592369352494672121905505L,
+  0.12659131714329909411210854142389581492L,
+  0.991566243159047696662802015340988687108L,
+  0.265613985138476447081523915107505113653L,
+  0.379928020809782559672193104868857287448L,
+  0.3311424971073397473661763760151895103L,
+  0.702177302636984264408758773725210449873L,
+  0.975045571615360787500646118846671455125L,
+  0.0373462862349996603561237755410350012631L,
+  0.846126776062337124521510357150131165153L,
+  0.604046707233534456382774833817964498043L,
+  0.1981113045697699450375369418161865703455L,
+  0.0223467484405979164693956414316536174577L,
+  0.67121960182601511325776586363807504696L,
+  0.165784481427263519151726479123968726022L,
+  0.721784618575898210943875783221281669927L,
+  0.247408211201465904622132596487935205602L,
+  0.474174174442367430962454680799704832459L,
+  0.38041380356189313505762491005159753494L,
+  0.412834591083812886132307610186713638625L,
+  0.294378742681402760124595985235966036022L,
+  0.319576442623415298744966071520183847465L,
+  0.17227236515412864866186439447886640924L,
+  0.19227796294349462194111033545303573433L,
+  0.701351402612222654905938605774127547107L,
+  0.55598633289035034815584162421930015865L,
+  0.402729648554369906881359212431684355721L,
+  0.595951760748834493622338584190905994085L,
+  0.119840257870361007206544525046135477756L,
+  0.90443395581066590152525534589406902782L,
+  0.205188871300477881549673944463237196075L,
+  0.339175278174772519132232276502457660768L,
+  0.447725444308107151040888910769680233742L,
+  0.541239546708188153505885726785683096117L,
+  0.12984235126732767588700711245028426254L,
+  0.0534701599183773436559514525508752846737L,
+  0.793436019832695131646422778046763975325L,
+  0.718125883729211211336344362949260539072L,
+  0.328649037343445105052694618356980072933L,
+  0.113307342739499399477248133420602576291L,
+  0.87683936228301044929749768481864525904L,
+  0.212591937265603187751611886807532831791L,
+  0.761002958456888912899646497131654914807L,
+  0.220849601519164170820922984026707209176L,
+  0.222305857213559738578093188054272365062L,
+  0.651516500020930005107266726995614198887L,
+  0.1505613416188572288472651067305496894266L,
+  0.166658450989632252583252879193540688162L,
+  0.249417632511505538283736333645627460544L,
+  0.50096054904291170172998992288713266662L,
+  0.173701146801321486346972068110605414347L,
+  0.93433415280052265881674202089278791561L,
+  0.1167900820460300938880016624066890278452L,
+  0.265137084235229705213901240937609442947L,
+  0.110072770364904306470596762714108445086L,
+  0.0670575770615268870829070207384379655213L,
+  0.92447493539224566948960065689964970346L,
+  0.187517201307673207566548753071237315229L,
+  0.935719666366703749433556454391358561756L,
+  0.964002672100646458888742916175546552353L,
+  0.6304136194377902875122727617639812134L,
+  0.497041144725381002743104205240568050483L,
+  0.589232636183711897405482721407549359295L,
+  0.524588285641300028631908965527617181296L,
+  0.786409662511483672510756944887012261427L,
+  0.9924030873238807048291154748671174581L,
+  0.891407534733792276848059682970952672076L,
+  0.308538095910260975496982224956384014562L,
+  0.949088891149549225900320967233005245566L,
+  0.507378396004105004571665876613293881214L,
+  0.348875146873077771786031143309488031474L,
+  0.129717394366372388305812826098578876617L,
+  0.371316171885006633822161450072014737125L,
+  0.550162123072752251266003313454007126843L,
+  0.822171979807031777641565545578299345138L,
+  0.75171547658293988559512988487590040284L,
+  0.329537443635543385256682239450819107475L,
+  0.159687481361602477899361671181005148163L,
+  0.788720723813465707294018605642035752394L,
+  0.1031423865826241581828274573741444954832L,
+  0.1925157943560383416361499973635531049876L,
+  0.771893047929845637497166550933789470487L,
+  0.681189132819106369246924892765206195007L,
+  0.180608768713011918428603967211913698036L,
+  0.0869303304414286810402604783458783443746L,
+  0.63890744831302111307395023326393791462L,
+  0.531696069328179766265158866360885671855L,
+  0.557357572478102464274432325432400878297L,
+  0.765306589402879669413870462450921612475L,
+  0.0941202729911292570046371838018359372082L,
+  0.902333472113108821746674873990738636997L,
+  0.165516366160118370026922089795742876131L,
+  0.0317472434880413278821576585103363607157L,
+  0.706107972335163251316361316043030620453L,
+  0.832472986392763388669796997227437520663L,
+  0.769939001736494466971306881365718899207L,
+  0.83093185023987157595917781461722256739L,
+  0.1143834825195292986705373579359335590854L,
+  0.283326017120251162360393258571085609729L,
+  0.301605389836836671045912951769199753359L,
+  0.855854391727628505548518803309296566532L,
+  0.089938332734139699450960989316391404434L,
+  0.310225946153425747793112265736973169299L,
+  0.96854812596413627994714291059983626441L,
+  0.279767360423571836833858253122290577619L,
+  0.113545981876279916290815278422648489865L,
+  0.943101270554056170747004305255027939268L,
+  0.812274724978801470221644756549524210083L,
+  0.9678011347395447510273023981530290554L,
+  0.514795136336602722878788704708053145966L,
+  0.50560840616487841567055789750974674943L,
+  0.127654209842819812026603428361923670116L,
+  0.273727399985085036497076514726791191553L,
+  0.964821797874257789566527793136425594082L,
+  0.853392912197074096341317268954834390727L,
+  0.914236806849585335611299422695886165192L,
+  0.277335361137281076359079507288838688219L,
+  0.865708792613433194377422367016717680172L,
+  0.761947879929658945814013586634774725302L,
+  0.276975494384441865188273120642155257808L,
+  0.0678895000408079241574268817560335475378L,
+  0.929521528875748672899760603996998763144L,
+  0.44453824299955605846877126958322272066L,
+  0.444318159420536625223816052640621069982L,
+  0.42913762214779045597457741573009821738L,
+  0.98994873802399078252493194985812582986L,
+  0.93065975343157446755652147574743540714L,
+  0.821639107980128580428385838275355600123L,
+  0.031337950421787684669360817154012683829L,
+  0.839516942888416107002513723437531514126L,
+  0.785501376812531727571251496474527490183L,
+  0.247978681554054401906203846371863203863L,
+  0.985774009303654108868853196421131421187L,
+  0.635347409930173147315815281304257764708L,
+  0.40087985483327734740658289294086718422L,
+  0.374059729085540852289174052767716446502L,
+  0.367226053686019780853702834825808619761L,
+  0.166424328898161772576167906091392715805L,
+  0.838115185925303343477055122060982270143L,
+  0.829549684532006011608856001441012324216L,
+  0.059867788238866724897690318151639504149L,
+  0.0253429734563284738087263277549928280781L,
+  0.953315773263436653713242828719775352192L,
+  0.597536998796130884349662459732857817956L,
+  0.0320571321493587106457025626624408278814L,
+  0.477506594803204144826488443400695434979L,
+  0.285541992141868221897101891229394096707L,
+  0.764190678950226854486968785768647879005L,
+  0.895489776830293129781335242249167913705L,
+  0.570740793029533496018083006013191540077L,
+  0.938316924714444954315906773563465846538L,
+  0.56157168133328941481074926451373503549L,
+  0.354184283860505415751320741296599995231L,
+  0.778294119283540721552919906619543293274L,
+  0.434953011661757598127924745629053141294L,
+  0.37156491156117895854194599593687697796L,
+  0.898767478977082606651667259049374990828L,
+  0.21819365919403129548458400006737057993L,
+  0.278163373548978939704874687746089548269L,
+  0.1089005781457343817756962209721573336768L,
+  0.85152888717082537570752846642305937149L,
+  0.2419243481761527583754399630924438738944L,
+  0.69442654829377168239365980152821108287L,
+  0.1512336533453368944625038813397779875445L,
+  0.617712962492924013140729661730350287525L,
+  0.935400762900002313827620435729493050175L,
+  0.79357339902161958573967958515254111256L,
+  0.734250188990467683521536859220675412636L,
+  0.748517858206364295837674601491185485078L,
+  0.82520014781239194590337105462135253912L,
+  0.1240649365160101108753438662971422995014L,
+  0.479769236133748631678854875312914195598L,
+  0.171269492636258554036912204801376697988L,
+  0.833025419245729049117746814929956940986L,
+  0.354429813451205200141830318428840891828L,
+  0.474809123369344367691189422128776480146L,
+  0.692239655770541262287308180705629028608L,
+  0.271366901464125731413801963807240905363L,
+  0.561330233800121182669429172066686942393L,
+  0.0695868383638479426233449148171168522655L,
+  0.627576910684655924911125045007979454546L,
+  0.423331542652214907262628326674848471962L,
+  0.354725031694671387579309719042578580595L,
+  0.312419264533145363169359084710774849388L,
+  0.167819037053563697473931127337972350099L,
+  0.99960836112225007722014049168024866743L,
+  0.820598666739967434549389339457492152643L,
+  0.689495024741546551592649728378054973272L,
+  0.831455766750164249604246627812180304754L,
+  0.515538871956858025876039391193370146897L,
+  0.011724889011994886395520178564059346913L,
+  0.587485679650311054946861235938601293477L,
+  0.113010564497810081892271654273794311467L,
+  0.381261245177928587613552004600730320213L,
+  0.466933821322235841488251157296771536952L,
+  0.646965031311287534221872388017990968767L,
+  0.1811101995014685369939482409137380098995L,
+  0.247896943912780884738461558340983142645L,
+  0.989351208835640462928338658234638846217L,
+  0.924605283008839688813842975338096967047L,
+  0.232010860908797395869871518793187418799L,
+  0.90274859050487649728273938229764570199L,
+  0.664078588165617572819884867627266650356L,
+  0.532118803501055886836301096658125012493L,
+  0.854049566634563277356849166147057535436L,
+  0.756477818237029394317820041473365538516L,
+  0.84578312219074068824832318394711642503L,
+  0.169914247711153055959592721695068126213L,
+  0.50848961455796310913779527189620088788L,
+  0.715231849280217810525151667911662744854L,
+  0.59666585539439202929452535210623694053L,
+  0.72343578283497935670188130618697814035L,
+  0.982228826906846431195861293729527133844L,
+  0.98068755339273420823366752414155272462L,
+  0.805277135157133623039231303778838094716L,
+  0.840154168539481858495551656699708834713L,
+  0.41783933695481411993780663692806809771L,
+  0.070981740672048589027432942629842679319L,
+  0.96664795205679820656636930925268162457L,
+  0.155178444292580006807274171645675417735L,
+  0.276407670358590477524508525465318694191L,
+  0.1054964292635286397825421772930229411286L,
+  0.354205947516472098240472076653525679013L,
+  0.583456972150065135260312420865576513532L,
+  0.338643867118430587299252775116788065723L,
+  0.146467849593879827355466951871059968293L,
+  0.0639448405747942007938896940026153617467L,
+  0.846536583732599902600485371566229612512L,
+  0.599728399399342923058515558777947417833L,
+  0.140387922890235239162309673093379598453L,
+  0.1613160217694973394489944660056369626715L,
+  0.151848582163159668039725770584081620756L,
+  0.663365628518336712743995463098831995163L,
+  0.752166976367665534193146852225632451022L,
+  0.911311062532571765386023433215793121138L,
+  0.692490353635171096989434518397248623866L,
+  0.990512559245857089458980255962574316578L,
+  0.135026433195284768293027372762691869458L,
+  0.82220389984592453325084678614092535756L,
+  0.385471328555065081327630832374267955206L,
+  0.108251633446048989722318564345306848022L,
+  0.429090236713339412878596384043906547999L,
+  0.983421429305507423332481562450757515935L,
+  0.0163920521681887489391607174895946079877L,
+  0.634276319224952361916496263299135133978L,
+  0.53164375434562160610011793242431018808L,
+  0.92801127390978303506935520414803575609L,
+  0.708525110316144414918831897015500504675L,
+  0.722458240987313977092360928226487539067L,
+  0.432028911017122242491499522489684865593L,
+  0.0001754664935299182587224394863719217640876L,
+  0.384266658709383389800969077999970411222L,
+  0.284964603427904715461598563563830112021L,
+  0.1541443027599544245798778784933517572175L,
+  0.958338802063400795313378181913830622686L,
+  0.636927309395779701122460610729048286624L,
+  0.0963946603295477475541191401069719222887L,
+  0.0995190436935072136624400787867889652226L,
+  0.294220607618706451139091631947946466958L,
+  0.180831121994104393794487526888221966969L,
+  0.635403971764105414766318934434540385347L,
+  0.333929089029202997624323059191296321991L,
+  0.498378678845335358166419186432789231466L,
+  0.79769145046274241777533636404451138797L,
+  0.269285209299779365433012558225847643041L,
+  0.110524792990169183853219228066613162975L,
+  0.252694136970632381193559370648931722998L,
+  0.447232396115786457656991370803052298542L,
+  0.136974250599080636030665381278567779455L,
+  0.67243844394695156696032636816317618716L,
+  0.280265952023932940327982570523639258968L,
+  0.960024614746466668963206103951264089396L,
+  0.83595031847062668345135859090890188348L,
+  0.127840531352213174558502027846545305518L,
+  0.333183884044346150282363573006579940787L,
+  0.480504229384957927069515726093850498988L,
+  0.768498913093287331615443023486434378468L,
+  0.940413493411219283289136687423264928073L,
+  0.548648592555019577089750862504091661273L,
+  0.57814360039222917342516307696519676185L,
+  0.752806287004316513987155718410926624384L,
+  0.328211694133870995310455637563825433641L,
+  0.153907665030571878436793446358668488233L,
+  0.694742699178286984320321272531890059073L,
+  0.25435421168640709608520313542078743933L,
+  0.61387638208113240104328972389071498415L,
+  0.250476311300881635346483832554226742174L,
+  0.345809836897231980069633800588202859833L,
+  0.343083789419841923142937785323119943136L,
+  0.319174378869537109008405333721782689566L,
+  0.158111477528301687597604325494967120237L,
+  0.244000500810322900960285910812181460829L,
+  0.23179705702278726416861948783067588642L,
+  0.54682924846605062799436489677774333716L,
+  0.549008127982055819651521103931442895238L,
+  0.262583044663608129412956518168777449925L,
+  0.00126513153702681878410946802239924274583L,
+  0.942613696151881635585127791325641506562L,
+  0.352686443706689559388572818776843215083L,
+  0.90689998425792029984240460273113807702L,
+  0.867511650419363872431681377574762734184L,
+  0.280671949468087158951852027769013272607L,
+  0.162038690615698843560500386213858514888L,
+  0.71179364933082197276587611716632482938L,
+  0.0967402545497599384082792036477527703823L,
+  0.465040868275334873151726613879001199556L,
+  0.621004503662486553272117361134036130264L,
+  0.732964940483576253705474121238830973672L,
+  0.423374863473223783721502627532544136435L,
+  0.490338535425760290944218064913112069833L,
+  0.0243433415988311460557576165617657963508L,
+  0.0502339423891456566961808478207103394328L,
+  0.57668149339841029115236469576085057193L,
+  0.654589079253818313716855283653923913987L,
+  0.1099728579252794893221972017964445810946L,
+  0.95067113980240197864048876003001477344L,
+  0.271440369581834169312179003284604198334L,
+  0.067152474145377434478612939162576726923L,
+  0.77434193893477314687843638736266814713L,
+  0.2095679937785625400917773512669417520444L,
+  0.7681370807102749183539277908648691358L,
+  0.24472807400083103884984122018932641814L,
+  0.191307162486577428460074174309309551616L,
+  0.637215617752531571162184184570005111405L,
+  0.858141525396878877938747690015117846998L,
+  0.338400625200720062249435065450813258281L,
+  0.564981422008979753676981861330327611986L,
+  0.809460314261206431741632790718777271837L,
+  0.879343403409393604462128113991125533726L,
+  0.284697509116613252542034824007026845569L,
+  0.497023470648395180497606069099534119801L,
+  0.650004713241995983979792197286941523L,
+  0.1177129995341492896184329340448111002318L,
+  0.923625966014428778639333261268345799732L,
+  0.698837131343914189577155394009532120604L,
+  0.28242326745092132457477019796509942259L,
+  0.70025600885251684699238650783454037429L,
+  0.876659050276528114198964471020380705343L,
+  0.52914892693002332233566353042454639365L,
+  0.319860854431864688430502078275989809115L,
+  0.83483115610648557287441551698147898778L,
+  0.727639064249568383685922880431792837046L,
+  0.58743287662861037184349933549802687836L,
+  0.510383231616356949495559076196319035197L,
+  0.00229935944348919214521608305418404052343L,
+  0.799567224020488433652933994297769381902L,
+  0.343651210821093611687224166251624444254L,
+  0.405948097827175151257603419529941300798L,
+  0.456473183882957921169800992232941517586L,
+  0.570248304776860782392105323292264026118L,
+  0.534779754769153667870756893044557559557L,
+  0.472965511839676757434979299779809656808L,
+  0.137335340499076127280155831169214403285L,
+  0.51975901660926295231312276736119435645L,
+  0.8085867293332018994761547260739912451L,
+  0.812416413241484848007226874256949892893L,
+  0.852994977709961112714176162016389410712L,
+  0.95270886248643660114015239563660004248L,
+  0.845133719240648570417568652136630304138L,
+  0.4074980021816323645978397907609428101L,
+  0.335850514497730546494305840184055599972L,
+  0.0882622233237065445998153436898044995127L,
+  0.936467561027640943446178111237050277205L,
+  0.56676472173638044722431698799123577376L,
+  0.528427769051008704179988533062745663408L,
+  0.460890427579778855697205646060084318038L,
+  0.754971897131798313468797543428083655928L,
+  0.980733597969419782109470537306886067907L,
+  0.204362127415649555111877580124343815074L,
+  0.424822548090499017266619697426652494042L,
+  0.790847149074521364262028407892114384257L,
+  0.559922683392730473870877613727301497865L,
+  0.779993507158626042106006393237738208875L,
+  0.30516368089713691312418593599115685319L,
+  0.68918765842229398168455844072311006826L,
+  0.972291357858071465096079542885284602882L,
+  0.92204286423973856982373873105566928589L,
+  0.488649453783638471576482476648021023315L,
+  0.467124744623849284659862825278549932824L,
+  0.548051233865943557014854568009331816852L,
+  0.306838990296265483205551142903402056051L,
+  0.497005516835688988273805238236922199451L,
+  0.341504433884138135798086132528045458722L,
+  0.969816416247460790089503289400709886528L,
+  0.63656435610220447227337751650167349487L,
+  0.83588076122262875881859751942918794857L,
+  0.647568600604975972308348018018445212894L,
+  0.916061870307308870029862807808332479077L,
+  0.767988745496844638880672392122527991445L,
+  0.1623230195628039449666927123215281227666L,
+  0.0791082835859634251558587844284289799848L,
+  0.575858643610197202634665099752882990844L,
+  0.559159434263749620344702466000799724913L,
+  0.063765998380760211208741798736948488376L,
+  0.230557913975359017084357477142151415967L,
+  0.702854691657277602758421942319022953845L,
+  0.789516660466782621905392733079230211954L,
+  0.491496186820051632244513986127898500904L,
+  0.171499215418269578563458417238340672634L,
+  0.626470061831746666081979158043673024967L,
+  0.258903137813870706268979320963343541457L,
+  0.64156850108405218894694811301875120511L,
+  0.534043520260340661507140771088018906496L,
+  0.388275182018399247097875416106759899469L,
+  0.920936363560998030495046998224168162945L,
+  0.826139404694006088220407338888245165242L,
+  0.343561253523163451528918423980552161597L,
+  0.921521003270491194867019217479780072647L,
+  0.656212467754097185125864111703195343744L,
+  0.628186262290474398328350301885606581942L,
+  0.573227336542237665153422986363073650388L,
+  0.94178975003001342039795597242477049832L,
+  0.0408103561362355768975182155847755354614L,
+  0.382581672073273072487550945526454964287L,
+  0.152851256046525520308098129538613498254L,
+  0.966735024597183045592313880114075824298L,
+  0.215564894798334550271993595018433286244L,
+  0.776491530531523589201618375156272004616L,
+  0.912460554179311241821569665648929177608L,
+  0.632880016212040018958086886452474382272L,
+  0.711577891112709305169603082360885583086L,
+  0.1120655756066491784920471129299439607153L,
+  0.691106483958832651050573402690448368687L,
+  0.227442567846797646970770128970529357636L,
+  0.837435613090485891584882062239924101455L,
+  0.524389161590691896070067767400758142565L,
+  0.591360583466508186135247682666313136762L,
+  0.103155847462960450706124014839446958843L,
+  0.98360160577671960281465138408293984545L,
+  0.197665014114674630647437622579741018817L,
+  0.1099709194312379594014239398842185159354L,
+  0.394053373921474751303577685990936074485L,
+  0.94945354787200894450508557094182436657L,
+  0.372593716084661547440393809983835348274L,
+  0.62514674616343692328572382301636412566L,
+  0.2001871481416310130073795585638383984926L,
+  0.148432902421401306477690922498335475507L,
+  0.687921673269487018193347305425182239764L,
+  0.470940334348984370262797433659013738143L,
+  0.1592476430730276812200821020958787823795L,
+  0.296776110696565927524970058176467314578L,
+  0.1491253105142218631726813695413369166796L,
+  0.579194717868638955003571989739802264354L,
+  0.0730543936466744761440131951539370917776L,
+  0.941296077873340797733875467209629660594L,
+  0.76720024949523806992504865943580486187L,
+  0.419526107681583337049761526455092560735L,
+  0.00688594806937144144337797612615981618743L,
+  0.931682704636487927763651991274577493318L,
+  0.660524215847727125058815911433184924133L,
+  0.71780972384903067744609138100002205676L,
+  0.02961791918271995070621856302848439458175L,
+  0.692791206212428997136050006631240567502L,
+  0.162762426697948445642880183096693062538L,
+  0.183637795551464341949019870428026949035L,
+  0.51263789620316407488619761125039609046L,
+  0.90238698122728366178818828411640824056L,
+  0.229784208410123517024401367798925386038L,
+  0.227218480059027721044118324890061381517L,
+  0.6555059570778176955459672492237825867L,
+  0.929815767583615624563413584598741896834L,
+  0.188559597559312695774663933876436875041L,
+  0.396184448063913762028147791554346199354L,
+  0.656329540957568516760105602115555736073L,
+  0.1410678455413176345310401990667063246115L,
+  0.621004667838855651847651367745487628637L,
+  0.01277988784767030635209958407461792778387L,
+  0.69482142276844418673788732511112265014L,
+  0.925705031133221932065307191539105635005L,
+  0.925744341385232535963050430363763081603L,
+  0.24189467813699258571134382505828701386L,
+  0.646009544609703485845605410919901799L,
+  0.051119212999532673562206731603906295406L,
+  0.85076142804383409765024452942896578158L
+};
index 7158c8f109c9e5403b90b9c0a4441b76a48ff311..2b6a9fbf1e58212faa7e0a28acf8767aa6dd9114 100644 (file)
@@ -36,162 +36,32 @@ SIGNATURE_CHECK (frexp, double, (double, int *));
 #undef exp
 #define exp exponent
 
-static double
-my_ldexp (double x, int d)
-{
-  for (; d > 0; d--)
-    x *= 2.0;
-  for (; d < 0; d++)
-    x *= 0.5;
-  return x;
-}
+#undef INFINITY
+#undef NAN
+
+#define DOUBLE double
+/* The use of 'volatile' guarantees that excess precision bits are dropped
+   when dealing with denormalized numbers.  It is necessary on x86 systems
+   where double-floats are not IEEE compliant by default, to avoid that the
+   results become platform and compiler option dependent.  'volatile' is a
+   portable alternative to gcc's -ffloat-store option.  */
+#define VOLATILE volatile
+#define ISNAN isnand
+#define INFINITY Infinityd ()
+#define NAN NaNd ()
+#define L_(literal) literal
+#define MINUS_ZERO minus_zerod
+#define MAX_EXP DBL_MAX_EXP
+#define MIN_EXP DBL_MIN_EXP
+#define MIN_NORMAL_EXP DBL_MIN_EXP
+#define FREXP frexp
+#define RANDOM randomd
+#include "test-frexp.h"
 
 int
 main ()
 {
-  int i;
-  /* The use of 'volatile' guarantees that excess precision bits are dropped
-     when dealing with denormalized numbers.  It is necessary on x86 systems
-     where double-floats are not IEEE compliant by default, to avoid that the
-     results become platform and compiler option dependent.  'volatile' is a
-     portable alternative to gcc's -ffloat-store option.  */
-  volatile double x;
-
-  { /* NaN.  */
-    int exp = -9999;
-    double mantissa;
-    x = NaNd ();
-    mantissa = frexp (x, &exp);
-    ASSERT (isnand (mantissa));
-  }
-
-  { /* Positive infinity.  */
-    int exp = -9999;
-    double mantissa;
-    x = Infinityd ();
-    mantissa = frexp (x, &exp);
-    ASSERT (mantissa == x);
-  }
-
-  { /* Negative infinity.  */
-    int exp = -9999;
-    double mantissa;
-    x = - Infinityd ();
-    mantissa = frexp (x, &exp);
-    ASSERT (mantissa == x);
-  }
-
-  { /* Positive zero.  */
-    int exp = -9999;
-    double mantissa;
-    x = 0.0;
-    mantissa = frexp (x, &exp);
-    ASSERT (exp == 0);
-    ASSERT (mantissa == x);
-    ASSERT (!signbit (mantissa));
-  }
-
-  { /* Negative zero.  */
-    int exp = -9999;
-    double mantissa;
-    x = minus_zerod;
-    mantissa = frexp (x, &exp);
-    ASSERT (exp == 0);
-    ASSERT (mantissa == x);
-    ASSERT (signbit (mantissa));
-  }
-
-  for (i = 1, x = 1.0; i <= DBL_MAX_EXP; i++, x *= 2.0)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5);
-    }
-  for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5);
-    }
-  for (; i >= DBL_MIN_EXP - 100 && x > 0.0; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5);
-    }
-
-  for (i = 1, x = -1.0; i <= DBL_MAX_EXP; i++, x *= 2.0)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5);
-    }
-  for (i = 1, x = -1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5);
-    }
-  for (; i >= DBL_MIN_EXP - 100 && x < 0.0; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5);
-    }
-
-  for (i = 1, x = 1.01; i <= DBL_MAX_EXP; i++, x *= 2.0)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.505);
-    }
-  for (i = 1, x = 1.01; i >= DBL_MIN_EXP; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.505);
-    }
-  for (; i >= DBL_MIN_EXP - 100 && x > 0.0; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa >= 0.5);
-      ASSERT (mantissa < 1.0);
-      ASSERT (mantissa == my_ldexp (x, - exp));
-    }
-
-  for (i = 1, x = 1.73205; i <= DBL_MAX_EXP; i++, x *= 2.0)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.866025);
-    }
-  for (i = 1, x = 1.73205; i >= DBL_MIN_EXP; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.866025);
-    }
-  for (; i >= DBL_MIN_EXP - 100 && x > 0.0; i--, x *= 0.5)
-    {
-      int exp = -9999;
-      double mantissa = frexp (x, &exp);
-      ASSERT (exp == i || exp == i + 1);
-      ASSERT (mantissa >= 0.5);
-      ASSERT (mantissa < 1.0);
-      ASSERT (mantissa == my_ldexp (x, - exp));
-    }
+  test_function ();
 
   return 0;
 }
diff --git a/gl/tests/test-frexp.h b/gl/tests/test-frexp.h
new file mode 100644 (file)
index 0000000..71001df
--- /dev/null
@@ -0,0 +1,179 @@
+/* Test of splitting a double into fraction and mantissa.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+static DOUBLE
+my_ldexp (DOUBLE x, int d)
+{
+  for (; d > 0; d--)
+    x *= L_(2.0);
+  for (; d < 0; d++)
+    x *= L_(0.5);
+  return x;
+}
+
+static void
+test_function (void)
+{
+  int i;
+  VOLATILE DOUBLE x;
+
+  { /* NaN.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = NAN;
+    mantissa = FREXP (x, &exp);
+    ASSERT (ISNAN (mantissa));
+  }
+
+  { /* Positive infinity.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = INFINITY;
+    mantissa = FREXP (x, &exp);
+    ASSERT (mantissa == x);
+  }
+
+  { /* Negative infinity.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = - INFINITY;
+    mantissa = FREXP (x, &exp);
+    ASSERT (mantissa == x);
+  }
+
+  { /* Positive zero.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = L_(0.0);
+    mantissa = FREXP (x, &exp);
+    ASSERT (exp == 0);
+    ASSERT (mantissa == x);
+    ASSERT (!signbit (mantissa));
+  }
+
+  { /* Negative zero.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = MINUS_ZERO;
+    mantissa = FREXP (x, &exp);
+    ASSERT (exp == 0);
+    ASSERT (mantissa == x);
+    ASSERT (signbit (mantissa));
+  }
+
+  for (i = 1, x = L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.5));
+    }
+  for (i = 1, x = L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.5));
+    }
+  for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.5));
+    }
+
+  for (i = 1, x = - L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == - L_(0.5));
+    }
+  for (i = 1, x = - L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == - L_(0.5));
+    }
+  for (; i >= MIN_EXP - 100 && x < L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == - L_(0.5));
+    }
+
+  for (i = 1, x = L_(1.01); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.505));
+    }
+  for (i = 1, x = L_(1.01); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.505));
+    }
+  for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa >= L_(0.5));
+      ASSERT (mantissa < L_(1.0));
+      ASSERT (mantissa == my_ldexp (x, - exp));
+    }
+
+  for (i = 1, x = L_(1.73205); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.866025));
+    }
+  for (i = 1, x = L_(1.73205); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.866025));
+    }
+  for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i || exp == i + 1);
+      ASSERT (mantissa >= L_(0.5));
+      ASSERT (mantissa < L_(1.0));
+      ASSERT (mantissa == my_ldexp (x, - exp));
+    }
+
+  /* Randomized tests.  */
+  for (i = 0; i < SIZEOF (RANDOM); i++)
+    {
+      x = L_(20.0) * RANDOM[i] - L_(10.0); /* -10.0 <= x <= 10.0 */
+      {
+        int exp = -9999;
+        DOUBLE mantissa = FREXP (x, &exp);
+        ASSERT (x == my_ldexp (mantissa, exp));
+      }
+    }
+}
index ca28f8a1c04d2451efbf4bb78990acf0abe36e10..c5e07b256a96d7c3d8255251874454a0f2f17f7c 100644 (file)
@@ -37,6 +37,18 @@ SIGNATURE_CHECK (frexpl, long double, (long double, int *));
 #undef exp
 #define exp exponent
 
+#undef INFINITY
+#undef NAN
+
+#define DOUBLE long double
+#define VOLATILE
+#define ISNAN isnanl
+#define INFINITY Infinityl ()
+#define NAN NaNl ()
+#define L_(literal) literal##L
+#define MINUS_ZERO minus_zerol
+#define MAX_EXP LDBL_MAX_EXP
+#define MIN_EXP LDBL_MIN_EXP
 /* On MIPS IRIX machines, LDBL_MIN_EXP is -1021, but the smallest reliable
    exponent for 'long double' is -964.  Similarly, on PowerPC machines,
    LDBL_MIN_EXP is -1021, but the smallest reliable exponent for 'long double'
@@ -49,161 +61,18 @@ SIGNATURE_CHECK (frexpl, long double, (long double, int *));
 #else
 # define MIN_NORMAL_EXP LDBL_MIN_EXP
 #endif
-
-static long double
-my_ldexp (long double x, int d)
-{
-  for (; d > 0; d--)
-    x *= 2.0L;
-  for (; d < 0; d++)
-    x *= 0.5L;
-  return x;
-}
+#define FREXP frexpl
+#define RANDOM randoml
+#include "test-frexp.h"
 
 int
 main ()
 {
-  int i;
-  long double x;
   DECL_LONG_DOUBLE_ROUNDING
 
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
-  { /* NaN.  */
-    int exp = -9999;
-    long double mantissa;
-    x = NaNl ();
-    mantissa = frexpl (x, &exp);
-    ASSERT (isnanl (mantissa));
-  }
-
-  { /* Positive infinity.  */
-    int exp = -9999;
-    long double mantissa;
-    x = Infinityl ();
-    mantissa = frexpl (x, &exp);
-    ASSERT (mantissa == x);
-  }
-
-  { /* Negative infinity.  */
-    int exp = -9999;
-    long double mantissa;
-    x = - Infinityl ();
-    mantissa = frexpl (x, &exp);
-    ASSERT (mantissa == x);
-  }
-
-  { /* Positive zero.  */
-    int exp = -9999;
-    long double mantissa;
-    x = 0.0L;
-    mantissa = frexpl (x, &exp);
-    ASSERT (exp == 0);
-    ASSERT (mantissa == x);
-    ASSERT (!signbit (mantissa));
-  }
-
-  { /* Negative zero.  */
-    int exp = -9999;
-    long double mantissa;
-    x = minus_zerol;
-    mantissa = frexpl (x, &exp);
-    ASSERT (exp == 0);
-    ASSERT (mantissa == x);
-    ASSERT (signbit (mantissa));
-  }
-
-  for (i = 1, x = 1.0L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5L);
-    }
-  for (i = 1, x = 1.0L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5L);
-    }
-
-  for (i = 1, x = -1.0L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5L);
-    }
-  for (i = 1, x = -1.0L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x < 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5L);
-    }
-
-  for (i = 1, x = 1.01L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.505L);
-    }
-  for (i = 1, x = 1.01L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.505L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa >= 0.5L);
-      ASSERT (mantissa < 1.0L);
-      ASSERT (mantissa == my_ldexp (x, - exp));
-    }
-
-  for (i = 1, x = 1.73205L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.866025L);
-    }
-  for (i = 1, x = 1.73205L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.866025L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i || exp == i + 1);
-      ASSERT (mantissa >= 0.5L);
-      ASSERT (mantissa < 1.0L);
-      ASSERT (mantissa == my_ldexp (x, - exp));
-    }
+  test_function ();
 
   return 0;
 }
index f6e61a782a5628f10d8596d434a717fbcff8025b..25be63a54df5e780dd3716fa3d4c67d12c22f19b 100644 (file)
 choke me
 #endif
 
+#ifndef HUGE_VALF
+# error HUGE_VALF should be defined
+choke me
+#endif
+
+#ifndef HUGE_VAL
+# error HUGE_VAL should be defined
+choke me
+#endif
+
+#ifndef HUGE_VALL
+# error HUGE_VALL should be defined
+choke me
+#endif
+
+#include "macros.h"
+
 #if 0
 /* Check that NAN expands into a constant expression.  */
 static float n = NAN;
@@ -34,7 +51,17 @@ static float n = NAN;
    This is a separate function because IRIX 6.5 "cc -O" miscompiles an
    'x == x' test.  */
 static int
-numeric_equal (double x, double y)
+numeric_equalf (float x, float y)
+{
+  return x == y;
+}
+static int
+numeric_equald (double x, double y)
+{
+  return x == y;
+}
+static int
+numeric_equall (long double x, long double y)
 {
   return x == y;
 }
@@ -44,10 +71,16 @@ main (void)
 {
   double d = NAN;
   double zero = 0.0;
-  if (numeric_equal (d, d))
-    return 1;
+  ASSERT (!numeric_equald (d, d));
+
   d = HUGE_VAL;
-  if (!numeric_equal (d, 1.0 / zero))
-    return 1;
+  ASSERT (numeric_equald (d, 1.0 / zero));
+
+  ASSERT (numeric_equalf (HUGE_VALF, HUGE_VALF + HUGE_VALF));
+
+  ASSERT (numeric_equald (HUGE_VAL, HUGE_VAL + HUGE_VAL));
+
+  ASSERT (numeric_equall (HUGE_VALL, HUGE_VALL + HUGE_VALL));
+
   return 0;
 }
index ee721de30325afc35ed28c7cf6d7657a89468fc5..951b3586fc916a342abd71e77759000535738a9b 100644 (file)
--- a/maint.mk
+++ b/maint.mk
@@ -178,6 +178,13 @@ syntax-check: $(local-check)
 #     Regular expression (ERE) denoting either a forbidden construct
 #     or a required construct.  Those arguments are exclusive.
 #
+#  exclude
+#
+#     Regular expression (ERE) denoting lines to ignore that matched
+#     a prohibit construct.  For example, this can be used to exclude
+#     comments that mention why the nearby code uses an alternative
+#     construct instead of the simpler prohibited construct.
+#
 #  in_vc_files | in_files
 #
 #     grep-E-style regexp denoting the files to check.  If no files
@@ -212,6 +219,17 @@ syntax-check: $(local-check)
 # when filtering by name via in_files, we explicitly filter out matching
 # names here as well.
 
+# Initialize each, so that envvar settings cannot interfere.
+export require =
+export prohibit =
+export exclude =
+export in_vc_files =
+export in_files =
+export containing =
+export non_containing =
+export halt =
+export with_grep_options =
+
 # By default, _sc_search_regexp does not ignore case.
 export ignore_case =
 _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :)
@@ -231,6 +249,9 @@ define _sc_search_regexp
    test -z "$$prohibit" && test -z "$$require"                         \
      && { msg='Should specify either prohibit or require'              \
           $(_sc_say_and_exit) } || :;                                  \
+   test -z "$$prohibit" && test -n "$$exclude"                         \
+     && { msg='Use of exclude requires a prohibit pattern'             \
+          $(_sc_say_and_exit) } || :;                                  \
    test -n "$$in_vc_files" && test -n "$$in_files"                     \
      && { msg='Cannot specify both in_vc_files and in_files'           \
           $(_sc_say_and_exit) } || :;                                  \
@@ -258,6 +279,7 @@ define _sc_search_regexp
    if test -n "$$files"; then                                          \
      if test -n "$$prohibit"; then                                     \
        grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \
+         | grep -vE "$${exclude-^$$}"                                  \
          && { msg="$$halt" $(_sc_say_and_exit) } || :;                 \
      else                                                              \
        grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \
@@ -305,11 +327,10 @@ sc_prohibit_atoi_atof:
 # Use STREQ rather than comparing strcmp == 0, or != 0.
 sp_ = strcmp *\(.+\)
 sc_prohibit_strcmp:
-       @grep -nE '! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)'         \
-           $$($(VC_LIST_EXCEPT))                                       \
-         | grep -vE ':# *define STRN?EQ\(' &&                          \
-         { echo '$(ME): replace strcmp calls above with STREQ/STRNEQ'  \
-               1>&2; exit 1; } || :
+       @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)'         \
+       exclude=':# *define STRN?EQ\('                                  \
+       halt='$(ME): replace strcmp calls above with STREQ/STRNEQ'      \
+         $(_sc_search_regexp)
 
 # Pass EXIT_*, not number, to usage, exit, and error (when exiting)
 # Convert all uses automatically, via these two commands:
@@ -434,7 +455,8 @@ sc_prohibit_quotearg_without_use:
 
 # Don't include quote.h unless you use one of its functions.
 sc_prohibit_quote_without_use:
-       @h='quote.h' re='\<quote(_n)? *\(' $(_sc_header_without_use)
+       @h='quote.h' re='\<quote((_n)? *\(|_quoting_options\>)' \
+         $(_sc_header_without_use)
 
 # Don't include this header unless you use one of its functions.
 sc_prohibit_long_options_without_use:
@@ -709,12 +731,10 @@ _gl_translatable_diag_func_re ?= error
 # Look for diagnostics that aren't marked for translation.
 # This won't find any for which error's format string is on a separate line.
 sc_unmarked_diagnostics:
-       @grep -nE                                                       \
-           '\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
-               $$($(VC_LIST_EXCEPT))                                   \
-         | grep -Ev '(_|ngettext ?)\(' &&                              \
-         { echo '$(ME): found unmarked diagnostic(s)' 1>&2;            \
-           exit 1; } || :
+       @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
+       exclude='(_|ngettext ?)\('                                      \
+       halt='$(ME): found unmarked diagnostic(s)'                      \
+         $(_sc_search_regexp)
 
 # Avoid useless parentheses like those in this example:
 # #if defined (SYMBOL) || defined (SYM2)
@@ -975,10 +995,10 @@ sc_redundant_const:
          $(_sc_search_regexp)
 
 sc_const_long_option:
-       @grep '^ *static.*struct option ' $$($(VC_LIST_EXCEPT))         \
-         | grep -Ev 'const struct option|struct option const' && {     \
-             echo 1>&2 '$(ME): add "const" to the above declarations'; \
-             exit 1; } || :
+       @prohibit='^ *static.*struct option '                           \
+       exclude='const struct option|struct option const'               \
+       halt='$(ME): add "const" to the above declarations'             \
+         $(_sc_search_regexp)
 
 NEWS_hash =                                                            \
   $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p'             \
@@ -1235,7 +1255,8 @@ announcement: NEWS ChangeLog $(rel-files)
            --gpg-key-id=$(gpg_key_ID)                                  \
            --news=$(srcdir)/NEWS                                       \
            --bootstrap-tools=$(bootstrap-tools)                        \
-           --gnulib-version=$(gnulib-version)                          \
+           $$(case ,$(bootstrap-tools), in (*,gnulib,*)                \
+              echo --gnulib-version=$(gnulib-version);; esac)          \
            --no-print-checksums                                        \
            $(addprefix --url-dir=, $(url_dir_list))
 
@@ -1312,7 +1333,7 @@ alpha beta stable: $(local-check) writable-files $(submodule-checks)
        $(MAKE) vc-diff-check
        $(MAKE) news-check
        $(MAKE) distcheck
-       $(MAKE) dist XZ_OPT=-9ev
+       $(MAKE) dist
        $(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
        $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@