@@ -955,6 +955,16 @@ cpow 0.75 1.25 1.0 1.0 xfail-rounding
cpow 0.75 1.25 1.0 0.0
cpow 0.75 1.25 0.0 1.0
+csin 0.75 1e6
+csin 0.75 -1e6
+csin -0.75 1e6
+csin -0.75 -1e6
+
+csinh 1e6 0.75
+csinh -1e6 0.75
+csinh 1e6 -0.75
+csinh -1e6 -0.75
+
csqrt 0 0
csqrt 0 -0
csqrt -0 0
@@ -6466,6 +6466,8 @@ static const struct test_c_c_data csin_test_data[] =
TEST_c_c (csin, 0x1p-16434L, 22730, 1.217853148905605987081057582351152052687e4924L, plus_oflow, OVERFLOW_EXCEPTION),
#endif
+ AUTO_TESTS_c_c (csin),
+
TEST_c_c (csin, min_subnorm_value, min_value, min_subnorm_value, min_value, UNDERFLOW_EXCEPTION),
TEST_c_c (csin, min_value, min_subnorm_value, min_value, min_subnorm_value, UNDERFLOW_EXCEPTION),
};
@@ -6563,6 +6565,8 @@ static const struct test_c_c_data csinh_test_data[] =
TEST_c_c (csinh, 22730, 0x1p-16434L, plus_oflow, 1.217853148905605987081057582351152052687e4924L, OVERFLOW_EXCEPTION),
#endif
+ AUTO_TESTS_c_c (csinh),
+
TEST_c_c (csinh, min_subnorm_value, min_value, min_subnorm_value, min_value, UNDERFLOW_EXCEPTION),
TEST_c_c (csinh, min_value, min_subnorm_value, min_value, min_subnorm_value, UNDERFLOW_EXCEPTION),
};
@@ -52,6 +52,9 @@ __csin (__complex__ double x)
cosix = 1.0;
}
+ if (negate)
+ sinix = -sinix;
+
if (fabs (__imag__ x) > t)
{
double exp_t = __ieee754_exp (t);
@@ -86,9 +89,6 @@ __csin (__complex__ double x)
__imag__ retval = __ieee754_sinh (__imag__ x) * cosix;
}
- if (negate)
- __real__ retval = -__real__ retval;
-
if (fabs (__real__ retval) < DBL_MIN)
{
volatile double force_underflow
@@ -52,6 +52,9 @@ __csinf (__complex__ float x)
cosix = 1.0f;
}
+ if (negate)
+ sinix = -sinix;
+
if (fabsf (__imag__ x) > t)
{
float exp_t = __ieee754_expf (t);
@@ -86,9 +89,6 @@ __csinf (__complex__ float x)
__imag__ retval = __ieee754_sinhf (__imag__ x) * cosix;
}
- if (negate)
- __real__ retval = -__real__ retval;
-
if (fabsf (__real__ retval) < FLT_MIN)
{
volatile float force_underflow
@@ -52,6 +52,9 @@ __csinh (__complex__ double x)
cosix = 1.0;
}
+ if (negate)
+ cosix = -cosix;
+
if (fabs (__real__ x) > t)
{
double exp_t = __ieee754_exp (t);
@@ -86,9 +89,6 @@ __csinh (__complex__ double x)
__imag__ retval = __ieee754_cosh (__real__ x) * sinix;
}
- if (negate)
- __real__ retval = -__real__ retval;
-
if (fabs (__real__ retval) < DBL_MIN)
{
volatile double force_underflow
@@ -52,6 +52,9 @@ __csinhf (__complex__ float x)
cosix = 1.0f;
}
+ if (negate)
+ cosix = -cosix;
+
if (fabsf (__real__ x) > t)
{
float exp_t = __ieee754_expf (t);
@@ -86,9 +89,6 @@ __csinhf (__complex__ float x)
__imag__ retval = __ieee754_coshf (__real__ x) * sinix;
}
- if (negate)
- __real__ retval = -__real__ retval;
-
if (fabsf (__real__ retval) < FLT_MIN)
{
volatile float force_underflow
@@ -52,6 +52,9 @@ __csinhl (__complex__ long double x)
cosix = 1.0;
}
+ if (negate)
+ cosix = -cosix;
+
if (fabsl (__real__ x) > t)
{
long double exp_t = __ieee754_expl (t);
@@ -86,9 +89,6 @@ __csinhl (__complex__ long double x)
__imag__ retval = __ieee754_coshl (__real__ x) * sinix;
}
- if (negate)
- __real__ retval = -__real__ retval;
-
if (fabsl (__real__ retval) < LDBL_MIN)
{
volatile long double force_underflow
@@ -52,6 +52,9 @@ __csinl (__complex__ long double x)
cosix = 1.0;
}
+ if (negate)
+ sinix = -sinix;
+
if (fabsl (__imag__ x) > t)
{
long double exp_t = __ieee754_expl (t);
@@ -86,9 +89,6 @@ __csinl (__complex__ long double x)
__imag__ retval = __ieee754_sinhl (__imag__ x) * cosix;
}
- if (negate)
- __real__ retval = -__real__ retval;
-
if (fabsl (__real__ retval) < LDBL_MIN)
{
volatile long double force_underflow
@@ -1120,9 +1120,9 @@ ildouble: 3
ldouble: 3
Function: Real part of "csin_upward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 3
ldouble: 3
@@ -1148,9 +1148,9 @@ idouble: 1
ifloat: 1
Function: Real part of "csinh_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 3
ldouble: 3