]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/TODO
eja: use cached charpoly for element inverse when available.
[sage.d.git] / mjo / eja / TODO
index ffa4f7c4ca0ccf3e2a72b6bfd996e9c30ec29fde..94fb172aba0dda1d601e7c70ccf4f991749a6fcc 100644 (file)
@@ -4,17 +4,14 @@
 
 3. Implement the octonion simple EJA.
 
 
 3. Implement the octonion simple EJA.
 
-4. Factor out the unit-norm basis (and operator symmetry) tests once
-   all of the algebras pass.
+4. Override random_instance(), one(), et cetera in DirectSumEJA.
 
 
-5. Override random_instance(), one(), et cetera in DirectSumEJA.
-
-6. Switch to QQ in *all* algebras for _charpoly_coefficients().
+5. Switch to QQ in *all* algebras for _charpoly_coefficients().
    This only works when we know that the basis can be rationalized...
    which is the case at least for the concrete EJAs we provide,
    but not in general.
 
    This only works when we know that the basis can be rationalized...
    which is the case at least for the concrete EJAs we provide,
    but not in general.
 
-7. Pass already_echelonized (default: False) and echelon_basis
+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
    (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
    This may require supporting "basis" as a list of basis vectors
    (as opposed to superalgebra elements) in the subalgebra constructor.
 
    This may require supporting "basis" as a list of basis vectors
    (as opposed to superalgebra elements) in the subalgebra constructor.
 
-8. Implement random_instance() for general algebras as random_eja().
-   Copy/paste the "general" construction into the other classes that
-   can use it. The general construction can be something like "call
-   random_instance() on something that inherits me and return the
-   result."
-
-9. Use charpoly for inverse stuff if it's cached.
+7. The inner product should be an *argument* to the main EJA
+   constructor.  Afterwards, the basis normalization step should be
+   optional (and enabled by default) for ALL algebras, since any
+   algebra can have a nonstandard inner-product and its basis can be
+   normalized with respect to that inner- product. For example, the
+   HadamardEJA could be equipped with an inner- product that is twice
+   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.