Are the numerator and denominator stored as integers? Specifically, how are implemented the basic operations: sum, subtraction, multiplication, division?
Asked
Active
Viewed 238 times
2 Answers
7
the code is fairly readable, in short:
struct Rational{T<:Integer} <: Real
means that both numerator and denominator have the same type, and that type is <: Integer
.
if you want to know how some operations are implemented, try running this in your REPL:
julia> @edit 1//2 + 3//4
it should bring you to https://github.com/JuliaLang/julia/blob/248bbf6d61b643d0101bf96093cd7621e5bcf477/base/rational.jl#L285

jling
- 2,160
- 12
- 20
-
2Yes, @edit is one of my favourite macros in Julia – tamasgal Dec 25 '21 at 08:31
2
Even a faster and easier way to understand what is going on in Julia is just to use the dump
command such as:
julia> dump(3//4)
Rational{Int64}
num: Int64 3
den: Int64 4

Przemyslaw Szufel
- 40,002
- 3
- 32
- 62