How do I use duals in operations in Projective Geometric Algebra?

760 Views Asked by At

I've been looking at a lot of PGA stuff, particularly from bivector but I'm having a real hard time understand how to A: actually calculate a dual, and B: actually use the result in any operation.

First, there seems to be some strange difference in nomenclature or definition of duals. bivector defines it apparently as if you took the basis of all the elements of the space, and reversed the order. This confuses me because now you need a specific order for all of your (metrics?) to actually do anything. To anyone claiming this is not what they state, their actual generated code does exactly this (from pga3d.py):

def Dual(a):
    """PGA3D.Dual
    
    Poincare duality operator.
    """
    res = a.mvec.copy()
    res[0]=a[15]
    res[1]=a[14]
    res[2]=a[13]
    res[3]=a[12]
    res[4]=a[11]
    res[5]=a[10]
    res[6]=a[9]
    res[7]=a[8]
    res[8]=a[7]
    res[9]=a[6]
    res[10]=a[5]
    res[11]=a[4]
    res[12]=a[3]
    res[13]=a[2]
    res[14]=a[1]
    res[15]=a[0]
    return PGA3D.fromarray(res)

And their "explanation" in the course notes kind of says this I guess? Though it seems to have off by one errors if you line this up to the "basis and metric" picture from 3DPGA.pdf.

The resulting exterior algebras mirror the subspace structure of RPn: 1-vectors in G represent points in P(G), 2-vectors represent lines, etc., and ∧ is projective join. In the dual algebra G∗, 1-vectors are hyperplanes ((n −1)-dimensional subspaces), and n-vectors represent points, while ∧ is the meet operator.

But this doesn't appear to match up with another definition I found, taking the psuedo scalar and multiplying it with your vectors,bivectors,trivectors etc...: https://youtu.be/RAcyVrMNV5s?t=1146 though I'm not sure the basis was the same.

I tried to apply the second metric in order to test some of the cheat sheet stuff from PGAenter image description here

I used the first point under "Incidence" and got stuck. $a ∨ b$ is apparently equivalent to $(a^∗ ∧ b^∗)^∗$ which is the "regressive product" and where $^*$ represents a dual operation. Applying the dual with the second metric gave weird results, given Euclidian points were no longer $e1,...$ but $e123,...$, which resulted in $0,0,0,e0$ using the second metric and removed all the x,y,z components... so clearly that's just wrong.

If we use the course notes version, it appears to contradict other things they've said, from the example with the triangle it appeared as if they were saying lines and points are duals of one another. But if you use the reverse order methodology for duals, planes and points are duals?

1

There are 1 best solutions below

0
On

There are two things that I think might be throwing you off:

  1. There are many possible duals that are equally valid, and they differ only in signs in a grade dependent way. In the Poincare dual you listed above, each basis element is just being replaced by the basis element with the inverse set of vectors. In my opinion, duals given by the left and right complements are easier to understand and work with. This is described under "Complements" in the PGA wiki that's part of the website linked below.
  2. In projective geometric algebra, a dual cannot be calculated with a single multiplication by the pseudoscalar because the degenerate dimension causes a lot of stuff to be zeroed out. In projective GA, you have to sum the product with the pseudoscalar unit and the antiproduct with the scalar unit.

A big thing that many people find confusing about the references you're citing above is that points are trivectors and planes are vectors in that formulation. It is not necessary to invert dimensionality like that (though not incorrect either due to duality), and you may find the resources on the following website to be more intuitive:

http://projectivegeometricalgebra.org/