From ab8cc85adde879fb963c94d15675783f2cf4b183 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 14 Aug 2007 05:14:52 +0000 Subject: Initial population. --- src/hyper/pages/CLIF.ht | 296 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 src/hyper/pages/CLIF.ht (limited to 'src/hyper/pages/CLIF.ht') diff --git a/src/hyper/pages/CLIF.ht b/src/hyper/pages/CLIF.ht new file mode 100644 index 00000000..23dbf74b --- /dev/null +++ b/src/hyper/pages/CLIF.ht @@ -0,0 +1,296 @@ +% 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} +% -- cgit v1.2.3