@@ -142,31 +142,21 @@ end
142142
143143function / {T, f}(x:: FD{T, f} , y:: FD{T, f} )
144144 powt = T (10 )^ f
145- quotient, remainder = fldmod (widemul (x. i, powt), widen ( y. i) )
146- reinterpret (FD{T, f}, T (_round_to_even (quotient, remainder, widen ( y. i) )))
145+ quotient, remainder = fldmod (widemul (x. i, powt), y. i)
146+ reinterpret (FD{T, f}, T (_round_to_even (quotient, remainder, y. i)))
147147end
148148
149149# these functions are needed to avoid InexactError when converting from the integer type
150150function / {T, f}(x:: Integer , y:: FD{T, f} )
151- S = promote_type (typeof (x), T)
152- xi, yi = promote (x, y. i)
153-
154- # The integer part of our result is x.i * 10^2f / y.i, so we need to
155- # double-widen to get a precise result.
156- powt = S (10 )^ f
151+ powt = T (10 )^ f
157152 powtsq = widemul (powt, powt)
158- quotient, remainder = fldmod (widemul (widen (xi), powtsq), widen (widen (yi)))
159-
160- reinterpret (FD{T, f},
161- T (_round_to_even (quotient, remainder, widen (widen (yi)))))
153+ quotient, remainder = fldmod (widemul (x, powtsq), y. i)
154+ reinterpret (FD{T, f}, T (_round_to_even (quotient, remainder, y. i)))
162155end
163156
164157function / {T, f}(x:: FD{T, f} , y:: Integer )
165- S = promote_type (T, typeof (y))
166- xi, yi = promote (x. i, y)
167-
168- quotient, remainder = fldmod (xi, yi)
169- reinterpret (FD{T, f}, T (_round_to_even (quotient, remainder, yi)))
158+ quotient, remainder = fldmod (x. i, y)
159+ reinterpret (FD{T, f}, T (_round_to_even (quotient, remainder, y)))
170160end
171161
172162# integerification
0 commit comments