From: Michael Orlitzky Date: Wed, 2 Feb 2022 16:21:01 +0000 (-0500) Subject: mjo/hurwitz.py: speed up is_hermitian() and is_skew_symmetric(). X-Git-Url: http://gitweb.michael.orlitzky.com/?p=sage.d.git;a=commitdiff_plain;h=2c4fdb8c5b0d70b1aafb3aed7e993c5821ee26be mjo/hurwitz.py: speed up is_hermitian() and is_skew_symmetric(). We only need to test these above and on the diagonal. --- diff --git a/mjo/hurwitz.py b/mjo/hurwitz.py index 6767fe1..614804f 100644 --- a/mjo/hurwitz.py +++ b/mjo/hurwitz.py @@ -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):