]> gitweb.michael.orlitzky.com - sage.d.git/blob - mjo/eja/TODO
eja: add yet another TODO.
[sage.d.git] / mjo / eja / TODO
1 1. Add CartesianProductEJA.
2
3 2. Add references and start citing them.
4
5 3. Implement the octonion simple EJA.
6
7 4. Factor out the unit-norm basis (and operator symmetry) tests once
8 all of the algebras pass.
9
10 5. Override inner_product(), _max_test_case_size(), et cetera in
11 DirectSumEJA.
12
13 6. Switch to QQ in *all* algebras for _charpoly_coefficients().
14 This only works when we know that the basis can be rationalized...
15 which is the case at least for the concrete EJAs we provide,
16 but not in general.
17
18 7. Pass already_echelonized (default: False) and echelon_basis
19 (default: None) into the subalgebra constructor. The value of
20 already_echelonized can be passed to V.span_of_basis() to save
21 some time, and usinf e.g. FreeModule_submodule_with_basis_field
22 we may somehow be able to pass the echelon basis straight in to
23 save time.
24
25 This may require supporting "basis" as a list of basis vectors
26 (as opposed to superalgebra elements) in the subalgebra constructor.
27
28 8. Implement random_instance() for general algebras as random_eja().
29 Copy/paste the "general" construction into the other classes that
30 can use it. The general construction can be something like "call
31 random_instance() on something that inherits me and return the
32 result."
33
34 9. Pre-cache the one() method for concrete algebras, and test the general
35 method by clearing the cache.