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

[Commits] r22640 - in /fsf/trunk/libc: ./ benchtests/ elf/ manual/ math/ math/bits/ misc/ ports/ ports/sysdeps/arm/ ports/sysdeps/arm/...



Author: eglibc
Date: Sat Mar 16 00:02:47 2013
New Revision: 22640

Log:
Import glibc-mainline for 2013-03-16

Added:
    fsf/trunk/libc/benchtests/
    fsf/trunk/libc/benchtests/Makefile
    fsf/trunk/libc/benchtests/bench-skeleton.c
    fsf/trunk/libc/benchtests/exp-inputs
    fsf/trunk/libc/benchtests/pow-inputs
    fsf/trunk/libc/math/test-snan.c
    fsf/trunk/libc/scripts/bench.pl   (with props)
Removed:
    fsf/trunk/libc/sysdeps/powerpc/fpu/test-powerpc-snan.c
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/Makefile.in
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/Rules
    fsf/trunk/libc/elf/dl-support.c
    fsf/trunk/libc/manual/nptl.texi
    fsf/trunk/libc/math/Makefile
    fsf/trunk/libc/math/basic-test.c
    fsf/trunk/libc/math/bits/mathcalls.h
    fsf/trunk/libc/math/gen-libm-test.pl
    fsf/trunk/libc/math/libm-test.inc
    fsf/trunk/libc/math/test-misc.c
    fsf/trunk/libc/misc/tst-efgcvt.c
    fsf/trunk/libc/ports/ChangeLog.arm
    fsf/trunk/libc/ports/ChangeLog.mips
    fsf/trunk/libc/ports/sysdeps/arm/__longjmp.S
    fsf/trunk/libc/ports/sysdeps/arm/add_n.S
    fsf/trunk/libc/ports/sysdeps/arm/addmul_1.S
    fsf/trunk/libc/ports/sysdeps/arm/arm-mcount.S
    fsf/trunk/libc/ports/sysdeps/arm/armv6/rawmemchr.S
    fsf/trunk/libc/ports/sysdeps/arm/armv6/strchr.S
    fsf/trunk/libc/ports/sysdeps/arm/armv6/strcpy.S
    fsf/trunk/libc/ports/sysdeps/arm/armv6/strlen.S
    fsf/trunk/libc/ports/sysdeps/arm/armv6/strrchr.S
    fsf/trunk/libc/ports/sysdeps/arm/armv6t2/memchr.S
    fsf/trunk/libc/ports/sysdeps/arm/memcpy.S
    fsf/trunk/libc/ports/sysdeps/arm/memmove.S
    fsf/trunk/libc/ports/sysdeps/arm/memset.S
    fsf/trunk/libc/ports/sysdeps/arm/setjmp.S
    fsf/trunk/libc/ports/sysdeps/arm/strlen.S
    fsf/trunk/libc/ports/sysdeps/arm/submul_1.S
    fsf/trunk/libc/ports/sysdeps/arm/sysdep.h
    fsf/trunk/libc/ports/sysdeps/mips/bits/nan.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h
    fsf/trunk/libc/stdio-common/printf_fp.c
    fsf/trunk/libc/stdio-common/tstdiomisc.c
    fsf/trunk/libc/sysdeps/generic/ldsodefs.h
    fsf/trunk/libc/sysdeps/ieee754/bits/nan.h
    fsf/trunk/libc/sysdeps/powerpc/bits/fenv.h
    fsf/trunk/libc/sysdeps/powerpc/fpu/Makefile
    fsf/trunk/libc/sysdeps/powerpc/fpu/fenv_libc.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/ldsodefs.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
    fsf/trunk/libc/sysdeps/x86_64/preconfigure

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sat Mar 16 00:02:47 2013
@@ -1,3 +1,130 @@
+2013-03-15  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* elf/dl-support.c (_dl_aux_init): Ignore zero value for AT_PAGESZ.
+	(_dl_non_dynamic_init): Don't set _dl_pagesize; it will never be
+	zero since it's initialized to EXEC_PAGESIZE.
+
+	* sysdeps/unix/sysv/linux/ldsodefs.h
+	(_dl_non_dynamic_init, _dl_aux_init): Move declarations to ...
+	* sysdeps/generic/ldsodefs.h: ... here.
+
+2013-03-15  Thomas Schwinge  <thomas@xxxxxxxxxxxxxxxx>
+
+	* math/libm-test.inc (ldexp_test): Add missing START/END markers.
+
+	* sysdeps/powerpc/fpu/test-powerpc-snan.c: Rename to
+	math/test-snan.c.
+	* math/test-snan.c: Renamed from
+	sysdeps/powerpc/fpu/test-powerpc-snan.c.
+	* math/Makefile (tests): Add test-snan.
+	* sysdeps/powerpc/fpu/Makefile (libm-tests): Don't add
+	test-powerpc-snan.
+
+	* math/basic-test.c (TEST_FUNC): Replace NANFUNC argument with
+	SUFFIX.  Initialize qNaN_var with __builtin_nan family of
+	functions.
+	(TEST_TRUNC): Add SUFFIX argument.  Initialize qNaN_var with
+	__builtin_nan family of functions.
+	* math/libm-test.inc (initialize): Initialize qnan_value with
+	__builtin_nan family of functions.
+	* sysdeps/powerpc/fpu/test-powerpc-snan.c (SNANf, SNAN, SNANl):
+	Remove variables.
+	(init_signaling_nan, snan_float, snan_double, snan_ldouble):
+	Remove functions.
+	(TEST_FUNC): Add SUFFIX argument.  Move sNaN_var into static
+	storage class.  Initialize qNaN_var and sNaN_var with
+	__builtin_nan and __builtin_nans families of functions,
+	respectively.
+
+	* math/libm-test.inc (acosh_test): Also test with qNaN input.
+	(sqrt_test): Remove duplicate test with qNaN input.
+	(lrint_test, llrint_test, lround_test, llround_test, rint_test)
+	(round_test, signbit_test, significand_test): Note missing +/-Inf
+	as well as qNaN tests.
+
+	* math/basic-test.c (TEST_FUNC, TEST_TRUNC): Rename NaN_var to
+	qNaN_var.  Fix a few strings, too.
+	* math/libm-test.inc (nan_value): Rename to qnan_value.
+	* math/gen-libm-test.pl (%beautify): Adjust to that.
+	* math/bits/mathcalls.h (nan): Refer to qNaN instead of NaN.
+	* math/test-misc.c (main): Likewise.
+	* sysdeps/ieee754/bits/nan.h (__nan_bytes, __nan_union): Rename
+	to __qnan_bytes, and __qnan_union, respectively.
+	* ports/sysdeps/mips/bits/nan.h (__nan_bytes, __nan_union):
+	Likewise.
+	* stdio-common/tstdiomisc.c (nanval, lnanval): Rename to qnanval,
+	and lqnanval, respectively.
+	* sysdeps/powerpc/bits/fenv.h: Fix usage of NaN/qNaN/sNaN.
+	* sysdeps/powerpc/fpu/fenv_libc.h: Likewise.
+	* sysdeps/powerpc/fpu/test-powerpc-snan.c (TEST_FUNC): Likewise,
+	and rename NaN_var to qNaN_var, and SNaN_var to sNaN_var.
+
+	* math/libm-test.inc (fpstack_test) [__x86_64__]: Enable test.
+	* math/test-misc.c (main) [__x86_64__]: Enable test for long
+	doubles.
+
+	* math/test-misc.c (main): Fix copy'n'pastos.
+	* misc/tst-efgcvt.c (special): Likewise.
+
+	* stdio-common/printf_fp.c (__isinfl_internal, __isnanl_internal):
+	Remove declarations.
+
+2013-03-15  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	* sysdeps/ieee754/dbl-64/mpa-arch.h: Remove.
+	* sysdeps/ieee754/dbl-64/mpa.c: Revert last change.
+	* sysdeps/ieee754/dbl-64/mpa.h: Revert last change.
+	* sysdeps/powerpc/power4/fpu/mpa-arch.h: Remove.
+
+2013-03-15  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h (VDSO_IFUNC_RET): Add
+	macro to return vdso values correctly in IFUNC implementations.
+	* sysdeps/unix/sysv/linux/powerpc/gettimeofday.c (__gettimeofday):
+	Optimization by using IFUNC.
+
+2013-03-15  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+	    Richard Henderson  <rth@xxxxxxxxxx>
+	    Tulio Magno Quites Machado Filho  <tuliom@xxxxxxxxxxxxxxxxxx>
+
+	* Makefile.in (bench): New target.
+	* NEWS: Mention the benchmark framework.
+	* Rules (bench): Likewise.
+	(binaries-bench): Generate binaries for functions to
+	benchmark.
+	* benchtests/Makefile: New makefile for benchmark tests.
+	* benchtests/bench-skeleton.c: New skeleton file for benchmark
+	programs.
+	* benchtests/exp-inputs: New input file for EXP function.
+	* benchtests/pow-inputs: New input file for POW function.
+	* scripts/bench.pl: New script to generate source files for
+	benchmark programs.
+
+2013-03-15  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	* sysdeps/ieee754/dbl-64/mpa-arch.h: New file.
+	* sysdeps/ieee754/dbl-64/mpa.c (norm): Use MANTISSA_T to store
+	computations on mantissa.  Use macros for rounding and
+	division.
+	(denorm): Likewise.
+	(__dbl_mp): Likewise.
+	(add_magnitudes): Likewise.
+	(sub_magnitudes): Likewise.
+	(__mul): Likewise.
+	(__sqr): Likewise.
+	* sysdeps/ieee754/dbl-64/mpa.h: Include mpa-arch.h.  Define
+	powers of two in terms of TWOPOW macro.
+	(mp_no): Make type of mantissa as MANTISSA_T.
+	[!RADIXI]: Define RADIXI.
+	[!TWO52]: Define TWO52.
+	* sysdeps/powerpc/power4/fpu/mpa-arch.h: New file.
+
+	* manual/nptl.texi (cindex): Modify threads to pthreads.
+
+2013-03-15  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/x86_64/preconfigure: Regenerated.
+
 2013-03-14  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #14155]

Modified: fsf/trunk/libc/Makefile.in
==============================================================================
--- fsf/trunk/libc/Makefile.in (original)
+++ fsf/trunk/libc/Makefile.in Sat Mar 16 00:02:47 2013
@@ -3,7 +3,7 @@
 # Uncomment the line below if you want to do parallel build.
 # PARALLELMFLAGS = -j 4
 
-.PHONY: all install
+.PHONY: all install bench
 
 all .DEFAULT:
 	$(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
@@ -11,3 +11,6 @@
 install:
 	LANGUAGE=C LC_ALL=C; export LANGUAGE LC_ALL; \
 	$(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
+
+bench:
+	$(MAKE) -C $(srcdir)/benchtests $(PARALLELMFLAGS) objdir=`pwd` $@

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Sat Mar 16 00:02:47 2013
@@ -22,6 +22,8 @@
 
 * Support for priority inherited mutexes in pthread condition variables on
   non-x86 architectures.
+
+* Added a benchmark framework to track performance of functions in glibc.
 
 
 Version 2.17

Modified: fsf/trunk/libc/Rules
==============================================================================
--- fsf/trunk/libc/Rules (original)
+++ fsf/trunk/libc/Rules Sat Mar 16 00:02:47 2013
@@ -83,7 +83,7 @@
 
 # This makes all the auxiliary and test programs.
 
-.PHONY: others tests
+.PHONY: others tests bench
 ifeq ($(multi-arch),no)
 tests := $(filter-out $(tests-ifunc), $(tests))
 xtests := $(filter-out $(xtests-ifunc), $(xtests))
@@ -188,6 +188,31 @@
 	$(make-test-out) > $@
 
 endif	# tests
+
+# Build and run benchmark programs.
+binaries-bench := $(addprefix $(objpfx)bench-,$(bench))
+
+run-bench = $(test-wrapper-env) \
+	    GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
+	    $($*-ENV) $(run-via-rtld-prefix) $${run}
+
+bench: $(binaries-bench)
+	if [ -f $(objpfx)bench.out ]; then \
+	  mv -f $(objpfx)bench.out $(objpfx)bench.out.old; \
+	fi
+	for run in $^; do \
+	  eval $(run-bench) >>  $(objpfx)bench.out; \
+	done
+
+$(binaries-bench): %: %.o \
+  $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
+  $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
+	$(+link)
+
+$(objpfx)bench-%.c: %-inputs bench-skeleton.c
+	$(..)scripts/bench.pl $(patsubst %-inputs,%,$<) \
+	  $($*-ITER) $($*-ARGLIST) $($*-RET) > $@
+
 
 .PHONY: distclean realclean subdir_distclean subdir_realclean \
 	subdir_clean subdir_mostlyclean subdir_testclean

Added: fsf/trunk/libc/benchtests/Makefile
==============================================================================
--- fsf/trunk/libc/benchtests/Makefile (added)
+++ fsf/trunk/libc/benchtests/Makefile Sat Mar 16 00:02:47 2013
@@ -1,0 +1,59 @@
+# Copyright (C) 2013 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library 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
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+
+# Makefile for benchmark tests.  The only useful target here is `bench`.
+
+# Adding a new function `foo`:
+# ---------------------------
+
+# - Append the function name to the bench variable
+
+# - Define foo-ITER with the number of iterations you want to run.  Keep it
+#   high enough that the overhead of clock_gettime is only a small fraction of
+#   the total run time of the test.
+
+# - Define foo-ARGLIST as a colon separated list of types of the input
+#   arguments.  Use `void` if function does not take any inputs.  Put in quotes
+#   if the input argument is a pointer, e.g.:
+
+#      malloc-ARGLIST: "void *"
+
+# - Define foo-RET as the type the function returns.  Skip if the function
+#   returns void.  One could even skip foo-ARGLIST if the function does not
+#   take any inputs AND the function returns void.
+
+
+# - Make a file called `foo-inputs` with one input value per line, an input
+#   being a comma separated list of arguments to be passed into the function.
+#   See pow-inputs for an example.
+
+subdir := benchtests
+bench := exp pow
+
+exp-ITER = 100000
+exp-ARGLIST = double
+exp-RET = double
+LDFLAGS-bench-exp = -lm
+
+pow-ITER = 100000
+pow-ARGLIST = double:double
+pow-RET = double
+LDFLAGS-bench-pow = -lm
+
+include ../Makeconfig
+include ../Rules

Added: fsf/trunk/libc/benchtests/bench-skeleton.c
==============================================================================
--- fsf/trunk/libc/benchtests/bench-skeleton.c (added)
+++ fsf/trunk/libc/benchtests/bench-skeleton.c Sat Mar 16 00:02:47 2013
@@ -1,0 +1,75 @@
+/* Skeleton for benchmark programs.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <string.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <time.h>
+#include <inttypes.h>
+
+int
+main (int argc, char **argv)
+{
+  unsigned long i, j, k;
+  uint64_t total = 0, max = 0, min = 0x7fffffffffffffff;
+  struct timespec start, end;
+
+  memset (&start, 0, sizeof (start));
+  memset (&end, 0, sizeof (end));
+
+  clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start);
+
+  /* Measure 1000 times the resolution of the clock.  So for a 1ns resolution
+     clock, we measure 1000 iterations of the function call at a time.
+     Measurements close to the minimum clock resolution won't make much sense,
+     but it's better than having nothing at all.  */
+  unsigned long iters = 1000 * start.tv_nsec;
+  unsigned long total_iters = ITER / iters;
+
+  for (i = 0; i < NUM_SAMPLES; i++)
+    {
+      for (j = 0; j < total_iters; j ++)
+	{
+	  clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &start);
+	  for (k = 0; k < iters; k++)
+	    BENCH_FUNC(i);
+	  clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &end);
+
+	  uint64_t cur = (end.tv_nsec - start.tv_nsec
+			 + ((end.tv_sec - start.tv_sec)
+			    * (uint64_t) 1000000000));
+
+	  if (cur > max)
+	    max = cur;
+
+	  if (cur < min)
+	    min = cur;
+
+	  total += cur;
+	}
+    }
+
+  double d_total_s = total * 1e-9;
+  double d_iters = iters;
+  double d_total_i = (double)ITER * NUM_SAMPLES;
+  printf (FUNCNAME ": ITERS:%g: TOTAL:%gs, MAX:%gns, MIN:%gns, %g iter/s\n",
+	  d_total_i, d_total_s, max / d_iters, min / d_iters,
+	  d_total_i / d_total_s);
+
+  return 0;
+}

Added: fsf/trunk/libc/benchtests/exp-inputs
==============================================================================
--- fsf/trunk/libc/benchtests/exp-inputs (added)
+++ fsf/trunk/libc/benchtests/exp-inputs Sat Mar 16 00:02:47 2013
@@ -1,0 +1,1 @@
+708.00096423260981737257679924368858

Added: fsf/trunk/libc/benchtests/pow-inputs
==============================================================================
--- fsf/trunk/libc/benchtests/pow-inputs (added)
+++ fsf/trunk/libc/benchtests/pow-inputs Sat Mar 16 00:02:47 2013
@@ -1,0 +1,1 @@
+1.0000000000000020, 1.5

Modified: fsf/trunk/libc/elf/dl-support.c
==============================================================================
--- fsf/trunk/libc/elf/dl-support.c (original)
+++ fsf/trunk/libc/elf/dl-support.c Sat Mar 16 00:02:47 2013
@@ -198,7 +198,8 @@
     switch (av->a_type)
       {
       case AT_PAGESZ:
-	GLRO(dl_pagesize) = av->a_un.a_val;
+	if (av->a_un.a_val != 0)
+	  GLRO(dl_pagesize) = av->a_un.a_val;
 	break;
       case AT_CLKTCK:
 	GLRO(dl_clktck) = av->a_un.a_val;
@@ -266,9 +267,6 @@
   if (HP_TIMING_AVAIL)
     HP_TIMING_NOW (_dl_cpuclock_offset);
 
-  if (!_dl_pagesize)
-    _dl_pagesize = __getpagesize ();
-
   _dl_verbose = *(getenv ("LD_WARN") ?: "") == '\0' ? 0 : 1;
 
   /* Set up the data structures for the system-supplied DSO early,

Modified: fsf/trunk/libc/manual/nptl.texi
==============================================================================
--- fsf/trunk/libc/manual/nptl.texi (original)
+++ fsf/trunk/libc/manual/nptl.texi Sat Mar 16 00:02:47 2013
@@ -2,7 +2,7 @@
 @c @node POSIX Threads, , Cryptographic Functions, Top
 @chapter POSIX Threads
 @c %MENU% POSIX Threads
-@cindex threads
+@cindex pthreads
 
 This chapter describes the @glibcadj{} POSIX Thread implementation.
 

Modified: fsf/trunk/libc/math/Makefile
==============================================================================
--- fsf/trunk/libc/math/Makefile (original)
+++ fsf/trunk/libc/math/Makefile Sat Mar 16 00:02:47 2013
@@ -88,7 +88,7 @@
 tests = test-matherr test-fenv atest-exp atest-sincos atest-exp2 basic-test \
 	test-misc test-fpucw tst-definitions test-tgmath test-tgmath-ret \
 	bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int \
-	test-tgmath2 test-powl tst-CMPLX tst-CMPLX2
+	test-tgmath2 test-powl tst-CMPLX tst-CMPLX2 test-snan
 # We do the `long double' tests only if this data type is available and
 # distinct from `double'.
 test-longdouble-yes = test-ldouble test-ildoubl

Modified: fsf/trunk/libc/math/basic-test.c
==============================================================================
--- fsf/trunk/libc/math/basic-test.c (original)
+++ fsf/trunk/libc/math/basic-test.c Sat Mar 16 00:02:47 2013
@@ -32,40 +32,40 @@
   }
 }
 
-#define TEST_FUNC(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
+#define TEST_FUNC(NAME, FLOAT, SUFFIX, EPSILON, HUGEVAL)		      \
 static void								      \
 NAME (void)								      \
 {									      \
   /* Variables are declared volatile to forbid some compiler		      \
      optimizations.  */							      \
-  volatile FLOAT Inf_var, NaN_var, zero_var, one_var;			      \
+  volatile FLOAT Inf_var, qNaN_var, zero_var, one_var;			      \
   FLOAT x1, x2;								      \
 									      \
   zero_var = 0.0;							      \
   one_var = 1.0;							      \
-  NaN_var = zero_var / zero_var;					      \
+  qNaN_var = __builtin_nan ## SUFFIX ("");				      \
   Inf_var = one_var / zero_var;						      \
 									      \
   (void) &zero_var;							      \
   (void) &one_var;							      \
-  (void) &NaN_var;							      \
+  (void) &qNaN_var;							      \
   (void) &Inf_var;							      \
 									      \
 									      \
   check (#FLOAT " isinf (inf) == 1", isinf (Inf_var) == 1);		      \
   check (#FLOAT " isinf (-inf) == -1", isinf (-Inf_var) == -1);		      \
   check (#FLOAT " !isinf (1)", !(isinf (one_var)));			      \
-  check (#FLOAT " !isinf (NaN)", !(isinf (NaN_var)));			      \
+  check (#FLOAT " !isinf (qNaN)", !(isinf (qNaN_var)));			      \
 									      \
-  check (#FLOAT " isnan (NaN)", isnan (NaN_var));			      \
-  check (#FLOAT " isnan (-NaN)", isnan (-NaN_var));			      \
+  check (#FLOAT " isnan (qNaN)", isnan (qNaN_var));			      \
+  check (#FLOAT " isnan (-qNaN)", isnan (-qNaN_var));			      \
   check (#FLOAT " !isnan (1)", !(isnan (one_var)));			      \
   check (#FLOAT " !isnan (inf)", !(isnan (Inf_var)));			      \
 									      \
   check (#FLOAT " inf == inf", Inf_var == Inf_var);			      \
   check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var);			      \
   check (#FLOAT " inf != -inf", Inf_var != -Inf_var);			      \
-  check (#FLOAT " NaN != NaN", NaN_var != NaN_var);			      \
+  check (#FLOAT " qNaN != qNaN", qNaN_var != qNaN_var);			      \
 									      \
   /*									      \
      the same tests but this time with NAN from <bits/nan.h>		      \
@@ -80,11 +80,12 @@
   /*									      \
      And again with the value returned by the `nan' function.		      \
    */									      \
-  check (#FLOAT " isnan (NAN)", isnan (NANFUNC ("")));			      \
-  check (#FLOAT " isnan (-NAN)", isnan (-NANFUNC ("")));		      \
-  check (#FLOAT " !isinf (NAN)", !(isinf (NANFUNC (""))));		      \
-  check (#FLOAT " !isinf (-NAN)", !(isinf (-NANFUNC (""))));		      \
-  check (#FLOAT " NAN != NAN", NANFUNC ("") != NANFUNC (""));		      \
+  check (#FLOAT " isnan (nan (\"\"))", isnan (nan ## SUFFIX ("")));	      \
+  check (#FLOAT " isnan (-nan (\"\"))", isnan (-nan ## SUFFIX ("")));	      \
+  check (#FLOAT " !isinf (nan (\"\"))", !(isinf (nan ## SUFFIX (""))));	      \
+  check (#FLOAT " !isinf (-nan (\"\"))", !(isinf (-nan ## SUFFIX (""))));     \
+  check (#FLOAT " nan (\"\") != nan (\"\")",				      \
+	 nan ## SUFFIX ("") != nan ## SUFFIX (""));			      \
 									      \
   /* test if EPSILON is ok */						      \
   x1 = 1.0;								      \
@@ -102,34 +103,34 @@
   check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1);		      \
 }
 
-#define TEST_TRUNC(NAME, FLOAT, DOUBLE) \
+#define TEST_TRUNC(NAME, FLOAT, DOUBLE, SUFFIX)				      \
 void									      \
 NAME (void)								      \
 {									      \
-  volatile DOUBLE Inf_var, NaN_var, zero_var, one_var;			      \
+  volatile DOUBLE Inf_var, qNaN_var, zero_var, one_var;			      \
   FLOAT x1, x2;								      \
 									      \
   zero_var = 0.0;							      \
   one_var = 1.0;							      \
-  NaN_var = zero_var / zero_var;					      \
+  qNaN_var = __builtin_nan ## SUFFIX ("");				      \
   Inf_var = one_var / zero_var;						      \
 									      \
-  (void) &NaN_var;							      \
+  (void) &qNaN_var;							      \
   (void) &Inf_var;							      \
 									      \
-  x1 = (FLOAT) NaN_var;							      \
-  check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") NaN", isnan (x1) != 0);	      \
+  x1 = (FLOAT) qNaN_var;						      \
+  check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") qNaN", isnan (x1) != 0);	      \
   x2 = (FLOAT) Inf_var;							      \
   check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") Inf", isinf (x2) != 0);	      \
 }
 
-TEST_FUNC (float_test, float, nanf, FLT_EPSILON, HUGE_VALF)
-TEST_FUNC (double_test, double, nan, DBL_EPSILON, HUGE_VAL)
-TEST_TRUNC (truncdfsf_test, float, double)
+TEST_FUNC (float_test, float, f, FLT_EPSILON, HUGE_VALF)
+TEST_FUNC (double_test, double, , DBL_EPSILON, HUGE_VAL)
+TEST_TRUNC (truncdfsf_test, float, double, )
 #ifndef NO_LONG_DOUBLE
-TEST_FUNC (ldouble_test, long double, nanl, LDBL_EPSILON, HUGE_VALL)
-TEST_TRUNC (trunctfsf_test, float, long double)
-TEST_TRUNC (trunctfdf_test, double, long double)
+TEST_FUNC (ldouble_test, long double, l, LDBL_EPSILON, HUGE_VALL)
+TEST_TRUNC (trunctfsf_test, float, long double, l)
+TEST_TRUNC (trunctfdf_test, double, long double, l)
 #endif
 
 int

Modified: fsf/trunk/libc/math/bits/mathcalls.h
==============================================================================
--- fsf/trunk/libc/math/bits/mathcalls.h (original)
+++ fsf/trunk/libc/math/bits/mathcalls.h Sat Mar 16 00:02:47 2013
@@ -220,7 +220,7 @@
 
 #ifdef __USE_ISOC99
 __BEGIN_NAMESPACE_C99
-/* Return representation of NaN for double type.  */
+/* Return representation of qNaN for double type.  */
 __MATHCALLX (nan,, (const char *__tagb), (__const__));
 __END_NAMESPACE_C99
 #endif

Modified: fsf/trunk/libc/math/gen-libm-test.pl
==============================================================================
--- fsf/trunk/libc/math/gen-libm-test.pl (original)
+++ fsf/trunk/libc/math/gen-libm-test.pl Sat Mar 16 00:02:47 2013
@@ -58,7 +58,7 @@
     "plus_zero" => "+0",
     "minus_infty" => "-inf",
     "plus_infty" => "inf",
-    "nan_value" => "NaN",
+    "qnan_value" => "qNaN",
     "M_El" => "e",
     "M_E2l" => "e^2",
     "M_E3l" => "e^3",

Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Sat Mar 16 00:02:47 2013
@@ -224,7 +224,7 @@
 static int ignore_max_ulp;	/* Should we ignore max_ulp?  */
 
 static FLOAT minus_zero, plus_zero;
-static FLOAT plus_infty, minus_infty, nan_value, max_value, min_value;
+static FLOAT plus_infty, minus_infty, qnan_value, max_value, min_value;
 static FLOAT min_subnorm_value;
 
 static FLOAT max_error, real_max_error, imag_max_error;
@@ -361,7 +361,7 @@
 static void
 fpstack_test (const char *test_name)
 {
-#ifdef i386
+#if defined (__i386__) || defined (__x86_64__)
   static int old_stack;
   int sw;
 
@@ -805,15 +805,15 @@
 
   START (acos);
 
-  TEST_f_f (acos, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (acos, minus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (acos, nan_value, nan_value);
+  TEST_f_f (acos, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (acos, minus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (acos, qnan_value, qnan_value);
 
   /* |x| > 1: */
-  TEST_f_f (acos, 1.125L, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (acos, -1.125L, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (acos, max_value, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (acos, -max_value, nan_value, INVALID_EXCEPTION);
+  TEST_f_f (acos, 1.125L, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (acos, -1.125L, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (acos, max_value, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (acos, -max_value, qnan_value, INVALID_EXCEPTION);
 
   TEST_f_f (acos, 0, M_PI_2l);
   TEST_f_f (acos, minus_zero, M_PI_2l);
@@ -971,11 +971,12 @@
   START (acosh);
 
   TEST_f_f (acosh, plus_infty, plus_infty);
-  TEST_f_f (acosh, minus_infty, nan_value, INVALID_EXCEPTION);
+  TEST_f_f (acosh, minus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (acosh, qnan_value, qnan_value);
 
   /* x < 1:  */
-  TEST_f_f (acosh, -1.125L, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (acosh, -max_value, nan_value, INVALID_EXCEPTION);
+  TEST_f_f (acosh, -1.125L, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (acosh, -max_value, qnan_value, INVALID_EXCEPTION);
 
   TEST_f_f (acosh, 1, 0);
   TEST_f_f (acosh, 7, 2.63391579384963341725009269461593689L);
@@ -994,15 +995,15 @@
 
   START (asin);
 
-  TEST_f_f (asin, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (asin, minus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (asin, nan_value, nan_value);
-
-  /* asin x == NaN plus invalid exception for |x| > 1.  */
-  TEST_f_f (asin, 1.125L, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (asin, -1.125L, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (asin, max_value, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (asin, -max_value, nan_value, INVALID_EXCEPTION);
+  TEST_f_f (asin, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (asin, minus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (asin, qnan_value, qnan_value);
+
+  /* asin x == qNaN plus invalid exception for |x| > 1.  */
+  TEST_f_f (asin, 1.125L, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (asin, -1.125L, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (asin, max_value, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (asin, -max_value, qnan_value, INVALID_EXCEPTION);
 
   TEST_f_f (asin, 0, 0);
   TEST_f_f (asin, minus_zero, minus_zero);
@@ -1164,7 +1165,7 @@
   TEST_f_f (asinh, plus_infty, plus_infty);
   TEST_f_f (asinh, minus_infty, minus_infty);
 #endif
-  TEST_f_f (asinh, nan_value, nan_value);
+  TEST_f_f (asinh, qnan_value, qnan_value);
   TEST_f_f (asinh, 0.75L, 0.693147180559945309417232121458176568L);
 
   END (asinh);
@@ -1186,7 +1187,7 @@
 
   TEST_f_f (atan, plus_infty, M_PI_2l);
   TEST_f_f (atan, minus_infty, -M_PI_2l);
-  TEST_f_f (atan, nan_value, nan_value);
+  TEST_f_f (atan, qnan_value, qnan_value);
   TEST_f_f (atan, max_value, M_PI_2l);
   TEST_f_f (atan, -max_value, -M_PI_2l);
 
@@ -1225,13 +1226,13 @@
 
   TEST_f_f (atanh, 1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
   TEST_f_f (atanh, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-  TEST_f_f (atanh, nan_value, nan_value);
-
-  /* atanh (x) == NaN plus invalid exception if |x| > 1.  */
-  TEST_f_f (atanh, 1.125L, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (atanh, -1.125L, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (atanh, max_value, nan_value, INVALID_EXCEPTION);
-  TEST_f_f (atanh, -max_value, nan_value, INVALID_EXCEPTION);
+  TEST_f_f (atanh, qnan_value, qnan_value);
+
+  /* atanh (x) == qNaN plus invalid exception if |x| > 1.  */
+  TEST_f_f (atanh, 1.125L, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (atanh, -1.125L, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (atanh, max_value, qnan_value, INVALID_EXCEPTION);
+  TEST_f_f (atanh, -max_value, qnan_value, INVALID_EXCEPTION);
 
   TEST_f_f (atanh, 0.75L, 0.972955074527656652552676371721589865L);
 
@@ -1301,7 +1302,7 @@
   TEST_ff_f (atan2, minus_infty, plus_infty, -M_PI_4l);
   TEST_ff_f (atan2, plus_infty, minus_infty, M_PI_34l);
   TEST_ff_f (atan2, minus_infty, minus_infty, -M_PI_34l);
-  TEST_ff_f (atan2, nan_value, nan_value, nan_value);
+  TEST_ff_f (atan2, qnan_value, qnan_value, qnan_value);
 
   TEST_ff_f (atan2, max_value, max_value, M_PI_4l);
 
@@ -1341,10 +1342,10 @@
   /* cabs (-inf + i x) == +inf.  */
   TEST_c_f (cabs, minus_infty, 1.0, plus_infty);
 
-  TEST_c_f (cabs, minus_infty, nan_value, plus_infty);
-  TEST_c_f (cabs, minus_infty, nan_value, plus_infty);
-
-  TEST_c_f (cabs, nan_value, nan_value, nan_value);
+  TEST_c_f (cabs, minus_infty, qnan_value, plus_infty);
+  TEST_c_f (cabs, minus_infty, qnan_value, plus_infty);
+
+  TEST_c_f (cabs, qnan_value, qnan_value, qnan_value);
 
   /* cabs (x,y) == cabs (y,x).  */
   TEST_c_f (cabs, 0.75L, 12.390625L, 12.4133028598606664302388810868156657L);
@@ -1410,22 +1411,22 @@
   TEST_c_c (cacos, plus_infty, 0.5, 0.0, minus_infty);
   TEST_c_c (cacos, plus_infty, -0.5, 0.0, plus_infty);
 
-  TEST_c_c (cacos, plus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (cacos, minus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (cacos, 0, nan_value, M_PI_2l, nan_value);
-  TEST_c_c (cacos, minus_zero, nan_value, M_PI_2l, nan_value);
-
-  TEST_c_c (cacos, nan_value, plus_infty, nan_value, minus_infty);
-  TEST_c_c (cacos, nan_value, minus_infty, nan_value, plus_infty);
-
-  TEST_c_c (cacos, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cacos, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (cacos, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cacos, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (cacos, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (cacos, plus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (cacos, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (cacos, 0, qnan_value, M_PI_2l, qnan_value);
+  TEST_c_c (cacos, minus_zero, qnan_value, M_PI_2l, qnan_value);
+
+  TEST_c_c (cacos, qnan_value, plus_infty, qnan_value, minus_infty);
+  TEST_c_c (cacos, qnan_value, minus_infty, qnan_value, plus_infty);
+
+  TEST_c_c (cacos, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cacos, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (cacos, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cacos, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (cacos, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (cacos, plus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
   TEST_c_c (cacos, minus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
@@ -1564,22 +1565,22 @@
   TEST_c_c (cacosh, plus_infty, 0.5, plus_infty, 0.0);
   TEST_c_c (cacosh, plus_infty, -0.5, plus_infty, minus_zero);
 
-  TEST_c_c (cacosh, plus_infty, nan_value, plus_infty, nan_value);
-  TEST_c_c (cacosh, minus_infty, nan_value, plus_infty, nan_value);
-
-  TEST_c_c (cacosh, 0, nan_value, nan_value, nan_value);
-  TEST_c_c (cacosh, minus_zero, nan_value, nan_value, nan_value);
-
-  TEST_c_c (cacosh, nan_value, plus_infty, plus_infty, nan_value);
-  TEST_c_c (cacosh, nan_value, minus_infty, plus_infty, nan_value);
-
-  TEST_c_c (cacosh, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cacosh, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (cacosh, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cacosh, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (cacosh, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (cacosh, plus_infty, qnan_value, plus_infty, qnan_value);
+  TEST_c_c (cacosh, minus_infty, qnan_value, plus_infty, qnan_value);
+
+  TEST_c_c (cacosh, 0, qnan_value, qnan_value, qnan_value);
+  TEST_c_c (cacosh, minus_zero, qnan_value, qnan_value, qnan_value);
+
+  TEST_c_c (cacosh, qnan_value, plus_infty, plus_infty, qnan_value);
+  TEST_c_c (cacosh, qnan_value, minus_infty, plus_infty, qnan_value);
+
+  TEST_c_c (cacosh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cacosh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (cacosh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cacosh, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (cacosh, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (cacosh, plus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
   TEST_c_c (cacosh, minus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
@@ -1676,7 +1677,7 @@
 
   TEST_c_f (carg, minus_infty, minus_infty, -3 * M_PI_4l);
 
-  TEST_c_f (carg, nan_value, nan_value, nan_value);
+  TEST_c_f (carg, qnan_value, qnan_value, qnan_value);
 
   END (carg);
 }
@@ -1721,22 +1722,22 @@
   TEST_c_c (casin, plus_infty, 0.5, M_PI_2l, plus_infty);
   TEST_c_c (casin, plus_infty, -0.5, M_PI_2l, minus_infty);
 
-  TEST_c_c (casin, nan_value, plus_infty, nan_value, plus_infty);
-  TEST_c_c (casin, nan_value, minus_infty, nan_value, minus_infty);
-
-  TEST_c_c (casin, 0.0, nan_value, 0.0, nan_value);
-  TEST_c_c (casin, minus_zero, nan_value, minus_zero, nan_value);
-
-  TEST_c_c (casin, plus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (casin, minus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (casin, nan_value, 10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (casin, nan_value, -10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (casin, 0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (casin, -0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (casin, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (casin, qnan_value, plus_infty, qnan_value, plus_infty);
+  TEST_c_c (casin, qnan_value, minus_infty, qnan_value, minus_infty);
+
+  TEST_c_c (casin, 0.0, qnan_value, 0.0, qnan_value);
+  TEST_c_c (casin, minus_zero, qnan_value, minus_zero, qnan_value);
+
+  TEST_c_c (casin, plus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (casin, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (casin, qnan_value, 10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (casin, qnan_value, -10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (casin, 0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (casin, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (casin, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (casin, plus_zero, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L);
   TEST_c_c (casin, minus_zero, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L);
@@ -1877,22 +1878,22 @@
   TEST_c_c (casinh, plus_infty, 0.5, plus_infty, 0.0);
   TEST_c_c (casinh, plus_infty, -0.5, plus_infty, minus_zero);
 
-  TEST_c_c (casinh, plus_infty, nan_value, plus_infty, nan_value);
-  TEST_c_c (casinh, minus_infty, nan_value, minus_infty, nan_value);
-
-  TEST_c_c (casinh, nan_value, 0, nan_value, 0.0);
-  TEST_c_c (casinh, nan_value, minus_zero, nan_value, minus_zero);
-
-  TEST_c_c (casinh, nan_value, plus_infty, plus_infty, nan_value, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (casinh, nan_value, minus_infty, plus_infty, nan_value, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (casinh, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (casinh, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (casinh, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (casinh, -0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (casinh, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (casinh, plus_infty, qnan_value, plus_infty, qnan_value);
+  TEST_c_c (casinh, minus_infty, qnan_value, minus_infty, qnan_value);
+
+  TEST_c_c (casinh, qnan_value, 0, qnan_value, 0.0);
+  TEST_c_c (casinh, qnan_value, minus_zero, qnan_value, minus_zero);
+
+  TEST_c_c (casinh, qnan_value, plus_infty, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (casinh, qnan_value, minus_infty, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (casinh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (casinh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (casinh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (casinh, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (casinh, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (casinh, plus_zero, -1.5L, 0.9624236501192068949955178268487368462704L, -M_PI_2l);
   TEST_c_c (casinh, minus_zero, -1.5L, -0.9624236501192068949955178268487368462704L, -M_PI_2l);
@@ -2034,25 +2035,25 @@
   TEST_c_c (catan, 0.5, plus_infty, M_PI_2l, 0);
   TEST_c_c (catan, -0.5, plus_infty, -M_PI_2l, 0);
 
-  TEST_c_c (catan, nan_value, 0.0, nan_value, 0);
-  TEST_c_c (catan, nan_value, minus_zero, nan_value, minus_zero);
-
-  TEST_c_c (catan, nan_value, plus_infty, nan_value, 0);
-  TEST_c_c (catan, nan_value, minus_infty, nan_value, minus_zero);
-
-  TEST_c_c (catan, 0.0, nan_value, nan_value, nan_value);
-  TEST_c_c (catan, minus_zero, nan_value, nan_value, nan_value);
-
-  TEST_c_c (catan, plus_infty, nan_value, M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (catan, minus_infty, nan_value, -M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (catan, nan_value, 10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (catan, nan_value, -10.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (catan, 0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (catan, -0.75, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (catan, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (catan, qnan_value, 0.0, qnan_value, 0);
+  TEST_c_c (catan, qnan_value, minus_zero, qnan_value, minus_zero);
+
+  TEST_c_c (catan, qnan_value, plus_infty, qnan_value, 0);
+  TEST_c_c (catan, qnan_value, minus_infty, qnan_value, minus_zero);
+
+  TEST_c_c (catan, 0.0, qnan_value, qnan_value, qnan_value);
+  TEST_c_c (catan, minus_zero, qnan_value, qnan_value, qnan_value);
+
+  TEST_c_c (catan, plus_infty, qnan_value, M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (catan, minus_infty, qnan_value, -M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (catan, qnan_value, 10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (catan, qnan_value, -10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (catan, 0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (catan, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (catan, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (catan, 0.75L, 1.25L, 1.10714871779409050301706546017853704L, 0.549306144334054845697622618461262852L);
   TEST_c_c (catan, -2, -3, -1.4099210495965755225306193844604208L, -0.22907268296853876629588180294200276L);
@@ -2100,25 +2101,25 @@
   TEST_c_c (catanh, plus_infty, 0.5, 0.0, M_PI_2l);
   TEST_c_c (catanh, plus_infty, -0.5, 0.0, -M_PI_2l);
 
-  TEST_c_c (catanh, 0, nan_value, 0.0, nan_value);
-  TEST_c_c (catanh, minus_zero, nan_value, minus_zero, nan_value);
-
-  TEST_c_c (catanh, plus_infty, nan_value, 0.0, nan_value);
-  TEST_c_c (catanh, minus_infty, nan_value, minus_zero, nan_value);
-
-  TEST_c_c (catanh, nan_value, 0, nan_value, nan_value);
-  TEST_c_c (catanh, nan_value, minus_zero, nan_value, nan_value);
-
-  TEST_c_c (catanh, nan_value, plus_infty, 0.0, M_PI_2l, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (catanh, nan_value, minus_infty, 0.0, -M_PI_2l, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (catanh, 10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (catanh, -10.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (catanh, nan_value, 0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (catanh, nan_value, -0.75, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (catanh, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (catanh, 0, qnan_value, 0.0, qnan_value);
+  TEST_c_c (catanh, minus_zero, qnan_value, minus_zero, qnan_value);
+
+  TEST_c_c (catanh, plus_infty, qnan_value, 0.0, qnan_value);
+  TEST_c_c (catanh, minus_infty, qnan_value, minus_zero, qnan_value);
+
+  TEST_c_c (catanh, qnan_value, 0, qnan_value, qnan_value);
+  TEST_c_c (catanh, qnan_value, minus_zero, qnan_value, qnan_value);
+
+  TEST_c_c (catanh, qnan_value, plus_infty, 0.0, M_PI_2l, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (catanh, qnan_value, minus_infty, 0.0, -M_PI_2l, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (catanh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (catanh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (catanh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (catanh, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (catanh, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (catanh, 0.75L, 1.25L, 0.261492138795671927078652057366532140L, 0.996825126463918666098902241310446708L);
   TEST_c_c (catanh, -2, -3, -0.14694666622552975204743278515471595L, -1.3389725222944935611241935759091443L);
@@ -2142,7 +2143,7 @@
 
   TEST_f_f (cbrt, plus_infty, plus_infty);
   TEST_f_f (cbrt, minus_infty, minus_infty);
-  TEST_f_f (cbrt, nan_value, nan_value);
+  TEST_f_f (cbrt, qnan_value, qnan_value);
 
   TEST_f_f (cbrt, -0.001L, -0.1L);
   TEST_f_f (cbrt, 8, 2);
@@ -2170,50 +2171,50 @@
   TEST_c_c (ccos, 0.0, minus_zero, 1.0, 0.0);
   TEST_c_c (ccos, minus_zero, minus_zero, 1.0, minus_zero);
 
-  TEST_c_c (ccos, plus_infty, 0.0, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccos, plus_infty, minus_zero, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccos, minus_infty, 0.0, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccos, minus_infty, minus_zero, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccos, plus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccos, plus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccos, minus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccos, minus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
 
   TEST_c_c (ccos, 0.0, plus_infty, plus_infty, minus_zero);
   TEST_c_c (ccos, 0.0, minus_infty, plus_infty, 0.0);
   TEST_c_c (ccos, minus_zero, plus_infty, plus_infty, 0.0);
   TEST_c_c (ccos, minus_zero, minus_infty, plus_infty, minus_zero);
 
-  TEST_c_c (ccos, plus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccos, minus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccos, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccos, minus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccos, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccos, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccos, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccos, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
 
   TEST_c_c (ccos, 4.625, plus_infty, minus_infty, plus_infty);
   TEST_c_c (ccos, 4.625, minus_infty, minus_infty, minus_infty);
   TEST_c_c (ccos, -4.625, plus_infty, minus_infty, minus_infty);
   TEST_c_c (ccos, -4.625, minus_infty, minus_infty, plus_infty);
 
-  TEST_c_c (ccos, plus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccos, plus_infty, -6.75, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccos, minus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccos, minus_infty, -6.75, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (ccos, nan_value, 0.0, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccos, nan_value, minus_zero, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (ccos, nan_value, plus_infty, plus_infty, nan_value);
-  TEST_c_c (ccos, nan_value, minus_infty, plus_infty, nan_value);
-
-  TEST_c_c (ccos, nan_value, 9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ccos, nan_value, -9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ccos, 0.0, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccos, minus_zero, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (ccos, 10.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ccos, -10.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ccos, plus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ccos, minus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ccos, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (ccos, plus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccos, plus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccos, minus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccos, minus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (ccos, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccos, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (ccos, qnan_value, plus_infty, plus_infty, qnan_value);
+  TEST_c_c (ccos, qnan_value, minus_infty, plus_infty, qnan_value);
+
+  TEST_c_c (ccos, qnan_value, 9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ccos, qnan_value, -9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ccos, 0.0, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccos, minus_zero, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (ccos, 10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ccos, -10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ccos, plus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ccos, minus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ccos, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (ccos, 0.75L, 1.25L, 1.38173873063425888530729933139078645L, -1.09193013555397466170919531722024128L);
   TEST_c_c (ccos, -2, -3, -4.18962569096880723013255501961597373L, -9.10922789375533659797919726277886212L);
@@ -2269,50 +2270,50 @@
   TEST_c_c (ccosh, 0.0, minus_zero, 1.0, minus_zero);
   TEST_c_c (ccosh, minus_zero, minus_zero, 1.0, 0.0);
 
-  TEST_c_c (ccosh, 0.0, plus_infty, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccosh, minus_zero, plus_infty, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccosh, 0.0, minus_infty, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccosh, minus_zero, minus_infty, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccosh, 0.0, plus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccosh, minus_zero, plus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccosh, 0.0, minus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccosh, minus_zero, minus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
 
   TEST_c_c (ccosh, plus_infty, 0.0, plus_infty, 0.0);
   TEST_c_c (ccosh, minus_infty, 0.0, plus_infty, minus_zero);
   TEST_c_c (ccosh, plus_infty, minus_zero, plus_infty, minus_zero);
   TEST_c_c (ccosh, minus_infty, minus_zero, plus_infty, 0.0);
 
-  TEST_c_c (ccosh, plus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccosh, minus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccosh, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccosh, minus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccosh, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccosh, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccosh, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccosh, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
 
   TEST_c_c (ccosh, plus_infty, 4.625, minus_infty, minus_infty);
   TEST_c_c (ccosh, minus_infty, 4.625, minus_infty, plus_infty);
   TEST_c_c (ccosh, plus_infty, -4.625, minus_infty, plus_infty);
   TEST_c_c (ccosh, minus_infty, -4.625, minus_infty, minus_infty);
 
-  TEST_c_c (ccosh, 6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccosh, -6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccosh, 6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ccosh, -6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (ccosh, 0.0, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccosh, minus_zero, nan_value, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (ccosh, plus_infty, nan_value, plus_infty, nan_value);
-  TEST_c_c (ccosh, minus_infty, nan_value, plus_infty, nan_value);
-
-  TEST_c_c (ccosh, 9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ccosh, -9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ccosh, nan_value, 0.0, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ccosh, nan_value, minus_zero, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (ccosh, nan_value, 10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ccosh, nan_value, -10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ccosh, nan_value, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ccosh, nan_value, minus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ccosh, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (ccosh, 6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccosh, -6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccosh, 6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ccosh, -6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (ccosh, 0.0, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccosh, minus_zero, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (ccosh, plus_infty, qnan_value, plus_infty, qnan_value);
+  TEST_c_c (ccosh, minus_infty, qnan_value, plus_infty, qnan_value);
+
+  TEST_c_c (ccosh, 9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ccosh, -9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ccosh, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ccosh, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (ccosh, qnan_value, 10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ccosh, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ccosh, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ccosh, qnan_value, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ccosh, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (ccosh, 0.75L, 1.25L, 0.408242591877968807788852146397499084L, 0.780365930845853240391326216300863152L);
 
@@ -2362,7 +2363,7 @@
   TEST_f_f (ceil, minus_zero, minus_zero);
   TEST_f_f (ceil, plus_infty, plus_infty);
   TEST_f_f (ceil, minus_infty, minus_infty);
-  TEST_f_f (ceil, nan_value, nan_value);
+  TEST_f_f (ceil, qnan_value, qnan_value);
 
   TEST_f_f (ceil, M_PIl, 4.0);
   TEST_f_f (ceil, -M_PIl, -3.0);
@@ -2469,40 +2470,40 @@
   TEST_c_c (cexp, minus_infty, plus_zero, 0.0, 0.0);
   TEST_c_c (cexp, minus_infty, minus_zero, 0.0, minus_zero);
 
-  TEST_c_c (cexp, 0.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (cexp, minus_zero, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (cexp, 0.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (cexp, minus_zero, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (cexp, 100.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (cexp, -100.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (cexp, 100.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (cexp, -100.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
+  TEST_c_c (cexp, 0.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (cexp, minus_zero, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (cexp, 0.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (cexp, minus_zero, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (cexp, 100.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (cexp, -100.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (cexp, 100.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (cexp, -100.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
 
   TEST_c_c (cexp, minus_infty, 2.0, minus_zero, 0.0);
   TEST_c_c (cexp, minus_infty, 4.0, minus_zero, minus_zero);
   TEST_c_c (cexp, plus_infty, 2.0, minus_infty, plus_infty);
   TEST_c_c (cexp, plus_infty, 4.0, minus_infty, minus_infty);
 
-  TEST_c_c (cexp, plus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (cexp, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (cexp, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (cexp, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
 
   TEST_c_c (cexp, minus_infty, plus_infty, 0.0, 0.0, IGNORE_ZERO_INF_SIGN);
   TEST_c_c (cexp, minus_infty, minus_infty, 0.0, minus_zero, IGNORE_ZERO_INF_SIGN);
 
-  TEST_c_c (cexp, minus_infty, nan_value, 0, 0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (cexp, plus_infty, nan_value, plus_infty, nan_value);
-
-  TEST_c_c (cexp, nan_value, 0.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cexp, nan_value, 1.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (cexp, nan_value, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cexp, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cexp, 1, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (cexp, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (cexp, minus_infty, qnan_value, 0, 0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (cexp, plus_infty, qnan_value, plus_infty, qnan_value);
+
+  TEST_c_c (cexp, qnan_value, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cexp, qnan_value, 1.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (cexp, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cexp, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cexp, 1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (cexp, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (cexp, 0.75L, 1.25L, 0.667537446429131586942201977015932112L, 2.00900045494094876258347228145863909L);
   TEST_c_c (cexp, -2.0, -3.0, -0.13398091492954261346140525546115575L, -0.019098516261135196432576240858800925L);
@@ -2561,8 +2562,8 @@
   START (cimag);
   TEST_c_f (cimag, 1.0, 0.0, 0.0);
   TEST_c_f (cimag, 1.0, minus_zero, minus_zero);
-  TEST_c_f (cimag, 1.0, nan_value, nan_value);
-  TEST_c_f (cimag, nan_value, nan_value, nan_value);
+  TEST_c_f (cimag, 1.0, qnan_value, qnan_value);
+  TEST_c_f (cimag, qnan_value, qnan_value, qnan_value);
   TEST_c_f (cimag, 1.0, plus_infty, plus_infty);
   TEST_c_f (cimag, 1.0, minus_infty, minus_infty);
   TEST_c_f (cimag, 2.0, 3.0, 3.0);
@@ -2612,23 +2613,23 @@
   TEST_c_c (clog, plus_infty, minus_zero, plus_infty, minus_zero);
   TEST_c_c (clog, plus_infty, -1, plus_infty, minus_zero);
 
-  TEST_c_c (clog, plus_infty, nan_value, plus_infty, nan_value);
-  TEST_c_c (clog, minus_infty, nan_value, plus_infty, nan_value);
-
-  TEST_c_c (clog, nan_value, plus_infty, plus_infty, nan_value);
-  TEST_c_c (clog, nan_value, minus_infty, plus_infty, nan_value);
-
-  TEST_c_c (clog, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog, 3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog, -3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (clog, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog, nan_value, 5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog, nan_value, -5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (clog, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (clog, plus_infty, qnan_value, plus_infty, qnan_value);
+  TEST_c_c (clog, minus_infty, qnan_value, plus_infty, qnan_value);
+
+  TEST_c_c (clog, qnan_value, plus_infty, plus_infty, qnan_value);
+  TEST_c_c (clog, qnan_value, minus_infty, plus_infty, qnan_value);
+
+  TEST_c_c (clog, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog, 3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog, -3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (clog, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog, qnan_value, -5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (clog, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (clog, 0.75L, 1.25L, 0.376885901188190075998919126749298416L, 1.03037682652431246378774332703115153L);
   TEST_c_c (clog, -2, -3, 1.2824746787307683680267437207826593L, -2.1587989303424641704769327722648368L);
@@ -2832,23 +2833,23 @@
   TEST_c_c (clog10, plus_infty, minus_zero, plus_infty, minus_zero);
   TEST_c_c (clog10, plus_infty, -1, plus_infty, minus_zero);
 
-  TEST_c_c (clog10, plus_infty, nan_value, plus_infty, nan_value);
-  TEST_c_c (clog10, minus_infty, nan_value, plus_infty, nan_value);
-
-  TEST_c_c (clog10, nan_value, plus_infty, plus_infty, nan_value);
-  TEST_c_c (clog10, nan_value, minus_infty, plus_infty, nan_value);
-
-  TEST_c_c (clog10, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog10, 3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog10, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog10, -3, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (clog10, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog10, nan_value, 5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog10, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (clog10, nan_value, -5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (clog10, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (clog10, plus_infty, qnan_value, plus_infty, qnan_value);
+  TEST_c_c (clog10, minus_infty, qnan_value, plus_infty, qnan_value);
+
+  TEST_c_c (clog10, qnan_value, plus_infty, plus_infty, qnan_value);
+  TEST_c_c (clog10, qnan_value, minus_infty, plus_infty, qnan_value);
+
+  TEST_c_c (clog10, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog10, 3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog10, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog10, -3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (clog10, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog10, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog10, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (clog10, qnan_value, -5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (clog10, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (clog10, 0.75L, 1.25L, 0.163679467193165171449476605077428975L, 0.447486970040493067069984724340855636L);
   TEST_c_c (clog10, -2, -3, 0.556971676153418384603252578971164214L, -0.937554462986374708541507952140189646L);
@@ -3017,7 +3018,7 @@
   START (conj);
   TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero);
   TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0);
-  TEST_c_c (conj, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (conj, qnan_value, qnan_value, qnan_value, qnan_value);
   TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty);
   TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty);
   TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0);
@@ -3048,10 +3049,10 @@
   TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero);
 
   /* XXX More correctly we would have to check the sign of the NaN.  */
-  TEST_ff_f (copysign, nan_value, 0, nan_value);
-  TEST_ff_f (copysign, nan_value, minus_zero, nan_value);
-  TEST_ff_f (copysign, -nan_value, 0, nan_value);
-  TEST_ff_f (copysign, -nan_value, minus_zero, nan_value);
+  TEST_ff_f (copysign, qnan_value, 0, qnan_value);
+  TEST_ff_f (copysign, qnan_value, minus_zero, qnan_value);
+  TEST_ff_f (copysign, -qnan_value, 0, qnan_value);
+  TEST_ff_f (copysign, -qnan_value, minus_zero, qnan_value);
 
   END (copysign);
 }
@@ -3071,14 +3072,14 @@
   TEST_f_f (cos, 0, 1);
   TEST_f_f (cos, minus_zero, 1);
   errno = 0;
-  TEST_f_f (cos, plus_infty, nan_value, INVALID_EXCEPTION);
+  TEST_f_f (cos, plus_infty, qnan_value, INVALID_EXCEPTION);
   check_int ("errno for cos(+inf) == EDOM", errno, EDOM, 0, 0, 0);
   errno = 0;
-  TEST_f_f (cos, minus_infty, nan_value, INVALID_EXCEPTION);
+  TEST_f_f (cos, minus_infty, qnan_value, INVALID_EXCEPTION);
   check_int ("errno for cos(-inf) == EDOM", errno, EDOM, 0, 0, 0);
   errno = 0;
-  TEST_f_f (cos, nan_value, nan_value);
-  check_int ("errno for cos(NaN) unchanged", errno, 0, 0, 0, 0);
+  TEST_f_f (cos, qnan_value, qnan_value);
+  check_int ("errno for cos(qNaN) unchanged", errno, 0, 0, 0, 0);
 
   TEST_f_f (cos, M_PI_6l * 2.0, 0.5);
   TEST_f_f (cos, M_PI_6l * 4.0, -0.5);
@@ -3268,7 +3269,7 @@
   TEST_f_f (cosh, plus_infty, plus_infty);
   TEST_f_f (cosh, minus_infty, plus_infty);
 #endif
-  TEST_f_f (cosh, nan_value, nan_value);
+  TEST_f_f (cosh, qnan_value, qnan_value);
 
   TEST_f_f (cosh, 0.75L, 1.29468328467684468784170818539018176L);
 
@@ -3406,7 +3407,7 @@
   TEST_cc_c (cpow, M_El, 0, 0, 2 * M_PIl, 1.0, 0.0);
   TEST_cc_c (cpow, 2, 3, 4, 0, -119.0, -120.0);
 
-  TEST_cc_c (cpow, nan_value, nan_value, nan_value, nan_value, nan_value, nan_value);
+  TEST_cc_c (cpow, qnan_value, qnan_value, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_cc_c (cpow, 0.75L, 1.25L, 0.75L, 1.25L, 0.117506293914473555420279832210420483L, 0.346552747708338676483025352060418001L);
   TEST_cc_c (cpow, 0.75L, 1.25L, 1.0L, 1.0L, 0.0846958290317209430433805274189191353L, 0.513285749182902449043287190519090481L);
@@ -3426,7 +3427,7 @@
   TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero);
   TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0);
 
-  TEST_c_c (cproj, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0);
   TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero);
@@ -3446,8 +3447,8 @@
   START (creal);
   TEST_c_f (creal, 0.0, 1.0, 0.0);
   TEST_c_f (creal, minus_zero, 1.0, minus_zero);
-  TEST_c_f (creal, nan_value, 1.0, nan_value);
-  TEST_c_f (creal, nan_value, nan_value, nan_value);
+  TEST_c_f (creal, qnan_value, 1.0, qnan_value);
+  TEST_c_f (creal, qnan_value, qnan_value, qnan_value);
   TEST_c_f (creal, plus_infty, 1.0, plus_infty);
   TEST_c_f (creal, minus_infty, 1.0, minus_infty);
   TEST_c_f (creal, 2.0, 3.0, 2.0);
@@ -3476,45 +3477,45 @@
   TEST_c_c (csin, 0.0, minus_infty, 0.0, minus_infty);
   TEST_c_c (csin, minus_zero, minus_infty, minus_zero, minus_infty);
 
-  TEST_c_c (csin, plus_infty, 0.0, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, minus_infty, 0.0, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, plus_infty, minus_zero, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, minus_infty, minus_zero, nan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (csin, plus_infty, plus_infty, nan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, minus_infty, plus_infty, nan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, plus_infty, minus_infty, nan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, minus_infty, minus_infty, nan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (csin, plus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (csin, plus_infty, -6.75, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (csin, minus_infty, 6.75, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (csin, minus_infty, -6.75,  nan_value, nan_value, INVALID_EXCEPTION);
+  TEST_c_c (csin, plus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, minus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, plus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, minus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (csin, plus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, minus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, plus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, minus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (csin, plus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (csin, plus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (csin, minus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (csin, minus_infty, -6.75,  qnan_value, qnan_value, INVALID_EXCEPTION);
 
   TEST_c_c (csin, 4.625, plus_infty, minus_infty, minus_infty);
   TEST_c_c (csin, 4.625, minus_infty, minus_infty, plus_infty);
   TEST_c_c (csin, -4.625, plus_infty, plus_infty, minus_infty);
   TEST_c_c (csin, -4.625, minus_infty, plus_infty, plus_infty);
 
-  TEST_c_c (csin, nan_value, 0.0, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, nan_value, minus_zero, nan_value, 0.0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (csin, nan_value, plus_infty, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csin, nan_value, minus_infty, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (csin, nan_value, 9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csin, nan_value, -9.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csin, 0.0, nan_value, 0.0, nan_value);
-  TEST_c_c (csin, minus_zero, nan_value, minus_zero, nan_value);
-
-  TEST_c_c (csin, 10.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csin, nan_value, -10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csin, plus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csin, minus_infty, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csin, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (csin, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (csin, qnan_value, plus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csin, qnan_value, minus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (csin, qnan_value, 9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csin, qnan_value, -9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csin, 0.0, qnan_value, 0.0, qnan_value);
+  TEST_c_c (csin, minus_zero, qnan_value, minus_zero, qnan_value);
+
+  TEST_c_c (csin, 10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csin, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csin, plus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csin, minus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csin, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (csin, 0.75L, 1.25L, 1.28722291002649188575873510790565441L, 1.17210635989270256101081285116138863L);
   TEST_c_c (csin, -2, -3, -9.15449914691142957346729954460983256L, 4.16890695996656435075481305885375484L);
@@ -3570,50 +3571,50 @@
   TEST_c_c (csinh, 0.0, minus_zero, 0.0, minus_zero);
   TEST_c_c (csinh, minus_zero, minus_zero, minus_zero, minus_zero);
 
-  TEST_c_c (csinh, 0.0, plus_infty, 0.0, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, minus_zero, plus_infty, 0.0, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, 0.0, minus_infty, 0.0, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, minus_zero, minus_infty, 0.0, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, 0.0, plus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, minus_zero, plus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, 0.0, minus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, minus_zero, minus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
 
   TEST_c_c (csinh, plus_infty, 0.0, plus_infty, 0.0);
   TEST_c_c (csinh, minus_infty, 0.0, minus_infty, 0.0);
   TEST_c_c (csinh, plus_infty, minus_zero, plus_infty, minus_zero);
   TEST_c_c (csinh, minus_infty, minus_zero, minus_infty, minus_zero);
 
-  TEST_c_c (csinh, plus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, minus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, minus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
 
   TEST_c_c (csinh, plus_infty, 4.625, minus_infty, minus_infty);
   TEST_c_c (csinh, minus_infty, 4.625, plus_infty, minus_infty);
   TEST_c_c (csinh, plus_infty, -4.625, minus_infty, plus_infty);
   TEST_c_c (csinh, minus_infty, -4.625, plus_infty, plus_infty);
 
-  TEST_c_c (csinh, 6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (csinh, -6.75, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (csinh, 6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (csinh, -6.75, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (csinh, 0.0, nan_value, 0.0, nan_value, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, minus_zero, nan_value, 0.0, nan_value, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (csinh, plus_infty, nan_value, plus_infty, nan_value, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (csinh, minus_infty, nan_value, plus_infty, nan_value, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (csinh, 9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csinh, -9.0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csinh, nan_value, 0.0, nan_value, 0.0);
-  TEST_c_c (csinh, nan_value, minus_zero, nan_value, minus_zero);
-
-  TEST_c_c (csinh, nan_value, 10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csinh, nan_value, -10.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csinh, nan_value, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csinh, nan_value, minus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csinh, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (csinh, 6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (csinh, -6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (csinh, 6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (csinh, -6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (csinh, 0.0, qnan_value, 0.0, qnan_value, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, minus_zero, qnan_value, 0.0, qnan_value, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (csinh, plus_infty, qnan_value, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (csinh, minus_infty, qnan_value, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (csinh, 9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csinh, -9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csinh, qnan_value, 0.0, qnan_value, 0.0);
+  TEST_c_c (csinh, qnan_value, minus_zero, qnan_value, minus_zero);
+
+  TEST_c_c (csinh, qnan_value, 10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csinh, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csinh, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csinh, qnan_value, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csinh, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (csinh, 0.75L, 1.25L, 0.259294854551162779153349830618433028L, 1.22863452409509552219214606515777594L);
   TEST_c_c (csinh, -2, -3, 3.59056458998577995201256544779481679L, -0.530921086248519805267040090660676560L);
@@ -3692,21 +3693,21 @@
   TEST_c_c (csqrt, -4, minus_infty, plus_infty, minus_infty);
   TEST_c_c (csqrt, minus_infty, minus_infty, plus_infty, minus_infty);
 
-  TEST_c_c (csqrt, minus_infty, nan_value, nan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (csqrt, plus_infty, nan_value, plus_infty, nan_value);
-
-  TEST_c_c (csqrt, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csqrt, 1, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csqrt, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csqrt, -1, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csqrt, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csqrt, nan_value, 8, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csqrt, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (csqrt, nan_value, -8, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (csqrt, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (csqrt, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (csqrt, plus_infty, qnan_value, plus_infty, qnan_value);
+
+  TEST_c_c (csqrt, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csqrt, 1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csqrt, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csqrt, -1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csqrt, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csqrt, qnan_value, 8, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csqrt, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (csqrt, qnan_value, -8, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (csqrt, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (csqrt, 16.0, -30.0, 5.0, -3.0);
   TEST_c_c (csqrt, -1, 0, 0.0, 1.0);
@@ -3800,30 +3801,30 @@
   TEST_c_c (ctan, minus_zero, minus_infty, minus_zero, -1.0);
   TEST_c_c (ctan, -1, minus_infty, minus_zero, -1.0);
 
-  TEST_c_c (ctan, plus_infty, 0, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctan, plus_infty, 2, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctan, minus_infty, 0, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctan, minus_infty, 2, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctan, plus_infty, minus_zero, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctan, plus_infty, -2, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctan, minus_infty, minus_zero, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctan, minus_infty, -2, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (ctan, nan_value, plus_infty, 0.0, 1.0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ctan, nan_value, minus_infty, 0.0, -1.0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (ctan, 0, nan_value, 0.0, nan_value);
-  TEST_c_c (ctan, minus_zero, nan_value, minus_zero, nan_value);
-
-  TEST_c_c (ctan, 0.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctan, -4.5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ctan, nan_value, 0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctan, nan_value, 5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctan, nan_value, minus_zero, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctan, nan_value, -0.25, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ctan, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (ctan, plus_infty, 0, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctan, plus_infty, 2, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctan, minus_infty, 0, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctan, minus_infty, 2, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctan, plus_infty, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctan, plus_infty, -2, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctan, minus_infty, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctan, minus_infty, -2, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (ctan, qnan_value, plus_infty, 0.0, 1.0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ctan, qnan_value, minus_infty, 0.0, -1.0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (ctan, 0, qnan_value, 0.0, qnan_value);
+  TEST_c_c (ctan, minus_zero, qnan_value, minus_zero, qnan_value);
+
+  TEST_c_c (ctan, 0.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctan, -4.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ctan, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctan, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctan, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctan, qnan_value, -0.25, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ctan, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (ctan, 0.75L, 1.25L, 0.160807785916206426725166058173438663L, 0.975363285031235646193581759755216379L);
   TEST_c_c (ctan, -2, -3, 0.376402564150424829275122113032269084e-2L, -1.00323862735360980144635859782192726L);
@@ -4019,30 +4020,30 @@
   TEST_c_c (ctanh, minus_infty, minus_zero, -1.0, minus_zero);
   TEST_c_c (ctanh, minus_infty, -1, -1.0, minus_zero);
 
-  TEST_c_c (ctanh, 0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctanh, 2, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctanh, 0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctanh, 2, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctanh, minus_zero, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctanh, -2, plus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctanh, minus_zero, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-  TEST_c_c (ctanh, -2, minus_infty, nan_value, nan_value, INVALID_EXCEPTION);
-
-  TEST_c_c (ctanh, plus_infty, nan_value, 1.0, 0.0, IGNORE_ZERO_INF_SIGN);
-  TEST_c_c (ctanh, minus_infty, nan_value, -1.0, 0.0, IGNORE_ZERO_INF_SIGN);
-
-  TEST_c_c (ctanh, nan_value, 0, nan_value, 0.0);
-  TEST_c_c (ctanh, nan_value, minus_zero, nan_value, minus_zero);
-
-  TEST_c_c (ctanh, nan_value, 0.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctanh, nan_value, -4.5, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ctanh, 0, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctanh, 5, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctanh, minus_zero, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_c_c (ctanh, -0.25, nan_value, nan_value, nan_value, INVALID_EXCEPTION_OK);
-
-  TEST_c_c (ctanh, nan_value, nan_value, nan_value, nan_value);
+  TEST_c_c (ctanh, 0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctanh, 2, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctanh, 0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctanh, 2, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctanh, minus_zero, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctanh, -2, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctanh, minus_zero, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+  TEST_c_c (ctanh, -2, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+
+  TEST_c_c (ctanh, plus_infty, qnan_value, 1.0, 0.0, IGNORE_ZERO_INF_SIGN);
+  TEST_c_c (ctanh, minus_infty, qnan_value, -1.0, 0.0, IGNORE_ZERO_INF_SIGN);
+
+  TEST_c_c (ctanh, qnan_value, 0, qnan_value, 0.0);
+  TEST_c_c (ctanh, qnan_value, minus_zero, qnan_value, minus_zero);
+
+  TEST_c_c (ctanh, qnan_value, 0.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctanh, qnan_value, -4.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ctanh, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctanh, 5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctanh, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_c_c (ctanh, -0.25, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+
+  TEST_c_c (ctanh, qnan_value, qnan_value, qnan_value, qnan_value);
 
   TEST_c_c (ctanh, 0, M_PI_4l, 0.0, 1.0);
 
@@ -4230,7 +4231,7 @@
   TEST_f_f (erf, minus_zero, minus_zero);
   TEST_f_f (erf, plus_infty, 1);
   TEST_f_f (erf, minus_infty, -1);
-  TEST_f_f (erf, nan_value, nan_value);
+  TEST_f_f (erf, qnan_value, qnan_value);
 
   TEST_f_f (erf, 0.125L, 0.140316204801333817393029446521623398L);
   TEST_f_f (erf, 0.75L, 0.711155633653515131598937834591410777L);
@@ -4258,7 +4259,7 @@
   TEST_f_f (erfc, minus_infty, 2.0);
   TEST_f_f (erfc, 0.0, 1.0);
   TEST_f_f (erfc, minus_zero, 1.0);
-  TEST_f_f (erfc, nan_value, nan_value);
+  TEST_f_f (erfc, qnan_value, qnan_value);
 
   TEST_f_f (erfc, 0.125L, 0.859683795198666182606970553478376602L);
   TEST_f_f (erfc, 0.75L, 0.288844366346484868401062165408589223L);
@@ -4300,7 +4301,7 @@
   TEST_f_f (exp, plus_infty, plus_infty);
   TEST_f_f (exp, minus_infty, 0);
 #endif
-  TEST_f_f (exp, nan_value, nan_value);
+  TEST_f_f (exp, qnan_value, qnan_value);
   TEST_f_f (exp, 1, M_El);
 
   TEST_f_f (exp, 2, M_E2l);
@@ -4449,7 +4450,7 @@
 
   TEST_f_f (exp10, plus_infty, plus_infty);
   TEST_f_f (exp10, minus_infty, 0);
-  TEST_f_f (exp10, nan_value, nan_value);
+  TEST_f_f (exp10, qnan_value, qnan_value);
   TEST_f_f (exp10, 3, 1000);
   TEST_f_f (exp10, -1, 0.1L);
   TEST_f_f (exp10, 36, 1.0e36L);
@@ -4487,7 +4488,7 @@
   TEST_f_f (exp2, minus_zero, 1);
   TEST_f_f (exp2, plus_infty, plus_infty);
   TEST_f_f (exp2, minus_infty, 0);
-  TEST_f_f (exp2, nan_value, nan_value);
+  TEST_f_f (exp2, qnan_value, qnan_value);
 
   TEST_f_f (exp2, 10, 1024);
   TEST_f_f (exp2, -1, 0.5);
@@ -4534,7 +4535,7 @@
   TEST_f_f (expm1, plus_infty, plus_infty);
   TEST_f_f (expm1, minus_infty, -1);
 #endif
-  TEST_f_f (expm1, nan_value, nan_value);
+  TEST_f_f (expm1, qnan_value, qnan_value);
 
   TEST_f_f (expm1, 1, M_El - 1.0);
   TEST_f_f (expm1, 0.75L, 1.11700001661267466854536981983709561L);
@@ -4591,7 +4592,7 @@
 
   TEST_f_f (fabs, plus_infty, plus_infty);
   TEST_f_f (fabs, minus_infty, plus_infty);
-  TEST_f_f (fabs, nan_value, nan_value);
+  TEST_f_f (fabs, qnan_value, qnan_value);
 
   TEST_f_f (fabs, 38.0, 38.0);
   TEST_f_f (fabs, -M_El, M_El);
@@ -4620,16 +4621,16 @@
   TEST_ff_f (fdim, 9, plus_infty, 0);
   TEST_ff_f (fdim, -9, plus_infty, 0);
 
-  TEST_ff_f (fdim, 0, nan_value, nan_value);
-  TEST_ff_f (fdim, 9, nan_value, nan_value);
-  TEST_ff_f (fdim, -9, nan_value, nan_value);
-  TEST_ff_f (fdim, nan_value, 9, nan_value);
-  TEST_ff_f (fdim, nan_value, -9, nan_value);
-  TEST_ff_f (fdim, plus_infty, nan_value, nan_value);
-  TEST_ff_f (fdim, minus_infty, nan_value, nan_value);
-  TEST_ff_f (fdim, nan_value, plus_infty, nan_value);
-  TEST_ff_f (fdim, nan_value, minus_infty, nan_value);
-  TEST_ff_f (fdim, nan_value, nan_value, nan_value);
+  TEST_ff_f (fdim, 0, qnan_value, qnan_value);
+  TEST_ff_f (fdim, 9, qnan_value, qnan_value);
+  TEST_ff_f (fdim, -9, qnan_value, qnan_value);
+  TEST_ff_f (fdim, qnan_value, 9, qnan_value);
+  TEST_ff_f (fdim, qnan_value, -9, qnan_value);
+  TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value);
+  TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value);
+  TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value);
+  TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value);
+  TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value);
 
   TEST_ff_f (fdim, plus_infty, plus_infty, 0);
 
@@ -4648,7 +4649,7 @@
   TEST_f_b (finite, min_subnorm_value, 1);
   TEST_f_b (finite, plus_infty, 0);
   TEST_f_b (finite, minus_infty, 0);
-  TEST_f_b (finite, nan_value, 0);
+  TEST_f_b (finite, qnan_value, 0);
 
   END (finite);
 }
@@ -4663,7 +4664,7 @@
   TEST_f_f (floor, minus_zero, minus_zero);
   TEST_f_f (floor, plus_infty, plus_infty);
   TEST_f_f (floor, minus_infty, minus_infty);
-  TEST_f_f (floor, nan_value, nan_value);
+  TEST_f_f (floor, qnan_value, qnan_value);
 
   TEST_f_f (floor, M_PIl, 3.0);
   TEST_f_f (floor, -M_PIl, -4.0);
@@ -4761,26 +4762,26 @@
   START (fma);
 
   TEST_fff_f (fma, 1.0, 2.0, 3.0, 5.0);
-  TEST_fff_f (fma, nan_value, 2.0, 3.0, nan_value);
-  TEST_fff_f (fma, 1.0, nan_value, 3.0, nan_value);
-  TEST_fff_f (fma, 1.0, 2.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_fff_f (fma, plus_infty, 0.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_fff_f (fma, minus_infty, 0.0, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_fff_f (fma, 0.0, plus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_fff_f (fma, 0.0, minus_infty, nan_value, nan_value, INVALID_EXCEPTION_OK);
-  TEST_fff_f (fma, plus_infty, 0.0, 1.0, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, minus_infty, 0.0, 1.0, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, 0.0, plus_infty, 1.0, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, 0.0, minus_infty, 1.0, nan_value, INVALID_EXCEPTION);
-
-  TEST_fff_f (fma, plus_infty, plus_infty, minus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, minus_infty, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, plus_infty, minus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, minus_infty, minus_infty, minus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, plus_infty, 3.5L, minus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, minus_infty, -7.5L, minus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, -13.5L, plus_infty, plus_infty, nan_value, INVALID_EXCEPTION);
-  TEST_fff_f (fma, minus_infty, 7.5L, plus_infty, nan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, qnan_value, 2.0, 3.0, qnan_value);
+  TEST_fff_f (fma, 1.0, qnan_value, 3.0, qnan_value);
+  TEST_fff_f (fma, 1.0, 2.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_fff_f (fma, plus_infty, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_fff_f (fma, minus_infty, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_fff_f (fma, 0.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_fff_f (fma, 0.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+  TEST_fff_f (fma, plus_infty, 0.0, 1.0, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, minus_infty, 0.0, 1.0, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, 0.0, plus_infty, 1.0, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, 0.0, minus_infty, 1.0, qnan_value, INVALID_EXCEPTION);
+
+  TEST_fff_f (fma, plus_infty, plus_infty, minus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, minus_infty, minus_infty, minus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, plus_infty, 3.5L, minus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, minus_infty, -7.5L, minus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, -13.5L, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+  TEST_fff_f (fma, minus_infty, 7.5L, plus_infty, qnan_value, INVALID_EXCEPTION);
 
   TEST_fff_f (fma, 1.25L, 0.75L, 0.0625L, 1.0L);
 
@@ -5728,17 +5729,17 @@
   TEST_ff_f (fmax, 9, minus_infty, 9);
   TEST_ff_f (fmax, -9, minus_infty, -9);
 
-  TEST_ff_f (fmax, 0, nan_value, 0);
-  TEST_ff_f (fmax, 9, nan_value, 9);
-  TEST_ff_f (fmax, -9, nan_value, -9);
-  TEST_ff_f (fmax, nan_value, 0, 0);
-  TEST_ff_f (fmax, nan_value, 9, 9);
-  TEST_ff_f (fmax, nan_value, -9, -9);
-  TEST_ff_f (fmax, plus_infty, nan_value, plus_infty);
-  TEST_ff_f (fmax, minus_infty, nan_value, minus_infty);
-  TEST_ff_f (fmax, nan_value, plus_infty, plus_infty);
-  TEST_ff_f (fmax, nan_value, minus_infty, minus_infty);
-  TEST_ff_f (fmax, nan_value, nan_value, nan_value);
+  TEST_ff_f (fmax, 0, qnan_value, 0);
+  TEST_ff_f (fmax, 9, qnan_value, 9);
+  TEST_ff_f (fmax, -9, qnan_value, -9);
+  TEST_ff_f (fmax, qnan_value, 0, 0);
+  TEST_ff_f (fmax, qnan_value, 9, 9);
+  TEST_ff_f (fmax, qnan_value, -9, -9);
+  TEST_ff_f (fmax, plus_infty, qnan_value, plus_infty);
+  TEST_ff_f (fmax, minus_infty, qnan_value, minus_infty);
+  TEST_ff_f (fmax, qnan_value, plus_infty, plus_infty);
+  TEST_ff_f (fmax, qnan_value, minus_infty, minus_infty);
+  TEST_ff_f (fmax, qnan_value, qnan_value, qnan_value);
 
   END (fmax);
 }
@@ -5765,17 +5766,17 @@
   TEST_ff_f (fmin, 9, minus_infty, minus_infty);
   TEST_ff_f (fmin, -9, minus_infty, minus_infty);
 
-  TEST_ff_f (fmin, 0, nan_value, 0);
-  TEST_ff_f (fmin, 9, nan_value, 9);
-  TEST_ff_f (fmin, -9, nan_value, -9);
-  TEST_ff_f (fmin, nan_value, 0, 0);
-  TEST_ff_f (fmin, nan_value, 9, 9);
-  TEST_ff_f (fmin, nan_value, -9, -9);
-  TEST_ff_f (fmin, plus_infty, nan_value, plus_infty);
-  TEST_ff_f (fmin, minus_infty, nan_value, minus_infty);
-  TEST_ff_f (fmin, nan_value, plus_infty, plus_infty);
-  TEST_ff_f (fmin, nan_value, minus_infty, minus_infty);
-  TEST_ff_f (fmin, nan_value, nan_value, nan_value);
+  TEST_ff_f (fmin, 0, qnan_value, 0);
+  TEST_ff_f (fmin, 9, qnan_value, 9);
+  TEST_ff_f (fmin, -9, qnan_value, -9);
+  TEST_ff_f (fmin, qnan_value, 0, 0);
+  TEST_ff_f (fmin, qnan_value, 9, 9);
+  TEST_ff_f (fmin, qnan_value, -9, -9);
+  TEST_ff_f (fmin, plus_infty, qnan_value, plus_infty);
+  TEST_ff_f (fmin, minus_infty, qnan_value, minus_infty);
+  TEST_ff_f (fmin, qnan_value, plus_infty, plus_infty);
+  TEST_ff_f (fmin, qnan_value, minus_infty, minus_infty);
+  TEST_ff_f (fmin, qnan_value, qnan_value, qnan_value);
 
   END (fmin);
 }
@@ -5798,27 +5799,27 @@
   /* fmod (-0, y) == -0 for y != 0.  */
   TEST_ff_f (fmod, minus_zero, 3, minus_zero);
 
-  /* fmod (+inf, y) == NaN plus invalid exception.  */
-  errno = 0;
-  TEST_ff_f (fmod, plus_infty, 3, nan_value, INVALID_EXCEPTION);
+  /* fmod (+inf, y) == qNaN plus invalid exception.  */
+  errno = 0;
+  TEST_ff_f (fmod, plus_infty, 3, qnan_value, INVALID_EXCEPTION);
   check_int ("errno for fmod(Inf,3) unchanged", errno, EDOM, 0, 0, 0);
-  /* fmod (-inf, y) == NaN plus invalid exception.  */
-  errno = 0;
-  TEST_ff_f (fmod, minus_infty, 3, nan_value, INVALID_EXCEPTION);
+  /* fmod (-inf, y) == qNaN plus invalid exception.  */
+  errno = 0;
+  TEST_ff_f (fmod, minus_infty, 3, qnan_value, INVALID_EXCEPTION);
   check_int ("errno for fmod(-Inf,3) unchanged", errno, EDOM, 0, 0, 0);
-  /* fmod (x, +0) == NaN plus invalid exception.  */
-  errno = 0;
-  TEST_ff_f (fmod, 3, 0, nan_value, INVALID_EXCEPTION);
+  /* fmod (x, +0) == qNaN plus invalid exception.  */
+  errno = 0;
+  TEST_ff_f (fmod, 3, 0, qnan_value, INVALID_EXCEPTION);
   check_int ("errno for fmod(3,0) unchanged", errno, EDOM, 0, 0, 0);
-  /* fmod (x, -0) == NaN plus invalid exception.  */
-  TEST_ff_f (fmod, 3, minus_zero, nan_value, INVALID_EXCEPTION);
+  /* fmod (x, -0) == qNaN plus invalid exception.  */
+  TEST_ff_f (fmod, 3, minus_zero, qnan_value, INVALID_EXCEPTION);
 
   /* fmod (x, +inf) == x for x not infinite.  */
   TEST_ff_f (fmod, 3.0, plus_infty, 3.0);
   /* fmod (x, -inf) == x for x not infinite.  */
   TEST_ff_f (fmod, 3.0, minus_infty, 3.0);
 
-  TEST_ff_f (fmod, nan_value, nan_value, nan_value);
+  TEST_ff_f (fmod, qnan_value, qnan_value, qnan_value);
 
   TEST_ff_f (fmod, 6.5, 2.25L, 2.0L);
   TEST_ff_f (fmod, -6.5, 2.25L, -2.0L);
@@ -5842,7 +5843,7 @@
 {
   START (fpclassify);
 
-  TEST_f_i (fpclassify, nan_value, FP_NAN);
+  TEST_f_i (fpclassify, qnan_value, FP_NAN);
   TEST_f_i (fpclassify, plus_infty, FP_INFINITE);
   TEST_f_i (fpclassify, minus_infty, FP_INFINITE);
   TEST_f_i (fpclassify, plus_zero, FP_ZERO);
@@ -5863,7 +5864,7 @@
 
   TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE);
   TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE);
-  TEST_fI_f1 (frexp, nan_value, nan_value, IGNORE);
+  TEST_fI_f1 (frexp, qnan_value, qnan_value, IGNORE);
 
   TEST_fI_f1 (frexp, 0.0, 0.0, 0.0);
   TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0);
@@ -5891,7 +5892,7 @@
   TEST_f_f (gamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
   TEST_f_f (gamma, -3, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
   TEST_f_f (gamma, minus_infty, plus_infty);
-  TEST_f_f (gamma, nan_value, nan_value);
+  TEST_f_f (gamma, qnan_value, qnan_value);
 
   TEST_f_f1 (gamma, 1, 0, 1);
   TEST_f_f1 (gamma, 3, M_LN2l, 1);
@@ -5917,13 +5918,13 @@
   TEST_ff_f (hypot, minus_infty, 1, plus_infty, IGNORE_ZERO_INF_SIGN);
 
 #ifndef TEST_INLINE
-  TEST_ff_f (hypot, plus_infty, nan_value, plus_infty);
-  TEST_ff_f (hypot, minus_infty, nan_value, plus_infty);
-  TEST_ff_f (hypot, nan_value, plus_infty, plus_infty);
-  TEST_ff_f (hypot, nan_value, minus_infty, plus_infty);
-#endif
-
-  TEST_ff_f (hypot, nan_value, nan_value, nan_value);
+  TEST_ff_f (hypot, plus_infty, qnan_value, plus_infty);
+  TEST_ff_f (hypot, minus_infty, qnan_value, plus_infty);
+  TEST_ff_f (hypot, qnan_value, plus_infty, plus_infty);
+  TEST_ff_f (hypot, qnan_value, minus_infty, plus_infty);
+#endif
+
+  TEST_ff_f (hypot, qnan_value, qnan_value, qnan_value);
 
   /* hypot (x,y) == hypot (+-x, +-y)  */
   TEST_ff_f (hypot, 0.7L, 12.4L, 12.419742348374220601176836866763271L);
@@ -5978,10 +5979,10 @@
   errno = 0;
   TEST_f_i (ilogb, 0.0, FP_ILOGB0, INVALID_EXCEPTION);
   check_int ("errno for ilogb(0.0) unchanged", errno, EDOM, 0, 0, 0);
-  /* ilogb (NaN) == FP_ILOGBNAN plus invalid exception  */
-  errno = 0;
-  TEST_f_i (ilogb, nan_value, FP_ILOGBNAN, INVALID_EXCEPTION);
-  check_int ("errno for ilogb(NaN) unchanged", errno, EDOM, 0, 0, 0);
+  /* ilogb (qNaN) == FP_ILOGBNAN plus invalid exception  */
+  errno = 0;
+  TEST_f_i (ilogb, qnan_value, FP_ILOGBNAN, INVALID_EXCEPTION);
+  check_int ("errno for ilogb(qNaN) unchanged", errno, EDOM, 0, 0, 0);
   /* ilogb (inf) == INT_MAX plus invalid exception  */
   errno = 0;
   TEST_f_i (ilogb, plus_infty, INT_MAX, INVALID_EXCEPTION);
@@ -6005,7 +6006,7 @@
   TEST_f_b (isfinite, min_subnorm_value, 1);
   TEST_f_b (isfinite, plus_infty, 0);
   TEST_f_b (isfinite, minus_infty, 0);
-  TEST_f_b (isfinite, nan_value, 0);
+  TEST_f_b (isfinite, qnan_value, 0);
 
   END (isfinite);
 }
@@ -6018,19 +6019,19 @@
   TEST_ff_i (isgreater, minus_zero, minus_zero, 0);
   TEST_ff_i (isgreater, minus_zero, plus_zero, 0);
   TEST_ff_i (isgreater, minus_zero, (FLOAT) 1, 0);
-  TEST_ff_i (isgreater, minus_zero, nan_value, 0);
+  TEST_ff_i (isgreater, minus_zero, qnan_value, 0);
   TEST_ff_i (isgreater, plus_zero, minus_zero, 0);
   TEST_ff_i (isgreater, plus_zero, plus_zero, 0);
   TEST_ff_i (isgreater, plus_zero, (FLOAT) 1, 0);
-  TEST_ff_i (isgreater, plus_zero, nan_value, 0);
+  TEST_ff_i (isgreater, plus_zero, qnan_value, 0);
   TEST_ff_i (isgreater, (FLOAT) 1, minus_zero, 1);
   TEST_ff_i (isgreater, (FLOAT) 1, plus_zero, 1);
   TEST_ff_i (isgreater, (FLOAT) 1, (FLOAT) 1, 0);
-  TEST_ff_i (isgreater, (FLOAT) 1, nan_value, 0);
-  TEST_ff_i (isgreater, nan_value, minus_zero, 0);
-  TEST_ff_i (isgreater, nan_value, plus_zero, 0);
-  TEST_ff_i (isgreater, nan_value, (FLOAT) 1, 0);
-  TEST_ff_i (isgreater, nan_value, nan_value, 0);
+  TEST_ff_i (isgreater, (FLOAT) 1, qnan_value, 0);

[... 3593 lines stripped ...]
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits