Quaternion type: Difference between revisions
Content added Content deleted
Line 1,523: | Line 1,523: | ||
private def sgn(n) |
private def sgn(n) |
||
n.sign == 1 ? "+ #{n}" : "- #{n.abs}" |
n.sign == 1 ? "+ #{n}" : "- #{n.abs}" |
||
end |
|||
end |
|||
struct Number |
|||
def +(rhs : Quaternion) |
|||
n = self.to_i64 |
|||
Quaternion.new(n + rhs.a, rhs.b, rhs.c, rhs.d) |
|||
end |
|||
def *(rhs : Quaternion) |
|||
n = self.to_i64 |
|||
Quaternion.new(n * rhs.a, n * rhs.b, n * rhs.c, n * rhs.d) |
|||
end |
end |
||
end |
end |
||
Line 1,542: | Line 1,554: | ||
puts "(conjugate of q0) * q0 = #{(q0.conj * q0).to_s}" |
puts "(conjugate of q0) * q0 = #{(q0.conj * q0).to_s}" |
||
puts |
puts |
||
puts "r + q0 = #{(r + q0).to_s}" |
|||
puts "q0 + r = #{(q0 + r).to_s}" |
puts "q0 + r = #{(q0 + r).to_s}" |
||
puts |
|||
puts "r * q0 = #{(r * q0).to_s}" |
|||
puts "q0 * r = #{(q0 * r).to_s}" |
puts "q0 * r = #{(q0 * r).to_s}" |
||
puts |
puts |
||
Line 1,574: | Line 1,589: | ||
(conjugate of q0) * q0 = (30 - 0i - 0j - 0k) |
(conjugate of q0) * q0 = (30 - 0i - 0j - 0k) |
||
r + q0 = (8 + 2i + 3j + 4k) |
|||
q0 + r = (8 + 2i + 3j + 4k) |
q0 + r = (8 + 2i + 3j + 4k) |
||
r * q0 = (7 + 14i + 21j + 28k) |
|||
q0 * r = (7 + 14i + 21j + 28k) |
q0 * r = (7 + 14i + 21j + 28k) |
||