ncols = nrows
@cached_method
- def to_list(self):
+ def to_nested_list(self):
r"""
SETUP::
+----+---+---+
| 0 | 0 | 0 |
+----+---+---+
- sage: (E00e0 + 2*E00e3).to_list()
+ sage: (E00e0 + 2*E00e3).to_nested_list()
[[e0 + 2*e3, 0, 0], [0, 0, 0], [0, 0, 0]]
"""
+----+----+----+
"""
- return table(self.to_list(), frame=True)._repr_()
+ return table(self.to_nested_list(), frame=True)._repr_()
+
+
+ def list(self):
+ r"""
+ Return one long list of this matrix's entries.
+
+ SETUP::
+
+ sage: from mjo.octonions import OctonionMatrixAlgebra
+
+ EXAMPLES::
+
+ sage: MS = OctonionMatrixAlgebra(3)
+ sage: E00e0 = MS.gens()[0]
+ sage: E00e3 = MS.gens()[3]
+ sage: (E00e0 + 2*E00e3).to_nested_list()
+ [[e0 + 2*e3, 0, 0], [0, 0, 0], [0, 0, 0]]
+ sage: (E00e0 + 2*E00e3).list()
+ [e0 + 2*e3, 0, 0, 0, 0, 0, 0, 0, 0]
+
+ """
+ return sum( self.to_nested_list(), [] )
def __getitem__(self, indices):
"""
i,j = indices
- return self.to_list()[i][j]
+ return self.to_nested_list()[i][j]
def trace(self):
r"""
"""
return self.parent()
+ def is_hermitian(self):
+ r"""
+
+ SETUP::
+
+ sage: from mjo.octonions import OctonionMatrixAlgebra
+
+ EXAMPLES::
+
+ sage: MS = OctonionMatrixAlgebra(3)
+ sage: MS.one().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 OctonionMatrixAlgebra(CombinatorialFreeModule):
r"""