From 64a17f1adde4715bb6607f64decd73b2df9e6852 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 19 Dec 2013 21:28:30 +0000 Subject: Move tests of cabs and carg from libm-test.inc to auto-libm-test-in. This patch moves tests of cabs and carg to auto-libm-test-in, adding the required support to gen-auto-libm-tests. Tested x86_64 and x86; no ulps updates needed. * math/auto-libm-test-in: Add tests of cabs and carg. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (cabs_test_data): Use AUTO_TESTS_c_f. (carg_test_data): Likewise. * math/gen-auto-libm-tests.c (func_calc_method): Add value mpc_c_f. (func_calc_desc): Add mpc_c_f union field. (test_functions): Add cabs and carg. (calc_generic_results): Handle mpc_c_f. --- ChangeLog | 10 + math/auto-libm-test-in | 40 +++ math/auto-libm-test-out | 600 +++++++++++++++++++++++++++++++++++++++++++++ math/gen-auto-libm-tests.c | 23 ++ math/libm-test.inc | 51 +--- 5 files changed, 676 insertions(+), 48 deletions(-) diff --git a/ChangeLog b/ChangeLog index fe6d523..9ebb675 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2013-12-19 Joseph Myers + * math/auto-libm-test-in: Add tests of cabs and carg. + * math/auto-libm-test-out: Regenerated. + * math/libm-test.inc (cabs_test_data): Use AUTO_TESTS_c_f. + (carg_test_data): Likewise. + * math/gen-auto-libm-tests.c (func_calc_method): Add value + mpc_c_f. + (func_calc_desc): Add mpc_c_f union field. + (test_functions): Add cabs and carg. + (calc_generic_results): Handle mpc_c_f. + * sysdeps/powerpc/powerpc32/libgcc-compat.S [_SOFT_FLOAT || __NO_FPRS__] (__fixdfdi_v_glibc20): Do not define as a macro and a compat symbol. diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 49f6604..383fd01 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -105,6 +105,46 @@ atanh 0 atanh -0 atanh 0.75 +# cabs (x,y) == cabs (y,x). +cabs 0.75 12.390625 +# cabs (x,y) == cabs (-x,y). +cabs -12.390625 0.75 +# cabs (x,y) == cabs (-y,x). +cabs -0.75 12.390625 +# cabs (x,y) == cabs (-x,-y). +cabs -12.390625 -0.75 +# cabs (x,y) == cabs (-y,-x). +cabs -0.75 -12.390625 +# cabs (x,0) == fabs (x). +cabs -0.75 0 +cabs 0.75 0 +cabs -1.0 0 +cabs 1.0 0 +cabs -5.7e7 0 +cabs 5.7e7 0 +cabs 0.75 1.25 + +# carg (x + i 0) == 0 for x > 0. +carg 2.0 0 +# carg (x - i 0) == -0 for x > 0. +carg 2.0 -0 +carg 0 0 +carg 0 -0 +# carg (x + i 0) == +pi for x < 0. +carg -2.0 0 +# carg (x - i 0) == -pi for x < 0. +carg -2.0 -0 +carg -0 0 +carg -0 -0 +# carg (+0 + i y) == pi/2 for y > 0. +carg 0 2.0 +# carg (-0 + i y) == pi/2 for y > 0. +carg -0 2.0 +# carg (+0 + i y) == -pi/2 for y < 0. +carg 0 -2.0 +# carg (-0 + i y) == -pi/2 for y < 0. +carg -0 -2.0 + cbrt 0.0 cbrt -0 cbrt -0.001 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 4df6101..54cfbde 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -4851,6 +4851,606 @@ atanh 0.75 = atanh tonearest ldbl-128ibm 0xcp-4L : 0xf.913957192d2baa37b4a4b6793p-4L : inexact-ok = atanh towardzero ldbl-128ibm 0xcp-4L : 0xf.913957192d2baa37b4a4b6793p-4L : inexact-ok = atanh upward ldbl-128ibm 0xcp-4L : 0xf.913957192d2baa37b4a4b67934p-4L : inexact-ok +cabs 0.75 12.390625 += cabs downward flt-32 0xcp-4f 0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs tonearest flt-32 0xcp-4f 0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs towardzero flt-32 0xcp-4f 0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs upward flt-32 0xcp-4f 0xc.64p+0f : 0xc.69ce4p+0f : inexact-ok += cabs downward dbl-64 0xcp-4 0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs tonearest dbl-64 0xcp-4 0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs towardzero dbl-64 0xcp-4 0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs upward dbl-64 0xcp-4 0xc.64p+0 : 0xc.69ce375a71e1p+0 : inexact-ok += cabs downward ldbl-96-intel 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-intel 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-intel 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-intel 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-96-m68k 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-m68k 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-m68k 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-m68k 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-128 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs tonearest ldbl-128 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs towardzero ldbl-128 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs upward ldbl-128 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9fp+0L : inexact-ok += cabs downward ldbl-128ibm 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs tonearest ldbl-128ibm 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs towardzero ldbl-128ibm 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs upward ldbl-128ibm 0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830ccp+0L : inexact-ok +cabs -12.390625 0.75 += cabs downward flt-32 -0xc.64p+0f 0xcp-4f : 0xc.69ce3p+0f : inexact-ok += cabs tonearest flt-32 -0xc.64p+0f 0xcp-4f : 0xc.69ce3p+0f : inexact-ok += cabs towardzero flt-32 -0xc.64p+0f 0xcp-4f : 0xc.69ce3p+0f : inexact-ok += cabs upward flt-32 -0xc.64p+0f 0xcp-4f : 0xc.69ce4p+0f : inexact-ok += cabs downward dbl-64 -0xc.64p+0 0xcp-4 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs tonearest dbl-64 -0xc.64p+0 0xcp-4 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs towardzero dbl-64 -0xc.64p+0 0xcp-4 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs upward dbl-64 -0xc.64p+0 0xcp-4 : 0xc.69ce375a71e1p+0 : inexact-ok += cabs downward ldbl-96-intel -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-intel -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-intel -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-intel -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-96-m68k -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-m68k -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-m68k -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-m68k -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-128 -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs tonearest ldbl-128 -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs towardzero ldbl-128 -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs upward ldbl-128 -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830c9fp+0L : inexact-ok += cabs downward ldbl-128ibm -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs tonearest ldbl-128ibm -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs towardzero ldbl-128ibm -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs upward ldbl-128ibm -0xc.64p+0L 0xcp-4L : 0xc.69ce375a71e09a9df3616830ccp+0L : inexact-ok +cabs -0.75 12.390625 += cabs downward flt-32 -0xcp-4f 0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs tonearest flt-32 -0xcp-4f 0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs towardzero flt-32 -0xcp-4f 0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs upward flt-32 -0xcp-4f 0xc.64p+0f : 0xc.69ce4p+0f : inexact-ok += cabs downward dbl-64 -0xcp-4 0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs tonearest dbl-64 -0xcp-4 0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs towardzero dbl-64 -0xcp-4 0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs upward dbl-64 -0xcp-4 0xc.64p+0 : 0xc.69ce375a71e1p+0 : inexact-ok += cabs downward ldbl-96-intel -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-intel -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-intel -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-intel -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-96-m68k -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-m68k -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-m68k -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-m68k -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-128 -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs tonearest ldbl-128 -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs towardzero ldbl-128 -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs upward ldbl-128 -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9fp+0L : inexact-ok += cabs downward ldbl-128ibm -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs tonearest ldbl-128ibm -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs towardzero ldbl-128ibm -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs upward ldbl-128ibm -0xcp-4L 0xc.64p+0L : 0xc.69ce375a71e09a9df3616830ccp+0L : inexact-ok +cabs -12.390625 -0.75 += cabs downward flt-32 -0xc.64p+0f -0xcp-4f : 0xc.69ce3p+0f : inexact-ok += cabs tonearest flt-32 -0xc.64p+0f -0xcp-4f : 0xc.69ce3p+0f : inexact-ok += cabs towardzero flt-32 -0xc.64p+0f -0xcp-4f : 0xc.69ce3p+0f : inexact-ok += cabs upward flt-32 -0xc.64p+0f -0xcp-4f : 0xc.69ce4p+0f : inexact-ok += cabs downward dbl-64 -0xc.64p+0 -0xcp-4 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs tonearest dbl-64 -0xc.64p+0 -0xcp-4 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs towardzero dbl-64 -0xc.64p+0 -0xcp-4 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs upward dbl-64 -0xc.64p+0 -0xcp-4 : 0xc.69ce375a71e1p+0 : inexact-ok += cabs downward ldbl-96-intel -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-intel -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-intel -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-intel -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-96-m68k -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-m68k -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-m68k -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-m68k -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-128 -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs tonearest ldbl-128 -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs towardzero ldbl-128 -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs upward ldbl-128 -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830c9fp+0L : inexact-ok += cabs downward ldbl-128ibm -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs tonearest ldbl-128ibm -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs towardzero ldbl-128ibm -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs upward ldbl-128ibm -0xc.64p+0L -0xcp-4L : 0xc.69ce375a71e09a9df3616830ccp+0L : inexact-ok +cabs -0.75 -12.390625 += cabs downward flt-32 -0xcp-4f -0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs tonearest flt-32 -0xcp-4f -0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs towardzero flt-32 -0xcp-4f -0xc.64p+0f : 0xc.69ce3p+0f : inexact-ok += cabs upward flt-32 -0xcp-4f -0xc.64p+0f : 0xc.69ce4p+0f : inexact-ok += cabs downward dbl-64 -0xcp-4 -0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs tonearest dbl-64 -0xcp-4 -0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs towardzero dbl-64 -0xcp-4 -0xc.64p+0 : 0xc.69ce375a71e08p+0 : inexact-ok += cabs upward dbl-64 -0xcp-4 -0xc.64p+0 : 0xc.69ce375a71e1p+0 : inexact-ok += cabs downward ldbl-96-intel -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-intel -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-intel -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-intel -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-96-m68k -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs tonearest ldbl-96-m68k -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs towardzero ldbl-96-m68k -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9p+0L : inexact-ok += cabs upward ldbl-96-m68k -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09aap+0L : inexact-ok += cabs downward ldbl-128 -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs tonearest ldbl-128 -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs towardzero ldbl-128 -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9e8p+0L : inexact-ok += cabs upward ldbl-128 -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c9fp+0L : inexact-ok += cabs downward ldbl-128ibm -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs tonearest ldbl-128ibm -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs towardzero ldbl-128ibm -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830c8p+0L : inexact-ok += cabs upward ldbl-128ibm -0xcp-4L -0xc.64p+0L : 0xc.69ce375a71e09a9df3616830ccp+0L : inexact-ok +cabs -0.75 0 += cabs downward flt-32 -0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs tonearest flt-32 -0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs towardzero flt-32 -0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs upward flt-32 -0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs downward dbl-64 -0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs tonearest dbl-64 -0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs towardzero dbl-64 -0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs upward dbl-64 -0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs downward ldbl-96-intel -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-96-intel -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-96-intel -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-96-intel -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs downward ldbl-96-m68k -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-96-m68k -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-96-m68k -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-96-m68k -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs downward ldbl-128 -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-128 -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-128 -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-128 -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs downward ldbl-128ibm -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-128ibm -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-128ibm -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-128ibm -0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok +cabs 0.75 0 += cabs downward flt-32 0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs tonearest flt-32 0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs towardzero flt-32 0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs upward flt-32 0xcp-4f 0x0p+0f : 0xcp-4f : inexact-ok += cabs downward dbl-64 0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs tonearest dbl-64 0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs towardzero dbl-64 0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs upward dbl-64 0xcp-4 0x0p+0 : 0xcp-4 : inexact-ok += cabs downward ldbl-96-intel 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-96-intel 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-96-intel 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-96-intel 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs downward ldbl-96-m68k 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-96-m68k 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-96-m68k 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-96-m68k 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs downward ldbl-128 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-128 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-128 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-128 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs downward ldbl-128ibm 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs tonearest ldbl-128ibm 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs towardzero ldbl-128ibm 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok += cabs upward ldbl-128ibm 0xcp-4L 0x0p+0L : 0xcp-4L : inexact-ok +cabs -1.0 0 += cabs downward flt-32 -0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs tonearest flt-32 -0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs towardzero flt-32 -0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs upward flt-32 -0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs downward dbl-64 -0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs tonearest dbl-64 -0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs towardzero dbl-64 -0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs upward dbl-64 -0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs downward ldbl-96-intel -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-96-intel -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-96-intel -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-96-intel -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs downward ldbl-96-m68k -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-96-m68k -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-96-m68k -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-96-m68k -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs downward ldbl-128 -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-128 -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-128 -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-128 -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs downward ldbl-128ibm -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-128ibm -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-128ibm -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-128ibm -0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok +cabs 1.0 0 += cabs downward flt-32 0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs tonearest flt-32 0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs towardzero flt-32 0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs upward flt-32 0x1p+0f 0x0p+0f : 0x1p+0f : inexact-ok += cabs downward dbl-64 0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs tonearest dbl-64 0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs towardzero dbl-64 0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs upward dbl-64 0x1p+0 0x0p+0 : 0x1p+0 : inexact-ok += cabs downward ldbl-96-intel 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-96-intel 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-96-intel 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-96-intel 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs downward ldbl-96-m68k 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-96-m68k 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs downward ldbl-128 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-128 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-128 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-128 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs downward ldbl-128ibm 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs tonearest ldbl-128ibm 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs towardzero ldbl-128ibm 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok += cabs upward ldbl-128ibm 0x1p+0L 0x0p+0L : 0x1p+0L : inexact-ok +cabs -5.7e7 0 += cabs downward flt-32 -0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs tonearest flt-32 -0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs towardzero flt-32 -0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs upward flt-32 -0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs downward dbl-64 -0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs tonearest dbl-64 -0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs towardzero dbl-64 -0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs upward dbl-64 -0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs downward ldbl-96-intel -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-96-intel -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-96-intel -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-96-intel -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs downward ldbl-96-m68k -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-96-m68k -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-96-m68k -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-96-m68k -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs downward ldbl-128 -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-128 -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-128 -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-128 -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs downward ldbl-128ibm -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-128ibm -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-128ibm -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-128ibm -0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok +cabs 5.7e7 0 += cabs downward flt-32 0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs tonearest flt-32 0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs towardzero flt-32 0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs upward flt-32 0x3.65c04p+24f 0x0p+0f : 0x3.65c04p+24f : inexact-ok += cabs downward dbl-64 0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs tonearest dbl-64 0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs towardzero dbl-64 0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs upward dbl-64 0x3.65c04p+24 0x0p+0 : 0x3.65c04p+24 : inexact-ok += cabs downward ldbl-96-intel 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-96-intel 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-96-intel 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-96-intel 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs downward ldbl-96-m68k 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-96-m68k 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-96-m68k 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-96-m68k 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs downward ldbl-128 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-128 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-128 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-128 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs downward ldbl-128ibm 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs tonearest ldbl-128ibm 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs towardzero ldbl-128ibm 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok += cabs upward ldbl-128ibm 0x3.65c04p+24L 0x0p+0L : 0x3.65c04p+24L : inexact-ok +cabs 0.75 1.25 += cabs downward flt-32 0xcp-4f 0x1.4p+0f : 0x1.752e5p+0f : inexact-ok += cabs tonearest flt-32 0xcp-4f 0x1.4p+0f : 0x1.752e5p+0f : inexact-ok += cabs towardzero flt-32 0xcp-4f 0x1.4p+0f : 0x1.752e5p+0f : inexact-ok += cabs upward flt-32 0xcp-4f 0x1.4p+0f : 0x1.752e52p+0f : inexact-ok += cabs downward dbl-64 0xcp-4 0x1.4p+0 : 0x1.752e50db3a3a1p+0 : inexact-ok += cabs tonearest dbl-64 0xcp-4 0x1.4p+0 : 0x1.752e50db3a3a2p+0 : inexact-ok += cabs towardzero dbl-64 0xcp-4 0x1.4p+0 : 0x1.752e50db3a3a1p+0 : inexact-ok += cabs upward dbl-64 0xcp-4 0x1.4p+0 : 0x1.752e50db3a3a2p+0 : inexact-ok += cabs downward ldbl-96-intel 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1ap+0L : inexact-ok += cabs tonearest ldbl-96-intel 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1cp+0L : inexact-ok += cabs towardzero ldbl-96-intel 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1ap+0L : inexact-ok += cabs upward ldbl-96-intel 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1cp+0L : inexact-ok += cabs downward ldbl-96-m68k 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1ap+0L : inexact-ok += cabs tonearest ldbl-96-m68k 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1cp+0L : inexact-ok += cabs towardzero ldbl-96-m68k 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1ap+0L : inexact-ok += cabs upward ldbl-96-m68k 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1cp+0L : inexact-ok += cabs downward ldbl-128 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f1fbap+0L : inexact-ok += cabs tonearest ldbl-128 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f1fbbp+0L : inexact-ok += cabs towardzero ldbl-128 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f1fbap+0L : inexact-ok += cabs upward ldbl-128 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f1fbbp+0L : inexact-ok += cabs downward ldbl-128ibm 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f1f8p+0L : inexact-ok += cabs tonearest ldbl-128ibm 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f1f8p+0L : inexact-ok += cabs towardzero ldbl-128ibm 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f1f8p+0L : inexact-ok += cabs upward ldbl-128ibm 0xcp-4L 0x1.4p+0L : 0x1.752e50db3a3a1b1b33b0456f2p+0L : inexact-ok +carg 2.0 0 += carg downward flt-32 0x2p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg tonearest flt-32 0x2p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg towardzero flt-32 0x2p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg upward flt-32 0x2p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg downward dbl-64 0x2p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg tonearest dbl-64 0x2p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg towardzero dbl-64 0x2p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg upward dbl-64 0x2p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg downward ldbl-96-intel 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-96-intel 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-96-intel 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-96-intel 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg downward ldbl-96-m68k 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-96-m68k 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-96-m68k 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-96-m68k 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg downward ldbl-128 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-128 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-128 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-128 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg downward ldbl-128ibm 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-128ibm 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-128ibm 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-128ibm 0x2p+0L 0x0p+0L : 0x0p+0L : inexact-ok +carg 2.0 -0 += carg downward flt-32 0x2p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg tonearest flt-32 0x2p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg towardzero flt-32 0x2p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg upward flt-32 0x2p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg downward dbl-64 0x2p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg tonearest dbl-64 0x2p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg towardzero dbl-64 0x2p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg upward dbl-64 0x2p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg downward ldbl-96-intel 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-96-intel 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-96-intel 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-96-intel 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg downward ldbl-96-m68k 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-96-m68k 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-96-m68k 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-96-m68k 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg downward ldbl-128 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-128 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-128 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-128 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg downward ldbl-128ibm 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-128ibm 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-128ibm 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-128ibm 0x2p+0L -0x0p+0L : -0x0p+0L : inexact-ok +carg 0 0 += carg downward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg tonearest flt-32 0x0p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg towardzero flt-32 0x0p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg upward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f : inexact-ok += carg downward dbl-64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg tonearest dbl-64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg towardzero dbl-64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg upward dbl-64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok += carg downward ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg downward ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg downward ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg downward ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg tonearest ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg towardzero ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok += carg upward ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L : inexact-ok +carg 0 -0 += carg downward flt-32 0x0p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg tonearest flt-32 0x0p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg towardzero flt-32 0x0p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg upward flt-32 0x0p+0f -0x0p+0f : -0x0p+0f : inexact-ok += carg downward dbl-64 0x0p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg tonearest dbl-64 0x0p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg towardzero dbl-64 0x0p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg upward dbl-64 0x0p+0 -0x0p+0 : -0x0p+0 : inexact-ok += carg downward ldbl-96-intel 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-96-intel 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-96-intel 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-96-intel 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg downward ldbl-96-m68k 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-96-m68k 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-96-m68k 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-96-m68k 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg downward ldbl-128 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-128 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-128 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-128 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg downward ldbl-128ibm 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg tonearest ldbl-128ibm 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg towardzero ldbl-128ibm 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok += carg upward ldbl-128ibm 0x0p+0L -0x0p+0L : -0x0p+0L : inexact-ok +carg -2.0 0 += carg downward flt-32 -0x2p+0f 0x0p+0f : 0x3.243f68p+0f : inexact-ok += carg tonearest flt-32 -0x2p+0f 0x0p+0f : 0x3.243f6cp+0f : inexact-ok += carg towardzero flt-32 -0x2p+0f 0x0p+0f : 0x3.243f68p+0f : inexact-ok += carg upward flt-32 -0x2p+0f 0x0p+0f : 0x3.243f6cp+0f : inexact-ok += carg downward dbl-64 -0x2p+0 0x0p+0 : 0x3.243f6a8885a3p+0 : inexact-ok += carg tonearest dbl-64 -0x2p+0 0x0p+0 : 0x3.243f6a8885a3p+0 : inexact-ok += carg towardzero dbl-64 -0x2p+0 0x0p+0 : 0x3.243f6a8885a3p+0 : inexact-ok += carg upward dbl-64 -0x2p+0 0x0p+0 : 0x3.243f6a8885a32p+0 : inexact-ok += carg downward ldbl-96-intel -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg tonearest ldbl-96-intel -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-intel -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-intel -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg downward ldbl-96-m68k -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg tonearest ldbl-96-m68k -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-m68k -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-m68k -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg downward ldbl-128 -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg tonearest ldbl-128 -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg towardzero ldbl-128 -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg upward ldbl-128 -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e0372p+0L : inexact-ok += carg downward ldbl-128ibm -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg tonearest ldbl-128ibm -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg towardzero ldbl-128ibm -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg upward ldbl-128ibm -0x2p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e04p+0L : inexact-ok +carg -2.0 -0 += carg downward flt-32 -0x2p+0f -0x0p+0f : -0x3.243f6cp+0f : inexact-ok += carg tonearest flt-32 -0x2p+0f -0x0p+0f : -0x3.243f6cp+0f : inexact-ok += carg towardzero flt-32 -0x2p+0f -0x0p+0f : -0x3.243f68p+0f : inexact-ok += carg upward flt-32 -0x2p+0f -0x0p+0f : -0x3.243f68p+0f : inexact-ok += carg downward dbl-64 -0x2p+0 -0x0p+0 : -0x3.243f6a8885a32p+0 : inexact-ok += carg tonearest dbl-64 -0x2p+0 -0x0p+0 : -0x3.243f6a8885a3p+0 : inexact-ok += carg towardzero dbl-64 -0x2p+0 -0x0p+0 : -0x3.243f6a8885a3p+0 : inexact-ok += carg upward dbl-64 -0x2p+0 -0x0p+0 : -0x3.243f6a8885a3p+0 : inexact-ok += carg downward ldbl-96-intel -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg tonearest ldbl-96-intel -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-intel -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-intel -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg downward ldbl-96-m68k -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg tonearest ldbl-96-m68k -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-m68k -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-m68k -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg downward ldbl-128 -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg tonearest ldbl-128 -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg towardzero ldbl-128 -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e036ep+0L : inexact-ok += carg upward ldbl-128 -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e036ep+0L : inexact-ok += carg downward ldbl-128ibm -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e04p+0L : inexact-ok += carg tonearest ldbl-128ibm -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg towardzero ldbl-128ibm -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg upward ldbl-128ibm -0x2p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok +carg -0 0 += carg downward flt-32 -0x0p+0f 0x0p+0f : 0x3.243f68p+0f : inexact-ok += carg tonearest flt-32 -0x0p+0f 0x0p+0f : 0x3.243f6cp+0f : inexact-ok += carg towardzero flt-32 -0x0p+0f 0x0p+0f : 0x3.243f68p+0f : inexact-ok += carg upward flt-32 -0x0p+0f 0x0p+0f : 0x3.243f6cp+0f : inexact-ok += carg downward dbl-64 -0x0p+0 0x0p+0 : 0x3.243f6a8885a3p+0 : inexact-ok += carg tonearest dbl-64 -0x0p+0 0x0p+0 : 0x3.243f6a8885a3p+0 : inexact-ok += carg towardzero dbl-64 -0x0p+0 0x0p+0 : 0x3.243f6a8885a3p+0 : inexact-ok += carg upward dbl-64 -0x0p+0 0x0p+0 : 0x3.243f6a8885a32p+0 : inexact-ok += carg downward ldbl-96-intel -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg tonearest ldbl-96-intel -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-intel -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-intel -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg downward ldbl-96-m68k -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg tonearest ldbl-96-m68k -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-m68k -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-m68k -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d4p+0L : inexact-ok += carg downward ldbl-128 -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg tonearest ldbl-128 -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg towardzero ldbl-128 -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg upward ldbl-128 -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e0372p+0L : inexact-ok += carg downward ldbl-128ibm -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg tonearest ldbl-128ibm -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg towardzero ldbl-128ibm -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg upward ldbl-128ibm -0x0p+0L 0x0p+0L : 0x3.243f6a8885a308d313198a2e04p+0L : inexact-ok +carg -0 -0 += carg downward flt-32 -0x0p+0f -0x0p+0f : -0x3.243f6cp+0f : inexact-ok += carg tonearest flt-32 -0x0p+0f -0x0p+0f : -0x3.243f6cp+0f : inexact-ok += carg towardzero flt-32 -0x0p+0f -0x0p+0f : -0x3.243f68p+0f : inexact-ok += carg upward flt-32 -0x0p+0f -0x0p+0f : -0x3.243f68p+0f : inexact-ok += carg downward dbl-64 -0x0p+0 -0x0p+0 : -0x3.243f6a8885a32p+0 : inexact-ok += carg tonearest dbl-64 -0x0p+0 -0x0p+0 : -0x3.243f6a8885a3p+0 : inexact-ok += carg towardzero dbl-64 -0x0p+0 -0x0p+0 : -0x3.243f6a8885a3p+0 : inexact-ok += carg upward dbl-64 -0x0p+0 -0x0p+0 : -0x3.243f6a8885a3p+0 : inexact-ok += carg downward ldbl-96-intel -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg tonearest ldbl-96-intel -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-intel -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-intel -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg downward ldbl-96-m68k -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg tonearest ldbl-96-m68k -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d4p+0L : inexact-ok += carg towardzero ldbl-96-m68k -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg upward ldbl-96-m68k -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308dp+0L : inexact-ok += carg downward ldbl-128 -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg tonearest ldbl-128 -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e037p+0L : inexact-ok += carg towardzero ldbl-128 -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e036ep+0L : inexact-ok += carg upward ldbl-128 -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e036ep+0L : inexact-ok += carg downward ldbl-128ibm -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e04p+0L : inexact-ok += carg tonearest ldbl-128ibm -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg towardzero ldbl-128ibm -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok += carg upward ldbl-128ibm -0x0p+0L -0x0p+0L : -0x3.243f6a8885a308d313198a2e03p+0L : inexact-ok +carg 0 2.0 += carg downward flt-32 0x0p+0f 0x2p+0f : 0x1.921fb4p+0f : inexact-ok += carg tonearest flt-32 0x0p+0f 0x2p+0f : 0x1.921fb6p+0f : inexact-ok += carg towardzero flt-32 0x0p+0f 0x2p+0f : 0x1.921fb4p+0f : inexact-ok += carg upward flt-32 0x0p+0f 0x2p+0f : 0x1.921fb6p+0f : inexact-ok += carg downward dbl-64 0x0p+0 0x2p+0 : 0x1.921fb54442d18p+0 : inexact-ok += carg tonearest dbl-64 0x0p+0 0x2p+0 : 0x1.921fb54442d18p+0 : inexact-ok += carg towardzero dbl-64 0x0p+0 0x2p+0 : 0x1.921fb54442d18p+0 : inexact-ok += carg upward dbl-64 0x0p+0 0x2p+0 : 0x1.921fb54442d19p+0 : inexact-ok += carg downward ldbl-96-intel 0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg tonearest ldbl-96-intel 0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-intel 0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-intel 0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg downward ldbl-96-m68k 0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg tonearest ldbl-96-m68k 0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-m68k 0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-m68k 0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg downward ldbl-128 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg tonearest ldbl-128 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg towardzero ldbl-128 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg upward ldbl-128 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b9p+0L : inexact-ok += carg downward ldbl-128ibm 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg tonearest ldbl-128ibm 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg towardzero ldbl-128ibm 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg upward ldbl-128ibm 0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51702p+0L : inexact-ok +carg -0 2.0 += carg downward flt-32 -0x0p+0f 0x2p+0f : 0x1.921fb4p+0f : inexact-ok += carg tonearest flt-32 -0x0p+0f 0x2p+0f : 0x1.921fb6p+0f : inexact-ok += carg towardzero flt-32 -0x0p+0f 0x2p+0f : 0x1.921fb4p+0f : inexact-ok += carg upward flt-32 -0x0p+0f 0x2p+0f : 0x1.921fb6p+0f : inexact-ok += carg downward dbl-64 -0x0p+0 0x2p+0 : 0x1.921fb54442d18p+0 : inexact-ok += carg tonearest dbl-64 -0x0p+0 0x2p+0 : 0x1.921fb54442d18p+0 : inexact-ok += carg towardzero dbl-64 -0x0p+0 0x2p+0 : 0x1.921fb54442d18p+0 : inexact-ok += carg upward dbl-64 -0x0p+0 0x2p+0 : 0x1.921fb54442d19p+0 : inexact-ok += carg downward ldbl-96-intel -0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg tonearest ldbl-96-intel -0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-intel -0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-intel -0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg downward ldbl-96-m68k -0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg tonearest ldbl-96-m68k -0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-m68k -0x0p+0L 0x2p+0L : 0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-m68k -0x0p+0L 0x2p+0L : 0x1.921fb54442d1846ap+0L : inexact-ok += carg downward ldbl-128 -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg tonearest ldbl-128 -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg towardzero ldbl-128 -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg upward ldbl-128 -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51701b9p+0L : inexact-ok += carg downward ldbl-128ibm -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg tonearest ldbl-128ibm -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg towardzero ldbl-128ibm -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg upward ldbl-128ibm -0x0p+0L 0x2p+0L : 0x1.921fb54442d18469898cc51702p+0L : inexact-ok +carg 0 -2.0 += carg downward flt-32 0x0p+0f -0x2p+0f : -0x1.921fb6p+0f : inexact-ok += carg tonearest flt-32 0x0p+0f -0x2p+0f : -0x1.921fb6p+0f : inexact-ok += carg towardzero flt-32 0x0p+0f -0x2p+0f : -0x1.921fb4p+0f : inexact-ok += carg upward flt-32 0x0p+0f -0x2p+0f : -0x1.921fb4p+0f : inexact-ok += carg downward dbl-64 0x0p+0 -0x2p+0 : -0x1.921fb54442d19p+0 : inexact-ok += carg tonearest dbl-64 0x0p+0 -0x2p+0 : -0x1.921fb54442d18p+0 : inexact-ok += carg towardzero dbl-64 0x0p+0 -0x2p+0 : -0x1.921fb54442d18p+0 : inexact-ok += carg upward dbl-64 0x0p+0 -0x2p+0 : -0x1.921fb54442d18p+0 : inexact-ok += carg downward ldbl-96-intel 0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg tonearest ldbl-96-intel 0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-intel 0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-intel 0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg downward ldbl-96-m68k 0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg tonearest ldbl-96-m68k 0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-m68k 0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-m68k 0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg downward ldbl-128 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg tonearest ldbl-128 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg towardzero ldbl-128 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok += carg upward ldbl-128 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok += carg downward ldbl-128ibm 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51702p+0L : inexact-ok += carg tonearest ldbl-128ibm 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg towardzero ldbl-128ibm 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg upward ldbl-128ibm 0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok +carg -0 -2.0 += carg downward flt-32 -0x0p+0f -0x2p+0f : -0x1.921fb6p+0f : inexact-ok += carg tonearest flt-32 -0x0p+0f -0x2p+0f : -0x1.921fb6p+0f : inexact-ok += carg towardzero flt-32 -0x0p+0f -0x2p+0f : -0x1.921fb4p+0f : inexact-ok += carg upward flt-32 -0x0p+0f -0x2p+0f : -0x1.921fb4p+0f : inexact-ok += carg downward dbl-64 -0x0p+0 -0x2p+0 : -0x1.921fb54442d19p+0 : inexact-ok += carg tonearest dbl-64 -0x0p+0 -0x2p+0 : -0x1.921fb54442d18p+0 : inexact-ok += carg towardzero dbl-64 -0x0p+0 -0x2p+0 : -0x1.921fb54442d18p+0 : inexact-ok += carg upward dbl-64 -0x0p+0 -0x2p+0 : -0x1.921fb54442d18p+0 : inexact-ok += carg downward ldbl-96-intel -0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg tonearest ldbl-96-intel -0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-intel -0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-intel -0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg downward ldbl-96-m68k -0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg tonearest ldbl-96-m68k -0x0p+0L -0x2p+0L : -0x1.921fb54442d1846ap+0L : inexact-ok += carg towardzero ldbl-96-m68k -0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg upward ldbl-96-m68k -0x0p+0L -0x2p+0L : -0x1.921fb54442d18468p+0L : inexact-ok += carg downward ldbl-128 -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg tonearest ldbl-128 -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b8p+0L : inexact-ok += carg towardzero ldbl-128 -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok += carg upward ldbl-128 -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51701b7p+0L : inexact-ok += carg downward ldbl-128ibm -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc51702p+0L : inexact-ok += carg tonearest ldbl-128ibm -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg towardzero ldbl-128ibm -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok += carg upward ldbl-128ibm -0x0p+0L -0x2p+0L : -0x1.921fb54442d18469898cc517018p+0L : inexact-ok cbrt 0.0 = cbrt downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok = cbrt tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c index 9c8394e..0201b8a 100644 --- a/math/gen-auto-libm-tests.c +++ b/math/gen-auto-libm-tests.c @@ -403,6 +403,9 @@ typedef enum /* MPFR function with a single argument and two floating-point results. */ mpfr_f_11, + /* MPC function with a single complex argument and one real + result. */ + mpc_c_f, } func_calc_method; /* Description of how to calculate a function. */ @@ -418,6 +421,7 @@ typedef struct int (*mpfr_f_f1) (mpfr_t, int *, const mpfr_t, mpfr_rnd_t); int (*mpfr_if_f) (mpfr_t, long, const mpfr_t, mpfr_rnd_t); int (*mpfr_f_11) (mpfr_t, mpfr_t, const mpfr_t, mpfr_rnd_t); + int (*mpc_c_f) (mpfr_t, const mpc_t, mpfr_rnd_t); } func; } func_calc_desc; @@ -471,6 +475,9 @@ typedef struct #define FUNC_mpfr_if_f(NAME, MPFR_FUNC, EXACT) \ FUNC (NAME, ARGS2 (type_int, type_fp), RET1 (type_fp), EXACT, false, \ CALC (mpfr_if_f, MPFR_FUNC)) +#define FUNC_mpc_c_f(NAME, MPFR_FUNC, EXACT) \ + FUNC (NAME, ARGS2 (type_fp, type_fp), RET1 (type_fp), EXACT, true, \ + CALC (mpc_c_f, MPFR_FUNC)) /* List of functions handled by this program. */ static test_function test_functions[] = @@ -482,6 +489,8 @@ static test_function test_functions[] = FUNC_mpfr_f_f ("atan", mpfr_atan, false), FUNC_mpfr_ff_f ("atan2", mpfr_atan2, false), FUNC_mpfr_f_f ("atanh", mpfr_atanh, false), + FUNC_mpc_c_f ("cabs", mpc_abs, false), + FUNC_mpc_c_f ("carg", mpc_arg, false), FUNC_mpfr_f_f ("cbrt", mpfr_cbrt, false), FUNC_mpfr_f_f ("cos", mpfr_cos, false), FUNC_mpfr_f_f ("cosh", mpfr_cosh, false), @@ -1379,6 +1388,20 @@ calc_generic_results (generic_value *outputs, generic_value *inputs, adjust_real (outputs[1].value.f, (comb_ternary & 0xc) != 0); break; + case mpc_c_f: + assert (inputs[0].type == gtype_fp); + assert (inputs[1].type == gtype_fp); + outputs[0].type = gtype_fp; + mpfr_init (outputs[0].value.f); + mpc_t ci; + mpc_init2 (ci, internal_precision); + assert_exact (mpc_set_fr_fr (ci, inputs[0].value.f, inputs[1].value.f, + MPC_RNDNN)); + inexact = calc->func.mpc_c_f (outputs[0].value.f, ci, MPFR_RNDZ); + adjust_real (outputs[0].value.f, inexact); + mpc_clear (ci); + break; + default: abort (); } diff --git a/math/libm-test.inc b/math/libm-test.inc index 7ee4b82..c23696a 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -1917,25 +1917,7 @@ static const struct test_c_f_data cabs_test_data[] = 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), - /* cabs (x,y) == cabs (-x,y). */ - TEST_c_f (cabs, -12.390625L, 0.75L, 12.4133028598606664302388810868156657L), - /* cabs (x,y) == cabs (-y,x). */ - TEST_c_f (cabs, -0.75L, 12.390625L, 12.4133028598606664302388810868156657L), - /* cabs (x,y) == cabs (-x,-y). */ - TEST_c_f (cabs, -12.390625L, -0.75L, 12.4133028598606664302388810868156657L), - /* cabs (x,y) == cabs (-y,-x). */ - TEST_c_f (cabs, -0.75L, -12.390625L, 12.4133028598606664302388810868156657L), - /* cabs (x,0) == fabs (x). */ - TEST_c_f (cabs, -0.75L, 0, 0.75L), - TEST_c_f (cabs, 0.75L, 0, 0.75L), - TEST_c_f (cabs, -1.0L, 0, 1.0L), - TEST_c_f (cabs, 1.0L, 0, 1.0L), - TEST_c_f (cabs, -5.7e7L, 0, 5.7e7L), - TEST_c_f (cabs, 5.7e7L, 0, 5.7e7L), - - TEST_c_f (cabs, 0.75L, 1.25L, 1.45773797371132511771853821938639577L), + AUTO_TESTS_c_f (cabs, tonearest), }; static void @@ -3326,35 +3308,6 @@ static const struct test_c_f_data carg_test_data[] = { /* carg (x + iy) is specified as atan2 (y, x) */ - /* carg (x + i 0) == 0 for x > 0. */ - TEST_c_f (carg, 2.0, 0, 0), - /* carg (x - i 0) == -0 for x > 0. */ - TEST_c_f (carg, 2.0, minus_zero, minus_zero), - - TEST_c_f (carg, 0, 0, 0), - TEST_c_f (carg, 0, minus_zero, minus_zero), - - /* carg (x + i 0) == +pi for x < 0. */ - TEST_c_f (carg, -2.0, 0, M_PIl), - - /* carg (x - i 0) == -pi for x < 0. */ - TEST_c_f (carg, -2.0, minus_zero, -M_PIl), - - TEST_c_f (carg, minus_zero, 0, M_PIl), - TEST_c_f (carg, minus_zero, minus_zero, -M_PIl), - - /* carg (+0 + i y) == pi/2 for y > 0. */ - TEST_c_f (carg, 0, 2.0, M_PI_2l), - - /* carg (-0 + i y) == pi/2 for y > 0. */ - TEST_c_f (carg, minus_zero, 2.0, M_PI_2l), - - /* carg (+0 + i y) == -pi/2 for y < 0. */ - TEST_c_f (carg, 0, -2.0, -M_PI_2l), - - /* carg (-0 + i y) == -pi/2 for y < 0. */ - TEST_c_f (carg, minus_zero, -2.0, -M_PI_2l), - /* carg (inf + i y) == +0 for finite y > 0. */ TEST_c_f (carg, plus_infty, 2.0, 0), @@ -3382,6 +3335,8 @@ static const struct test_c_f_data carg_test_data[] = TEST_c_f (carg, minus_infty, minus_infty, -M_PI_34l), TEST_c_f (carg, qnan_value, qnan_value, qnan_value), + + AUTO_TESTS_c_f (carg, tonearest), }; static void -- cgit v1.1