From f7a03a6f7c197e4d4a2034291571a6b50444ce82 Mon Sep 17 00:00:00 2001 From: Jan Bruedigam Date: Wed, 17 Feb 2021 17:18:54 +0100 Subject: [PATCH 1/2] Add UnitQuaternion scalar divison --- src/unitquaternion.jl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/unitquaternion.jl b/src/unitquaternion.jl index d2bd0ca6..53b3fe2e 100644 --- a/src/unitquaternion.jl +++ b/src/unitquaternion.jl @@ -316,7 +316,14 @@ function (*)(q::Q, w::Real) where Q<:UnitQuaternion end (*)(w::Real, q::UnitQuaternion) = q*w +""" + (/)(q::UnitQuaternion, w::Real) +Scalar divison of a quaternion. Breaks unit norm. +""" +function (/)(q::Q, w::Real) where Q<:UnitQuaternion + return Q(q.w/w, q.x/w, q.y/w, q.z/w, false) +end (\)(q1::UnitQuaternion, q2::UnitQuaternion) = conj(q1)*q2 # Equivalent to inv(q1)*q2 (/)(q1::UnitQuaternion, q2::UnitQuaternion) = q1*conj(q2) # Equivalent to q1*inv(q2) From 47b914165d33c80aff3edf2a4c5ac5a55ec97025 Mon Sep 17 00:00:00 2001 From: Jan Bruedigam Date: Wed, 17 Feb 2021 17:42:44 +0100 Subject: [PATCH 2/2] Add left-sided UnitQuaternion scalar division --- src/unitquaternion.jl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unitquaternion.jl b/src/unitquaternion.jl index 53b3fe2e..28816284 100644 --- a/src/unitquaternion.jl +++ b/src/unitquaternion.jl @@ -324,6 +324,10 @@ Scalar divison of a quaternion. Breaks unit norm. function (/)(q::Q, w::Real) where Q<:UnitQuaternion return Q(q.w/w, q.x/w, q.y/w, q.z/w, false) end +(\)(w::Real, q::UnitQuaternion) = q/w +(/)(w::Real, q::UnitQuaternion) = w*conj(q)/norm(q)^2 # Equivalent to w*conj(q1) if q1 has unit length +(\)(q::UnitQuaternion, w::Real) = w/q + (\)(q1::UnitQuaternion, q2::UnitQuaternion) = conj(q1)*q2 # Equivalent to inv(q1)*q2 (/)(q1::UnitQuaternion, q2::UnitQuaternion) = q1*conj(q2) # Equivalent to q1*inv(q2)