Reference Implementation
The "reference implementation" is a Java (and C#) implementation of the algorithms discussed in Chapters 18 through 21 of the book. It contains an implementation of:
- Geometric algebra for basis blades.
- Geometric algebra for multivectors.
- Factorization, inversion, meet and join, exp, sin, cos.
Download the reference implementation in Java.
C# version
The C# version of the reference implementation is included in Gaigen 2.5. Downloaded it at SourceForge. The source is in g25-2.5.X.tar.gz, directory RefGA.
Online Viewing of (Java) Source Code
You can also browse the code online, through the links below:
Basis Blades
- Basics
- Outer product:
- Geometric product:
- Metric products:
- Reverse, Clifford conjugate, grade inversion:
Multivectors
- Basics:
- Multivector Storage
- simplify() method (Simplifies a multivector by adding basis blades that are a multiple of eachother. Used internally by some methods.)
- Distributive operations:
- add() method
- substract() method
- gp() methods (geometric product with various way to specify metric)
- op() method
- ip() methods (inner product with various way to specify metric)
- reverse() method
- gradeInversion() method
- cliffordConjugate() method
- Algorithms:
- versorInverse() method
- generalInverse() method
- exp() method
- expSeries() method (evaluates Taylor series)
- sin() method
- sinSeries() method (evaluates Taylor series)
- cos() method
- cosSeries() method (evaluates Taylor series)
- MultivectorType class. (tests whether multivector is a blade or versor)
- factorizeBlade() method
- computation of meet and join