4444.// (y:: Number , X:: AbstractArray ) = reshape ([ y // x for x in X ], size (X))
4545
4646function show (io:: IO , x:: Rational )
47- show (io, num (x))
47+ show (io, numerator (x))
4848 print (io, " //" )
49- show (io, den (x))
49+ show (io, denominator (x))
5050end
5151
5252function read {T<:Integer} (s:: IO , :: Type{Rational{T}} )
@@ -55,7 +55,7 @@ function read{T<:Integer}(s::IO, ::Type{Rational{T}})
5555 r// i
5656end
5757function write (s:: IO , z:: Rational )
58- write (s,num (z),den (z))
58+ write (s,numerator (z),denominator (z))
5959end
6060
6161convert {T<:Integer} (:: Type{Rational{T}} , x:: Rational ) = Rational {T} (convert (T,x. num),convert (T,x. den))
@@ -104,7 +104,7 @@ julia> rationalize(5.6)
104104julia> a = rationalize(BigInt, 10.3)
105105103//10
106106
107- julia> typeof(num (a))
107+ julia> typeof(numerator (a))
108108BigInt
109109```
110110"""
@@ -170,10 +170,21 @@ end
170170rationalize {T<:Integer} (:: Type{T} , x:: AbstractFloat ; tol:: Real = eps (x)) = rationalize (T, x, tol):: Rational{T}
171171rationalize (x:: AbstractFloat ; kvs... ) = rationalize (Int, x; kvs... )
172172
173- num (x:: Integer ) = x
174- den (x:: Integer ) = one (x)
175- num (x:: Rational ) = x. num
176- den (x:: Rational ) = x. den
173+ """
174+ numerator(x)
175+
176+ Numerator of the rational representation of `x`.
177+ """
178+ numerator (x:: Integer ) = x
179+ numerator (x:: Rational ) = x. num
180+
181+ """
182+ denominator(x)
183+
184+ Denominator of the rational representation of `x`.
185+ """
186+ denominator (x:: Integer ) = one (x)
187+ denominator (x:: Rational ) = x. den
177188
178189sign (x:: Rational ) = oftype (x, sign (x. num))
179190signbit (x:: Rational ) = signbit (x. num)
@@ -313,51 +324,51 @@ ceil{ T}(::Type{T}, x::Rational) = convert(T,cld(x.num,x.den))
313324
314325
315326function round {T, Tr} (:: Type{T} , x:: Rational{Tr} , :: RoundingMode{:Nearest} )
316- if den (x) == zero (Tr) && T <: Integer
327+ if denominator (x) == zero (Tr) && T <: Integer
317328 throw (DivideError ())
318- elseif den (x) == zero (Tr)
319- return convert (T, copysign (one (Tr)// zero (Tr), num (x)))
329+ elseif denominator (x) == zero (Tr)
330+ return convert (T, copysign (one (Tr)// zero (Tr), numerator (x)))
320331 end
321- q,r = divrem (num (x), den (x))
332+ q,r = divrem (numerator (x), denominator (x))
322333 s = q
323- if abs (r) >= abs ((den (x)- copysign (Tr (4 ), num (x))+ one (Tr)+ iseven (q))>> 1 + copysign (Tr (2 ), num (x)))
324- s += copysign (one (Tr),num (x))
334+ if abs (r) >= abs ((denominator (x)- copysign (Tr (4 ), numerator (x))+ one (Tr)+ iseven (q))>> 1 + copysign (Tr (2 ), numerator (x)))
335+ s += copysign (one (Tr),numerator (x))
325336 end
326337 convert (T, s)
327338end
328339
329340round {T} (:: Type{T} , x:: Rational ) = round (T, x, RoundNearest)
330341
331342function round {T, Tr} (:: Type{T} , x:: Rational{Tr} , :: RoundingMode{:NearestTiesAway} )
332- if den (x) == zero (Tr) && T <: Integer
343+ if denominator (x) == zero (Tr) && T <: Integer
333344 throw (DivideError ())
334- elseif den (x) == zero (Tr)
335- return convert (T, copysign (one (Tr)// zero (Tr), num (x)))
345+ elseif denominator (x) == zero (Tr)
346+ return convert (T, copysign (one (Tr)// zero (Tr), numerator (x)))
336347 end
337- q,r = divrem (num (x), den (x))
348+ q,r = divrem (numerator (x), denominator (x))
338349 s = q
339- if abs (r) >= abs ((den (x)- copysign (Tr (4 ), num (x))+ one (Tr))>> 1 + copysign (Tr (2 ), num (x)))
340- s += copysign (one (Tr),num (x))
350+ if abs (r) >= abs ((denominator (x)- copysign (Tr (4 ), numerator (x))+ one (Tr))>> 1 + copysign (Tr (2 ), numerator (x)))
351+ s += copysign (one (Tr),numerator (x))
341352 end
342353 convert (T, s)
343354end
344355
345356function round {T, Tr} (:: Type{T} , x:: Rational{Tr} , :: RoundingMode{:NearestTiesUp} )
346- if den (x) == zero (Tr) && T <: Integer
357+ if denominator (x) == zero (Tr) && T <: Integer
347358 throw (DivideError ())
348- elseif den (x) == zero (Tr)
349- return convert (T, copysign (one (Tr)// zero (Tr), num (x)))
359+ elseif denominator (x) == zero (Tr)
360+ return convert (T, copysign (one (Tr)// zero (Tr), numerator (x)))
350361 end
351- q,r = divrem (num (x), den (x))
362+ q,r = divrem (numerator (x), denominator (x))
352363 s = q
353- if abs (r) >= abs ((den (x)- copysign (Tr (4 ), num (x))+ one (Tr)+ (num (x)< 0 ))>> 1 + copysign (Tr (2 ), num (x)))
354- s += copysign (one (Tr),num (x))
364+ if abs (r) >= abs ((denominator (x)- copysign (Tr (4 ), numerator (x))+ one (Tr)+ (numerator (x)< 0 ))>> 1 + copysign (Tr (2 ), numerator (x)))
365+ s += copysign (one (Tr),numerator (x))
355366 end
356367 convert (T, s)
357368end
358369
359370function round {T} (:: Type{T} , x:: Rational{Bool} )
360- if den (x) == false && issubtype (T, Union{Integer, Bool})
371+ if denominator (x) == false && issubtype (T, Union{Integer, Bool})
361372 throw (DivideError ())
362373 end
363374 convert (T, x)
0 commit comments