]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/TODO
eja: don't pass in a full multiplication table unless necessary.
[sage.d.git] / mjo / eja / TODO
index db363ac3facd6c3c7475bf9b426664320c19951b..2752dc47cd026eb9c000be7301507567c2161dfa 100644 (file)
@@ -14,7 +14,7 @@
 6. Pass already_echelonized (default: False) and echelon_basis
    (default: None) into the subalgebra constructor. The value of
    already_echelonized can be passed to V.span_of_basis() to save
-   some time, and usinf e.g. FreeModule_submodule_with_basis_field
+   some time, and using e.g. FreeModule_submodule_with_basis_field
    we may somehow be able to pass the echelon basis straight in to
    save time.
 
    the usual one. Then for the basis to be orthonormal, we would need
    to divide e.g. (1,0,0) by <(1,0,0),(1,0,0)> = 2 to normalize it.
 
-8. Use charpoly for inverse itself?
+8. Pre-cache charpoly for some small algebras?
 
-9. Pre-cache charpoly for some small algebras?
+RealSymmetricEJA(4):
+
+sage: F = J.base_ring()
+sage: a0 = (1/4)*X[4]**2*X[6]**2 - (1/2)*X[2]*X[5]*X[6]**2 - (1/2)*X[3]*X[4]*X[6]*X[7] + (F(2).sqrt()/2)*X[1]*X[5]*X[6]*X[7] + (1/4)*X[3]**2*X[7]**2 - (1/2)*X[0]*X[5]*X[7]**2 + (F(2).sqrt()/2)*X[2]*X[3]*X[6]*X[8] - (1/2)*X[1]*X[4]*X[6*X[8] - (1/2)*X[1]*X[3]*X[7]*X[8] + (F(2).sqrt()/2)*X[0]*X[4]*X[7]*X[8] + (1/4)*X[1]**2*X[8]**2 - (1/2)*X[0]*X[2]*X[8]**2 - (1/2)*X[2]*X[3]**2*X[9] + (F(2).sqrt()/2)*X[1]*X[3]*X[4]*X[9] - (1/2)*X[0]*X[4]**2*X[9] - (1/2)*X[1]**2*X[5]*X[9] + X[0]*X[2]*X[5]*X[9]
+
+9. Compute the scalar in the general natural_inner_product() for
+   matrices, so no overrides are necessary.
+
+10. The main EJA element constructor is happy to convert between
+    e.g. HadamardEJA(3) and JordanSpinEJA(3).
+
+11. Figure out if CombinatorialFreeModule's use of IndexedGenerators
+    can be used to replace the matrix_basis().
+
+12. Move the "field" argument to a keyword after basis, jp, and ip.
+
+13. Instead of storing the multiplication and inner-product tables in
+    RationalBasisEuclideanJordanAlgebra, why not just create the
+    algebra over QQ in the constructor and save that? They're globally
+    unique, so we won't wind up with multiple copies.