I just found this forum and thought, some people here might be interested in this:
Some time ago, I wrote a library for GA using the Scopes programming language.
Most important features already work.
Main advantages:
- the multivector types use vector types as representation, so addition should be very efficient
- all types and functions are computed at compile time:
- better compile time optimization
- better compile time error checking
- only uses the memory really needed
- custom functions can also return the most minimal result type
- Scopes can also run on the GPU, so the same types and functions can be used on the CPU and GPU without problems
- versor tracking: the type info also stores if a type is a versor
- call optimized versions of some methods on versors
- forbid some methods on non-versors
- define custom methods, which know if a multivector is a versor
- support for any element type (floats, integers, custom types like fixed point numbers)
Known missing features:
- support for custom metrics (every vector squares to 1 currently)
- some of the more advanced math on multivectors (a simple version of exp exists)