# biVector forum

I am new to GA, to learn more I am trying to implement the operations on the site projectivegeometricalgebra . org using Grassmann.jl.

When I try to replicate the multiplication table for “∧”, all but the top left entry for v ∧ v match. (Grassmann.jl uses “v” and the pga website “1” for the scalar.

Grassmann.jl: v ∧ v = 1
projectivegeometricalgebra: 1 ∧ 1 = 0

using Grassmann
G301 = @basis D"1,1,1,0"
(⟨1,1,1,0⟩, v, v₁, v₂, v₃, v₄, v₁₂, v₁₃, v₁₄, v₂₃, v₂₄, v₃₄, v₁₂₃, v₁₂₄, v₁₃₄, v₂₃₄, v₁₂₃₄)
projectivegeometricalgebra . org uses a slightly different basis:
v31 = v3 ∧ v1
v43 = v4 ∧ v3
v42 = v4 ∧ v2
v41 = v4 ∧ v1
v321 = v3 ∧ v2 ∧ v1
v314 = v3 ∧ v1 ∧ v4
𝟙 = v1 ∧ v2 ∧ v3 ∧ v4
PGAbasis = (v, v1, v2, v3, v4, v23, v31, v12, v43, v42, v41, v321, v124, v314, v234, 𝟙)
Number[b ∧ a for b in PGAbasis, a in PGAbasis]
v ∧ v
v

The table for “∨” has the opposite issue with the bottom right entry for the pseudoscalar:
Grassmann.jl: v₁₂₃₄ ∨ v₁₂₃₄ = v₁₂₃₄
projectivegeometricalgebra: 𝟙 ∨ 𝟙 = 0

What is going on here? Is this an issue of differing conventions, or did I set up the basis in Grassmann.jl incorrectly?

What’s going on here is that an empty exterior product is 1. So \wedge() = 1, and note that

[\wedge(a,b,c,...)]\wedge[\wedge(x,y,z,...)] = \wedge(a,b,c,...,x,y,z,...) implies

1\wedge 1 = [\wedge()] \wedge [\wedge()] = \wedge() = 1 since [\wedge()]\wedge[\wedge()]=\wedge()

So what’s going on here is that Grassmann.jl uses this way of thinking about the result

However, the alternative result used by the other website implies that \wedge() = 0 instead of \wedge() = 1, which is inconsistent with the mathematics I am familiar with.

Therefore, I consider Grassmann.jl to be correct here. However, I would be interested to hear different points of view if there are any.

2 Likes

Thank you, chakravala. Your Juliacon talk was my inspiration to learn about GA.

1 Like