This document requires the SYMBOL font (ab).
Clarity will be increased if the Arial Font is installed.
If some symbols are not displayed correctly (such as uparrow [ ↑ ] or times [×]
or half [½] )
, see Browser Issues. Use your browser View|Text Size control
to increase the text size if desired. This document is under continuous revision. Feedback appreciated.
Introduction
Geometric algebra provides a practical alternative to conventional
3D vector methods which extends far more readily to higher dimensions. It also provides a
coordinate independant symbolic geometry (an "algebra of directions") extendable into a geometric calculus of
profound relevance to areas as diverse as quantum physics and computer vision.
Although a notable advantage of geometric algebtra is coordinate independance, we will initially
take a coordinate (basis) based approach here since this is likely to be the most practicable in a
programming context.
The purpose of this section is to provide a concise but comprehensive introduction and
broad reference for geometric algebra for those interested in it as a powerful computational
and theoretical resource that spans and unifies a diverse range of fields. Fuller more formal treatments
exist elsewhere and
this document can serve as a primer for tackling such works. It assumes familiarity with
"conventional" 3D constructs such as vectors and matrices and such basic mathematical functions
as cosq and ex. Mathmatical notations used are defined in the glossary.
This treatment favours
the contractive "computer scientist's" inner product a¿b over the semisymmetric
"physicist's" inner product a.b where possible because this is arguably the more fundamental
and has certain functional advantages.
Any reader who enjoys mathematics but has not encountered multivectors before should prepare themselves for a treat.
When first encountering multivectors they can seem bewildering, with a plethora of products and an overload of operators provided for their manipulation. But familiarity breeds respect. Given that multivectors are the "language" of (dynamic) geometry and by implication of nature itself, a half-dozen new symbols does not seem excessive.
In this chapter we will dscribe the mathematical manipulations of multivectors, their various products and
conjugations and operations such as exponentiation and logarithms, projections, and intersections.
Of necessity some of this will be mathematically intensive and the reader is
is encouraged to "skim" through such material rather than
absorbing every product, conjugation, normalisation technique and exponential computation strategum
on their first pass.
The "point" of multivectors is what you can do with them, and this is addressed in the
later sections
In the Multivectors Programming chapter we describe how to impliment
multivectors of both low and high dimension N in C/C++.
In the Multivectors as Geometric Objects we will see some of the
applications of multivectors in the elegant representation and manipulation of N-dimensional
spheres, planes, lines and conics.
In the Multivectors as Transformations we will see how multivectors can also be used to transform, distort, and displace
such geometric constructs.
In Multivector Arcana we cover some more esoteric mathematical
aspects of multivectors of less general interest.
In later sections we cover Multivector Calculus and the uses of multivectors
in physics, in particular Relativity and Quantum Mechanics.
Multivectors
"And therefore in geometry (which is the only science that it hath pleased God hitherto to bestow
on mankind), men begin at settling the significations of their words;
which settling of significations, they call definitions, and place them in the beginning of their
reckoning."
--- Thomas Hobbes, Leviathan
Geometric algebra is essentially a set of arithmetical techniques for manipulating N-dimensional
vectors and to see how to properly multiply (and divide!) vectors we must first generalise the concept of
vectors and scalars.
Given k linearly independant N-dimensional vectors a1,a2,..,ak from a vector space
UN
[ we are interested initially in UN=ÂN, the space of real coordinate N-D vectors, but will refer to
UN to emphasise applicability to alternate (eg. nonEuclidean) spaces
which are of interest to us, particularly with regard to relativistic physics.
By "linearly independant" we here mean that no one of the a1,a2,..ak can be expressed as a real-wighted sum of the others
]
their outer product ak = a1Ùa2...Ùak
(not to be confused with the 3D vector "cross" product) is known as a blade
of grade (aka. step or degree) k,
or a k-blade.
The fundamental rules for Ù are
antisymmetry: aÙb = -bÙa
( and so aÙa=0) for any vectors a and b ;
linearity: aÙ(b+c) = aÙb + aÙc ; and
associativity:
aÙ(bÙc) = (aÙb)Ùc.
A k-blade ak can be thought of as representing an orientated and scaled k-dimensional
subspace of UN, one in which all the vectors satisfy aÙak = 0.
We say that a1,a2,..,ak are a k-frame for this subspace.
A linear "weighted additive" combination of k-blades is known as a k-vector. An example 4D 3-vector is
½e1Ùe3Ùe4 + (Ö7)e1Ùe2Ùe3 .
A 0-vector is a 0-blade is a scalar.
We refer to a k-blade as proper if k>=1.
A 1-vector is a 1-blade is a conventional vector.
2-blades can be considered geometrically as directed areas (ie. a plane and a signed scalar).
2-vectors
(aka. bivectors) are sums of scaled 2-blades and need not "reduce" to a single 2-blade for N>3.
For N£3, any k-vector is a k-blade. This is true only for k<2 when N > 3 .
[ Proof : ae1Ùe3+be3Ùe1+ge1Ùe2
= (e1+(a/g)e3)Ù(ge2-be3) if g¹0,
(ae2-be1)Ùe3 else .
All 3D 3-vectors are multiples of e1Ùe2Ùe3
.]
Consider the set ÂN (aka. GN and ClN in the literature) of all linear combinations (with real "coefficients" or "wieghtings") of k-vectors for 0£k£N, our 1-vectors being taken from the N-dimensional vector space ÂN. Clearly ÂN Ì ÂN (or, more properly, is represented within ÂN) and infact ÂN has dimension åk=0N NCk = 2k, there being NCk º N! (N-k)!-1 k!-1 distinct k-blades in N-dimensions.
We refer to the elements of ÂN as multivectors
An example Â3 multivector is 3+e1-4e2+½e1Ùe2+(Ö7)e2Ùe3 + pe1Ùe2Ùe3.
We can thus think of a general N-D multivector as an arbitary real-weighted combination of 2N distinct basis blades.
[ Mathematically, one can take the "blade coefficients" from any field or "number space".
It is the utilisation of  - essentially identifying the blade "coefficients" or "coordinates"
with "scalars" (0-vectors) - that
distinguishes "geometric algebra" from more general Clifford algebras of only passing concern here.
If we allow "complex number" blade coeeficients, for example, we obtain a space CN of dimension 2N+1 .
]
Multivectors can thus be represented with 2N dimensional 1-vectors, with respect to
a given set of N linearly independant N-D basis 1-vectors e1,e2,...,eN and this tells us how to add and subtract them,
but not how to multiply and divide them. For that we will need the "geometric product" and its associated "subproducts".
Conflicting Terminologies
Some authors such as Pavsik use the term "k-vector" for what we will call a k-blade
and "multivector" for our k-vector (ie. a single-graded multivector), adopting the term polyvector for our multivector.
Notations and Coordinates
A general N-D multivector is thus the sum of a scalar, a 1-vector, a 2-vector,..., and an N-vector
but we will frequently be interested in pure k-blades or k-vectors and will benefit from a notation that
that distinguishes such from general multivectors.
We will use the following fonts to denote geometric algebra elements
| Font | Represents | Also known as |
| a | Proper blade | |
| a | General multivector | |
| a | 0-vector | Scalar |
| a | 1-vector | Vector |
| a | 2-vector | Bivector |
| a | (N-2)-vector | Pseudovector |
| a | (N-1)-vector | Pseudoscalar |
We are freuwently interested in issues such as whether the square of a multivector is a pure scalar
but in practice this may mean checking that any residual nonzero coordinates are a "negligable"
proportion of the scalar part, which can be problematic if the scalar part is also near zero.
We define the sparsity of a multivector with respect to a given basis
as the number of zero coefficients (coordinates) in its representation in that basis.
Inverse frames
Suppose we have a possibly non-orthonormal linearly independant basis of N N-D 1-vectors
providing a coordinate frame (ie. a set of axies) E=(e1,e2,...,eN) for UN.
We can construct a reciprocal or inverse frame
(e1,e2,...,eN) so that ei.ej = 1 when i=j and 0 else
where . is the traditional scalar ("dot") product of two 1-vectors.
If E is orthogonal then provided no ei2=0 we can set ek º ek-2ek .
More generally we require
ek º
(-1)k-1(e1Ù..ek-1Ùek+1Ù...eN) i-1
where i=e12..N .
However, this may not make much sense to the reader till he is more familiar with Ù and the pseudoscalar i discussed later.
We define a notation
eij..m º eiÙejÙ...em .
If E is orthogonal (ie. ei.ej=0 for i¹j) then
(using the geometric product defined below) we have ekek = 1
(provided ek2¹0) ; but in general
ekek has a non-zero 2-blade component because ekÙek ¹ 0 .
E induces both the coordinate expression
x = åi=1N xiei
[ with xi º ei.x ],
and the reciprocal coordinate expression
x = åi=1N xiei
[ with xi º x.ei ].
ei is the 1-vector geometric multiplier that "seperates" 1-vector x
into xi +
åj ¹ i xjeiÙej
.
In ÂN : (i) an orthonormal frame is self-inverse ( ei = ei ; xi = xi ) ; (ii) a general frame, expressed as an N×N matrix E with respect to a fixed orthonormal frame F=(f1,f2,...fN) in conventional manner via ( ei = åi=1N Ejifj ) has as its reciprocal frame the frame having matrix (E-1)T = (ET)-1 with respect to F, ie. the inverse transpose.
Letting
Eij º ei¿ej and
Eij º ei¿ej ,
we have xj = åi=1N Eijxi ;
xj = åi=1N Eijxi .
The N×N symmetric matrices {Eij} and {Eij}
are related by {Eij} = {Eij}-1 where -1 is the conventional matrix inverse.
Inverse Frame Units
If frame vectors are assigned units, e1 having length 5 m say, then e1 must be regarded as having "length"
5-1 _meteri so that e1¿e1 = 1 m0 is dimensionless. Coordinates
_xui =ei¿x are then unitless while reciprocal coordinates
xi = ei¿x have units m2.
xi
2 the inverse
Extended inverse frames
Given an extended basis {e[.i.] : 0£i<2N }
we can construct an extended pureblade inverse frame
{e[.i.]} which satisfies
e[.i.]* e[.j.]
º (e[.i.]e[.j.])<0>
= 1 Û i=j , 0 else .
The Geometric Product
"He who can propery define and divide is to be considered a god."
--- Plato
To make ÂN a linear space we require a "multiplication"
with the following properties:
a(bc) = (ab)c (associativity)
a(b+c) = ab + ac
; (b+c)a = ba + ca (distributivity)
aa = Sig(a)
where Sig(a) is a scalar for all 1-vector a (contraction).
Of principle interest here is the contraction Sig(a) = e|a|2.
where e (the signature of a) is either ±1 or 0
and |a| is the conventional magnitude ("length") of 1-vector a.
A vector is null if a2=0.
We write Âp,q,r
for a vector space having orthogonal basis {e1,e2,...eN} where
N=p+q+r and
Sig(ei) =
1 for 1£i£p ;
-1 for p<i£p+q ;
0 for p+q<i£N .
We write Âp,q,r for the associated geometric algebra.
We write Âp,q
(aka. Clp,q)
as an abbreviation for Âp,q,0
and ÂN as an abbreviation for ÂN,0,0 .
We define the geometric product of any a by a scalar
b in the obvious "coordinatewise"
commutative manner
(ba)[ij..m] = (ab)[ij..m]
º b(a[ij...m]) .
We define the geometric product of two 1-vectors by
ab º a.b + aÙb where a.b
is the conventional ÂN (or UN) vector "dot" product. We can then extend this definiton
by means of the associativity and contraction rules to higher grade blades and hence
(by distributivity) to multivectors generally.
The geometric product is noncommutative, but this is actually an assett; the "degree" of
noncommutativity of the geometric product of two multivectors being a measure of their orthogonality.
A unit multivector is a multivector satisfying (aa)<0>=±1.
Â2
We can tabulate the geometric product for Â2 with respect to
a basis for Â2 derived
from an orthonormal basis {e1,e2} for Â2.
| ab for Â2 | ||||||
| 1 | e1 | e2 | e12 | |||
| 1 | 1 | e1 | e2 | e12 | ||
| b | e1 | e1 | 1 | e12 | -e2 | |
| e2 | e2 | -e12 | 1 | e1 | ||
| e12 | e12 | e2 | -e1 | -1 | ||
| ab for Â3 | |||||||||
| 1 | e1 | e2 | e3 | e23 | e31 | e12 | e123 | ||
| 1 | 1 | e1 | e2 | e3 | e23 | e31 | e12 | e123 | |
| e1 | e1 | 1 | -e12 | e31 | e123 | e3 | -e2 | e23 | |
| e2 | e2 | e12 | 1 | -e23 | -e3 | e123 | e1 | e31 | |
| b | e3 | e3 | -e31 | e23 | 1 | e2 | -e1 | e123 | e12 |
| e23 | e23 | e123 | e3 | -e2 | -1 | e12 | -e31 | -e1 | |
| e31 | e31 | -e3 | e123 | e1 | -e12 | -1 | e23 | -e2 | |
| e12 | e12 | e2 | -e1 | e123 | e31 | -e23 | -1 | -e3 | |
| e123 | e123 | e23 | e31 | e12 | -e1 | -e2 | -e3 | -1 | |
Writing i º e123 º e1Ùe2Ùe3 = e1e2e3 we see from the above
table that i commutes with all multivectors and satisfies i2 = -1.
We also observe that
aÙb = i(a×b)
= (a×b)i
where a×b is the conventional Â3 vector "cross" product
and that ia spans the plane normal to a.
We also have aÙbÙc = (a.(b×c))i.
We note in passing that the subspace Â3 +
consisting of all
3D multivectors having no odd grade component, ie. the space of multivectors of the
form a + be23 + ge31 + de12
is closed under the geometric product and is isomorphic to the
quaternion space Q, as is Â0,2 .
a + bi + gj + dk.
Biquaternions
We further note that a general Â3 multivector can be uniquely expressed as
(a + a2) + (b + b2)e123
where a,b are scalars and a2,b2
are pure Â3 bivectors.
An alternative biquaternion (aka. complex four-vector aka. Pauli spinor)
representation of Â3 sets
i=i=e123 ,
s1=e1 ,
s2=e2 ,
s3=e3
(satisfying si sj=eijki sk).
The biquaternion
(a0+b0i)
+(a1+b1i)e1
+(a2+b2i)e2
+(a3+b3i)e3
is equivalent to the Â3 multivector
a0 + a1e1+a2e2+a3e3
+ b1e23+b2e31+b3e12
+ b0e123 .
The product of two 3D 1-vectors is usually taken in this context to
be ab º a.b + i(a×b) which is equivalent
to the Â3 geometric product since i(a×b)=aÙb.
Pseudoscalars
The N-vectors from a given UN
are all equivalent apart from magnitude ("scale","volume") and sign ("handedness"). They are
accordingly known as pseudoscalars.
Conversely a nonzero pseudoscalar "spans" (and can be thought of as representing) UN .
We will use the font a to denote a multivector viewed as a pseudoscalar.
Let i º iN be the unit pseudoscalar e12..N for ÂN.
i satisifes i 2 = (-1)½(N-1)N and
commutes with all multivectors if N is odd. For even N we have
iak = (-1)kaki
so that i (anti)commutes with (odd)even blades.
We say a multivector is central if it commutes with all other multivectors.
For even N, only scalars are central but for odd N any <0;N>-multivector (scalar plus pseudoscalar)
is central.
An (N-1)-vector is sometimes refreerd to as a pseudovector but we favour the term hyperblade here.
Taking the geometric product of a multivector with i maps k-blades to (N-k)-blades and vice versa.
In particular it maps scalars to pseudoscalars (and vice versa)
and vectors to pseudovectors (and vice versa).
Note that a k-blade acts as a pseudoscalar when acting upon multivectors wholly contained
within the space it spans. The geometric product of a pseudoscalar i with a blade
ak contained in the subspace spanned by i spans the subspace of i
complimentary (orthogonal) to subspace ak.
In particular, the geometric product of any blade with itself is a scalar.
The signature of a blade bk,
ebk ,
is the sign of bk2
(or zero if bk2 = 0 in which case the blade is said to be null).
Duality
We define the dual of a multivector a with respect to a pseudoscalar i
spanning a space containing a by
a* º ai-1 = a¿i-1
[ Where ¿ is the contractive inner product defined below.
Some authors favour ai, but if i is a unit psuedoscalar the difference is only one of sign.
]
a* spans the subspace of i "perpendicular" to pureblade a.
If b is an unmixed (ie. odd or even) multivector, it will either commute or anticommute with i.
For odd N, the pseudoscalar commutes with everything and we have
(a*)b = a(b*) = (ab)* .
For even N, i (anti)commutes with (odd) even multivectors and we have
(a*)b = a(b#*) = (a(b#))* where # is the grade involution conjugation defined
below.
In the presence of a standard basis for ÂN, computing a* for the unit pseudoscalar i=e123..N is a computationally trivial "shuffling" of coordinates requiring no numeric computations. For the bitwise ordering we have (ai-1)[.i.] = ± a[.(i XOR (2N-1)).] where the actual sign depends upon N and the bitwise parity of i.
The inverse dual or undual is defined by a-* º a*i2 = ai so that
(a-*)* = a.
Matrix representations
Âp.q.r in Â2N×2N
With regard to a particular extended basis, an N-D multivector a can be expressed as a 2N
dimensional real 1-vector. But as a function mapping multivectors to multivectors a(x) = ax ,
ie.. a transform of 2N-D 1-vectors, a can also be represented as a
2N×2N matrix.
Taking a=a0+a1e1+a2e2+a12e12 in Âp,q,r
with p+q+r=2, for example,
we have
(a0+a1e1+a2e2+a12e12)(x0+x1e1+x2e2+x12e12)
= (a0x0+e1a1x1+e2a2x2-e1e2a12x12)
+ (a1x0+a0x1+e2a12x2-e2a2x12)e1
+ (a2x0+a0x2-e1a12x1+e1a1x12)e2
+ (a0x12+a1x2-a2x1+a12)e12
which we can express as
| æ | a0 | e1a1 | e2a2 | -e1e2a12 | ö | æ | x0 | ö | |
| ç | a1 | a0 | e2a12 | -a2 | ÷ | ç | x1 | ÷ | |
| ç | a2 | -e1a12 | a0 | e1a1 | ÷ | ç | x2 | ÷ | |
| è | a12 | -a2 | a1 | a0 | ø | è | x12 | ø |
Far more compact matrix representors for multivectors are typically available. The
following are all "maximally efficient" in that they require
precisely 2N real scalar parameters to hold a general N-D multivector.
Â2 in Â2×2
| 1 | = | æ | 1 | 0 | ö | e1 | = | æ | 1 | 0 | ö | e2 | = | æ | 0 | 1 | ö | e12 | = | æ | 0 | 1 | ö |
| è | 0 | 1 | ø | è | 0 | -1 | ø | è | 1 | 0 | ø | è | -1 | 0 | ø |
| 1 | = | æ | 1 | 0 | ö | e1 | = | æ | 0 | 1 | ö | e2 | = | æ | 0 | -1 | ö | e12 | = | æ | 1 | 0 | ö |
| è | 0 | 1 | ø | è | 1 | 0 | ø | è | 1 | 0 | ø | è | 0 | -1 | ø |
Â3 has a "biquaternian" representation with Hermitian 2×2 complex matrices
| 1=1 | = | æ | 1 | 0 | ö | ; e1= s1 | = | æ | 0 | 1 | ö | ; e2= s2 | = | æ | 0 | -i | ö | ; e3= s3 | = | æ | 1 | 0 | ö |
| è | 0 | 1 | ø | è | 1 | 0 | ø | è | i | 0 | ø | è | 0 | -1 | ø |
| ab | a | ||||
| 1 | s1 | s2 | s3 | ||
| b | 1 | 1 | s1 | s2 | s3 |
| s1 | s1 | 1 | -i s3 | +i s2 | |
| s2 | s2 | +i s3 | 1 | -i s1 | |
| s3 | s3 | -i s2 | +i s1 | 1 | |
The si and 1 act as a basis for the full C2×2 algenra of complex 2×2 matrices since
| æ | a | b | ö | = ½(a+d)1 + ½(b+c) s1 + ½i(b-c) s2 + ½(a-d) s3 |
| è | c | d | ø |
Each element of the special unitary group SU(2) of all C2×2 unitary (AA=1) matrices having unit
positive determinant
can be expressed via U=(½iåj=13 qjej)↑
for three real scalar parameters qj. e1,e2, and e3 are then refered to as the generators of SU(2)
so we can view SU(2) geometrically as the space of exponentiated Â3 bivectors.
SU(2) is isomorphic to the group SO(3) of all orthogonal
(AA_transp=1) Â3×3 matrices, with
æ | x-iy | ö | U-1
| è | z | ø
| |
| 1=1 | = | æ | 1 | 0 | 0 | 0 | ö | ; e1 | = | æ | 1 | 0 | 0 | 0 | ö | ; e2 | = | æ | 0 | 1 | 0 | 0 | ö | ; e3 | = | æ | 0 | 0 | 1 | 0 | ö | ; e4 | = | æ | 0 | 0 | -1 | 0 | ö | |
| ç | 0 | 1 | 0 | 0 | ÷ | ç | 0 | -1 | 0 | 0 | ÷ | ç | 1 | 0 | 0 | 0 | ÷ | ç | 0 | 0 | 0 | -1 | ÷ | ç | 0 | 0 | 0 | 1 | ÷ | |||||||||||
| ç | 0 | 0 | 1 | 0 | ÷ | ç | 0 | 0 | -1 | 0 | ÷ | ç | 0 | 0 | 0 | 1 | ÷ | ç | 1 | 0 | 0 | 0 | ÷ | ç | 1 | 0 | 0 | 0 | ÷ | |||||||||||
| è | 0 | 0 | 0 | 1 | ø | è | 0 | 0 | 0 | 1 | ø | è | 0 | 0 | 1 | 0 | ø | è | 0 | -1 | 0 | 0 | ø | è | 0 | -1 | 0 | 0 | ø |
| 1= | æ | 1 | 0 | 0 | 0 | ö ; | e1= | æ | 0 | 0 | 0 | i | ö ; | e2= | æ | 0 | 0 | 0 | 1 | ö ; | e3= | æ | 0 | 0 | i | 0 | ö ; | e4= | æ | 0 | 0 | 1 | 0 | ö ; | e5= | æ | -i | 0 | 0 | 0 | ö |
| ç | 0 | 1 | 0 | 0 | ÷ | ç | 0 | 0 | i | 0 | ÷ | ç | 0 | 0 | -1 | 0 | ÷ | ç | 0 | 0 | 0 | -i | ÷ | ç | 0 | 0 | 0 | 1 | ÷ | ç | 0 | -i | 0 | 0 | ÷ | ||||||
| ç | 0 | 0 | 1 | 0 | ÷ | ç | 0 | -i | 0 | 0 | ÷ | ç | 0 | -1 | 0 | 0 | ÷ | ç | -i | 0 | 0 | 0 | ÷ | ç | 1 | 0 | 0 | 0 | ÷ | ç | 0 | 0 | i | 0 | ÷ | ||||||
| è | 0 | 0 | 0 | 1 | ø | è | -i | 0 | 0 | 0 | ø | è | 1 | 0 | 0 | 0 | ø | è | 0 | i | 0 | 0 | ø | è | 0 | 1 | 0 | 0 | ø | è | 0 | 0 | 0 | i | ø |
We can construct matrices having 1 in the first to fourth entries of the first column (and zeroes elsewhere) respectively as
| aÙb for Â3 | |||||||||
| 1 | e1 | e2 | e3 | e23 | e31 | e12 | e123 | ||
| 1 | 1 | e1 | e2 | e3 | e23 | e31 | e12 | e123 | |
| e1 | e1 | 0 | -e12 | e31 | e123 | 0 | 0 | 0 | |
| e2 | e2 | e12 | 0 | -e23 | 0 | e123 | 0 | 0 | |
| b | e3 | e3 | -e31 | e23 | 0 | 0 | 0 | e123 | 0 |
| e23 | e23 | e123 | 0 | 0 | 0 | 0 | 0 | 0 | |
| e31 | e31 | 0 | e123 | 0 | 0 | 0 | 0 | 0 | |
| e12 | e12 | 0 | 0 | -e123 | 0 | 0 | 0 | 0 | |
| e123 | e123 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
We define the contractive inner product
(aka. Lounesto inner product)
(¿
or
û
) by
ak¿bl º
( akbl)<l-k>
for l³k
,
0 else
where ak,bl are blades of any grade;
and thence extending over multivectors by insisting on bilinearity.
¿ is neither associative nor commutative (symmetric).
In particular, (a¿a)=a2
so (a¿a)¿b=a2 b
but a¿(a¿b) = 0 .
For k-vectors with k>1, contraction with a 1-vector a corresponds to orthogonal projection
into subspace a* so
a¿b is the "component factor" of blade b perpendicular to 1-vector a .
We have the following properties:
| a¿b for Â3 | |||||||||
| 1 | e1 | e2 | e3 | e23 | e31 | e12 | e123 | ||
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| e1 | e1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
| e2 | e2 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
| b | e3 | e3 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| e23 | e23 | 0 | e3 | -e2 | -1 | 0 | 0 | 0 | |
| e31 | e31 | -e3 | 0 | e1 | 0 | -1 | 0 | 0 | |
| e12 | e12 | e2 | -e1 | 0 | 0 | 0 | -1 | 0 | |
| e123 | e123 | e23 | e31 | e12 | -e1 | -e2 | -e3 | -1 | |
¿ is sometimes known as left-contraction or onto-contraction as opposed to the
right- or by-contraction defined by
ak ë bm º
( akbm)<k-m> for k³m ; 0 else
or equivalently by aëb = (a§¿b§)§ where §
is the reverse operator defined below.
The semi-commutative inner product
Some authors favour the semi-symmetric
or semi-commutative inner product
(aka. Hestenes inner product) (.) defined by
a.bk º bk.a º 0
where bk is any blade ;
ak.bm º
( akbm)<|k-m|>
where ak,bm are proper (nonscalar) blades;
and thence extending over multivectors by inisiting on bilinearity.
The result is neither associative nor commutative ("symmetric").
It is "semi-symmetric" in that
aj.bk = (-1)j(k-j)bk.aj for pure multivectors aj,bk with j£k.
Note that scalars (0-blades) a,b satisfy aÙb = ab ;
a¿b = a.b = 0 so we can think of scalars as "self-orthogonal".
We obtain the identities
| a.b for Â3 | |||||||||
| 1 | e1 | e2 | e3 | e23 | e31 | e12 | e123 | ||
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| e1 | 0 | 1 | 0 | 0 | 0 | e3 | -e2 | e23 | |
| e2 | 0 | 0 | 1 | 0 | -e3 | 0 | e1 | e31 | |
| b | e3 | 0 | 0 | 0 | 1 | e2 | -e1 | 0 | e12 |
| e23 | 0 | 0 | e3 | -e2 | -1 | 0 | 0 | -e1 | |
| e31 | 0 | -e3 | 0 | e1 | 0 | -1 | 0 | -e2 | |
| e12 | 0 | e2 | -e1 | 0 | 0 | 0 | -1 | -e3 | |
| e123 | 0 | e23 | e31 | e12 | -e1 | -e2 | -e3 | -1 | |
We will use ¿ in preference to . whenever possible here.
a¿b = a.b " 1-vector a if b<0>=0 so in many
equations ¿ and . are interchangeable.
However, only . is dual to Ù in the sense that
a.(bi) = (aÙb)i
; ie.
aÙ(bi) = (a.b)i ;
or equivalently a.(b*) = (aÙb)*
; aÙ(b*) = (a.b)*
;
a.b = (aÙ(bi-1))i
;
aÙb = (a.(bi-1))i
for