]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
Revert "eja: store the multiplication table as a matrix."
authorMichael Orlitzky <michael@orlitzky.com>
Mon, 5 Aug 2019 17:08:18 +0000 (13:08 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 5 Aug 2019 17:08:18 +0000 (13:08 -0400)
This reverts commit 98c3ab3a9df8c634a0fbb05ed6ad22abf41118f3. Will be
needed if we want to un-make our algebra a ring.

mjo/eja/eja_algebra.py

index d4ee9b022d8524752d3e15edf37284c2381ce509..28e86c25e3a3d315cf8fefb325fc05ef4b03b427 100644 (file)
@@ -64,10 +64,8 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule):
         # long run to have the multiplication table be in terms of
         # algebra elements. We do this after calling the superclass
         # constructor so that from_vector() knows what to do.
-        self._multiplication_table = matrix(
-            [ map(lambda x: self.from_vector(x), ls)
-              for ls in mult_table ] )
-        self._multiplication_table.set_immutable()
+        self._multiplication_table = [ map(lambda x: self.from_vector(x), ls)
+                                       for ls in mult_table ]
 
 
     def _element_constructor_(self, elt):
@@ -155,7 +153,7 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule):
         return fmt.format(self.dimension(), self.base_ring())
 
     def product_on_basis(self, i, j):
-        return self._multiplication_table[i,j]
+        return self._multiplication_table[i][j]
 
     def _a_regular_element(self):
         """
@@ -251,9 +249,8 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule):
         R = PolynomialRing(self.base_ring(), names)
         # Hack around the fact that our multiplication table is in terms of
         # algebra elements but the constructor wants it in terms of vectors.
-        vmt = [ tuple([ self._multiplication_table[i,j].to_vector()
-                        for j in range(self._multiplication_table.nrows()) ])
-                for i in range(self._multiplication_table.ncols()) ]
+        vmt = [ tuple(map(lambda x: x.to_vector(), ls))
+                for ls in self._multiplication_table ]
         J = FiniteDimensionalEuclideanJordanAlgebra(R, tuple(vmt), r)
 
         idmat = matrix.identity(J.base_ring(), n)
@@ -414,7 +411,7 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule):
             [e2  0 e0]
 
         """
-        return self._multiplication_table
+        return matrix(self._multiplication_table)
 
 
     def natural_basis(self):