wolftype / versor

Versor Geometric Algebra Library
wolftype.github.io/versor/devel/html/
291 stars 47 forks source link

[feature] High dimensional algebras #24

Open paketecuento opened 6 years ago

paketecuento commented 6 years ago

Can versor handle high dimensional algebras like CL(25,0) with sparse multivector representation??

I know it's a hard problem that galoop or gaige2 did not solve because of the representation of multivectors.

thank you

wolftype commented 6 years ago

Currently versor can only handle up to 9 dimensional algebras over a field. However -- and this is speculative -- since the field over which the algebra is defined need not be scalar numbers, one might in theory use another algebra (e.g. CL(8)) as the field, in order to build up some higher dimensions that way , which might get you somewhere (or just confuse the situation). Again, completely untested but just a thought.

using ega = vsr::algebra<vsr::metric<3>, double>; // <-- Cl(3) defined over reals
using ga8x4 = vsr::algebra< vsr::metric<8>, ega::types::rotor> //<-- Cl(4) defined over quaternions
porky11 commented 6 years ago

@paketecuento You may want to look at my implementation of geometric algebra using the Scopes programming language. It currently supports up to 16 dimensional algebras with sparse representation at compile time, and when using u32 instead of u16, it would even support more dimensions, but I used u16, because I didn't think, someone would need CL(25,0) ;) It also only supports a default metric with squares to one yet.

paketecuento commented 6 years ago

@porky11 interesting... will give a try.

godefv commented 5 years ago

@paketecuento Hey, I also have an implementation of geometric algebra in C++, which support arbitrary dimensions : https://github.com/godefv/math/ . You can check out this example.