]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
mjo/hurwitz.py: add matrix transpose() method
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 24 Jan 2026 01:14:42 +0000 (20:14 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sat, 24 Jan 2026 01:14:42 +0000 (20:14 -0500)
Sometimes you just need to transpose a complex matrix, you know?

mjo/hurwitz.py

index c3f3c6094e19c79b30cf033f586fc31b5ae342ce..a252cf6cfe86406ce7dd65adba9dbfdaddfa8be9 100644 (file)
@@ -335,6 +335,33 @@ class HurwitzMatrixAlgebraElement(MatrixAlgebraElement):
         new_terms = ( A._conjugate_term((k,v)) for (k,v) in d.items() )
         return self.parent().sum_of_terms(new_terms)
 
+    def transpose(self):
+        r"""
+        Return the transpose of this matrix.
+
+        SETUP::
+
+            sage: from mjo.hurwitz import ComplexMatrixAlgebra
+
+        EXAMPLES::
+
+            sage: A = ComplexMatrixAlgebra(2, QQbar, ZZ)
+            sage: M = A([ [ I,   2*I],
+            ....:         [ 3*I, 4*I] ])
+            sage: M.transpose()
+            ┌─────┬─────┐
+            │ I   │ 3*I │
+            ├─────┼─────┤
+            │ 2*I │ 4*I │
+            └─────┴─────┘
+
+        """
+        d = self.monomial_coefficients()
+        A = self.parent()
+        new_terms = ( ((j,i,k), v)
+                      for ((i,j,k),v) in d.items() )
+        return self.parent().sum_of_terms(new_terms)
+
     def conjugate_transpose(self):
         r"""
         Return the conjugate-transpose of this matrix.