/usr/share/doc/libghc-maths-doc/html/Math-Algebras-Quaternions.html is in libghc-maths-doc 0.4.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Math.Algebras.Quaternions</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Math-Algebras-Quaternions.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Math-Algebras-Quaternions.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">HaskellForMaths-0.4.5: Combinatorics, group theory, commutative algebra, non-commutative algebra</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Math.Algebras.Quaternions</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A module defining the algebra of quaternions over an arbitrary field.
</p><p>The quaternions are the algebra defined by the basis {1,i,j,k}, where i^2 = j^2 = k^2 = ijk = -1
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:HBasis">HBasis</a> <ul class="subs"><li>= <a href="#v:One">One</a> </li><li>| <a href="#v:I">I</a> </li><li>| <a href="#v:J">J</a> </li><li>| <a href="#v:K">K</a> </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Quaternion">Quaternion</a> k = <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a></li><li class="src short"><a href="#v:i">i</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k</li><li class="src short"><a href="#v:k">k</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k</li><li class="src short"><a href="#v:j">j</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k</li><li class="src short"><span class="keyword">class</span> <a href="Math-Algebras-Structures.html#t:Algebra">Algebra</a> k a => <a href="#t:HasConjugation">HasConjugation</a> k a <span class="keyword">where</span><ul class="subs"><li><a href="#v:conj">conj</a> :: <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a</li><li><a href="#v:sqnorm">sqnorm</a> :: <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> k</li></ul></li><li class="src short"><a href="#v:scalarPart">scalarPart</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> k</li><li class="src short"><a href="#v:vectorPart">vectorPart</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k</li><li class="src short"><a href="#v:-60-.-62-">(<.>)</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a> -> <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> k</li><li class="src short"><a href="#v:-94--45-">(^-)</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a1, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> a) => a1 -> a -> a1</li><li class="src short"><a href="#v:refl">refl</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> a, <a href="Math-Algebras-Quaternions.html#t:HasConjugation">HasConjugation</a> k a) => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a</li><li class="src short"><a href="#v:asMatrix">asMatrix</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> t, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> t) => (<a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> t <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a> -> <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> t) -> [<a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> t <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>] -> [[t]]</li><li class="src short"><a href="#v:reprSO3-39-">reprSO3'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a => a -> a -> a</li><li class="src short"><a href="#v:reprSO3">reprSO3</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> k) => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> [[k]]</li><li class="src short"><a href="#v:reprSO4-39-">reprSO4'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a => (a, a) -> a -> a</li><li class="src short"><a href="#v:reprSO4">reprSO4</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> k) => (<a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k, <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k) -> [[k]]</li><li class="src short"><a href="#v:reprSO4d">reprSO4d</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> k) => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-TensorProduct.html#t:DSum">DSum</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>) -> [[k]]</li><li class="src short"><a href="#v:one-39-">one'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)</li><li class="src short"><a href="#v:k-39-">k'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)</li><li class="src short"><a href="#v:j-39-">j'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)</li><li class="src short"><a href="#v:i-39-">i'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:HBasis" class="def">HBasis</a> <a href="src/Math-Algebras-Quaternions.html#HBasis" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:One" class="def">One</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:I" class="def">I</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:J" class="def">J</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:K" class="def">K</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:HBasis" class="caption collapser" onclick="toggleSection('i:HBasis')">Instances</p><div id="section.i:HBasis" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a></td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-Structures.html#t:Algebra">Algebra</a> k <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a></td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-Quaternions.html#t:HasConjugation">HasConjugation</a> k <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a></td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-Structures.html#t:Coalgebra">Coalgebra</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Quaternion" class="def">Quaternion</a> k = <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a><a href="src/Math-Algebras-Quaternions.html#Quaternion" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:i" class="def">i</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k<a href="src/Math-Algebras-Quaternions.html#i" class="link">Source</a></p><div class="doc"><p>The quaternions have {1,i,j,k} as basis, where i^2 = j^2 = k^2 = ijk = -1.
</p></div></div><div class="top"><p class="src"><a name="v:k" class="def">k</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k<a href="src/Math-Algebras-Quaternions.html#k" class="link">Source</a></p><div class="doc"><p>The quaternions have {1,i,j,k} as basis, where i^2 = j^2 = k^2 = ijk = -1.
</p></div></div><div class="top"><p class="src"><a name="v:j" class="def">j</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k<a href="src/Math-Algebras-Quaternions.html#j" class="link">Source</a></p><div class="doc"><p>The quaternions have {1,i,j,k} as basis, where i^2 = j^2 = k^2 = ijk = -1.
</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Math-Algebras-Structures.html#t:Algebra">Algebra</a> k a => <a name="t:HasConjugation" class="def">HasConjugation</a> k a <span class="keyword">where</span><a href="src/Math-Algebras-Quaternions.html#HasConjugation" class="link">Source</a></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:conj" class="def">conj</a> :: <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a<a href="src/Math-Algebras-Quaternions.html#conj" class="link">Source</a></p><div class="doc"><p>A conjugation operation is required to satisfy the following laws:
</p><ul><li> conj (x+y) = conj x + conj y
</li><li> conj (x*y) = conj y * conj x (note the order-reversal)
</li><li> conj (conj x) = x
</li><li> conj x = x if and only if x in k
</li></ul></div><p class="src"><a name="v:sqnorm" class="def">sqnorm</a> :: <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> k<a href="src/Math-Algebras-Quaternions.html#sqnorm" class="link">Source</a></p><div class="doc"><p>The squared norm is defined as sqnorm x = x * conj x. It satisfies:
</p><ul><li> sqnorm (x*y) = sqnorm x * sqnorm y
</li><li> sqnorm (unit k) = k^2, for k a scalar
</li></ul></div></div><div class="subs instances"><p id="control.i:HasConjugation" class="caption collapser" onclick="toggleSection('i:HasConjugation')">Instances</p><div id="section.i:HasConjugation" class="show"><table><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-Quaternions.html#t:HasConjugation">HasConjugation</a> k <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a></td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-Quaternions.html#t:HasConjugation">HasConjugation</a> k <a href="Math-Algebras-Octonions.html#t:OBasis">OBasis</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:scalarPart" class="def">scalarPart</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> k<a href="src/Math-Algebras-Quaternions.html#scalarPart" class="link">Source</a></p><div class="doc"><p>The scalar part of the quaternion w+xi+yj+zk is w. Also called the real part.
</p></div></div><div class="top"><p class="src"><a name="v:vectorPart" class="def">vectorPart</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k<a href="src/Math-Algebras-Quaternions.html#vectorPart" class="link">Source</a></p><div class="doc"><p>The vector part of the quaternion w+xi+yj+zk is xi+yj+zk. Also called the pure part.
</p></div></div><div class="top"><p class="src"><a name="v:-60-.-62-" class="def">(<.>)</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k) => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a> -> <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> k<a href="src/Math-Algebras-Quaternions.html#%3C.%3E" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:-94--45-" class="def">(^-)</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a1, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> a) => a1 -> a -> a1<a href="src/Math-Algebras-Quaternions.html#%5E-" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:refl" class="def">refl</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> a, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> a, <a href="Math-Algebras-Quaternions.html#t:HasConjugation">HasConjugation</a> k a) => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a -> <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k a<a href="src/Math-Algebras-Quaternions.html#refl" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:asMatrix" class="def">asMatrix</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> t, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> t) => (<a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> t <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a> -> <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> t) -> [<a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> t <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>] -> [[t]]<a href="src/Math-Algebras-Quaternions.html#asMatrix" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:reprSO3-39-" class="def">reprSO3'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a => a -> a -> a<a href="src/Math-Algebras-Quaternions.html#reprSO3%27" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:reprSO3" class="def">reprSO3</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> k) => <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k -> [[k]]<a href="src/Math-Algebras-Quaternions.html#reprSO3" class="link">Source</a></p><div class="doc"><p>Given a non-zero quaternion q in H, the map x -> q^-1 * x * q defines an action on the 3-dimensional vector space
of pure quaternions X (ie linear combinations of i,j,k). It turns out that this action is a rotation of X,
and this is a surjective group homomorphism from H* onto SO3. If we restrict q to the group of unit quaternions
(those of norm 1), then this homomorphism is 2-to-1 (since q and -q give the same rotation).
This shows that the multiplicative group of unit quaternions is isomorphic to Spin3, the double cover of SO3.
</p><p><code>reprSO3 q</code> returns the 3*3 matrix representing this map.
</p></div></div><div class="top"><p class="src"><a name="v:reprSO4-39-" class="def">reprSO4'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> a => (a, a) -> a -> a<a href="src/Math-Algebras-Quaternions.html#reprSO4%27" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:reprSO4" class="def">reprSO4</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> k) => (<a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k, <a href="Math-Algebras-Quaternions.html#t:Quaternion">Quaternion</a> k) -> [[k]]<a href="src/Math-Algebras-Quaternions.html#reprSO4" class="link">Source</a></p><div class="doc"><p>Given a pair of unit quaternions (l,r), the map x -> l^-1 * x * r defines an action on the 4-dimensional space
of quaternions. It turns out that this action is a rotation, and this is a surjective group homomorphism
onto SO4. The homomorphism is 2-to-1 (since (l,r) and (-l,-r) give the same map).
This shows that the multiplicative group of pairs of unit quaternions (with pointwise multiplication)
is isomorphic to Spin4, the double cover of SO4.
</p><p><code>reprSO4 (l,r)</code> returns the 4*4 matrix representing this map.
</p></div></div><div class="top"><p class="src"><a name="v:reprSO4d" class="def">reprSO4d</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Fractional">Fractional</a> k) => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-TensorProduct.html#t:DSum">DSum</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>) -> [[k]]<a href="src/Math-Algebras-Quaternions.html#reprSO4d" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:one-39-" class="def">one'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)<a href="src/Math-Algebras-Quaternions.html#one%27" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:k-39-" class="def">k'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)<a href="src/Math-Algebras-Quaternions.html#k%27" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:j-39-" class="def">j'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)<a href="src/Math-Algebras-Quaternions.html#j%27" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:i-39-" class="def">i'</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> k => <a href="Math-Algebras-VectorSpace.html#t:Vect">Vect</a> k (<a href="Math-Algebras-VectorSpace.html#t:Dual">Dual</a> <a href="Math-Algebras-Quaternions.html#t:HBasis">HBasis</a>)<a href="src/Math-Algebras-Quaternions.html#i%27" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>
|