]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/eja_algebra.py
eja: special subalgebra handling for Cartesian product EJAs.
[sage.d.git] / mjo / eja / eja_algebra.py
index d3eac4f6d3bfbad50f6bbc4b371aaa9d39f8859b..92a7df167a4596504c712cf2117e79568cf7eda9 100644 (file)
@@ -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