C++
DOWNLOADpga3d.cpp
The online tools below allow you to generate code, explore Cayley tables and visualizations for arbitrary geometric algebras.
1 | e0 | e1 | e2 | e3 | e01 | e02 | e03 | e12 | e31 | e23 | e021 | e013 | e032 | e123 | e0123 |
e0 | 0 | e01 | e02 | e03 | 0 | 0 | 0 | -e021 | -e013 | -e032 | 0 | 0 | 0 | e0123 | 0 |
e1 | -e01 | 1 | e12 | -e31 | -e0 | e021 | -e013 | e2 | -e3 | e123 | e02 | -e03 | e0123 | e23 | e032 |
e2 | -e02 | -e12 | 1 | e23 | -e021 | -e0 | e032 | -e1 | e123 | e3 | -e01 | e0123 | e03 | e31 | e013 |
e3 | -e03 | e31 | -e23 | 1 | e013 | -e032 | -e0 | e123 | e1 | -e2 | e0123 | e01 | -e02 | e12 | e021 |
e01 | 0 | e0 | -e021 | e013 | 0 | 0 | 0 | e02 | -e03 | e0123 | 0 | 0 | 0 | -e032 | 0 |
e02 | 0 | e021 | e0 | -e032 | 0 | 0 | 0 | -e01 | e0123 | e03 | 0 | 0 | 0 | -e013 | 0 |
e03 | 0 | -e013 | e032 | e0 | 0 | 0 | 0 | e0123 | e01 | -e02 | 0 | 0 | 0 | -e021 | 0 |
e12 | -e021 | -e2 | e1 | e123 | -e02 | e01 | e0123 | -1 | e23 | -e31 | e0 | e032 | -e013 | -e3 | -e03 |
e31 | -e013 | e3 | e123 | -e1 | e03 | e0123 | -e01 | -e23 | -1 | e12 | -e032 | e0 | e021 | -e2 | -e02 |
e23 | -e032 | e123 | -e3 | e2 | e0123 | -e03 | e02 | e31 | -e12 | -1 | e013 | -e021 | e0 | -e1 | -e01 |
e021 | 0 | e02 | -e01 | -e0123 | 0 | 0 | 0 | e0 | e032 | -e013 | 0 | 0 | 0 | e03 | 0 |
e013 | 0 | -e03 | -e0123 | e01 | 0 | 0 | 0 | -e032 | e0 | e021 | 0 | 0 | 0 | e02 | 0 |
e032 | 0 | -e0123 | e03 | -e02 | 0 | 0 | 0 | e013 | -e021 | e0 | 0 | 0 | 0 | e01 | 0 |
e123 | -e0123 | e23 | e31 | e12 | e032 | e013 | e021 | -e3 | -e2 | -e1 | -e03 | -e02 | -e01 | -1 | e0 |
e0123 | 0 | -e032 | -e013 | -e021 | 0 | 0 | 0 | -e03 | -e02 | -e01 | 0 | 0 | 0 | -e0 | 0 |
For a full multivector, 192 multiplications and 176 additions are needed. Counts per grade can be found in the following table :
mul / add | scalar | vector | bivector | 3-vector | 4-vector |
---|---|---|---|---|---|
scalar | 1 / 0 | 4 / 0 | 6 / 0 | 4 / 0 | 1 / 0 |
vector | 4 / 0 | 15 / 8 | 21 / 13 | 13 / 6 | 3 / 0 |
bivector | 6 / 0 | 21 / 13 | 27 / 19 | 15 / 8 | 3 / 0 |
3-vector | 4 / 0 | 13 / 6 | 15 / 8 | 7 / 3 | 1 / 0 |
4-vector | 1 / 0 | 3 / 0 | 3 / 0 | 1 / 0 | 0 / 0 |
e1, 2e3, e13 | Multivectors | a ^ b | Outer Product |
---|---|---|---|
a * b | Geometric Product | a & b | Regressive Product |
a | b | Inner Product | a << b | Left Contraction |
a >>> b | Sandwich Product | !a | Dual |
a.Grade(b) | Grade Selection | ~a | Reverse |
a.Normalized | Normalisation | E**(a) | Exponentiation |
is known as 3D Euclidean Projective Geometric Algebra. Elements represent planes (vectors), lines (bivectors), points (trivectors). The even subalgebra is isomorphic to the dual quaternions and includes all isometries (metric preserving translations and rotations) in 3D.