Quaternion type: Difference between revisions

→‎{{header|Julia}}: condensed code
(→‎{{header|Julia}}: condensed code)
Line 2,789:
convert{T}(::Type{Quaternion{T}}, x::Real) =
Quaternion(convert(T,x), convert(T,0), convert(T,0), convert(T,0))
 
convert{T}(::Type{Quaternion{T}}, z::Complex) =
Quaternion(convert(T,real(z)), convert(T,imag(z)), convert(T,0), convert(T,0))
 
convert{T}(::Type{Quaternion{T}}, z::Quaternion) =
Quaternion(convert(T,z.q0), convert(T,z.q1),
Line 2,804 ⟶ 2,802:
 
function show(io::IO, z::Quaternion)
pm(x) = x < 0 ? " - $(-x)" : " + $x"
show(io, z.q0)
print(io, z.q0, pm(z.q1), "i", pm(z.q2), "j", pm(z.q3), "k")
i = z.q1
if sign(i) == -1
i = -i
print(io, " - ")
else
print(io, " + ")
end
show(io, i)
print(io, "i")
j = z.q2
if sign(j) == -1
j = -j
print(io, " - ")
else
print(io, " + ")
end
show(io, j)
print(io, "j")
k = z.q3
if sign(k) == -1
k = -k
print(io, " - ")
else
print(io, " + ")
end
show(io, k)
print(io, "k")
end
 
Anonymous user