@@ -1171,6 +1171,11 @@ csqrt 0x1p-16445 0x1.0000000000000004p-16382
csqrt 0x1p-16494 0x1.0000000000000000000000000001p-16382
csqrt 0x1p-16494 0x1.0000000000000000000000000002p-16382
+csqrt 1 min
+csqrt 1 -min
+csqrt -1 min
+csqrt -1 -min
+
ctan 0 0
ctan 0 -0
ctan -0 0
@@ -148,6 +148,17 @@ __csqrt (__complex__ double x)
s = __scalbn (s, scale);
}
+ if (fabs (r) < DBL_MIN)
+ {
+ double force_underflow = r * r;
+ math_force_eval (force_underflow);
+ }
+ if (fabs (s) < DBL_MIN)
+ {
+ double force_underflow = s * s;
+ math_force_eval (force_underflow);
+ }
+
__real__ res = r;
__imag__ res = __copysign (s, __imag__ x);
}
@@ -148,6 +148,17 @@ __csqrtf (__complex__ float x)
s = __scalbnf (s, scale);
}
+ if (fabsf (r) < FLT_MIN)
+ {
+ float force_underflow = r * r;
+ math_force_eval (force_underflow);
+ }
+ if (fabsf (s) < FLT_MIN)
+ {
+ float force_underflow = s * s;
+ math_force_eval (force_underflow);
+ }
+
__real__ res = r;
__imag__ res = __copysignf (s, __imag__ x);
}
@@ -148,6 +148,17 @@ __csqrtl (__complex__ long double x)
s = __scalbnl (s, scale);
}
+ if (fabsl (r) < LDBL_MIN)
+ {
+ long double force_underflow = r * r;
+ math_force_eval (force_underflow);
+ }
+ if (fabsl (s) < LDBL_MIN)
+ {
+ long double force_underflow = s * s;
+ math_force_eval (force_underflow);
+ }
+
__real__ res = r;
__imag__ res = __copysignl (s, __imag__ x);
}
@@ -1213,7 +1213,9 @@ ldouble: 2
Function: Real part of "csqrt_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 4
ldouble: 4
@@ -1227,7 +1229,9 @@ ldouble: 4
Function: Real part of "csqrt_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 4
ldouble: 4