# multiplication table for conformal geometric algebra?

I'm trying to find the full multiplication table for conformal geometric algebra (should be a 32 by 32 matrix). It does not seem to be available in explicit form anywhere on the web. Can anybody help with a link or a paste? Thank you.

• You're talking about a CGA corresponding to a 3d space (i.e. with two additional dimensions, so that there are $2^5 = 32$ basis elements)? This can be tedious to compute, but the rules of the geometric product should make the problem tractable. Is there a reason you're looking for a table instead of computing these with some program or manually? – Muphrid Dec 24 '13 at 20:39
• "Full" multiplication table meaning the table for the basis elements, and not the entire algebra, apparently. "Full" is not a very good name for that table. – rschwieb Dec 28 '13 at 12:20

I hacked together a Python program to generate the multiplication table for standard basis elements. From the first few entries you can see I'm using $a,b,c,d$ to be the basis elements squaring to $1$, and $e$ to be the basis element squaring to $-1$.

(PS: Oh yeah, and I left off the identity row and column because they're obvious computations. So this is a slightly less than complete multiplication table for the basis.)

     | a     b     c     d     e     ab    ac    ad    ae    bc    bd    be    cd    ce    de    cde   bde   bce   bcd   ade   ace   acd   abe   abd   abc   abcd  abce  abde  acde  bcde  abcde
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
a    | 1     ab    ac    ad    ae    b     c     d     e     abc   abd   abe   acd   ace   ade   acde  abde  abce  abcd  de    ce    cd    be    bd    bc    bcd   bce   bde   cde   abcde bcde
b    |-ab    1     bc    bd    be   -a    -abc  -abd  -abe   c     d     e     bcd   bce   bde   bcde  de    ce    cd   -abde -abce -abcd -ae   -ad   -ac   -acd  -ace  -ade  -abcde cde  -acde
c    |-ac   -bc    1     cd    ce    abc  -a    -acd  -ace  -b    -bcd  -bce   d     e     cde   de   -bcde -be   -bd   -acde -ae   -ad    abce  abcd  ab    abd   abe   abcde-ade  -bde   abde
d    |-ad   -bd   -cd    1     de    abd   acd  -a    -ade   bcd  -b    -bde  -c    -cde   e    -ce   -be    bcde  bc   -ae    acde  ac    abde  ab   -abcd -abc  -abcde abe   ace   bce  -abce
e    |-ae   -be   -ce   -de   -1     abe   ace   ade   a     bce   bde   b     cde   c     d    -cd   -bd   -bc   -bcde -ad   -ac   -acde -ab   -abde -abce  abcde abc   abd   acd   bcd  -abcd
ab   |-b     a     abc   abd   abe  -1    -bc   -bd   -be    ac    ad    ae    abcd  abce  abde  abcde ade   ace   acd  -bde  -bce  -bcd  -e    -d    -c    -cd   -ce   -de   -bcde  acde -cde
ac   |-c    -abc   a     acd   ace   bc   -1    -cd   -ce   -ab   -abcd -abce  ad    ae    acde  ade  -abcde-abe  -abd  -cde  -e    -d     bce   bcd   b     bd    be    bcde -de   -abde  bde
ad   |-d    -abd  -acd   a     ade   bd    cd   -1    -de    abcd -ab   -abde -ac   -acde  ae   -ace  -abe   abcde abc  -e     cde   c     bde   b    -bcd  -bc   -bcde  be    ce    abce -bce
ae   |-e    -abe  -ace  -ade  -a     be    ce    de    1     abce  abde  ab    acde  ac    ad   -acd  -abd  -abc  -abcde-d    -c    -cde  -b    -bde  -bce   bcde  bc    bd    cd    abcd -bcd
bc   | abc  -c     b     bcd   bce  -ac    ab    abcd  abce -1    -cd   -ce    bd    be    bcde  bde  -cde  -e    -d     abcde abe   abd  -ace  -acd  -a    -ad   -ae   -acde  abde -de   -ade
bd   | abd  -d    -bcd   b     bde  -ad   -abcd  ab    abde  cd   -1    -de   -bc   -bcde  be   -bce  -e     cde   c     abe  -abcde-abc  -ade  -a     acd   ac    acde -ae   -abce  ce    ace
be   | abe  -e    -bce  -bde  -b    -ae   -abce -abde -ab    ce    de    1     bcde  bc    bd   -bcd  -d    -c    -cde   abd   abc   abcde a     ade   ace  -acde -ac   -ad   -abcd  cd    acd
cd   | acd   bcd  -d     c     cde   abcd -ad    ac    acde -bd    bc    bcde -1    -de    ce   -e     bce  -bde  -b     ace  -ade  -a     abcde abc  -abd  -ab   -abde  abce -ae   -be   -abe
ce   | ace   bce  -e    -cde  -c     abce -ae   -acde -ac   -be   -bcde -bc    de    1     cd   -d     bcd   b     bde   acd   a     ade  -abc  -abcde-abe   abde  ab    abcd -ad   -bd   -abd
de   | ade   bde   cde  -e    -d     abde  acde -ae   -ad    bcde -be   -bd   -ce   -cd    1     c     b    -bcd  -bce   a    -acd  -ace  -abd  -abe   abcde-abce -abcd  ab    ac    bc    abc
cde  |-acde -bcde  de   -ce   -cd    abcde-ade   ace   acd  -bde   bce   bcd  -e    -d     c     1    -bc    bd    be   -ac    ad    ae   -abcd -abce  abde -abe  -abd   abc  -a    -b     ab
bde  |-abde  de    bcde -be   -bd   -ade  -abcde abe   abd   cde  -e    -d    -bce  -bcd   b     bc    1    -cd   -ce   -ab    abcd  abce  ad    ae   -acde  ace   acd  -a    -abc   c    -ac
bce  |-abce  ce   -be   -bcde -bc   -ace   abe   abcde abc  -e    -cde  -c     bde   b     bcd  -bd    cd    1     de   -abcd -ab   -abde  ac    acde  ae   -ade  -a    -acd   abd  -d     ad
bcd  |-abcd  cd   -bd    bc    bcde -acd   abd  -abc  -abcde-d     c     cde  -b    -bde   bce  -be    ce   -de   -1    -abce  abde  ab   -acde -ac    ad    a     ade  -ace   abe  -e     ae
ade  | de    abde  acde -ae   -ad    bde   cde  -e    -d     abcde-abe  -abd  -ace  -acd   a     ac    ab   -abcd -abce  1    -cd   -ce   -bd   -be    bcde -bce  -bcd   b     c     abc   bc
ace  | ce    abce -ae   -acde -ac    bce  -e    -cde  -c    -abe  -abcde-abc   ade   a     acd  -ad    abcd  ab    abde  cd    1     de   -bc   -bcde -be    bde   b     bcd  -d    -abd  -bd
acd  | cd    abcd -ad    ac    acde  bcd  -d     c     cde  -abd   abc   abcde-a    -ade   ace  -ae    abce -abde -ab    ce   -de   -1     bcde  bc   -bd   -b    -bde   bce  -e    -abe  -be
abe  | be   -ae   -abce -abde -ab   -e    -bce  -bde  -b     ace   ade   a     abcde abc   abd  -abcd -ad   -ac   -acde  bd    bc    bcde  1     de    ce   -cde  -c    -d    -bcd   acd   cd
abd  | bd   -ad   -abcd  ab    abde -d    -bcd   b     bde   acd  -a    -ade  -abc  -abcde abe  -abce -ae    acde  ac    be   -bcde -bc   -de   -1     cd    c     cde  -e    -bce   ace   ce
abc  | bc   -ac    ab    abcd  abce -c     b     bcd   bce  -a    -acd  -ace   abd   abe   abcde abde -acde -ae   -ad    bcde  be    bd   -ce   -cd   -1    -d    -e    -cde   bde  -ade  -de
abcd |-bcd   acd  -abd   abc   abcde-cd    bd   -bc   -bcde -ad    ac    acde -ab   -abde  abce -abe   ace  -ade  -a    -bce   bde   b    -cde  -c     d     1     de   -ce    be   -ae    e
abce |-bce   ace  -abe  -abcde-abc  -ce    be    bcde  bc   -ae   -acde -ac    abde  ab    abcd -abd   acd   a     ade  -bcd  -b    -bde   c     cde   e    -de   -1    -cd    bd   -ad    d
abde |-bde   ade   abcde-abe  -abd  -de   -bcde  be    bd    acde -ae   -ad   -abce -abcd  ab    abc   a    -acd  -ace  -b     bcd   bce   d     e    -cde   ce    cd   -1    -bc    ac   -c
acde |-cde  -abcde ade  -ace  -acd   bcde -de    ce    cd   -abde  abce  abcd -ae   -ad    ac    a    -abc   abd   abe  -c     d     e    -bcd  -bce   bde  -be   -bd    bc   -1    -ab    b
bcde | abcde-cde   bde  -bce  -bcd  -acde  abde -abce -abcd -de    ce    cd   -be   -bd    bc    b    -c     d     e     abc  -abd  -abe   acd   ace  -ade   ae    ad   -ac    ab   -1    -a
abcde| bcde -acde  abde -abce -abcd -cde   bde  -bce  -bcd  -ade   ace   acd  -abe  -abd   abc   ab   -ac    ad    ae    bc   -bd   -be    cd    ce   -de    e     d    -c     b    -a    -1


You might want to look at GA and the documentation GA.pdf in the "LaTeX docs" directory. Also in the examples directory both in the terminal_check.py and the latex_check.py examples are examples of conformal geometric algebra -

def F(x):
global n, nbar
Fx =  ((x * x) * n + 2 * x - nbar) / 2
return(Fx)

def make_vector(a, n=3, ga=None):
if isinstance(a,str):
v = zero
for i in range(n):
a_i = Symbol(a+str(i+1))
v += a_i*ga.basis[i]
v = ga.mv(v)
return(F(v))
else:
return(F(a))

def conformal_representations_of_circles_lines_spheres_and_planes():
global n,nbar
Print_Function()
g = '1 0 0 0 0,0 1 0 0 0,0 0 1 0 0,0 0 0 0 2,0 0 0 2 0'
cnfml3d = Ga('e_1 e_2 e_3 n nbar',g=g)
(e1,e2,e3,n,nbar) = cnfml3d.mv()
print 'g_{ij} =\n',cnfml3d.g
e = n+nbar
#conformal representation of points
A = make_vector(e1,ga=cnfml3d)    # point a = (1,0,0)  A = F(a)
B = make_vector(e2,ga=cnfml3d)    # point b = (0,1,0)  B = F(b)
C = make_vector(-e1,ga=cnfml3d)   # point c = (-1,0,0) C = F(c)
D = make_vector(e3,ga=cnfml3d)    # point d = (0,0,1)  D = F(d)
X = make_vector('x',3,ga=cnfml3d)
print 'F(a) =',A
print 'F(b) =',B
print 'F(c) =',C
print 'F(d) =',D
print 'F(x) =',X
print 'a = e1, b = e2, c = -e1, and d = e3'
print 'A = F(a) = 1/2*(a*a*n+2*a-nbar), etc.'
print 'Circle through a, b, and c'
print 'Circle: A^B^C^X = 0 =',(A^B^C^X)
print 'Line through a and b'
print 'Line  : A^B^n^X = 0 =',(A^B^n^X)
print 'Sphere through a, b, c, and d'
print 'Sphere: A^B^C^D^X = 0 =',(((A^B)^C)^D)^X
print 'Plane through a, b, and d'
print 'Plane : A^B^n^D^X = 0 =',(A^B^n^D^X)
L = (A^B^e)^X
L.Fmt(3,'Hyperbolic Circle: (A^B^e)^X = 0 =')
return


with output

g_{ij} =
Matrix([
[1, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 0, 2],
[0, 0, 0, 2, 0]])
F(a) = e_1 + n/2 - nbar/2
F(b) = e_2 + n/2 - nbar/2
F(c) = -e_1 + n/2 - nbar/2
F(d) = e_3 + n/2 - nbar/2
F(x) = x1*e_1 + x2*e_2 + x3*e_3 + (x1**2/2 + x2**2/2 + x3**2/2)*n - nbar/2
a = e1, b = e2, c = -e1, and d = e3
A = F(a) = 1/2*(a*a*n+2*a-nbar), etc.
Circle through a, b, and c
Circle: A^B^C^X = 0 = -x3*e_1^e_2^e_3^n + x3*e_1^e_2^e_3^nbar + (x1**2/2 +
x2**2/2 + x3**2/2 - 1/2)*e_1^e_2^n^nbar
Line through a and b
Line  : A^B^n^X = 0 = -x3*e_1^e_2^e_3^n + (x1/2 + x2/2 - 1/2)*e_1^e_2^n^nbar +
x3*e_1^e_3^n^nbar/2 - x3*e_2^e_3^n^nbar/2
Sphere through a, b, c, and d
Sphere: A^B^C^D^X = 0 = (-x1**2/2 - x2**2/2 - x3**2/2 + 1/2)*e_1^e_2^e_3^n^nbar
Plane through a, b, and d
Plane : A^B^n^D^X = 0 = (-x1/2 - x2/2 - x3/2 + 1/2)*e_1^e_2^e_3^n^nbar


GA.pdf has detailed instructions on how to install both sympy and the GA module.

\begin{pmatrix}1 & {{e}_{1}} & {{e}_{2}} & {{e}_{3}} & {{e}_{4}} & {{e}_{1,2}} & {{e}_{1,3}} & {{e}_{1,4}} & {{e}_{2,3}} & {{e}_{2,4}} & {{e}_{3,4}} & {{e}_{1,2,3}} & {{e}_{1,2,4}} & {{e}_{1,3,4}} & {{e}_{2,3,4}} & {{e}_{1,2,3,4}}\\ {{e}_{1}} & 1 & {{e}_{1,2}} & {{e}_{1,3}} & {{e}_{1,4}} & {{e}_{2}} & {{e}_{3}} & {{e}_{4}} & {{e}_{1,2,3}} & {{e}_{1,2,4}} & {{e}_{1,3,4}} & {{e}_{2,3}} & {{e}_{2,4}} & {{e}_{3,4}} & {{e}_{1,2,3,4}} & {{e}_{2,3,4}}\\ {{e}_{2}} & -{{e}_{1,2}} & 1 & {{e}_{2,3}} & {{e}_{2,4}} & -{{e}_{1}} & -{{e}_{1,2,3}} & -{{e}_{1,2,4}} & {{e}_{3}} & {{e}_{4}} & {{e}_{2,3,4}} & -{{e}_{1,3}} & -{{e}_{1,4}} & -{{e}_{1,2,3,4}} & {{e}_{3,4}} & -{{e}_{1,3,4}}\\ {{e}_{3}} & -{{e}_{1,3}} & -{{e}_{2,3}} & 1 & {{e}_{3,4}} & {{e}_{1,2,3}} & -{{e}_{1}} & -{{e}_{1,3,4}} & -{{e}_{2}} & -{{e}_{2,3,4}} & {{e}_{4}} & {{e}_{1,2}} & {{e}_{1,2,3,4}} & -{{e}_{1,4}} & -{{e}_{2,4}} & {{e}_{1,2,4}}\\ {{e}_{4}} & -{{e}_{1,4}} & -{{e}_{2,4}} & -{{e}_{3,4}} & -1 & {{e}_{1,2,4}} & {{e}_{1,3,4}} & {{e}_{1}} & {{e}_{2,3,4}} & {{e}_{2}} & {{e}_{3}} & -{{e}_{1,2,3,4}} & -{{e}_{1,2}} & -{{e}_{1,3}} & -{{e}_{2,3}} & {{e}_{1,2,3}}\\ {{e}_{1,2}} & -{{e}_{2}} & {{e}_{1}} & {{e}_{1,2,3}} & {{e}_{1,2,4}} & -1 & -{{e}_{2,3}} & -{{e}_{2,4}} & {{e}_{1,3}} & {{e}_{1,4}} & {{e}_{1,2,3,4}} & -{{e}_{3}} & -{{e}_{4}} & -{{e}_{2,3,4}} & {{e}_{1,3,4}} & -{{e}_{3,4}}\\ {{e}_{1,3}} & -{{e}_{3}} & -{{e}_{1,2,3}} & {{e}_{1}} & {{e}_{1,3,4}} & {{e}_{2,3}} & -1 & -{{e}_{3,4}} & -{{e}_{1,2}} & -{{e}_{1,2,3,4}} & {{e}_{1,4}} & {{e}_{2}} & {{e}_{2,3,4}} & -{{e}_{4}} & -{{e}_{1,2,4}} & {{e}_{2,4}}\\ {{e}_{1,4}} & -{{e}_{4}} & -{{e}_{1,2,4}} & -{{e}_{1,3,4}} & -{{e}_{1}} & {{e}_{2,4}} & {{e}_{3,4}} & 1 & {{e}_{1,2,3,4}} & {{e}_{1,2}} & {{e}_{1,3}} & -{{e}_{2,3,4}} & -{{e}_{2}} & -{{e}_{3}} & -{{e}_{1,2,3}} & {{e}_{2,3}}\\ {{e}_{2,3}} & {{e}_{1,2,3}} & -{{e}_{3}} & {{e}_{2}} & {{e}_{2,3,4}} & -{{e}_{1,3}} & {{e}_{1,2}} & {{e}_{1,2,3,4}} & -1 & -{{e}_{3,4}} & {{e}_{2,4}} & -{{e}_{1}} & -{{e}_{1,3,4}} & {{e}_{1,2,4}} & -{{e}_{4}} & -{{e}_{1,4}}\\ {{e}_{2,4}} & {{e}_{1,2,4}} & -{{e}_{4}} & -{{e}_{2,3,4}} & -{{e}_{2}} & -{{e}_{1,4}} & -{{e}_{1,2,3,4}} & -{{e}_{1,2}} & {{e}_{3,4}} & 1 & {{e}_{2,3}} & {{e}_{1,3,4}} & {{e}_{1}} & {{e}_{1,2,3}} & -{{e}_{3}} & -{{e}_{1,3}}\\ {{e}_{3,4}} & {{e}_{1,3,4}} & {{e}_{2,3,4}} & -{{e}_{4}} & -{{e}_{3}} & {{e}_{1,2,3,4}} & -{{e}_{1,4}} & -{{e}_{1,3}} & -{{e}_{2,4}} & -{{e}_{2,3}} & 1 & -{{e}_{1,2,4}} & -{{e}_{1,2,3}} & {{e}_{1}} & {{e}_{2}} & {{e}_{1,2}}\\ {{e}_{1,2,3}} & {{e}_{2,3}} & -{{e}_{1,3}} & {{e}_{1,2}} & {{e}_{1,2,3,4}} & -{{e}_{3}} & {{e}_{2}} & {{e}_{2,3,4}} & -{{e}_{1}} & -{{e}_{1,3,4}} & {{e}_{1,2,4}} & -1 & -{{e}_{3,4}} & {{e}_{2,4}} & -{{e}_{1,4}} & -{{e}_{4}}\\ {{e}_{1,2,4}} & {{e}_{2,4}} & -{{e}_{1,4}} & -{{e}_{1,2,3,4}} & -{{e}_{1,2}} & -{{e}_{4}} & -{{e}_{2,3,4}} & -{{e}_{2}} & {{e}_{1,3,4}} & {{e}_{1}} & {{e}_{1,2,3}} & {{e}_{3,4}} & 1 & {{e}_{2,3}} & -{{e}_{1,3}} & -{{e}_{3}}\\ {{e}_{1,3,4}} & {{e}_{3,4}} & {{e}_{1,2,3,4}} & -{{e}_{1,4}} & -{{e}_{1,3}} & {{e}_{2,3,4}} & -{{e}_{4}} & -{{e}_{3}} & -{{e}_{1,2,4}} & -{{e}_{1,2,3}} & {{e}_{1}} & -{{e}_{2,4}} & -{{e}_{2,3}} & 1 & {{e}_{1,2}} & {{e}_{2}}\\ {{e}_{2,3,4}} & -{{e}_{1,2,3,4}} & {{e}_{3,4}} & -{{e}_{2,4}} & -{{e}_{2,3}} & -{{e}_{1,3,4}} & {{e}_{1,2,4}} & {{e}_{1,2,3}} & -{{e}_{4}} & -{{e}_{3}} & {{e}_{2}} & {{e}_{1,4}} & {{e}_{1,3}} & -{{e}_{1,2}} & 1 & -{{e}_{1}}\\ {{e}_{1,2,3,4}} & -{{e}_{2,3,4}} & {{e}_{1,3,4}} & -{{e}_{1,2,4}} & -{{e}_{1,2,3}} & -{{e}_{3,4}} & {{e}_{2,4}} & {{e}_{2,3}} & -{{e}_{1,4}} & -{{e}_{1,3}} & {{e}_{1,2}} & {{e}_{4}} & {{e}_{3}} & -{{e}_{2}} & {{e}_{1}} & -1\end{pmatrix}