biVector forum

Bug in generator

On https://bivector.net/tools.html I selected 2, 0, 1 algebra, and downloaded the python file. It’s missing subs method which is used in sub method. I’d open an issue on github but I’m not sure which repo holds this generator - it would be nice to link to the github repo from https://bivector.net/tools.html.

The file that generates the python code is https://github.com/enkimute/ganja.js/blob/master/codegen/py.template.js.

Having said that, if you want to work with GA in python and not just tweak a reference implementation, I’d recommend using pip install clifford (disclaimer: I am one of the maintainers)

1 Like

While I should (and will) obviously fix that bug in the generator, I fully agree with @eric-wieser here - these reference implementations are intended to fill a void. They are for that phase where you’ve just discovered GA and need a minimal view that just shows you what gets multiplied where. They intentionally ignore all performance and other design considerations. For any actual applications, we have a list of actively maintained libraries that do attempt to be practically usable.

For python, that is clifford. I’m not a maintainer. Its good stuff.

1 Like

In defense of the code generator, the PyClifford library install can fail rather easily due to its dependencies (particularly numba, which fails for me on several new Win 10 64 installations with the current version of pip). Also, in my use case having a small amount of pure python code is important, since I am working inside my CAD software’s IDE which does not support external python libraries.

I wish there was a native python version of Ganga or some effort to allow for a dependency free version of PyClifford.

This bug has been fixed. Thanks for the heads-up.

Cheers,

Steven.

1 Like

If this happens to you again, can you open a github issue with the error log? It should just work out of the box.

1 Like

Definitely! It’s not a problem with PyClifford itself as far as I can tell though, but with numba when used with pip.