X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_subalgebra.py;h=e2d12d26b01a0deaedeb190d450dfd14ede3c262;hb=3baadd6fb5c765caab2bd57d1d6ed764b03d53b3;hp=53038a50b5828aea75d57e72bf59aec0183a73ee;hpb=68a5ab899fa73a2b571dc6c931857ce9ffe0f3b1;p=sage.d.git diff --git a/mjo/eja/eja_subalgebra.py b/mjo/eja/eja_subalgebra.py index 53038a5..e2d12d2 100644 --- a/mjo/eja/eja_subalgebra.py +++ b/mjo/eja/eja_subalgebra.py @@ -1,7 +1,11 @@ from sage.matrix.constructor import matrix -from mjo.eja.eja_algebra import FiniteDimensionalEJA -from mjo.eja.eja_element import FiniteDimensionalEJAElement +from sage.combinat.free_module import CombinatorialFreeModule_CartesianProduct + +from mjo.eja.eja_algebra import (CartesianProductEJA, + FiniteDimensionalEJA) +from mjo.eja.eja_element import (CartesianProductEJAElement, + FiniteDimensionalEJAElement) class FiniteDimensionalEJASubalgebraElement(FiniteDimensionalEJAElement): """ @@ -15,7 +19,7 @@ class FiniteDimensionalEJASubalgebraElement(FiniteDimensionalEJAElement): the same as its matrix representation in the superalgebra:: sage: set_random_seed() - sage: x = random_eja(field=QQ).random_element() + sage: x = random_eja(field=QQ,orthonormalize=False).random_element() sage: A = x.subalgebra_generated_by(orthonormalize=False) sage: y = A.random_element() sage: actual = y.to_matrix() @@ -52,7 +56,7 @@ class FiniteDimensionalEJASubalgebraElement(FiniteDimensionalEJAElement): sage: x = sum(J.gens()) sage: x e0 + e1 + e2 + e3 + e4 + e5 - sage: A = x.subalgebra_generated_by() + sage: A = x.subalgebra_generated_by(orthonormalize=False) sage: A(x) f1 sage: A(x).superalgebra_element() @@ -60,7 +64,7 @@ class FiniteDimensionalEJASubalgebraElement(FiniteDimensionalEJAElement): sage: y = sum(A.gens()) sage: y f0 + f1 - sage: B = y.subalgebra_generated_by() + sage: B = y.subalgebra_generated_by(orthonormalize=False) sage: B(y) g1 sage: B(y).superalgebra_element() @@ -230,3 +234,24 @@ class FiniteDimensionalEJASubalgebra(FiniteDimensionalEJA): Element = FiniteDimensionalEJASubalgebraElement + + + +class CartesianProductEJASubalgebraElement(CartesianProductEJAElement, + FiniteDimensionalEJASubalgebraElement): + pass + +class CartesianProductEJASubalgebra(CartesianProductEJA, + FiniteDimensionalEJASubalgebra): + + def __init__(self, superalgebra, basis, **kwargs): + CombinatorialFreeModule_CartesianProduct.__init__(self, + superalgebra.cartesian_factors()) + FiniteDimensionalEJASubalgebra.__init__(self, + superalgebra, + basis, + cartesian_product=True, + **kwargs) + + + Element = CartesianProductEJASubalgebraElement