This PR features some small but important upgrades to the ganja code, and will include a huge performance boost by allowing users to register their own expressions for numba (numba) compilation using a simple decorator:
alg = Algebra(3, 0, 1)
@alg.register
def myfunc(a, b, c):
return a >> b + c
For more complicated expressions, this will give tremendous speed-ups, especially in combination with numba.
Todo:
[ ] ganja.js use proper server
[x] multivector json as object instead of as array
[x] full width ganja animations in jupyter notebooks
[ ] More ganja based examples
[x] Turn all unary and binary expressions into codegen OperatorDicts, such that they can be used for registered expressions
[x] Convert __pow__ and grades into codegen as well.
[x] Add a Register object on Algebra to keep track of registered expressions.
This PR features some small but important upgrades to the ganja code, and will include a huge performance boost by allowing users to register their own expressions for numba (numba) compilation using a simple decorator:
For more complicated expressions, this will give tremendous speed-ups, especially in combination with numba.
Todo:
__pow__
andgrades
into codegen as well.Register
object onAlgebra
to keep track of registered expressions.