]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/TODO
eja: add another Cartesian product test.
[sage.d.git] / mjo / eja / TODO
index 76b9eaf1dcf19f3c8385bd1f0486128b005ca3f2..fe18d5634835c97dcc1ee635c4fadecab25787ea 100644 (file)
@@ -1,20 +1,25 @@
-1. Add CartesianProductEJA.
+1. Finish CartesianProductEJA: add to_matrix(), random_instance(),
+   one()... methods. This will require rethinking what a "matrix
+   representation" and "matrix space" means for a cartesian product
+   algebra. Do we want our matrix basis to consist of ordered pairs
+   (or triples, or...)? Should the matrix_space() of the algebra be
+   the cartesian product of the factors' matrix spaces? Can we just
+   fix the matrix basis/space after we call the FDEJA initializer?
 
 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. The main EJA element constructor is happy to convert between
+   e.g. HadamardEJA(3) and JordanSpinEJA(3).
+
+6. Profile the construction of "large" matrix algebras (like the
+   15-dimensional QuaternionHermitianAlgebra(3)) to find out why
+   they're so slow.