]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/TODO
eja: fix one more positional "field" argument.
[sage.d.git] / mjo / eja / TODO
index 76b9eaf1dcf19f3c8385bd1f0486128b005ca3f2..08b8e81b22e8b5fde0a368e11840267edab4d250 100644 (file)
@@ -1,20 +1,28 @@
-1. Add CartesianProductEJA.
+1. Finish DirectSumEJA: add to_matrix(), random_instance(),
+   one()... methods. Make it subclass RationalBasisEuclideanJordanAlgebra.
+   This is not a general direct sum / cartesian product implementation,
+   it's used only with the other rationalbasis algebras (to make non-
+   simple EJAs out of the simple ones).
 
 2. Add references and start citing them.
 
 3. Implement the octonion simple EJA.
 
 
 2. Add references and start citing them.
 
 3. Implement the octonion simple EJA.
 
-4. Factor out the unit-norm basis (and operator symmetry) tests once
-   all of the algebras pass.
+4. Pre-cache charpoly for some small algebras?
 
 
-5. Override inner_product(), _max_test_case_size(), et cetera in
-   DirectSumEJA.
+RealSymmetricEJA(4):
 
 
-6. Switch to QQ in *all* algebras for _charpoly_coefficients().
+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]
 
 
-7. 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
-   we may somehow be able to pass the echelon basis straight in to
-   save time.
+5. Compute the scalar in the general natural_inner_product() for
+   matrices, so no overrides are necessary.
+
+6. The main EJA element constructor is happy to convert between
+   e.g. HadamardEJA(3) and JordanSpinEJA(3).
+
+7. Figure out if CombinatorialFreeModule's use of IndexedGenerators
+   can be used to replace the matrix_basis().
+
+9. Add back the check_field=False and check_axioms=False parameters
+   for the EJAs we've constructed ourselves.