]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/octonions.py
octonions: rename octonions() accessor to entry_algebra().
[sage.d.git] / mjo / octonions.py
index 87bf5ff1ed06b1a77b5815df8dd2248fda4b7edb..f786fcf1228e62f605876c04a2003614d5015e64 100644 (file)
@@ -345,7 +345,7 @@ class OctonionMatrix(IndexedFreeModuleElement):
     ncols = nrows
 
     @cached_method
-    def to_list(self):
+    def to_nested_list(self):
         r"""
         SETUP::
 
@@ -372,11 +372,11 @@ class OctonionMatrix(IndexedFreeModuleElement):
             +----+---+---+
             | 0  | 0 | 0 |
             +----+---+---+
-            sage: (E00e0 + 2*E00e3).to_list()
+            sage: (E00e0 + 2*E00e3).to_nested_list()
             [[e0 + 2*e3, 0, 0], [0, 0, 0], [0, 0, 0]]
 
         """
-        zero = self.parent().octonions().zero()
+        zero = self.parent().entry_algebra().zero()
         l = [[zero for j in range(self.ncols())] for i in range(self.nrows())]
         for (k,v) in self.monomial_coefficients().items():
             (i,j,e) = k
@@ -401,7 +401,29 @@ class OctonionMatrix(IndexedFreeModuleElement):
             +----+----+----+
 
         """
-        return table(self.to_list(), frame=True)._repr_()
+        return table(self.to_nested_list(), frame=True)._repr_()
+
+
+    def list(self):
+        r"""
+        Return one long list of this matrix's entries.
+
+        SETUP::
+
+            sage: from mjo.octonions import OctonionMatrixAlgebra
+
+        EXAMPLES::
+
+            sage: MS = OctonionMatrixAlgebra(3)
+            sage: E00e0 = MS.gens()[0]
+            sage: E00e3 = MS.gens()[3]
+            sage: (E00e0 + 2*E00e3).to_nested_list()
+            [[e0 + 2*e3, 0, 0], [0, 0, 0], [0, 0, 0]]
+            sage: (E00e0 + 2*E00e3).list()
+            [e0 + 2*e3, 0, 0, 0, 0, 0, 0, 0, 0]
+
+        """
+        return sum( self.to_nested_list(), [] )
 
 
     def __getitem__(self, indices):
@@ -426,7 +448,7 @@ class OctonionMatrix(IndexedFreeModuleElement):
 
         """
         i,j = indices
-        return self.to_list()[i][j]
+        return self.to_nested_list()[i][j]
 
     def trace(self):
         r"""
@@ -442,7 +464,7 @@ class OctonionMatrix(IndexedFreeModuleElement):
             3*e0
 
         """
-        zero = self.parent().octonions().zero()
+        zero = self.parent().entry_algebra().zero()
         return sum( (self[i,i] for i in range(self.nrows())), zero )
 
     def matrix_space(self):
@@ -508,8 +530,8 @@ class OctonionMatrixAlgebra(CombinatorialFreeModule):
 
         I = FiniteEnumeratedSet(range(n))
         J = FiniteEnumeratedSet(range(n))
-        self._octonions = Octonions(field=field)
-        entry_basis = self._octonions.gens()
+        self._entry_algebra = Octonions(field=field)
+        entry_basis = self._entry_algebra.gens()
 
         basis_indices = cartesian_product([I,J,entry_basis])
         super().__init__(field,
@@ -523,11 +545,11 @@ class OctonionMatrixAlgebra(CombinatorialFreeModule):
                 " over the scalar ring %s" %
                 (self.nrows(), self.ncols(), self.base_ring()) )
 
-    def octonions(self):
+    def entry_algebra(self):
         r"""
-        Return the Octonion algebra that our elements' entries come from.
+        Return the algebra that our elements' entries come from.
         """
-        return self._octonions
+        return self._entry_algebra
 
     def nrows(self):
         return self._nrows
@@ -556,7 +578,7 @@ class OctonionMatrixAlgebra(CombinatorialFreeModule):
             True
 
         """
-        return sum( (self.monomial((i,i,self._octonions.one()))
+        return sum( (self.monomial((i,i,self.entry_algebra().one()))
                      for i in range(self.nrows()) ),
                     self.zero() )
 
@@ -596,7 +618,7 @@ class OctonionMatrixAlgebra(CombinatorialFreeModule):
             # given octonion algebra to ours. Otherwise we can fail
             # to convert an element of (for example) Octonions(QQ)
             # to Octonions(AA).
-            return self.octonions().from_vector(e_ij.to_vector())
+            return self.entry_algebra().from_vector(e_ij.to_vector())
 
         return sum( (self.monomial( (i,j, convert(entries[i][j])) )
                      for i in range(nrows)