aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/Makefile6
-rw-r--r--math/Versions9
-rw-r--r--math/auto-libm-test-out-narrow-sqrt4485
-rw-r--r--math/bits/mathcalls-narrow.h3
-rwxr-xr-xmath/gen-tgmath-tests.py5
-rw-r--r--math/libm-test-driver.c18
-rw-r--r--math/libm-test-narrow-sqrt.inc56
-rw-r--r--math/math-narrow.h145
-rw-r--r--math/math.h6
-rw-r--r--math/tgmath.h56
-rw-r--r--math/w_sqrt_compat.c6
-rw-r--r--math/w_sqrt_template.c8
-rw-r--r--math/w_sqrtl_compat.c4
13 files changed, 4716 insertions, 91 deletions
diff --git a/math/Makefile b/math/Makefile
index ceb1eb2085..987e9841f9 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -91,7 +91,7 @@ libm-compat-calls = \
w_lgammaF_r_compat w_lgammaF_compat2 w_expF_compat \
w_lgamma_compatF k_standardF
-libm-narrow-fns = add div mul sub
+libm-narrow-fns = add div mul sqrt sub
libm-narrow-types-basic = s_fF s_f32xFf64
libm-narrow-types-ldouble-yes = s_fFl s_dFl
libm-narrow-types-float128-yes = s_f32Ff128 s_f64Ff128 s_f64xFf128
@@ -299,7 +299,7 @@ libm-test-funcs-noauto = canonicalize ceil cimag conj copysign cproj creal \
significand totalorder totalordermag trunc ufromfp \
ufromfpx compat_totalorder compat_totalordermag
libm-test-funcs-compat = compat_totalorder compat_totalordermag
-libm-test-funcs-narrow = add div mul sub
+libm-test-funcs-narrow = add div mul sqrt sub
libm-test-funcs-all = $(libm-test-funcs-auto) $(libm-test-funcs-noauto)
libm-test-c-auto = $(foreach f,$(libm-test-funcs-auto),libm-test-$(f).c)
libm-test-c-noauto = $(foreach f,$(libm-test-funcs-noauto),libm-test-$(f).c)
@@ -664,6 +664,7 @@ CFLAGS-s_ctanh.c += -fno-builtin-ctanhl
CFLAGS-s_dadd.c += -fno-builtin-daddl
CFLAGS-s_ddiv.c += -fno-builtin-ddivl
CFLAGS-s_dmul.c += -fno-builtin-dmull
+CFLAGS-s_dsqrt.c += -fno-builtin-dsqrtl
CFLAGS-s_dsub.c += -fno-builtin-dsubl
CFLAGS-s_erf.c += -fno-builtin-erfl
CFLAGS-s_erfc.c += -fno-builtin-erfcl
@@ -687,6 +688,7 @@ CFLAGS-s_fmul.c += -fno-builtin-fmull
CFLAGS-s_frexp.c += -fno-builtin-frexpl
CFLAGS-s_fromfp.c += -fno-builtin-fromfpl
CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl
+CFLAGS-s_fsqrt.c += -fno-builtin-fsqrtl
CFLAGS-s_fsub.c += -fno-builtin-fsubl
CFLAGS-s_gamma.c += -fno-builtin-gammal
CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl
diff --git a/math/Versions b/math/Versions
index 5b3c321490..b121b454cd 100644
--- a/math/Versions
+++ b/math/Versions
@@ -593,4 +593,13 @@ libm {
GLIBC_2.32 {
exp10f;
}
+ GLIBC_2.35 {
+ # Functions not involving _Float64x or _Float128, for all configurations.
+ fsqrt; fsqrtl; dsqrtl;
+ f32sqrtf32x; f32sqrtf64; f32xsqrtf64;
+ # Functions involving _Float64x or _Float128, for some configurations.
+ f32sqrtf64x; f32sqrtf128;
+ f32xsqrtf64x; f32xsqrtf128; f64sqrtf64x; f64sqrtf128;
+ f64xsqrtf128;
+ }
}
diff --git a/math/auto-libm-test-out-narrow-sqrt b/math/auto-libm-test-out-narrow-sqrt
new file mode 100644
index 0000000000..5e995b0780
--- /dev/null
+++ b/math/auto-libm-test-out-narrow-sqrt
@@ -0,0 +1,4485 @@
+sqrt 0
+= sqrt downward binary32:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt tonearest binary32:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt towardzero binary32:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt upward binary32:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt downward binary64:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt tonearest binary64:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt towardzero binary64:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt upward binary64:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt downward intel96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt tonearest intel96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt towardzero intel96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt upward intel96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt downward m68k96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt tonearest m68k96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt towardzero m68k96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt upward m68k96:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt downward binary128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt tonearest binary128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt towardzero binary128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt upward binary128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt downward ibm128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt tonearest ibm128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt towardzero ibm128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+= sqrt upward ibm128:arg_fmt(0,0,0,0) 0x0p+0 : 0x0p+0 :
+sqrt -0
+= sqrt downward binary32:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt tonearest binary32:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt towardzero binary32:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt upward binary32:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt downward binary64:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt tonearest binary64:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt towardzero binary64:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt upward binary64:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt downward intel96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt tonearest intel96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt towardzero intel96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt upward intel96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt downward m68k96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt tonearest m68k96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt towardzero m68k96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt upward m68k96:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt downward binary128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt tonearest binary128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt towardzero binary128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt upward binary128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt downward ibm128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt tonearest ibm128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt towardzero ibm128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+= sqrt upward ibm128:arg_fmt(0,0,0,0) -0x0p+0 : -0x0p+0 :
+sqrt 2209
+= sqrt downward binary32:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt tonearest binary32:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt towardzero binary32:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt upward binary32:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt downward binary64:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt tonearest binary64:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt towardzero binary64:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt upward binary64:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt downward intel96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt tonearest intel96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt towardzero intel96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt upward intel96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt downward m68k96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt tonearest m68k96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt towardzero m68k96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt upward m68k96:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt downward binary128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt tonearest binary128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt towardzero binary128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt upward binary128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt downward ibm128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt tonearest ibm128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt towardzero ibm128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+= sqrt upward ibm128:arg_fmt(11,1,0,12) 0x8.a1p+8 : 0x2.fp+4 :
+sqrt 4
+= sqrt downward binary32:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt tonearest binary32:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt towardzero binary32:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt upward binary32:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt downward binary64:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt tonearest binary64:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt towardzero binary64:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt upward binary64:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt downward intel96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt tonearest intel96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt towardzero intel96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt upward intel96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt downward m68k96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt tonearest m68k96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt towardzero m68k96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt upward m68k96:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt downward binary128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt tonearest binary128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt towardzero binary128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt upward binary128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt downward ibm128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt tonearest ibm128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt towardzero ibm128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+= sqrt upward ibm128:arg_fmt(2,1,2,1) 0x4p+0 : 0x2p+0 :
+sqrt 2
+= sqrt downward binary32:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e6p+0 : inexact
+= sqrt tonearest binary32:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e6p+0 : inexact
+= sqrt towardzero binary32:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e6p+0 : inexact
+= sqrt upward binary32:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e8p+0 : inexact
+= sqrt downward binary64:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bccp+0 : inexact
+= sqrt tonearest binary64:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcdp+0 : inexact
+= sqrt towardzero binary64:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bccp+0 : inexact
+= sqrt upward binary64:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcdp+0 : inexact
+= sqrt downward intel96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908p+0 : inexact
+= sqrt tonearest intel96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908p+0 : inexact
+= sqrt towardzero intel96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908p+0 : inexact
+= sqrt upward intel96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc90ap+0 : inexact
+= sqrt downward m68k96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908p+0 : inexact
+= sqrt tonearest m68k96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908p+0 : inexact
+= sqrt towardzero m68k96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908p+0 : inexact
+= sqrt upward m68k96:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc90ap+0 : inexact
+= sqrt downward binary128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ea95p+0 : inexact
+= sqrt tonearest binary128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ea95p+0 : inexact
+= sqrt towardzero binary128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ea95p+0 : inexact
+= sqrt upward binary128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ea96p+0 : inexact
+= sqrt downward ibm128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ea8p+0 : inexact
+= sqrt tonearest ibm128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ea8p+0 : inexact
+= sqrt towardzero ibm128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ea8p+0 : inexact
+= sqrt upward ibm128:arg_fmt(1,1,1,1) 0x2p+0 : 0x1.6a09e667f3bcc908b2fb1366ebp+0 : inexact
+sqrt 0.25
+= sqrt downward binary32:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt tonearest binary32:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt towardzero binary32:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt upward binary32:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt downward binary64:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt tonearest binary64:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt towardzero binary64:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt upward binary64:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt downward intel96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt tonearest intel96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt towardzero intel96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt upward intel96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt downward m68k96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt tonearest m68k96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt towardzero m68k96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt upward m68k96:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt downward binary128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt tonearest binary128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt towardzero binary128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt upward binary128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt downward ibm128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt tonearest ibm128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt towardzero ibm128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+= sqrt upward ibm128:arg_fmt(-2,1,-2,1) 0x4p-4 : 0x8p-4 :
+sqrt 6642.25
+= sqrt downward binary32:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt tonearest binary32:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt towardzero binary32:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt upward binary32:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt downward binary64:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt tonearest binary64:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt towardzero binary64:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt upward binary64:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt downward intel96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt tonearest intel96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt towardzero intel96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt upward intel96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt downward m68k96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt tonearest m68k96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt towardzero m68k96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt upward m68k96:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt downward binary128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt tonearest binary128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt towardzero binary128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt upward binary128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt downward ibm128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt tonearest ibm128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt towardzero ibm128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+= sqrt upward ibm128:arg_fmt(12,2,-2,15) 0x1.9f24p+12 : 0x5.18p+4 :
+sqrt 15190.5625
+= sqrt downward binary32:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt tonearest binary32:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt towardzero binary32:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt upward binary32:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt downward binary64:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt tonearest binary64:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt towardzero binary64:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt upward binary64:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt downward intel96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt tonearest intel96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt towardzero intel96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt upward intel96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt downward m68k96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt tonearest m68k96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt towardzero m68k96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt upward m68k96:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt downward binary128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt tonearest binary128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt towardzero binary128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt upward binary128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt downward ibm128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt tonearest ibm128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt towardzero ibm128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+= sqrt upward ibm128:arg_fmt(13,3,-4,18) 0x3.b569p+12 : 0x7.b4p+4 :
+sqrt 0.75
+= sqrt downward binary32:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d7p-4 : inexact
+= sqrt tonearest binary32:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d7p-4 : inexact
+= sqrt towardzero binary32:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d7p-4 : inexact
+= sqrt upward binary32:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d8p-4 : inexact
+= sqrt downward binary64:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c2655p-4 : inexact
+= sqrt tonearest binary64:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c2655p-4 : inexact
+= sqrt towardzero binary64:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c2655p-4 : inexact
+= sqrt upward binary64:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c26558p-4 : inexact
+= sqrt downward intel96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539dp-4 : inexact
+= sqrt tonearest intel96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539ep-4 : inexact
+= sqrt towardzero intel96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539dp-4 : inexact
+= sqrt upward intel96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539ep-4 : inexact
+= sqrt downward m68k96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539dp-4 : inexact
+= sqrt tonearest m68k96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539ep-4 : inexact
+= sqrt towardzero m68k96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539dp-4 : inexact
+= sqrt upward m68k96:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539ep-4 : inexact
+= sqrt downward binary128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c5cp-4 : inexact
+= sqrt tonearest binary128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c5cp-4 : inexact
+= sqrt towardzero binary128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c5cp-4 : inexact
+= sqrt upward binary128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c5c8p-4 : inexact
+= sqrt downward ibm128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c4p-4 : inexact
+= sqrt tonearest ibm128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c4p-4 : inexact
+= sqrt towardzero ibm128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c4p-4 : inexact
+= sqrt upward ibm128:arg_fmt(-1,2,-2,2) 0xcp-4 : 0xd.db3d742c265539d92ba16b83c8p-4 : inexact
+sqrt 0x1.fffffffffffffp+1023
+= sqrt downward binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffffp+60 : inexact
+= sqrt tonearest binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffffp+60 : inexact
+= sqrt towardzero binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffffp+60 : inexact
+= sqrt upward binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0x1p+64 : inexact
+= sqrt downward binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffd8p+60 : inexact
+= sqrt tonearest binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt towardzero binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffd8p+60 : inexact
+= sqrt upward binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt downward intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt tonearest intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt towardzero intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt upward intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt downward m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt tonearest m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt towardzero m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt upward m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt downward binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5ff8p+60 : inexact
+= sqrt tonearest binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt towardzero binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5ff8p+60 : inexact
+= sqrt upward binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt downward ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5cp+60 : inexact
+= sqrt tonearest ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt towardzero ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5cp+60 : inexact
+= sqrt upward ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt downward binary32:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.fffffp+124 : inexact overflow errno-erange-ok
+= sqrt tonearest binary32:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : plus_infty : inexact overflow errno-erange
+= sqrt towardzero binary32:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.fffffp+124 : inexact overflow errno-erange-ok
+= sqrt upward binary32:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : plus_infty : inexact overflow errno-erange
+= sqrt downward binary64:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+508 : inexact
+= sqrt tonearest binary64:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+508 : inexact
+= sqrt towardzero binary64:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p+508 : inexact
+= sqrt upward binary64:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0x1p+512 : inexact
+= sqrt downward intel96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbffp+508 : inexact
+= sqrt tonearest intel96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffcp+508 : inexact
+= sqrt towardzero intel96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbffp+508 : inexact
+= sqrt upward intel96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffcp+508 : inexact
+= sqrt downward m68k96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbffp+508 : inexact
+= sqrt tonearest m68k96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffcp+508 : inexact
+= sqrt towardzero m68k96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbffp+508 : inexact
+= sqrt upward m68k96:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffcp+508 : inexact
+= sqrt downward binary128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbfffffffffffff78p+508 : inexact
+= sqrt tonearest binary128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbfffffffffffff8p+508 : inexact
+= sqrt towardzero binary128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbfffffffffffff78p+508 : inexact
+= sqrt upward binary128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbfffffffffffff8p+508 : inexact
+= sqrt downward ibm128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbffffffffffffcp+508 : inexact
+= sqrt tonearest ibm128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffcp+508 : inexact
+= sqrt towardzero ibm128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffbffffffffffffcp+508 : inexact
+= sqrt upward ibm128:arg_fmt(1023,53,971,53) 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffffcp+508 : inexact
+sqrt 0x1.ffffffffffffbp+1023
+= sqrt downward binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffffp+60 : inexact
+= sqrt tonearest binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffffp+60 : inexact
+= sqrt towardzero binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffffp+60 : inexact
+= sqrt upward binary32:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0x1p+64 : inexact
+= sqrt downward binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffd8p+60 : inexact
+= sqrt tonearest binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt towardzero binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffd8p+60 : inexact
+= sqrt upward binary64:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt downward intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt tonearest intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt towardzero intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt upward intel96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt downward m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt tonearest m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt towardzero m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffp+60 : inexact
+= sqrt upward m68k96:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffep+60 : inexact
+= sqrt downward binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5ff8p+60 : inexact
+= sqrt tonearest binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt towardzero binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5ff8p+60 : inexact
+= sqrt upward binary128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt downward ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5cp+60 : inexact
+= sqrt tonearest ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt towardzero ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff5cp+60 : inexact
+= sqrt upward ibm128:arg_fmt(127,24,104,24) 0xf.fffffp+124 : 0xf.fffff7fffffdfffffeffffff6p+60 : inexact
+= sqrt downward binary32:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffp+124 : inexact overflow errno-erange-ok
+= sqrt tonearest binary32:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : plus_infty : inexact overflow errno-erange
+= sqrt towardzero binary32:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffp+124 : inexact overflow errno-erange-ok
+= sqrt upward binary32:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : plus_infty : inexact overflow errno-erange
+= sqrt downward binary64:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffe8p+508 : inexact
+= sqrt tonearest binary64:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffe8p+508 : inexact
+= sqrt towardzero binary64:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffe8p+508 : inexact
+= sqrt upward binary64:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.ffffffffffffp+508 : inexact
+= sqrt downward intel96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffebffp+508 : inexact
+= sqrt tonearest intel96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffecp+508 : inexact
+= sqrt towardzero intel96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffebffp+508 : inexact
+= sqrt upward intel96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffecp+508 : inexact
+= sqrt downward m68k96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffebffp+508 : inexact
+= sqrt tonearest m68k96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffecp+508 : inexact
+= sqrt towardzero m68k96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffebffp+508 : inexact
+= sqrt upward m68k96:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffecp+508 : inexact
+= sqrt downward binary128:arg_fmt(1023,50,971,53) 0xf.fffffffffffd8p+1020 : 0xf.fffffffffffebffffffffffff378p+508 : inexact