]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
octonions: add matrix_space() method for elements and _repr_ for parents.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 2 Mar 2021 15:20:02 +0000 (10:20 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 2 Mar 2021 15:20:02 +0000 (10:20 -0500)
mjo/octonions.py

index 352c4c586e7506a218bcc9e7f9cb6332c1cd72c7..73acf2db2ebf76258f47ed1156113925f4f257ed 100644 (file)
@@ -445,6 +445,24 @@ class OctonionMatrix(IndexedFreeModuleElement):
         zero = self.parent().octonions().zero()
         return sum( (self[i,i] for i in range(self.nrows())), zero )
 
+    def matrix_space(self):
+        r"""
+
+        SETUP::
+
+            sage: from mjo.octonions import OctonionMatrixAlgebra
+
+        TESTS::
+
+            sage: set_random_seed()
+            sage: MS = OctonionMatrixAlgebra(2)
+            sage: MS.random_element().matrix_space()
+            Module of 2 by 2 matrices with octonion entries over the
+            scalar ring Algebraic Real Field
+
+        """
+        return self.parent()
+
 
 class OctonionMatrixAlgebra(CombinatorialFreeModule):
     r"""
@@ -483,6 +501,11 @@ class OctonionMatrixAlgebra(CombinatorialFreeModule):
                          prefix=prefix,
                          bracket='(')
 
+    def _repr_(self):
+        return ("Module of %d by %d matrices with octonion entries"
+                " over the scalar ring %s" %
+                (self.nrows(), self.ncols(), self.base_ring()) )
+
     def octonions(self):
         r"""
         Return the Octonion algebra that our elements' entries come from.