Quaternion type: Difference between revisions

Line 1,523:
private def sgn(n)
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
Line 1,542 ⟶ 1,554:
puts "(conjugate of q0) * q0 = #{(q0.conj * q0).to_s}"
puts
puts "r + q0 = #{(r + q0).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
Line 1,574 ⟶ 1,589:
(conjugate of q0) * q0 = (30 - 0i - 0j - 0k)
 
r + q0 = (8 + 2i + 3j + 4k)
q0 + r = (8 + 2i + 3j + 4k)
 
r * q0 = (7 + 14i + 21j + 28k)
q0 * r = (7 + 14i + 21j + 28k)
 
Anonymous user