From 31e3a40588f6b215f2583c12ba29ff5cea63d2ef Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 20 Dec 2013 21:03:39 +0000 Subject: Add more libm-test coverage of [a-c]* real functions. Various libm functions have inadequate test coverage in libm-test.inc / auto-libm-test-in - failing to cover all the usual special cases (infinities, NaNs, zero, large and small finite values, subnormals) as well as a reasonable range of ordinary inputs and, where appropriate, inputs close to the thresholds for underflow and overflow. This patch improves test coverage for real functions [a-c]* (with the expectation of adding more coverage for other functions later). Tested x86_64 and x86 and ulps updated accordingly (and eight glibc bugs and one C11 DR filed for issues found in the process). * math/auto-libm-test-in: Add more tests of acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, cos and cosh. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (acosh_test_data): Add more tests. (atanh_test_data): Likewise. (ceil_test_data): Likewise. (copysign_test_data): Likewise. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise. --- sysdeps/x86_64/fpu/libm-test-ulps | 531 +++++++++++++++++++++++++++++++++++++- 1 file changed, 526 insertions(+), 5 deletions(-) (limited to 'sysdeps/x86_64/fpu') diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index 6ff7008..6404c74 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -112,6 +112,21 @@ ldouble: 1 Test "acos_upward (-0x1p+0)": double: 1 idouble: 1 +Test "acos_upward (-0x4p-1024)": +double: 1 +idouble: 1 +Test "acos_upward (-0x4p-1076)": +double: 1 +idouble: 1 +Test "acos_upward (-0x4p-128)": +double: 1 +idouble: 1 +Test "acos_upward (-0x8p-152)": +double: 1 +idouble: 1 +Test "acos_upward (-0x8p-972)": +double: 1 +idouble: 1 Test "acos_upward (0.5)": ildouble: 1 ldouble: 1 @@ -127,6 +142,21 @@ idouble: 1 Test "acos_upward (0x1.70ef56p-56)": double: 1 idouble: 1 +Test "acos_upward (0x4p-1024)": +double: 1 +idouble: 1 +Test "acos_upward (0x4p-1076)": +double: 1 +idouble: 1 +Test "acos_upward (0x4p-128)": +double: 1 +idouble: 1 +Test "acos_upward (0x8p-152)": +double: 1 +idouble: 1 +Test "acos_upward (0x8p-972)": +double: 1 +idouble: 1 Test "acos_upward (0xcp-4)": ildouble: 1 ldouble: 1 @@ -134,6 +164,14 @@ Test "acos_upward (0xf.fffffffffffffffp-4)": ildouble: 1 ldouble: 1 +# acosh +Test "acosh (0x6.4p+4)": +double: 1 +idouble: 1 +Test "acosh (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 + # asin_downward Test "asin_downward (-0.5)": double: 1 @@ -187,9 +225,47 @@ ldouble: 1 Test "asin_towardzero (-0.5)": double: 1 idouble: 1 +Test "asin_towardzero (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-128)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x8p-152)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x8p-16448)": +ildouble: 1 +ldouble: 1 Test "asin_towardzero (-0x8p-4)": float: 1 ifloat: 1 +Test "asin_towardzero (-0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "asin_towardzero (-1.0)": float: 1 ifloat: 1 @@ -208,11 +284,49 @@ ildouble: 1 ldouble: 1 # asin_upward +Test "asin_upward (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-128)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x8p-152)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x8p-16448)": +ildouble: 1 +ldouble: 1 Test "asin_upward (-0x8p-4)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "asin_upward (-0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "asin_upward (-0xf.fffffff8p-4)": double: 1 idouble: 1 @@ -246,9 +360,64 @@ ldouble: 1 Test "asin_upward (0x1p+0)": double: 1 idouble: 1 +Test "asin_upward (0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-128)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x8p-152)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x8p-16448)": +ildouble: 1 +ldouble: 1 Test "asin_upward (0x8p-4)": ildouble: 1 ldouble: 1 +Test "asin_upward (0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +# asinh +Test "asinh (-0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +Test "asinh (0x1p+100)": +ildouble: 1 +ldouble: 1 +Test "asinh (0xap+0)": +float: 1 +ifloat: 1 +Test "asinh (0xf.424p+16)": +ildouble: 1 +ldouble: 1 +Test "asinh (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 # atan2 Test "atan2 (-0.75, -1.0)": @@ -269,6 +438,9 @@ ifloat: 1 Test "atan2 (-0xf.fffffp+124, -0x4p-128)": float: 1 ifloat: 1 +Test "atan2 (-0xf.fffffp+124, -0x8p-152)": +float: 1 +ifloat: 1 Test "atan2 (-max_value, -min_value)": float: 1 ifloat: 1 @@ -281,16 +453,30 @@ ifloat: 1 Test "atan2 (0xcp-4, -0x1p+0)": float: 1 ifloat: 1 +Test "atan2 (0xf.fffffp+124, -0x4p-128)": +float: 1 +ifloat: 1 +Test "atan2 (0xf.fffffp+124, -0x8p-152)": +float: 1 +ifloat: 1 Test "atan2 (1.390625, 0.9296875)": float: 1 ifloat: 1 # atanh +Test "atanh (-0xcp-4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "atanh (0.75)": float: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "atanh (0x4p-4)": +ildouble: 1 +ldouble: 1 Test "atanh (0xcp-4)": float: 1 ifloat: 1 @@ -7148,6 +7334,48 @@ idouble: 2 ifloat: 1 # cos_downward +Test "cos_downward (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0xf.fffffp+124)": +double: 1 +idouble: 1 Test "cos_downward (0x1.000000cf4a2a2p+0)": double: 1 idouble: 1 @@ -7241,6 +7469,9 @@ idouble: 1 Test "cos_downward (0x2p+0)": ildouble: 1 ldouble: 1 +Test "cos_downward (0x2p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_downward (0x3p+0)": double: 1 idouble: 1 @@ -7252,12 +7483,43 @@ ldouble: 1 Test "cos_downward (0x4p+48)": double: 1 idouble: 1 +Test "cos_downward (0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x4p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_downward (0x8p+0)": ildouble: 2 ldouble: 2 Test "cos_downward (0x8p+1020)": ildouble: 1 ldouble: 1 +Test "cos_downward (0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "cos_downward (0x9p+0)": double: 1 idouble: 1 @@ -7290,6 +7552,9 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "cos_downward (0xf.fffffffffffffffp+16380)": +ildouble: 1 +ldouble: 1 Test "cos_downward (0xf.fffffp+124)": double: 1 idouble: 1 @@ -7331,6 +7596,43 @@ ildouble: 1 ldouble: 1 # cos_towardzero +Test "cos_towardzero (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0xf.fffffp+124)": +double: 1 +idouble: 1 Test "cos_towardzero (0x1.000000cf4a2a2p+0)": double: 1 idouble: 1 @@ -7390,12 +7692,33 @@ idouble: 1 Test "cos_towardzero (0x2p+0)": double: 1 idouble: 1 +Test "cos_towardzero (0x2p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_towardzero (0x4p+0)": double: 1 idouble: 1 Test "cos_towardzero (0x4p+48)": double: 1 idouble: 1 +Test "cos_towardzero (0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x4p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_towardzero (0x8p+0)": double: 1 idouble: 1 @@ -7404,6 +7727,19 @@ ldouble: 1 Test "cos_towardzero (0x8p+1020)": double: 1 idouble: 1 +Test "cos_towardzero (0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "cos_towardzero (0xa.217bap+12)": ildouble: 1 ldouble: 1 @@ -7458,6 +7794,12 @@ ldouble: 1 Test "cos_upward (-0x2p+64)": double: 1 idouble: 1 +Test "cos_upward (-0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (-0xf.fffffffffffffffp+16380)": +ildouble: 1 +ldouble: 1 Test "cos_upward (0x1.000004p+0)": double: 1 idouble: 1 @@ -7588,6 +7930,9 @@ idouble: 1 Test "cos_upward (0xf.ffffffffffff8p+1020)": ildouble: 1 ldouble: 1 +Test "cos_upward (0xf.fffffffffffffffp+16380)": +ildouble: 2 +ldouble: 2 Test "cos_upward (1)": float: 1 ifloat: 1 @@ -7618,20 +7963,59 @@ ildouble: 1 ldouble: 1 # cosh +Test "cosh (-0x1p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cosh (-0x2.c5d374p+12)": +ldouble: 2 +Test "cosh (-0x2.c5d37700c6bbp+12)": +ldouble: 1 Test "cosh (-0x2.c5e3acp+8)": double: 1 idouble: 1 +Test "cosh (-0x2.c679dp+8)": +double: 1 +idouble: 1 Test "cosh (0x1.6p+4)": ildouble: 1 ldouble: 1 +Test "cosh (0x2.c5d374p+12)": +ldouble: 2 +Test "cosh (0x2.c5d37700c6bbp+12)": +ldouble: 1 Test "cosh (0x2.c5e3acp+8)": double: 1 idouble: 1 +Test "cosh (0x2.c679dp+8)": +double: 1 +idouble: 1 # cosh_downward +Test "cosh_downward (-0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "cosh_downward (-0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_downward (-0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_downward (-0x2.c5d37700c6bbp+12)": +ldouble: 2 Test "cosh_downward (-0x2.c5e3bp+8)": double: 1 idouble: 1 +Test "cosh_downward (-0x2.c679d1f73f0fap+8)": +double: 1 +idouble: 1 +Test "cosh_downward (-0x2.c679dp+8)": +double: 1 +idouble: 1 +Test "cosh_downward (-0x5.96a7ep+4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "cosh_downward (0x1.6p+4)": double: 1 idouble: 1 @@ -7640,9 +8024,26 @@ ldouble: 2 Test "cosh_downward (0x1.7p+4)": double: 1 idouble: 1 +Test "cosh_downward (0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_downward (0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_downward (0x2.c5d37700c6bbp+12)": +ldouble: 2 Test "cosh_downward (0x2.c5e3bp+8)": double: 1 idouble: 1 +Test "cosh_downward (0x2.c679d1f73f0fap+8)": +double: 1 +idouble: 1 +Test "cosh_downward (0x2.c679dp+8)": +double: 1 +idouble: 1 +Test "cosh_downward (0x5.96a7ep+4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "cosh_downward (22)": float: 1 ifloat: 1 @@ -7660,23 +8061,62 @@ ildouble: 1 ldouble: 1 # cosh_tonearest +Test "cosh_tonearest (-0x1p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_tonearest (-0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_tonearest (-0x2.c5d37700c6bbp+12)": +ldouble: 1 Test "cosh_tonearest (-0x2.c5e3acp+8)": double: 1 idouble: 1 +Test "cosh_tonearest (-0x2.c679dp+8)": +double: 1 +idouble: 1 Test "cosh_tonearest (0x1.6p+4)": ildouble: 1 ldouble: 1 +Test "cosh_tonearest (0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_tonearest (0x2.c5d37700c6bbp+12)": +ldouble: 1 Test "cosh_tonearest (0x2.c5e3acp+8)": double: 1 idouble: 1 +Test "cosh_tonearest (0x2.c679dp+8)": +double: 1 +idouble: 1 Test "cosh_tonearest (22)": ildouble: 1 ldouble: 1 # cosh_towardzero +Test "cosh_towardzero (-0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (-0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_towardzero (-0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_towardzero (-0x2.c5d37700c6bbp+12)": +ldouble: 2 Test "cosh_towardzero (-0x2.c5e3bp+8)": double: 1 idouble: 1 +Test "cosh_towardzero (-0x2.c679d1f73f0fap+8)": +double: 1 +idouble: 1 +Test "cosh_towardzero (-0x2.c679dp+8)": +double: 1 +idouble: 1 +Test "cosh_towardzero (-0x5.96a7ep+4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "cosh_towardzero (0x1.6p+4)": double: 1 idouble: 1 @@ -7685,9 +8125,26 @@ ldouble: 2 Test "cosh_towardzero (0x1.7p+4)": double: 1 idouble: 1 +Test "cosh_towardzero (0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_towardzero (0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_towardzero (0x2.c5d37700c6bbp+12)": +ldouble: 2 Test "cosh_towardzero (0x2.c5e3bp+8)": double: 1 idouble: 1 +Test "cosh_towardzero (0x2.c679d1f73f0fap+8)": +double: 1 +idouble: 1 +Test "cosh_towardzero (0x2.c679dp+8)": +double: 1 +idouble: 1 +Test "cosh_towardzero (0x5.96a7ep+4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "cosh_towardzero (22)": float: 1 ifloat: 1 @@ -7705,12 +8162,35 @@ ildouble: 1 ldouble: 1 # cosh_upward +Test "cosh_upward (-0x1p+0)": +float: 1 +ifloat: 1 +Test "cosh_upward (-0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_upward (-0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_upward (-0x2.c5d37700c6bbp+12)": +ldouble: 3 Test "cosh_upward (-0x2.c5e3acd2922a6p+8)": ildouble: 1 ldouble: 1 Test "cosh_upward (-0x2.c5e3bp+8)": double: 1 idouble: 1 +Test "cosh_upward (-0x2.c679d1f73f0fap+8)": +double: 1 +idouble: 1 +Test "cosh_upward (-0x2.c679dp+8)": +double: 1 +idouble: 1 +Test "cosh_upward (-0x5.96a7e8p+4)": +double: 1 +idouble: 1 +Test "cosh_upward (-0x5.96a7ep+4)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 Test "cosh_upward (0x1.6p+4)": ildouble: 1 ldouble: 1 @@ -7720,12 +8200,35 @@ ldouble: 1 Test "cosh_upward (0x1.8p+4)": double: 1 idouble: 1 +Test "cosh_upward (0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_upward (0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_upward (0x2.c5d37700c6bbp+12)": +ldouble: 3 Test "cosh_upward (0x2.c5e3acd2922a6p+8)": ildouble: 1 ldouble: 1 Test "cosh_upward (0x2.c5e3bp+8)": double: 1 idouble: 1 +Test "cosh_upward (0x2.c679d1f73f0fap+8)": +double: 1 +idouble: 1 +Test "cosh_upward (0x2.c679dp+8)": +double: 1 +idouble: 1 +Test "cosh_upward (0x3.2p+4)": +double: 1 +idouble: 1 +Test "cosh_upward (0x5.96a7e8p+4)": +double: 1 +idouble: 1 +Test "cosh_upward (0x5.96a7ep+4)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 Test "cosh_upward (22)": ildouble: 1 ldouble: 1 @@ -15346,6 +15849,10 @@ idouble: 1 ildouble: 1 ldouble: 1 +Function: "acosh": +double: 1 +idouble: 1 + Function: "asin_downward": double: 1 float: 1 @@ -15370,6 +15877,14 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "asinh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: "atan2": float: 1 ifloat: 1 @@ -15592,9 +16107,11 @@ ldouble: 2 Function: "cosh": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 -ldouble: 1 +ldouble: 2 Function: "cosh_downward": double: 1 @@ -15602,13 +16119,15 @@ float: 1 idouble: 1 ifloat: 1 ildouble: 2 -ldouble: 2 +ldouble: 3 Function: "cosh_tonearest": double: 1 +float: 1 idouble: 1 +ifloat: 1 ildouble: 1 -ldouble: 1 +ldouble: 2 Function: "cosh_towardzero": double: 1 @@ -15616,13 +16135,15 @@ float: 1 idouble: 1 ifloat: 1 ildouble: 2 -ldouble: 2 +ldouble: 3 Function: "cosh_upward": double: 1 +float: 2 idouble: 1 +ifloat: 2 ildouble: 1 -ldouble: 1 +ldouble: 3 Function: Real part of "cpow": double: 2 -- cgit v1.1