gnutls-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU gnutls branch, master, updated. gnutls_3_0_17-17-g44f8de3


From: Simon Josefsson
Subject: [SCM] GNU gnutls branch, master, updated. gnutls_3_0_17-17-g44f8de3
Date: Wed, 21 Mar 2012 08:46:40 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gnutls".

http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=44f8de309761f0d8125a587541d012188c1e9a09

The branch, master has been updated
       via  44f8de309761f0d8125a587541d012188c1e9a09 (commit)
       via  2e3f8a88b7514942b6f6844c88b43dcf80ed4243 (commit)
       via  a9ab41c4a5207e280dda6c47aa34dff82334f030 (commit)
      from  9567d93c07f87ecb5c8560b7a45125de28710bc1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 44f8de309761f0d8125a587541d012188c1e9a09
Author: Simon Josefsson <address@hidden>
Date:   Wed Mar 21 09:46:30 2012 +0100

    Generated.

commit 2e3f8a88b7514942b6f6844c88b43dcf80ed4243
Author: Simon Josefsson <address@hidden>
Date:   Wed Mar 21 09:45:12 2012 +0100

    Build functions/ files (this should be done by listing all files instead).

commit a9ab41c4a5207e280dda6c47aa34dff82334f030
Author: Simon Josefsson <address@hidden>
Date:   Wed Mar 21 09:17:16 2012 +0100

    Update gnulib files.

-----------------------------------------------------------------------

Summary of changes:
 doc/Makefile.am                     |    2 +
 doc/manpages/Makefile.am            |    6 +
 gl/Makefile.am                      |   76 +++-
 gl/fpucw.h                          |    3 +-
 gl/{tests => }/glthread/threadlib.c |    0
 gl/isnanf-nolibm.h                  |    7 +
 gl/m4/frexpl.m4                     |    7 +-
 gl/m4/gnulib-comp.m4                |    8 +-
 gl/m4/ldexpl.m4                     |    7 +-
 gl/m4/math_h.m4                     |   76 +++-
 gl/m4/timer_time.m4                 |   16 +
 gl/math.in.h                        |  522 +++++++++++++++++-
 gl/tests/Makefile.am                |   18 +-
 gl/tests/macros.h                   |    5 +
 gl/tests/randomd.c                  | 1028 +++++++++++++++++++++++++++++++++++
 gl/tests/randoml.c                  | 1028 +++++++++++++++++++++++++++++++++++
 gl/tests/test-frexp.c               |  174 +-----
 gl/tests/test-frexp.h               |  179 ++++++
 gl/tests/test-frexpl.c              |  163 +-----
 gl/tests/test-math.c                |   43 ++-
 maint.mk                            |   57 ++-
 21 files changed, 3051 insertions(+), 374 deletions(-)
 rename gl/{tests => }/glthread/threadlib.c (100%)
 create mode 100644 gl/tests/randomd.c
 create mode 100644 gl/tests/randoml.c
 create mode 100644 gl/tests/test-frexp.h

diff --git a/doc/Makefile.am b/doc/Makefile.am
index b7d67e2..47210f4 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -122,6 +122,8 @@ gnutls_TEXINFOS += invoke-gnutls-cli.texi 
invoke-gnutls-cli-debug.texi \
        invoke-gnutls-serv.texi invoke-certtool.texi invoke-srptool.texi \
        invoke-ocsptool.texi invoke-psktool.texi invoke-p11tool.texi
 
+gnutls_TEXINFOS += stamp_functions
+
 # Examples.
 gnutls_TEXINFOS += examples/ex-client-anon.c                           \
        examples/ex-session-info.c examples/ex-verify.c                 \
diff --git a/doc/manpages/Makefile.am b/doc/manpages/Makefile.am
index cc44e4b..0886d25 100644
--- a/doc/manpages/Makefile.am
+++ b/doc/manpages/Makefile.am
@@ -280,6 +280,7 @@ APIMANS += gnutls_protocol_get_name.3
 APIMANS += gnutls_session_set_data.3
 APIMANS += gnutls_session_get_data.3
 APIMANS += gnutls_session_get_data2.3
+APIMANS += gnutls_session_get_random.3
 APIMANS += gnutls_session_get_id.3
 APIMANS += gnutls_session_channel_binding.3
 APIMANS += gnutls_session_is_resumed.3
@@ -585,6 +586,7 @@ APIMANS += gnutls_x509_crt_import.3
 APIMANS += gnutls_x509_crt_list_import2.3
 APIMANS += gnutls_x509_crt_list_import.3
 APIMANS += gnutls_x509_crt_export.3
+APIMANS += gnutls_x509_crt_get_private_key_usage_period.3
 APIMANS += gnutls_x509_crt_get_issuer_dn.3
 APIMANS += gnutls_x509_crt_get_issuer_dn_oid.3
 APIMANS += gnutls_x509_crt_get_issuer_dn_by_oid.3
@@ -596,6 +598,7 @@ APIMANS += gnutls_x509_crt_get_signature_algorithm.3
 APIMANS += gnutls_x509_crt_get_signature.3
 APIMANS += gnutls_x509_crt_get_version.3
 APIMANS += gnutls_x509_crt_get_key_id.3
+APIMANS += gnutls_x509_crt_set_private_key_usage_period.3
 APIMANS += gnutls_x509_crt_set_authority_key_id.3
 APIMANS += gnutls_x509_crt_get_authority_key_id.3
 APIMANS += gnutls_x509_crt_get_authority_key_gn_serial.3
@@ -624,6 +627,7 @@ APIMANS += gnutls_x509_crt_get_ca_status.3
 APIMANS += gnutls_x509_crt_get_basic_constraints.3
 APIMANS += gnutls_x509_crt_get_key_usage.3
 APIMANS += gnutls_x509_crt_set_key_usage.3
+APIMANS += gnutls_x509_crt_set_authority_info_access.3
 APIMANS += gnutls_x509_crt_get_proxy.3
 APIMANS += gnutls_x509_dn_oid_known.3
 APIMANS += gnutls_x509_dn_oid_name.3
@@ -742,6 +746,7 @@ APIMANS += gnutls_x509_crq_verify.3
 APIMANS += gnutls_x509_crq_init.3
 APIMANS += gnutls_x509_crq_deinit.3
 APIMANS += gnutls_x509_crq_import.3
+APIMANS += gnutls_x509_crq_get_private_key_usage_period.3
 APIMANS += gnutls_x509_crq_get_dn.3
 APIMANS += gnutls_x509_crq_get_dn_oid.3
 APIMANS += gnutls_x509_crq_get_dn_by_oid.3
@@ -756,6 +761,7 @@ APIMANS += gnutls_x509_crq_get_attribute_by_oid.3
 APIMANS += gnutls_x509_crq_export.3
 APIMANS += gnutls_x509_crt_set_crq.3
 APIMANS += gnutls_x509_crt_set_crq_extensions.3
+APIMANS += gnutls_x509_crq_set_private_key_usage_period.3
 APIMANS += gnutls_x509_crq_set_key_rsa_raw.3
 APIMANS += gnutls_x509_crq_set_subject_alt_name.3
 APIMANS += gnutls_x509_crq_set_key_usage.3
diff --git a/gl/Makefile.am b/gl/Makefile.am
index 1d46f42..5f2c064 100644
--- a/gl/Makefile.am
+++ b/gl/Makefile.am
@@ -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
diff --git a/gl/fpucw.h b/gl/fpucw.h
index a62c51d..23e4c81 100644
--- a/gl/fpucw.h
+++ b/gl/fpucw.h
@@ -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
diff --git a/gl/tests/glthread/threadlib.c b/gl/glthread/threadlib.c
similarity index 100%
rename from gl/tests/glthread/threadlib.c
rename to gl/glthread/threadlib.c
diff --git a/gl/isnanf-nolibm.h b/gl/isnanf-nolibm.h
index 5270387..9d550e0 100644
--- a/gl/isnanf-nolibm.h
+++ b/gl/isnanf-nolibm.h
@@ -24,6 +24,13 @@
 # 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.  */
diff --git a/gl/m4/frexpl.m4 b/gl/m4/frexpl.m4
index 8e71420..9df87ab 100644
--- a/gl/m4/frexpl.m4
+++ b/gl/m4/frexpl.m4
@@ -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
diff --git a/gl/m4/gnulib-comp.m4 b/gl/m4/gnulib-comp.m4
index db4b789..461d7e5 100644
--- a/gl/m4/gnulib-comp.m4
+++ b/gl/m4/gnulib-comp.m4
@@ -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
diff --git a/gl/m4/ldexpl.m4 b/gl/m4/ldexpl.m4
index 9c9ec67..11f20ca 100644
--- a/gl/m4/ldexpl.m4
+++ b/gl/m4/ldexpl.m4
@@ -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
diff --git a/gl/m4/math_h.m4 b/gl/m4/math_h.m4
index 6f9389d..ff1654e 100644
--- a/gl/m4/math_h.m4
+++ b/gl/m4/math_h.m4
@@ -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])
diff --git a/gl/m4/timer_time.m4 b/gl/m4/timer_time.m4
index 6276759..d6e0efe 100644
--- a/gl/m4/timer_time.m4
+++ b/gl/m4/timer_time.m4
@@ -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
 ])
diff --git a/gl/math.in.h b/gl/math.in.h
index ce52710..4b2ce87 100644
--- a/gl/math.in.h
+++ b/gl/math.in.h
@@ -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 address@hidden@
@@ -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 address@hidden@
+_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 address@hidden@
+_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 address@hidden@
+_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 address@hidden@
+# if address@hidden@
 _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 address@hidden@
+_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 address@hidden@
+_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 address@hidden@
+#   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 address@hidden@
+_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 address@hidden@
+_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 address@hidden@
+#  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 address@hidden@
+#   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 address@hidden@
+_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 address@hidden@
+_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 address@hidden@
@@ -833,11 +1122,20 @@ _GL_WARN_ON_USE (logb, "logb is unportable - "
 
 
 #if @GNULIB_LOGF@
-# if address@hidden@
-#  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 address@hidden@
+#   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 address@hidden@ || address@hidden@
-#  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 address@hidden@ || address@hidden@
+#   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 address@hidden@
+_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 address@hidden@
+_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 address@hidden@
+_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 address@hidden@
+#   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 address@hidden@
+#   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 address@hidden@
+_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 address@hidden@
+#  if address@hidden@
+#   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 address@hidden@
+# if address@hidden@
 _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 address@hidden@
+#   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 address@hidden@ || address@hidden@
-#  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 address@hidden@ || address@hidden@
+#   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
 
diff --git a/gl/tests/Makefile.am b/gl/tests/Makefile.am
index c3c8f3c..f73d26b 100644
--- a/gl/tests/Makefile.am
+++ b/gl/tests/Makefile.am
@@ -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
diff --git a/gl/tests/macros.h b/gl/tests/macros.h
index 77a92f8..478004c 100644
--- a/gl/tests/macros.h
+++ b/gl/tests/macros.h
@@ -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
index 0000000..0bef8b6
--- /dev/null
+++ b/gl/tests/randomd.c
@@ -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
index 0000000..b48d49c
--- /dev/null
+++ b/gl/tests/randoml.c
@@ -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
+};
diff --git a/gl/tests/test-frexp.c b/gl/tests/test-frexp.c
index 7158c8f..2b6a9fb 100644
--- a/gl/tests/test-frexp.c
+++ b/gl/tests/test-frexp.c
@@ -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
index 0000000..71001df
--- /dev/null
+++ b/gl/tests/test-frexp.h
@@ -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));
+      }
+    }
+}
diff --git a/gl/tests/test-frexpl.c b/gl/tests/test-frexpl.c
index ca28f8a..c5e07b2 100644
--- a/gl/tests/test-frexpl.c
+++ b/gl/tests/test-frexpl.c
@@ -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;
 }
diff --git a/gl/tests/test-math.c b/gl/tests/test-math.c
index f6e61a7..25be63a 100644
--- a/gl/tests/test-math.c
+++ b/gl/tests/test-math.c
@@ -25,6 +25,23 @@
 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;
 }
diff --git a/maint.mk b/maint.mk
index ee721de..951b358 100644
--- 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=$@
 


hooks/post-receive
-- 
GNU gnutls



reply via email to

[Prev in Thread] Current Thread [Next in Thread]