+
+ def _element_constructor_(self, elt):
+ if elt in self:
+ return self
+ else:
+ return self.from_list(elt)
+
+
+class HurwitzMatrixAlgebraElement(MatrixAlgebraElement):
+ def is_hermitian(self):
+ r"""
+
+ SETUP::
+
+ sage: from mjo.matrix_algebra import HurwitzMatrixAlgebra
+
+ EXAMPLES::
+
+ sage: A = HurwitzMatrixAlgebra(QQbar, ZZ, 2)
+ sage: M = A([ [ 0,I],
+ ....: [-I,0] ])
+ sage: M.is_hermitian()
+ True
+
+ """
+ return all( self[i,j] == self[j,i].conjugate()
+ for i in range(self.nrows())
+ for j in range(self.ncols()) )
+
+
+class HurwitzMatrixAlgebra(MatrixAlgebra):
+ Element = HurwitzMatrixAlgebraElement