The design of both libraries take an agnostic approach to what algebra is represented. It seems to me that most interesting operations, like the geometric product, can be easily accommodated in such a framework, but a few cases stand out.
For example, you mention “you just define e1,e2,e3, and go add, multiply, or exponentiate them to produce higher-level objects” and I wonder how you approached exponentiation of a general multivector? Reducing the problem to exponentiation of blade products, the obvious cases are when the product squares to -1 (Euler’s formula) and when the series expansion terminates after a finite number of steps, but I struggle to find a general approach (which is a bit disheartening since it is such a fundamental operation). Since your library supports symbolic expressions, I wonder if this is part of the answer?
Thank you for responding. I’m afraid I don’t know how to cross-link to your thread, however.