@@ -2617,9 +2617,7 @@ static const struct test_c_c_data cacos_test_data[] =
static void
cacos_test (void)
{
- START (cacos, 0);
- RUN_TEST_LOOP_c_c (cacos, cacos_test_data, );
- END_COMPLEX;
+ ALL_RM_TEST (cacos, 0, cacos_test_data, RUN_TEST_LOOP_c_c, END_COMPLEX);
}
static const struct test_c_c_data cacosh_test_data[] =
@@ -34,6 +34,8 @@ __cacos (__complex__ double x)
y = __casin (x);
__real__ res = (double) M_PI_2 - __real__ y;
+ if (__real__ res == 0.0)
+ __real__ res = 0.0;
__imag__ res = -__imag__ y;
}
else
@@ -34,6 +34,8 @@ __cacosf (__complex__ float x)
y = __casinf (x);
__real__ res = (float) M_PI_2 - __real__ y;
+ if (__real__ res == 0.0f)
+ __real__ res = 0.0f;
__imag__ res = -__imag__ y;
}
else
@@ -34,6 +34,8 @@ __cacosl (__complex__ long double x)
y = __casinl (x);
__real__ res = M_PI_2l - __real__ y;
+ if (__real__ res == 0.0L)
+ __real__ res = 0.0L;
__imag__ res = -__imag__ y;
}
else
@@ -161,6 +161,54 @@ ifloat: 1
ildouble: 2
ldouble: 2
+Function: Real part of "cacos_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cacos_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+ildouble: 5
+ldouble: 5
+
+Function: Real part of "cacos_towardzero":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cacos_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+ildouble: 5
+ldouble: 5
+
+Function: Real part of "cacos_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cacos_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+ildouble: 5
+ldouble: 5
+
Function: Real part of "cacosh":
double: 1
float: 1
@@ -184,6 +184,54 @@ ifloat: 2
ildouble: 2
ldouble: 2
+Function: Real part of "cacos_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cacos_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+ildouble: 5
+ldouble: 5
+
+Function: Real part of "cacos_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cacos_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+ildouble: 5
+ldouble: 5
+
+Function: Real part of "cacos_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cacos_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+ildouble: 5
+ldouble: 5
+
Function: Real part of "cacosh":
double: 1
float: 2