]> gitweb.michael.orlitzky.com - sage.d.git/blob - mjo/eja/TODO
eja: add another performance TODO.
[sage.d.git] / mjo / eja / TODO
1 1. Finish DirectSumEJA: add to_matrix(), random_instance(),
2 one()... methods. Make it subclass RationalBasisEuclideanJordanAlgebra.
3 This is not a general direct sum / cartesian product implementation,
4 it's used only with the other rationalbasis algebras (to make non-
5 simple EJAs out of the simple ones).
6
7 2. Add references and start citing them.
8
9 3. Implement the octonion simple EJA.
10
11 4. Pre-cache charpoly for some small algebras?
12
13 RealSymmetricEJA(4):
14
15 sage: F = J.base_ring()
16 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]
17
18 5. Compute the scalar in the general natural_inner_product() for
19 matrices, so no overrides are necessary.
20
21 6. The main EJA element constructor is happy to convert between
22 e.g. HadamardEJA(3) and JordanSpinEJA(3).
23
24 7. Figure out if CombinatorialFreeModule's use of IndexedGenerators
25 can be used to replace the matrix_basis().
26
27 8. Move the "field" argument to a keyword after basis, jp, and ip.
28
29 9. Add back the check_field=False and check_axioms=False parameters
30 for the EJAs we've constructed ourselves. We can probably pass
31 the value of "check_axioms" to <whatever>.span_of_basis() to skip
32 the linear-independence check.