128
128
# TODO : can we use floating point to speed this up? after we build a
129
129
# correctness test suite.
130
130
function * {T, f}(x:: FD{T, f} , y:: FD{T, f} )
131
- powt = coefficient (FD{T,f})
131
+ powt = coefficient (FD{T, f})
132
132
quotient, remainder = fldmod (widemul (x. i, y. i), powt)
133
133
reinterpret (FD{T, f}, _round_to_even (quotient, remainder, powt))
134
134
end
@@ -139,22 +139,22 @@ end
139
139
* {T, f}(x:: FD{T, f} , y:: Integer ) = reinterpret (FD{T, f}, T (x. i * y))
140
140
141
141
function / {T, f}(x:: FD{T, f} , y:: FD{T, f} )
142
- powt = coefficient (FD{T,f})
142
+ powt = coefficient (FD{T, f})
143
143
quotient, remainder = divrem (x. i, y. i)
144
144
reinterpret (FD{T, f}, T (widemul (quotient, powt) + round (T, remainder // y. i * powt)))
145
145
end
146
146
147
147
# These functions allow us to perform division with integers outside of the range of the
148
148
# FixedDecimal.
149
149
function / {T, f}(x:: Integer , y:: FD{T, f} )
150
- powt = coefficient (FD{T,f})
150
+ powt = coefficient (FD{T, f})
151
151
xi, yi = widemul (x, powt), y. i
152
152
quotient, remainder = divrem (xi, yi)
153
153
reinterpret (FD{T, f}, T (quotient * powt + round (T, remainder // yi * powt)))
154
154
end
155
155
156
156
function / {T, f}(x:: FD{T, f} , y:: Integer )
157
- powt = coefficient (FD{T,f})
157
+ powt = coefficient (FD{T, f})
158
158
xi, yi = x. i, widemul (y, powt)
159
159
quotient, remainder = divrem (xi, yi)
160
160
reinterpret (FD{T, f}, T (quotient * powt + round (T, remainder // yi * powt)))
0 commit comments