From: Michael Orlitzky Date: Wed, 7 Aug 2019 19:16:04 +0000 (-0400) Subject: eja: choose subalgebra generator prefix smarter. X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=c75f59725b9cfd923256d83dc3817a0f5f42d638;p=sage.d.git eja: choose subalgebra generator prefix smarter. --- diff --git a/mjo/eja/eja_subalgebra.py b/mjo/eja/eja_subalgebra.py index a3ad92a..c43e53f 100644 --- a/mjo/eja/eja_subalgebra.py +++ b/mjo/eja/eja_subalgebra.py @@ -71,6 +71,25 @@ class FiniteDimensionalEuclideanJordanElementSubalgebraElement(FiniteDimensional class FiniteDimensionalEuclideanJordanElementSubalgebra(FiniteDimensionalEuclideanJordanAlgebra): """ The subalgebra of an EJA generated by a single element. + + SETUP:: + + sage: from mjo.eja.eja_algebra import JordanSpinEJA + + TESTS: + + Ensure that our generator names don't conflict with the superalgebra:: + + sage: J = JordanSpinEJA(3) + sage: J.one().subalgebra_generated_by().gens() + (f0,) + sage: J = JordanSpinEJA(3, prefix='f') + sage: J.one().subalgebra_generated_by().gens() + (g0,) + sage: J = JordanSpinEJA(3, prefix='b') + sage: J.one().subalgebra_generated_by().gens() + (c0,) + """ def __init__(self, elt): superalgebra = elt.parent() @@ -106,8 +125,17 @@ class FiniteDimensionalEuclideanJordanElementSubalgebra(FiniteDimensionalEuclide product = superalgebra_basis[i]*superalgebra_basis[j] mult_table[i][j] = W.coordinate_vector(product.to_vector()) - # TODO: We'll have to redo this and make it unique again... - prefix = 'f' + # A half-assed attempt to ensure that we don't collide with + # the superalgebra's prefix (ignoring the fact that there + # could be super-superelgrbas in scope). If possible, we + # try to "increment" the parent algebra's prefix, although + # this idea goes out the window fast because some prefixen + # are off-limits. + prefixen = [ 'f', 'g', 'h', 'a', 'b', 'c', 'd' ] + try: + prefix = prefixen[prefixen.index(superalgebra.prefix()) + 1] + except ValueError: + prefix = prefixen[0] # The rank is the highest possible degree of a minimal # polynomial, and is bounded above by the dimension. We know