File tree 1 file changed +4
-2
lines changed
1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -60,7 +60,6 @@ function sqrt_dd_dd(x::Tuple{T,T}) where {T<:IEEEFloat}
60
60
hi, lo = x
61
61
(isnan (hi) | iszero (hi)) && return x
62
62
signbit (hi) && throw (DomainError (" sqrt(x) expects x >= 0" ))
63
- issubnormal (hi) && return DoubleFloat {T} (sqrt (hi), zero (T))
64
63
65
64
half = T (0.5 )
66
65
dhalf = (half, zero (T))
@@ -81,6 +80,7 @@ function sqrt_dd_dd(x::Tuple{T,T}) where {T<:IEEEFloat}
81
80
r = add_dddd_dd (r, radj)
82
81
83
82
r = mul_dddd_dd (r, x)
83
+ isnan (HI (r)) && return DoubleFloat {T} (sqrt (hi), zero (T)) # subnormal numbers
84
84
85
85
return r
86
86
end
@@ -100,7 +100,7 @@ invcuberootsquared(A) is found iteratively using Newton's method with a final ap
100
100
=#
101
101
102
102
function cbrt_dd_dd (a:: Tuple{T,T} ) where {T<: IEEEFloat }
103
- issubnormal (HI (a)) && return DoubleFloat {T} ( cbrt ( HI (a)), zero (T))
103
+ isnan (HI (a)) && return a
104
104
a2 = mul_dddd_dd (a,a)
105
105
one1 = one (T)
106
106
onethird = (0.3333333333333333 , 1.850371707708594e-17 )
@@ -151,5 +151,7 @@ function cbrt_dd_dd(a::Tuple{T,T}) where {T<:IEEEFloat}
151
151
amax3 = mul_dddd_dd (amax3, onethird)
152
152
153
153
ax = add_dddd_dd (ax, amax3)
154
+
155
+ isnan (HI (ax)) && return DoubleFloat {T} (cbrt (HI (a)), zero (T)) # subnormal numbers
154
156
return ax
155
157
end
You can’t perform that action at this time.
0 commit comments