]> gitweb.michael.orlitzky.com - sage.d.git/commit
eja: move away from using matrices as our "multiplication table."
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 4 Aug 2019 18:34:34 +0000 (14:34 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 4 Aug 2019 18:34:34 +0000 (14:34 -0400)
commitc8af8b316ce0f238fea8a994d24776f74dc1e271
tree5a6aa5b3a130fdc2189dc5d5be6ef913a868d380
parent6201a7cc616538014fd51384cf96177730b11d2d
eja: move away from using matrices as our "multiplication table."

Instead of passing around a bunch of matrices that can be applied to
vectors to figure out how multiplication works, it's simpler (and
probably faster) to use a two-dimensional array whose (i,j)th entry
contains the answer to "how do we multiply basis elements i and j?"

When we feed these arrays into the EJA constructor, they must contain
vectors: there's no algebra yet, so it's not like we have any algebra
elements to pass in. However, in the long run, it's much more
convenient to have the multiplication table *stored* in terms of
algebra elements; that way we don't have to convert back and forth
every time we want to multiply two algebra elements. The algebra
constructor now performs this conversion and stores a table containing
algebra elements. This makes product_on_basis() a simple table lookup.
mjo/eja/eja_algebra.py
mjo/eja/eja_subalgebra.py