-6. Can we make the minimal and characteristic polynomial tests work
- for trivial algebras, too? Then we wouldn't need the "nontrivial"
- argument to random_eja(). This would also allow us to potentially
- pass a "size" of zero to the other constructors in random_eja() --
- a code path that is basically untested right now.
+5. Profile the construction of "large" matrix algebras (like the
+ 15-dimensional QuaternionHermitianAlgebra(3)) to find out why
+ they're so slow.
+
+6. Instead of storing a basis multiplication matrix, just make
+ product_on_basis() a cached method and manually cache its
+ entries. The cython cached method lookup should be faster than a
+ python-based matrix lookup anyway.
+
+7. What the ever-loving fuck is this shit?
+
+ sage: O = Octonions(QQ)
+ sage: e0 = O.monomial(0)
+ sage: e0*[[[[]]]]
+ [[[[]]]]*e0
+
+8. Factor out a class for matrices with real embeddings (i.e. not the
+ octonions).
+
+9. In fact, could my octonion matrix algebra be generalized for any
+ algebra of matrices over the reals whose entries are not real? Then
+ we wouldn't need real embeddings at all. They might even be fricking
+ vector spaces if I did that...
+
+10. Add HurwitzMatrixAlgebra subclass between MatrixAlgebra and
+ OctonionMatrixAlgebra.