Quaternion type: Difference between revisions

m (→‎{{header|REXX}}: changed whitespace, used a template for the output section, optimized the sqrt function.)
Line 1,487:
def conj; Quaternion.new(a, -b, -c, -d) end
def +(n) Quaternion.new(a + n, b, c, d) end
def -(n) Quaternion.new(a - n, b, c, d) end
def +(rhs : Quaternion)
Quaternion.new(a + rhs.a, b + rhs.b, c + rhs.c, d + rhs.d)
Line 1,513 ⟶ 1,514:
def +(rhs : Quaternion)
Quaternion.new(rhs.a + self, rhs.b, rhs.c, rhs.d)
end
 
def -(rhs : Quaternion)
Quaternion.new(rhs.a - self, -rhs.b, -rhs.c, -rhs.d)
end
 
Line 1,536 ⟶ 1,541:
puts "(conjugate of q0) * q0 = #{(q0.conj * q0).to_s}"
puts
puts "r + q0 - r = #{(rq0 +- q0r).to_s}"
puts "q0 + r - q0 = #{(q0r +- rq0).to_s}"
puts "-q0 - r = #{(-q0 - r).to_s}"
puts "-q0 + r = #{(-q0 + r).to_s}""
puts
puts "r * q0 = #{(r * q0).to_s}"
Line 1,573 ⟶ 1,580:
r + q0 = (8 + 2i + 3j + 4k)
q0 + r = (8 + 2i + 3j + 4k)
 
q0 - r = (-6 + 2i + 3j + 4k)
r - q0 = (-6 - 2i - 3j - 4k)
-q0 - r = (-8 - 2i - 3j - 4k)
-q0 + r = (6 - 2i - 3j - 4k)
 
r * q0 = (7 + 14i + 21j + 28k)
Anonymous user