"""
i,j = indices
- return self.rows()[i][j]
+ d = self.monomial_coefficients()
+ A = self.parent().entry_algebra()
+ return A.sum( d[k]*k[2]
+ for k in d
+ if k[0] == i and k[1] == j )
+
def trace(self):
r"""
[0 2]
"""
- zero = self.parent().entry_algebra().zero()
- return sum( (self[i,i] for i in range(self.nrows())), zero )
+ d = self.monomial_coefficients()
+ A = self.parent().entry_algebra()
+ return A.sum( d[k]*k[2] for k in d if k[0] == k[1] )
def matrix_space(self):
r"""
TESTS::
- sage: set_random_seed()
sage: entries = QuaternionAlgebra(QQ,-1,-1)
sage: M = MatrixAlgebra(3, entries, QQ)
sage: M.random_element().matrix_space() == M
self._nrows = n
- # Since the scalar ring is real but the entries are not,
+ # Since the scalar ring is (say) real but the entries are not,
# sticking a "1" in each position doesn't give us a basis for
# the space. We actually need to stick each of e0, e1, ... (a
# basis for the entry algebra itself) into each position.