% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved. % !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk. \newcommand{\CliffordAlgebraXmpTitle}{CliffordAlgebra} \newcommand{\CliffordAlgebraXmpNumber}{9.10} % % ===================================================================== \begin{page}{CliffordAlgebraXmpPage}{9.10 CliffordAlgebra} % ===================================================================== \beginscroll \noindent \spadtype{CliffordAlgebra(n,K,Q)} defines a vector space of dimension \texht{$2^n$}{\spad{2**n}} over the field \texht{$K$}{\spad{K}} with a given quadratic form \spad{Q}. If \texht{$\{e_1, \ldots, e_n\}$}{\spad{\{e(i), 1<=i<=n\}}} is a basis for \texht{$K^n$}{\spad{K**n}} then \begin{verbatim} { 1, e(i) 1 <= i <= n, e(i1)*e(i2) 1 <= i1 < i2 <=n, ..., e(1)*e(2)*...*e(n) } \end{verbatim} is a basis for the Clifford algebra. The algebra is defined by the relations \begin{verbatim} e(i)*e(i) = Q(e(i)) e(i)*e(j) = -e(j)*e(i), i ^= j \end{verbatim} Examples of Clifford Algebras are gaussians (complex numbers), quaternions, exterior algebras and spin algebras. % \beginmenu \menudownlink{{9.10.1. The Complex Numbers as a Clifford Algebra}}{ugxCliffordComplexPage} \menudownlink{{9.10.2. The Quaternion Numbers as a Clifford Algebra}}{ugxCliffordQuaternPage} \menudownlink{{9.10.3. The Exterior Algebra on a Three Space}}{ugxCliffordExteriorPage} \menudownlink{{9.10.4. The Dirac Spin Algebra}}{ugxCliffordDiracPage} \endmenu \endscroll \autobuttons \end{page} % % \newcommand{\ugxCliffordComplexTitle}{The Complex Numbers as a Clifford Algebra} \newcommand{\ugxCliffordComplexNumber}{9.10.1.} % % ===================================================================== \begin{page}{ugxCliffordComplexPage}{9.10.1. The Complex Numbers as a Clifford Algebra} % ===================================================================== \beginscroll \labelSpace{5pc} \xtc{ This is the field over which we will work, rational functions with integer coefficients. }{ \spadpaste{K := Fraction Polynomial Integer \bound{K}} } \xtc{ We use this matrix for the quadratic form. }{ \spadpaste{m := matrix [[-1]] \bound{m}} } \xtc{ We get complex arithmetic by using this domain. %-% \HDindex{complex numbers}{ugxCliffordComplexPage}{9.10.1.}{The Complex Numbers as a Clifford Algebra} }{ \spadpaste{C := CliffordAlgebra(1, K, quadraticForm m) \free{K m}\bound{C}} } \xtc{ Here is \spad{i}, the usual square root of \spad{-1.} }{ \spadpaste{i: C := e(1) \bound{i}\free{C}} } \xtc{ Here are some examples of the arithmetic. }{ \spadpaste{x := a + b * i \bound{x}\free{i}} } \xtc{ }{ \spadpaste{y := c + d * i \bound{y}\free{i}} } \xtc{ See \downlink{`Complex'}{ComplexXmpPage}\ignore{Complex} for examples of \Language{}'s constructor implementing complex numbers. }{ \spadpaste{x * y \free{x y}} } \endscroll \autobuttons \end{page} % % \newcommand{\ugxCliffordQuaternTitle}{The Quaternion Numbers as a Clifford Algebra} \newcommand{\ugxCliffordQuaternNumber}{9.10.2.} % % ===================================================================== \begin{page}{ugxCliffordQuaternPage}{9.10.2. The Quaternion Numbers as a Clifford Algebra} % ===================================================================== \beginscroll \labelSpace{3pc} \xtc{ This is the field over which we will work, rational functions with integer coefficients. }{ \spadpaste{K := Fraction Polynomial Integer \bound{K}} } \xtc{ We use this matrix for the quadratic form. }{ \spadpaste{m := matrix [[-1,0],[0,-1]] \bound{m}} } \xtc{ The resulting domain is the quaternions. %-% \HDindex{quaternions}{ugxCliffordQuaternPage}{9.10.2.}{The Quaternion Numbers as a Clifford Algebra} }{ \spadpaste{H := CliffordAlgebra(2, K, quadraticForm m) \free{K m}\bound{H}} } \xtc{ We use Hamilton's notation for \spad{i},\spad{j},\spad{k}. }{ \spadpaste{i: H := e(1) \free{H}\bound{i}} } \xtc{ }{ \spadpaste{j: H := e(2) \free{H}\bound{j}} } \xtc{ }{ \spadpaste{k: H := i * j \free{H,i,j}\bound{k}} } \xtc{ }{ \spadpaste{x := a + b * i + c * j + d * k \free{i j k}\bound{x}} } \xtc{ }{ \spadpaste{y := e + f * i + g * j + h * k \free{i j k}\bound{y}} } \xtc{ }{ \spadpaste{x + y \free{x y}} } \xtc{ }{ \spadpaste{x * y \free{x y}} } \xtc{ See \downlink{`Quaternion'}{QuaternionXmpPage}\ignore{Quaternion} for examples of \Language{}'s constructor implementing quaternions. }{ \spadpaste{y * x \free{x y}} } \endscroll \autobuttons \end{page} % % \newcommand{\ugxCliffordExteriorTitle}{The Exterior Algebra on a Three Space} \newcommand{\ugxCliffordExteriorNumber}{9.10.3.} % % ===================================================================== \begin{page}{ugxCliffordExteriorPage}{9.10.3. The Exterior Algebra on a Three Space} % ===================================================================== \beginscroll \labelSpace{4pc} \xtc{ This is the field over which we will work, rational functions with integer coefficients. }{ \spadpaste{K := Fraction Polynomial Integer \bound{K}} } \xtc{ If we chose the three by three zero quadratic form, we obtain %-% \HDindex{exterior algebra}{ugxCliffordExteriorPage}{9.10.3.}{The Exterior Algebra on a Three Space} the exterior algebra on \spad{e(1),e(2),e(3)}. %-% \HDindex{algebra!exterior}{ugxCliffordExteriorPage}{9.10.3.}{The Exterior Algebra on a Three Space} }{ \spadpaste{Ext := CliffordAlgebra(3, K, quadraticForm 0) \bound{Ext}\free{K}} } \xtc{ This is a three dimensional vector algebra. We define \spad{i}, \spad{j}, \spad{k} as the unit vectors. }{ \spadpaste{i: Ext := e(1) \free{Ext}\bound{i}} } \xtc{ }{ \spadpaste{j: Ext := e(2) \free{Ext}\bound{j}} } \xtc{ }{ \spadpaste{k: Ext := e(3) \free{Ext}\bound{k}} } \xtc{ Now it is possible to do arithmetic. }{ \spadpaste{x := x1*i + x2*j + x3*k \free{i j k}\bound{x}} } \xtc{ }{ \spadpaste{y := y1*i + y2*j + y3*k \free{i j k}\bound{y}} } \xtc{ }{ \spadpaste{x + y \free{x y}} } \xtc{ }{ \spadpaste{x * y + y * x \free{x y}} } \xtc{ On an \spad{n} space, a grade \spad{p} form has a dual \spad{n-p} form. In particular, in three space the dual of a grade two element identifies \spad{e1*e2->e3, e2*e3->e1, e3*e1->e2}. }{ \spadpaste{dual2 a == coefficient(a,[2,3]) * i + coefficient(a,[3,1]) * j + coefficient(a,[1,2]) * k \free{i j k}\bound{dual2}} } \xtc{ The vector cross product is then given by this. }{ \spadpaste{dual2(x*y) \free{x y dual2}} } \endscroll \autobuttons \end{page} % % \newcommand{\ugxCliffordDiracTitle}{The Dirac Spin Algebra} \newcommand{\ugxCliffordDiracNumber}{9.10.4.} % % ===================================================================== \begin{page}{ugxCliffordDiracPage}{9.10.4. The Dirac Spin Algebra} % ===================================================================== \beginscroll \labelSpace{4pc} %-% \HDindex{Dirac spin algebra}{ugxCliffordDiracPage}{9.10.4.}{The Dirac Spin Algebra} %-% \HDindex{algebra!Dirac spin}{ugxCliffordDiracPage}{9.10.4.}{The Dirac Spin Algebra} % \xtc{ In this section we will work over the field of rational numbers. }{ \spadpaste{K := Fraction Integer \bound{K}} } \xtc{ We define the quadratic form to be the Minkowski space-time metric. }{ \spadpaste{g := matrix [[1,0,0,0], [0,-1,0,0], [0,0,-1,0], [0,0,0,-1]] \bound{g}} } \xtc{ We obtain the Dirac spin algebra used in Relativistic Quantum Field Theory. %-% \HDindex{Relativistic Quantum Field Theory}{ugxCliffordDiracPage}{9.10.4.}{The Dirac Spin Algebra} }{ \spadpaste{D := CliffordAlgebra(4,K, quadraticForm g) \free{K g}\bound{D}} } \xtc{ The usual notation for the basis is \texht{$\gamma$}{\spad{gamma}} with a superscript. For \Language{} input we will use \spad{gam(i)}: }{ \spadpaste{gam := [e(i)\$D for i in 1..4] \free{D}\bound{gam}} } \noindent There are various contraction identities of the form \begin{verbatim} g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) = 2*(gam(s)gam(m)gam(n)gam(r) + gam(r)*gam(n)*gam(m)*gam(s)) \end{verbatim} where a sum over \spad{l} and \spad{t} is implied. \xtc{ Verify this identity for particular values of \spad{m,n,r,s}. }{ \spadpaste{m := 1; n:= 2; r := 3; s := 4; \bound{m,n,r,s}} } \xtc{ }{ \spadpaste{lhs := reduce(+, [reduce(+, [ g(l,t)*gam(l)*gam(m)*gam(n)*gam(r)*gam(s)*gam(t) for l in 1..4]) for t in 1..4]) \bound{lhs}\free{g gam m n r s}} } \xtc{ }{ \spadpaste{rhs := 2*(gam s * gam m*gam n*gam r + gam r*gam n*gam m*gam s) \bound{rhs}\free{lhs g gam m n r s}} } \endscroll \autobuttons \end{page} %