X-Git-Url: http://gitweb.michael.orlitzky.com/?p=sage.d.git;a=blobdiff_plain;f=mjo%2Feja%2Feja_algebra.py;fp=mjo%2Feja%2Feja_algebra.py;h=92a7df167a4596504c712cf2117e79568cf7eda9;hp=d3eac4f6d3bfbad50f6bbc4b371aaa9d39f8859b;hb=02bb28968221a0f077b49205e2746abd8c5450d9;hpb=1b030ce345a244815a8317f7e8a95114c16c330b diff --git a/mjo/eja/eja_algebra.py b/mjo/eja/eja_algebra.py index d3eac4f..92a7df1 100644 --- a/mjo/eja/eja_algebra.py +++ b/mjo/eja/eja_algebra.py @@ -3416,6 +3416,34 @@ class CartesianProductEJA(FiniteDimensionalEJA): return FiniteDimensionalEJAOperator(Ji,self,Ei.matrix()) + def subalgebra(self, basis, **kwargs): + r""" + Create a subalgebra of this algebra from the given basis. + + Only overridden to allow us to use a special Cartesian product + subalgebra class. + + SETUP:: + + sage: from mjo.eja.eja_algebra import (HadamardEJA, + ....: QuaternionHermitianEJA) + + EXAMPLES: + + Subalgebras of Cartesian product EJAs have a different class + than those of non-Cartesian-product EJAs:: + + sage: J1 = HadamardEJA(2,field=QQ,orthonormalize=False) + sage: J2 = QuaternionHermitianEJA(0,field=QQ,orthonormalize=False) + sage: J = cartesian_product([J1,J2]) + sage: K1 = J1.subalgebra((J1.one(),), orthonormalize=False) + sage: K = J.subalgebra((J.one(),), orthonormalize=False) + sage: K1.__class__ is K.__class__ + False + + """ + from mjo.eja.eja_subalgebra import FiniteDimensionalCartesianProductEJASubalgebra + return FiniteDimensionalCartesianProductEJASubalgebra(self, basis, **kwargs) FiniteDimensionalEJA.CartesianProduct = CartesianProductEJA