Joseph Myers 01dbacd22a Fix cacos (+Inf + finite*i) in round-downward mode (bug 16928).
According to C99/C11 Annex G, cacos applied to a value with real part
+Inf and finite imaginary part should produce a result with real part
+0.  glibc wrongly produces a result with real part -0 in FE_DOWNWARD
mode.  This patch fixes this by checking for zero results in the
relevant case of non-finite arguments (where there should never be a
result with -0 real part), and converts the tests of cacos to
ALL_RM_TEST.

Tested x86_64 and x86 and ulps updated accordingly.

	[BZ #16928]
	* math/s_cacos.c (__cacos): Ensure zero real part of result from
	non-finite arguments is +0.
	* math/s_cacosf.c (__cacosf): Likewise.
	* math/s_cacosl.c (__cacosl): Likewise.
	* math/libm-test.inc (cacos_test): Use ALL_RM_TEST.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2014-05-14 12:37:24 +00:00
..
2012-04-30 18:56:39 +00:00
2012-04-30 18:56:39 +00:00
2012-04-30 18:56:39 +00:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-15 20:22:59 -04:00
2011-10-15 20:22:59 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2013-11-29 16:31:16 +00:00
2011-10-12 11:27:51 -04:00
2011-10-12 11:27:51 -04:00
2012-02-07 00:41:11 +01:00
2012-02-07 00:41:11 +01:00
2012-02-07 00:41:11 +01:00
2013-11-29 16:31:16 +00:00