Anonymous user
Quaternion type: Difference between revisions
→{{header|Crystal}}
Line 1,507:
def -() Quaternion.new(-a, -b, -c, -d) end
def ==(rhs : Quaternion) self.to_s == rhs.to_s end
def to_s(
io << "(#{a} #{sgn(b)}i #{sgn(c)}j #{sgn(d)}k)\n"
end
private def sgn(n) n.sign|1 == 1 ? "+ #{n}" : "- #{n.abs}" end
end
Line 1,530 ⟶ 1,532:
r = 7
puts "q0 = #{q0
puts "q1 = #{q1
puts "q2 = #{q2
puts "r = #{r}"
puts
puts "normal of q0 = #{q0.norm
puts "-q0 = #{
puts "conjugate of q0 = #{q0.conj
puts "q0 * (conjugate of q0) = #{
puts "(conjugate of q0) * q0 = #{
puts
puts "r + q0
puts "
puts " r - q0 = #{(r - q0).to_s}"▼
puts "-q0 + r = #{(-q0 + r).to_s}"▼
puts
puts "
puts "-q0
puts
puts "
puts "q0
puts
puts "q0 * q1 = #{(q0 * q1).to_s}"▼
puts "q0 + q1 = #{q0 + q1}"
puts "q0 - q1 = #{q2 - q1}"
puts
puts " q0 + q1 * q2 = #{
puts "(q0 + q1) * q2 = #{
puts
puts " q0 * q1 * q2 = #{
puts "(q0 * q1) * q2 = #{
puts " q0 * (q1 * q2) = #{
puts
puts "q1 * q2 = #{
puts "q2 * q1 = #{
puts
puts "q1 * q2 != q2 * q1 => #{(q1 * q2) != (q2 * q1)}"
puts "q1 * q2 == q2 * q1 => #{(q1 * q2) == (q2 * q1)}"</lang>
{{out}}
<pre>q0 = (1 + 2i + 3j + 4k)
|