]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
mjo/hurwitz.py: speed up is_hermitian() and is_skew_symmetric().
authorMichael Orlitzky <michael@orlitzky.com>
Wed, 2 Feb 2022 16:21:01 +0000 (11:21 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Wed, 2 Feb 2022 16:21:01 +0000 (11:21 -0500)
We only need to test these above and on the diagonal.

mjo/hurwitz.py

index 6767fe12fcd2d433c3b3a12324d6aab302d1b57b..614804f21fb831aae04ff97be31413e84c1b61f8 100644 (file)
@@ -369,6 +369,14 @@ class HurwitzMatrixAlgebraElement(MatrixAlgebraElement):
             sage: M.is_hermitian()
             True
 
+        ::
+
+            sage: A = ComplexMatrixAlgebra(2, QQbar, ZZ)
+            sage: M = A([ [ 0,0],
+            ....:         [-I,0] ])
+            sage: M.is_hermitian()
+            False
+
         ::
 
             sage: A = HurwitzMatrixAlgebra(2, AA, QQ)
@@ -382,7 +390,7 @@ class HurwitzMatrixAlgebraElement(MatrixAlgebraElement):
         # transpose.
         return all( self[i,j] == self[j,i].conjugate()
                     for i in range(self.nrows())
-                    for j in range(self.ncols()) )
+                    for j in range(i+1) )
 
 
     def is_skew_symmetric(self):
@@ -431,7 +439,7 @@ class HurwitzMatrixAlgebraElement(MatrixAlgebraElement):
         # of the transpose.
         return all( self[i,j] == -self[j,i]
                     for i in range(self.nrows())
-                    for j in range(self.ncols()) )
+                    for j in range(i+1) )
 
 
 class HurwitzMatrixAlgebra(MatrixAlgebra):